SUBROUTINE UEXTERNALDB(LOP,LRESTART,TIME,DTIME,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TIME(2)
C
integer, parameter :: n = 24
real :: SPZFS(n),QW(n),FS(n),TDL(n),BDL(n),LDL(n)
common SPZFS,QW,FS,TDL,BDL,LDL
integer :: i !计数器
if( LOP .eq. 0) then
C 读数据
open(107,file='D:\Desktop\read\weatherdata.csv',status='old')
do i=1,n
read(107,*) SPZFS(n),QW(n),FS(n),TDL(n),BDL(n),LDL(n)
end do
close(107)
end if
RETURN
END
SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,
1 JLTYP,TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION FLUX(2), TIME(2), COORDS(3)
CHARACTER*80 SNAME
integer, parameter :: n = 24
real :: SPZFS(n),QW(n),FS(n),TDL(n),BDL(n),LDL(n)
common SPZFS,QW,FS,TDL,BDL,LDL
IF (SNAME .EQ. 'ASSEMBLY_SURF-4') THEN
flux(1)=0.5*SPZFS(KINC+1)
END IF
RETURN
END
数据.png (14.88 KB, 下载次数: 427)
Transpose 发表于 2020-5-11 07:27
common太不灵活了,用module,在需要调用的子程序里use 就可以共享变量
vvt 发表于 2020-5-11 08:17
详解 http://common.w.fcode.cn/
vvt 发表于 2020-5-11 08:17
详解 http://common.w.fcode.cn/
subroutine test
implicit none
integer, parameter ::n = 24
real SPZFS(n),QW(n),FS(n),TDL(n),BDL(n),LDL(n)
integer ::i
open(107,file='D:\Desktop\read\weatherdata.csv',status='old')
do i=1,n
read(107,*) SPZFS(n),QW(n),FS(n),TDL(n),BDL(n),LDL(n)
end do
close(107)
end subroutine test
program main
implicit none
integer, parameter ::n = 24
real SPZFS(n),QW(n),FS(n),TDL(n),BDL(n),LDL(n)
call test
write(*,*)SPZFS(n)
end
cyzhang 发表于 2020-5-11 10:35
感谢您的回复!
我现在做的是abaqus这个软件的二次开发,只能对这些subroutine中的特定函数进行定义,即 ...
Module var_mod
integer, parameter ::n = 24
real SPZFS(n),QW(n),FS(n),TDL(n),BDL(n),LDL(n)
End Module var_mod
subroutine test
use var_mod
implicit none
integer ::i
open(107,file='D:\Desktop\read\weatherdata.csv',status='old')
do i=1,n
read(107,*) SPZFS(i),QW(i),FS(i),TDL(i),BDL(i),LDL(i)
end do
close(107)
end subroutine test
program main
use var_mod
implicit none
call test
write(*,*)SPZFS(n)
end
necrohan 发表于 2020-5-11 14:04
read(107,*) SPZFS(n),QW(n),FS(n),TDL(n),BDL(n),LDL(n)
把这里的n都改成i。
vvt 发表于 2020-5-11 19:28
1. 没有program也可以使用module,并不影响。
2. module没有限制不能使用read操作。
3. 多个subroutine可 ...
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |