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 DOUBLE PRECISION E ANOU C BETA T0 C1 TDSTRAN RO DIMENSION STRESS(NTENS),STATEV(NSTATV), 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),DFGRD0(3,3),DFGRD1(3,3), 4 TDSTRAN(1,NTENS),C1(6,1) C OPEN(1,FILE='E:\HISTORY.TXT') E=PROPS(1) ANOU=PROPS(2) RO=PROPS(3) C=PROPS(4) BETA=PROPS(5) T0=PROPS(6) DO I=1,6 DO J=1,6 DDSDDE(I,J)=0. END DO END DO DDSDDE(1,1)=E DDSDDE(2,2)=E DDSDDE(3,3)=E DDSDDE(4,4)=E*ANOU/(1.+2.*ANOU) DDSDDE(5,5)=E*ANOU/(1.+2.*ANOU) DDSDDE(6,6)=E*ANOU/(1.+2.*ANOU) DDSDDE(1,2)=E*ANOU DDSDDE(2,1)=E*ANOU DDSDDE(1,3)=E*ANOU DDSDDE(3,1)=E*ANOU DDSDDE(2,3)=E*ANOU DDSDDE(3,2)=E*ANOU CALL PRODUCT(DDSDDE,6,6,DSTRAN,1,C1) DO I=1,3 STRESS(I)=C1(I,1)-BETA*DTEMP END DO DO I=4,6 STRESS(I)=C1(I,1) END DO DO I=1,6 TDSTRAN(1,I)=0.5*DSTRAN(I) END DO CALL PRODUCT(TDSTRAN,1,6,C1,1,SSE) SPD=0. SCD=0. RPL=0 DO I=1,3 RPL=RPL+(TEMP+273.D0)*BETA*DSTRAN(I) END DO DO I=1,3 DDSDDT(I)=-BETA END DO DO I=4,6 DDSDDT(I)=0. END DO DO I=1,3 DRPLDE(I)=(TEMP+273.D0)*BETA END DO DO I=4,6 DRPLDE(I)=0. END DO DRPLDT=BETA*DSTRAN(I) C WRITE(1,*) 'RPL',RPL C WRITE(1,*) 'DRPLDE',DRPLDE RETURN END SUBROUTINE PRODUCT(A1,NA,MA,B1,NB,C1) DOUBLE PRECISION A1,B1,C1 INTEGER NA MA NB DIMENSION A1(NA,MA),B1(MA,NB),C1(NA,NB) C1=0.D0 DO I=1,NA DO J=1,NB DO K=1,MA C1(I,J)=C1(I,J)+A1(I,K)*B1(K,J) END DO END DO END DO RETURN END