Fortran Coder

查看: 2190|回复: 5
打印 上一主题 下一主题

[文件读写] abaqus子程序txt文件读写,并行计算报错

[复制链接]

7

帖子

3

主题

0

精华

入门

F 币
39 元
贡献
17 点
跳转到指定楼层
楼主
发表于 2023-7-7 17:49:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是我的film子程序:
[Fortran] 纯文本查看 复制代码
SUBROUTINE FILM(H,SINK,TEMP,KSTEP,KINC,TIME,NOEL,NPT,
     1 COORDS,JLTYP,FIELD,NFIELD,SNAME,NODE,AREA)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION H(2),TIME(2),COORDS(3), FIELD(NFIELD)
      CHARACTER*80 SNAME
      real a(2,241)
      integer i,j
      
      data iread /1/
      save iread
      save a
      
      if(iread.eq.1) then
      !读入温度数据
          iread = 2
          open(12,file='D:\abaqusworks\abaqus\temperature.txt')
          do i=1,241
              read(12,*) a(1,i),a(2,i)
              print*, a(1,i),a(2,i)
          end do
      end if
      close(12)
      ! 对应时间步长
      do j = 1,241
          if (TIME(2).EQ.a(1,j)) then
              SINK = a(2,j)
              exit
          end if
      end do
         
      v = 1.0                               ! wind speed (m/s)工程估算风速
      hc=(2.6*(sqrt(sqrt(ABS(SINK-TEMP))))+4*v)*3600    !β,J/(m2*h*℃)经验公式
      H(1)=hc                             !β,J/(m2*h*℃)
      H(2)=0                              !换热系数对于时间的变化率
      
      FIELD(1)=NFIELD
      FIELD(2)=H(1)
      FIELD(3)=SINK
      FIELD(4)=TEMP
      


      RETURN
      END

只需要对应温度数据,输入到对流换热表面。不启用并行还行,一启用并行运算就报错,类似于下述错误:
Run standard.exe
  0.0000000E+00   7.480000   
forrtl: severe (29): file not found, unit 99, file C:\Users\ARROWZ~1\AppData\Local\Temp\Arrowzero_Job-6_1248\fort.99
Image              PC                Routine            Line        Source            
libifcoremd.dll    00007FFF85F2A335  Unknown               Unknown  Unknown
libifcoremd.dll    00007FFF85F827BB  Unknown               Unknown  Unknown
standardU.dll      00007FFF82101296  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF7DDCF77C  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF7DDD5792  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF7DDD4CDE  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF7DDDF6AC  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF7EEE49D7  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF80108922  Unknown               Unknown  Unknown
ABQSMAAbuBasicUti  00007FFF83249AA6  Unknown               Unknown  Unknown
ucrtbase.dll       00007FF812CC1BB2  Unknown               Unknown  Unknown
KERNEL32.DLL       00007FF8142E7614  Unknown               Unknown  Unknown
ntdll.dll          00007FF8152826F1  Unknown               Unknown  Unknown



Run standard.exe
forrtl: severe (24): end-of-file during read, unit 18, file C:\Users\ARROWZ~1\AppData\Local\Temp\Arrowzero_Job-2_8332\temperature.txt
Image              PC                Routine            Line        Source            
libifcoremd.dll    00007FFF85F8A335  Unknown               Unknown  Unknown
libifcoremd.dll    00007FFF85FE2C60  Unknown               Unknown  Unknown
standardU.dll      00007FFF7B641296  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF7DDCF77C  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF7DDD5792  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF7DDD4CDE  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF7DDDF6AC  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF7EEE49D7  Unknown               Unknown  Unknown
ABQSMAStaCore.dll  00007FFF80108922  Unknown               Unknown  Unknown
ABQSMAAbuBasicUti  00007FFF82C29AA6  Unknown               Unknown  Unknown
ucrtbase.dll       00007FF812CC1BB2  Unknown               Unknown  Unknown
KERNEL32.DLL       00007FF8142E7614  Unknown               Unknown  Unknown
ntdll.dll          00007FF8152826F1  Unknown               Unknown  Unknown



或者就是在log文件里输出大量0值,因为在我读取温度数据时,print了我保存的数组,按理来说应该是温度数据啊
下面是我的temperature.txt
0        7.48
0.5        6.98
1        7.53
1.5        8.2
2        9.21
2.5        9.2
3        9.01
3.5        8.74
4        8.22
4.5        7.46
5        6.92
5.5        6.12
6        6.1
6.5        5.68
7        6.01
7.5        7.88
.....
116        12.5
116.5        12.03
117        11.52
117.5        11.29
118        11.12
118.5        10.98
119        10.9
119.5        10.92
120        10.87
241*2数组!
另外,我的模型网格很细,60mm,总共100w个单元,所以不开启并行运算感觉很慢。
谢谢哪路有限元子程序分析大神!!!





分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1

帖子

0

主题

0

精华

新人

F 币
17 元
贡献
2 点
沙发
发表于 2023-7-11 10:47:38 | 只看该作者
遇到用样的问题了,楼主解决了嘛

7

帖子

3

主题

0

精华

入门

F 币
39 元
贡献
17 点
板凳
 楼主| 发表于 2023-7-12 23:38:37 | 只看该作者
dengdengdeng 发表于 2023-7-11 10:47
遇到用样的问题了,楼主解决了嘛

没解决呢,感觉是并行跟txt文件读取起冲突了,可能需要对abaqus并行有一定的理解。

1

帖子

0

主题

0

精华

新人

F 币
10 元
贡献
2 点
地板
发表于 2023-9-27 17:28:55 | 只看该作者
你好请问,ABAQUS并行CPU计算,读取TXT文件,出现这种错误你最后是怎么解决的?

213

帖子

2

主题

0

精华

宗师

F 币
2142 元
贡献
875 点

规矩勋章

5#
发表于 2023-9-27 19:40:11 | 只看该作者
读写操作不能使用并行,会引起竞速(race)。

1

帖子

0

主题

0

精华

新人

F 币
14 元
贡献
2 点
6#
发表于 2023-11-14 18:36:52 | 只看该作者
你的open 编号12在abaqus中能用吗?要不把编号改为102试一试
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-23 17:21

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表