Fortran Coder

标题: abaqus子程序txt文件读写,并行计算报错 [打印本页]

作者: arrowzero    时间: 2023-7-7 17:49
标题: abaqus子程序txt文件读写,并行计算报错
以下是我的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个单元,所以不开启并行运算感觉很慢。
谢谢哪路有限元子程序分析大神!!!






作者: dengdengdeng    时间: 2023-7-11 10:47
遇到用样的问题了,楼主解决了嘛
作者: arrowzero    时间: 2023-7-12 23:38
dengdengdeng 发表于 2023-7-11 10:47
遇到用样的问题了,楼主解决了嘛

没解决呢,感觉是并行跟txt文件读取起冲突了,可能需要对abaqus并行有一定的理解。
作者: hhu_wx    时间: 2023-9-27 17:28
你好请问,ABAQUS并行CPU计算,读取TXT文件,出现这种错误你最后是怎么解决的?
作者: 风平老涡    时间: 2023-9-27 19:40
读写操作不能使用并行,会引起竞速(race)。
作者: tanquery    时间: 2023-11-14 18:36
你的open 编号12在abaqus中能用吗?要不把编号改为102试一试




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2