24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 4939  |  回复: 1

zc_1981

铜虫 (小有名气)

[交流] abaqus中场变量子程序中的单、双精度计算问题已有1人参与

SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
     1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
     2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,
     3 LACCFLA)
C            
      INCLUDE 'ABA_PARAM.INC'
      DOUBLE PRECISION a,b,c,d,e,f
C
      CHARACTER*80 CMNAME,ORNAME
      CHARACTER*3  FLGRAY(15)
      DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
     1 T(3,3),TIME(2)
      DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),
     1 COORD(*)
C
C Absolute value of current strain:

            CALL GETVRM('POR',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
     1 MATLAYO,LACCFLA)
     
            P1=ARRAY(1)
      
            CALL GETVRM('TEMP',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
     1 MATLAYO,LACCFLA)

            T1=ARRAY(1)
C field variable
            FIELD(1)=P1
C state variable

C      IF(P1.GE.7.5*(10**6).AND.T1.GE.308)THEN DOUBLE PRECISION c,e,f ,DOUBLE PRECISION a,b,c,d,e,f ,END
            
      
           IF(T1.GE.284.0D0.AND.T1.LE.292.0D0) THEN
              a=5.0D-4*(T1-273.15D0)*(T1-273.15D0)
              b=10.0D0**(3.42D-2*(T1-273.15D0)+a+6.4804D0)
              c=DEXP(-9400.0D0/T1)
              d=(b-8.0D6)/1.0D6
              e=(0.585D0*(10.0**1.0D13))*c*d
              f=0.5D0*(1.0D0-e)*0.4D0
              STATEV(1)=(0.6*46*1.0D6+9313.264*1.0D6*f)/1.0D6
           END IF
       END
     
C If error, write comment to .DAT file:
C       IF(JRCD.NE.0)THEN
C        WRITE(6,*) 'REQUEST ERROR IN USDFLD FOR ELEMENT NUMBER ',
C      1     NOEL,'INTEGRATION POINT NUMBER ',NPT
C       ENDIF
C
        RETURN
        END
这是本人编的一个子程序,在默认的单精度条件下去计算,可以顺利过去,可是由于有的数值比较小,超过了单精度的问题,所以都改成了双精度去计算,同样的程序,为什么改成双精度去计算就不好使了呢?出现下面这样的错误提示“A return statement is invalid in the main programm”.是不是场变量的子程序里,不能用双精度来计算呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chen201023

木虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
并没有看到题主在哪里定义了单双精度,建议在最开始把中间变量a, b, c, ...f ,这些也定义了数据类型,然后再试试看
积积极求索,充实自己。
2楼2020-05-15 14:35:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zc_1981 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见