1 : C INCRB2 SOURCE CHAT 05/01/13 00:35:03 5004 2 : C INCRB2 SOURCE AC2 96/01/19 21:29:05 1995 3 : SUBROUTINE INCRB2(SIG,VAR,EPSVPT,VARPT,XMAT,NSTRS0, 4 : & MFR,NVARI,NCOMAT) 5 : IMPLICIT INTEGER(I-N) 6 : IMPLICIT REAL*8(A-H,O-Z) 7 : REAL*8 EAFSKPN1,BP,EMBP,PPRIMDP 8 : REAL*8 AFSKPN1,T1,T2,T3,DP,FSKPN,FSKPN1,J2SMX,RR,FSURK 9 : DIMENSION SIG(*),VAR(*),EPSVPT(*),VARPT(*),XMAT(*) 10 : DIMENSION XXX(6),AN(6),ANS(6),SMOINX(6) 11 : DIMENSION SIG0(6),DEPS0(6),SIGX1(6),SIGX2(6) 12 : PARAMETER (AMAX = 1.0D20 , AMIN = 1.D-10) 13 : DETIER = 2.0D0/3.0D0 14 : ROOT = SQRT(DETIER) 15 : C-------------------------------------------------------------------| 16 : C 17 : C XMAT(1) : YOUN 18 : C XMAT(2) : NU 19 : C XMAT(3) : RHO 20 : C XMAT(4) : ALPH 21 : C XMAT(5) : ALF 22 : C XMAT(6) : N 23 : C XMAT(7) : KK 24 : C XMAT(8) : K0 25 : C XMAT(9) : CL1 26 : C XMAT(10) : DNL1 27 : C XMAT(11) : PHI 28 : C XMAT(12) : CL2 29 : C XMAT(13) : DNL2 30 : C XMAT(14) : B 31 : C XMAT(15) : GDM1 32 : C XMAT(16) : PTM1 33 : C XMAT(17) : RMAX 34 : C XMAT(18) : BR 35 : C 36 : C SIGXi : Xi ( Xi = (2/3) CLi ALPHAi) 37 : C ALPHAi : variable interne du type AiXX.... 38 : C 39 : C-------------------------------------------------------------------| 40 : C******* CALCUL DE X1 ET X2 | 41 : C-------------------------------------------------------------------I 42 : NSTRS = NSTRS0 43 : DO 12 I = 1,NSTRS 44 : SIGX1(I) = DETIER * XMAT(9) * VAR(I) 45 : SIGX2(I) = DETIER * XMAT(12) * VAR(NSTRS+I) 46 : 12 CONTINUE 47 : C-------------------------------------------------------------------| 48 : C******* EVALUATION OF J2 SIGMA - X | 49 : C-------------------------------------------------------------------I 50 : IF (MFR.EQ.5) THEN 51 : NSTRS = 6 52 : SIG0(1) = SIG(1) 53 : SIG0(2) = SIG(2) 54 : SIG0(3) = 0.D0 55 : SIG0(4) = SIG(3) 56 : SIG0(5) = SIG(4) 57 : SIG0(6) = SIG(5) 58 : ELSE 59 : NSTRS = NSTRS0 60 : DO 10 I = 1,NSTRS 61 : SIG0(I) = SIG(I) 62 : 10 CONTINUE 63 : ENDIF 64 : C 65 : TRACE = (SIG0(1)+SIG0(2)+SIG0(3))/3.0D0 66 : DO 70 I = 1,NSTRS 67 : IF (I.LE.3) THEN 68 : SMOINX(I) = SIG0(I) - TRACE - SIGX1(I) - SIGX2(I) 69 : ELSE 70 : SMOINX(I) = SIG0(I) - SIGX1(I) - SIGX2(I) 71 : ENDIF 72 : 70 CONTINUE 73 : J2SMX = PROCON (SMOINX,SMOINX,NSTRS) 74 : J2SMX = SQRT(1.5D0*J2SMX) 75 : C--------------------------------------------------------------------| 76 : C******* CALCUL OF SIGV/K | 77 : C -------------------------------------------------------------------I 78 : RR=XMAT(17)-((XMAT(17)-XMAT(7))*DEXP(-XMAT(18)*VAR(3*NSTRS+1))) 79 : FSURK = (J2SMX-RR) / XMAT(8) 80 : C--------------------------------------------------------------------| 81 : C******* CALCULATION OF EFFECTIVE INELASTIC STRAIN INCREMENT (P) | 82 : C -------------------------------------------------------------------I 83 : IF (FSURK.GT.0.0D0) THEN 84 : FSKPN = XPUISS(FSURK,XMAT(6) ,AMAX) 85 : FSKPN1 = FSURK * FSKPN 86 : ELSE 87 : FSKPN = 0.0D0 88 : FSKPN1 = 0.0D0 89 : ENDIF 90 : C 91 : AFSKPN1 = XMAT(5) * FSKPN1 92 : EAFSKPN1 = 1.0D20 93 : IF(DABS(AFSKPN1).LT.40.0D0) EAFSKPN1 = DEXP(AFSKPN1) 94 : DP = FSKPN * EAFSKPN1 95 : VARPT(3*NSTRS+1) = DP 96 : C---------------------------------------------------------------------| 97 : C******* CALCULATION OF INELASTIC STRAIN INCREMENTS (EPSVPT) | 98 : C---------------------------------------------------------------------I 99 : DO 71 I = 1,NSTRS,1 100 : IF (DP.EQ.0.0) THEN 101 : DEPS0(I) = 0.0D0 102 : VARPT(2*NSTRS+I) = 0.0D0 103 : ELSE 104 : XXX(I) = 1.5D0 * SMOINX(I) / J2SMX 105 : DEPS0(I) = XXX(I) * DP 106 : VARPT(2*NSTRS+I) = DEPS0(I) 107 : ENDIF 108 : 71 CONTINUE 109 : C 110 : P = VAR(3*NSTRS+1) 111 : C----------------------------------------------------------------| 112 : C ******* CALCULATION OF PI(P) | 113 : C----------------------------------------------------------------I 114 : BP = XMAT(14) * P 115 : EMBP = DEXP(-BP) 116 : PPRIMDP = (XMAT(11) + (1.0D0-XMAT(11)) * EMBP) * DP 117 : C----------------------------------------------------------------| 118 : C******* CALCULATION OF XII | 119 : C----------------------------------------------------------------I 120 : X1II = SQRT(1.5D0*PROCON(SIGX1,SIGX1,NSTRS)) 121 : X1IISM = 0.0D0 122 : IF(XMAT(15).NE.0.0D0) X1IISM = X1II/XMAT(15) 123 : C 124 : COX1 = 0.0D0 125 : IF((X1II.GT.0.0D0).AND.(X1IISM.GT.0.0D0)) 126 : . COX1 = (X1IISM**XMAT(16)) / X1II 127 : C ----------------------------------------------------------------| 128 : C******* CALCULATION OF DX1 AND DX2 | 129 : C-----------------------------------------------------------------I 130 : DO 74 I = 1,NSTRS 131 : T1 = DEPS0(I) 132 : T2 = XMAT(10) * PPRIMDP * VAR(I) 133 : T3 = 1.5D0 * COX1 * SIGX1(I) 134 : VARPT(I) = T1 - T2 - T3 135 : T2 = XMAT(13) * PPRIMDP * VAR(NSTRS+I) 136 : VARPT(NSTRS+I) = T1 - T2 137 : 74 CONTINUE 138 : C 139 : IF (MFR.EQ.5) THEN 140 : EPSVPT(1)=DEPS0(1) 141 : EPSVPT(2)=DEPS0(2) 142 : EPSVPT(3)=DEPS0(4) 143 : EPSVPT(4)=DEPS0(5) 144 : EPSVPT(5)=DEPS0(6) 145 : ELSE 146 : DO 11 I = 1,NSTRS 147 : EPSVPT(I) = DEPS0(I) 148 : 11 CONTINUE 149 : ENDIF 150 : c 151 : RETURN 152 : END 153 : 154 : 155 : 156 :
© Cast3M 2003 - All rights reserved.
Disclaimer