邓肯张模型FORTRAN子程序源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
邓肯张模型FORTRAN子程序源代码
SUBROUTINE UMA T(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,
2 TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,MATERL,NDI,NSHR,NTENS,
3 NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,CELENT,
4 DFGRD0,DFGRD1,NOEL,NPT,KSLAY,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 MATERL
DIMENSION STRESS(NTENS),STATEV(NSTA TV),
1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
3 PROPS(NPROPS),COORDS(3),DROT(3,3),
4 DFGRD0(3,3),DFGRD1(3,3)
C
DIMENSION PS(3),DSTRESS(NTENS),TDSTRESS(NTENS),TSTRESS(NTENS) PARAMETER (ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,SIX=6.0D0)
K=PROPS(1)
N=PROPS(2)
RF=PROPS(3)
C=PROPS(4)
FAI=PROPS(5)/180.0*3.1415926
G=PROPS(6)
D=PROPS(7)
F=PROPS(8)
KUR=PROPS(9)
PA=PROPS(10)
DFAI=PROPS(11)/180.0*3.1415926
S1S3O=STATEV(1)
S3O=STATEV(2)
SSS=STATEV(3)
CALL GETPS(STRESS,PS,NTENS)
FAI=FAI-DFAI*LOG10(S3O/PA)
CALL GETEMOD(PS,K,N,RF,C,FAI,ENU,PA,KUR,EMOD,S,S3O,G,D,F
1 ,SSS,S1S3O)
EBULK3=EMOD/(ONE-TWO*ENU)
EG2=EMOD/(ONE+ENU)
EG=EG2/TWO
EG3=THREE*EG
ELAM=(EBULK3-EG2)/THREE
CALL GETDDSDDE(DDSDDE,NTENS,NDI,ELAM,EG2,EG)
TDSTRESS=0.0
CALL GETSTRESS(DDSDDE,TDSTRESS,DSTRAN,NTENS)
DO 701 I1=1,NTENS
TSTRESS(I1)=STRESS(I1)+TDSTRESS(I1)*0.5
701 CONTINUE
CALL GETPS(TSTRESS,PS,NTENS)
CALL GETEMOD(PS,K,N,RF,C,FAI,ENU,PA,KUR,EMOD,S,S3O,G,D,F,
1 SSS,S1S3O)
EBULK3=EMOD/(ONE-TWO*ENU)
EG2=EMOD/(ONE+ENU)
EG=EG2/TWO
EG3=THREE*EG
ELAM=(EBULK3-EG2)/THREE
CALL GETDDSDDE(DDSDDE,NTENS,NDI,ELAM,EG2,EG)
DSTRESS=0.0
CALL GETSTRESS(DDSDDE,DSTRESS,DSTRAN,NTENS)
DO 702 I1=1,NTENS
STRESS(I1)=STRESS(I1)+DSTRESS(I1)
702 CONTINUE
CALL GETPS(STRESS,PS,NTENS)
CALL GETEMOD(PS,K,N,RF,C,FAI,ENU,PA,KUR,EMOD,S,S3O,G,D,F,
1 SSS,S1S3O)
EBULK3=EMOD/(ONE-TWO*ENU)
EG2=EMOD/(ONE+ENU)
EG=EG2/TWO
EG3=THREE*EG
ELAM=(EBULK3-EG2)/THREE
CALL GETDDSDDE(DDSDDE,NTENS,NDI,ELAM,EG2,EG)
IF(PS(3).GT.S3O)S3O=PS(3)
IF((PS(1)-PS(3)).GT.S1S3O)S1S3O=PS(1)-PS(3)
IF(S.GT.SSS)SSS=S
STA TEV(1)=S1S3O
STA TEV(2)=S3O
STA TEV(3)=SSS
END
SUBROUTINE GETPS(STRESS,PS,NTENS)
INCLUDE 'ABA_PARAM.INC'
DIMENSION PS(3),STRESS(NTENS)
CALL SPRINC(STRESS,PS,1,3,3)
DO 310 I=1,2
DO 320 J=I+1,3