运行umat子程序的步骤
碰特向高手们请教……运行umat子程序的步骤是什么?我在网上搜了搜,说什么的都有,都试了试,还是运行不成功,还望哪位高人能够详细地说明一下,这也许对你是举手之劳,却可以让我少走很多弯路。
这个是我直接从aba document里面复制出来的一个例子,可是也运行不了
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),
1 DDSDDE(NTENS,NTENS),
2 DDSDDT(NTENS),DRPLDE(NTENS),
3 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
4 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)
DIMENSION DSTRES(6),D(3,3)
C
CEVALUATE NEW STRESS TENSOR
C
EV = 0.
DEV = 0.
DO K1=1,NDI
EV = EV + STRAN(K1)
DEV = DEV + DSTRAN(K1)
END DO
C
TERM1 = .5*DTIME + PROPS(5)
TERM1I = 1./TERM1
TERM2 = (.5*DTIME*PROPS(1)+PROPS(3))*TERM1I*DEV
TERM3 = (DTIME*PROPS(2)+2.*PROPS(4))*TERM1I
C
DO K1=1,NDI
DSTRES(K1) = TERM2+TERM3*DSTRAN(K1)
1 +DTIME*TERM1I*(PROPS(1)*EV
2 +2.*PROPS(2)*STRAN(K1)-STRESS(K1))
STRESS(K1) = STRESS(K1) + DSTRES(K1)
END DO
C
TERM2 = (.5*DTIME*PROPS(2) + PROPS(4))*TERM1I
I1 = NDI
DO K1=1,NSHR
I1 = I1+1
DSTRES(I1) = TERM2*DSTRAN(I1)+
1 DTIME*TERM1I*(PROPS(2)*STRAN(I1)-STRESS(I1))
STRESS(I1) = STRESS(I1)+DSTRES(I1)
END DO
C
CCREATE NEW JACOBIAN
C
TERM2 = (DTIME*(.5*PROPS(1)+PROPS(2))+PROPS(3)+
12.*PROPS(4))*TERM1I
TERM3 = (.5*DTIME*PROPS(1)+PROPS(3))*TERM1I
DO K1=1,NTENS
DO K2=1,NTENS
DDSDDE(K2,K1) = 0.
END DO
END DO
C
DO K1=1,NDI
DDSDDE(K1,K1) = TERM2
END DO
C
DO K1=2,NDI
N2 = K1–1
DO K2=1,N2
DDSDDE(K2,K1) = TERM3
DDSDDE(K1,K2) = TERM3
END DO
END DO
TERM2 = (.5*DTIME*PROPS(2)+PROPS(4))*TERM1I
I1 = NDI
DO K1=1,NSHR
I1 = I1+1
DDSDDE(I1,I1) = TERM2
END DO
C
CTOTAL CHANGE IN SPECIFIC ENERGY
C
TDE = 0.
DO K1=1,NTENS
TDE = TDE + (STRESS(K1)-.5*DSTRES(K1))*DSTRAN(K1)
END DO
C
CCHANGE IN SPECIFIC ELASTIC STRAIN ENERGY
C
TERM1 = PROPS(1) + 2.*PROPS(2)
DOK1=1,NDI
D(K1,K1) = TERM1
END DO
DO K1=2,NDI
N2 = K1-1
DO K2=1,N2
D(K1,K2) = PROPS(1)
D(K2,K1) = PROPS(1)
END DO
END DO
DEE = 0.
DO K1=1,NDI
TERM1 = 0.
TERM2 = 0.
DO K2=1,NDI
TERM1 = TERM1 + D(K1,K2)*STRAN(K2)
TERM2 = TERM2 + D(K1,K2)*DSTRAN(K2)
END DO
DEE = DEE + (TERM1+.5*TERM2)*DSTRAN(K1)
END DO
I1 = NDI
DO K1=1,NSHR
I1 = I1+1
DEE = DEE + PROPS(2)*(STRAN(I1)+.5*DSTRAN(I1))*DSTRAN(I1)
END DO
SSE = SSE + DEE
SCD = SCD + TDE – DEE
RETURN
END
Abaqus JOB Job-1
Abaqus 6.9-1
Begin Compiling Abaqus/Standard User Subroutines
03/02/10 16:16:43
ifort: Command line warning: ignoring unknown option '/heap-arrays:1'
Source1.for(65) : Error: Unrecognized token 'K1?' skipped
N2 = K1–1
--------------^
Source1.for(114) : Error: Unrecognized token 'TDE?' skipped
SCD = SCD + TDE – DEE
------------------^
compilation aborted for Source1.for (code 1)
Abaqus Error: Problem during compilation - E:\abaqus\Source1.for
Abaqus/Analysis exited with errors
把几处所谓的错误全部删除后,就出现了如下的结果,不知道是系统环境变量没有设置正确还是软件的问题。
我是xpsp3系统,abaqus6.9.1,vs2005,if9.1,应该是可以的吧……
Abaqus JOB Job-1
Abaqus 6.9-1
Begin Compiling Abaqus/Standard User Subroutines
03/02/10 16:18:39
ifort: Command line warning: ignoring unknown option '/heap-arrays:1'
End Compiling Abaqus/Standard User Subroutines
03/02/10 16:18:39
Begin Linking Abaqus/Standard User Subroutines
03/02/10 16:18:39
'LINK' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Abaqus Error: Problem during linking - Abaqus/Standard User Subroutines.
This error may be due to a mismatch in the Abaqus user subroutine arguments.
These arguments sometimes change from release to release, so user subroutines
used with a previous release of Abaqus may need to be adjusted.
Abaqus/Analysis exited with errors 论坛上有很多关于子程序运行的帖子,楼主先参照一下
貌似是你的子程序变量声明与ABAQUS版本不匹配,不是你软件的问题 楼主在帮助里面找一下,看看你的版本的变量声明是怎么规定的,改一下就行了 感谢楼上的给予解答,问题已经解决。谢谢 请问是如何解决的?我碰到这样的问题,是什么原因引起的呢?楼主是怎么解决的呢? 4# warmwormdk 你好,我也想知道,我现在用abaqus 6.9.1 想用你贴的这个程序,去调试一下,不知道如何下手。刚接触不久。 解决了,说下方法嘛!大家都看看。 呵呵,解决的太早,都忘记了……
好像是你要先把fortran和abaqus建立一个连接,然后你再试试
具体操作我就引用 pearqiqi 的帖子,http://forum.simwe.com/viewthread.php?tid=900894&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D466
希望对你有帮助,有问题再联系,这上面回复没有提示啊,所以不知道这么多人问,不好意思啊 右键点击Abaqus CAE和abaqus command快捷方式,选择“属性”,在“目标”中的内容前面加上"X:\yourdir\Intel\Compiler\Fortran\$version$\IA32\Bin\ifortvars.bat" &&就可以了 右键点击Abaqus CAE和abaqus command快捷方式,选择“属性”,在“目标”中的内容前面加上"X:\yourdir\Intel\Compiler\Fortran\$version$\IA32\Bin\ifortvars.bat" &&就可以了
高见!! 确实不错,很管用 受教了 谢谢楼主
页:
[1]