以下是我的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个单元,所以不开启并行运算感觉很慢。
谢谢哪路有限元子程序分析大神!!!
|