C SOLUTN SOURCE CHAT 05/01/13 03:21:51 5004 SUBROUTINE SOLUTN(INPLAS,SIG,EPSC,XMAT,DX,X) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION XMAT(*) IF(INPLAS.EQ.20.OR.INPLAS.EQ.61) THEN F1 = XMAT(6)*DEXP(XMAT(7)*SIG) F2 = XMAT(8)*SIG**XMAT(9) FS = F1 + F2 R1 = XMAT(10)*DEXP(XMAT(11)*SIG) R2 = XMAT(12)*SIG**XMAT(13) RS = R1 + R2 CONS = (1.0D0-EPSC/FS) IF(CONS.GT.0.0D0) THEN X =-DLOG(CONS)/RS RETURN ELSE X = 1.0D20 RETURN ENDIF ELSE IF(INPLAS.EQ.22) THEN X = (EPSC/XMAT(6)/SIG**XMAT(8))**(1.0D0/XMAT(7)) RETURN ELSE IF(INPLAS.EQ.23) THEN CON1 = XMAT(7)*SIG/XMAT(8) EPSM = XMAT(6)*(0.5D0*(DEXP(CON1)-DEXP(-CON1)))**XMAT(8) CON2 = XMAT(10)*SIG/XMAT(11) R = XMAT(9)*(0.5D0*(DEXP(CON2)-DEXP(-CON2)))**XMAT(11) EPST = XMAT(12)*EPSM/R S = XMAT(13)/XMAT(9)*R EPSX = 0.0D0 IF(SIG.GT.XMAT(16)) EPSX= XMAT(14)+XMAT(15)*SIG CON1 = EPST+EPSX-EPSC IF(CON1.GT.0.0D0) GO TO 7 X=1.0D20 RETURN ENDIF 7 XO = 0.0D0 NIT=0 2 CONTINUE F1 = CON1-EPST*DEXP(-R*XO)-EPSX*DEXP(-S*XO) F2 = EPST*R*DEXP(-R*XO)+EPSX*S*DEXP(-S*XO) IF(DABS(F2).LT.1.0D-10) GO TO 5 XN = XO - F1/F2 IF(XN.LT.1.0D-10) THEN XO = 0.0 GO TO 5 ENDIF DE = DABS(XN) IF(DE.EQ.0.0D0) DE=1.0 ERR= DABS(XN-XO)/DE IF(ERR.LT.1.0D-4) GO TO 5 NIT= NIT+1 XO = XN IF(NIT.LT.200) GO TO 2 WRITE(*,6) 6 FORMAT(5X,'** NON-CONVERGENCY IN SOLUTION OF CREEP EQUATION**') STOP 5 X=XO RETURN END