邓肯张模型FORTRAN子程序源代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档