warmwormdk 发表于 2010-3-2 22:54:27

运行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

hill03 发表于 2010-3-3 12:10:59

论坛上有很多关于子程序运行的帖子,楼主先参照一下
貌似是你的子程序变量声明与ABAQUS版本不匹配,不是你软件的问题

hill03 发表于 2010-3-3 12:12:17

楼主在帮助里面找一下,看看你的版本的变量声明是怎么规定的,改一下就行了

warmwormdk 发表于 2010-3-3 22:47:13

感谢楼上的给予解答,问题已经解决。谢谢

xxy_1986 发表于 2010-4-22 15:42:17

请问是如何解决的?我碰到这样的问题,是什么原因引起的呢?楼主是怎么解决的呢? 4# warmwormdk

wangzhong45 发表于 2010-4-22 16:59:39

你好,我也想知道,我现在用abaqus 6.9.1 想用你贴的这个程序,去调试一下,不知道如何下手。刚接触不久。

zhangjingfree 发表于 2010-4-22 18:54:18

解决了,说下方法嘛!大家都看看。

warmwormdk 发表于 2010-4-22 23:57:56

呵呵,解决的太早,都忘记了……

好像是你要先把fortran和abaqus建立一个连接,然后你再试试

具体操作我就引用 pearqiqi 的帖子,http://forum.simwe.com/viewthread.php?tid=900894&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D466

希望对你有帮助,有问题再联系,这上面回复没有提示啊,所以不知道这么多人问,不好意思啊

taishanbuzuo 发表于 2010-5-13 00:03:06

右键点击Abaqus CAE和abaqus command快捷方式,选择“属性”,在“目标”中的内容前面加上"X:\yourdir\Intel\Compiler\Fortran\$version$\IA32\Bin\ifortvars.bat" &&就可以了

hcy31311 发表于 2010-7-28 11:53:18

右键点击Abaqus CAE和abaqus command快捷方式,选择“属性”,在“目标”中的内容前面加上"X:\yourdir\Intel\Compiler\Fortran\$version$\IA32\Bin\ifortvars.bat" &&就可以了

高见!!

mathguan 发表于 2010-7-28 23:44:17

确实不错,很管用

yanshenggong 发表于 2021-7-18 22:07:38

受教了 谢谢楼主
页: [1]
查看完整版本: 运行umat子程序的步骤