1 : C INCRA4 SOURCE CHAT 05/01/13 00:34:59 5004 2 : C INCRA4 SOURCE AC2 96/01/19 21:29:40 1995 3 : SUBROUTINE INCRA4(SIG,VAR,EPSVPT,VARPT,XMAT,ALFA,NSTRS0, 4 : & NVARI,NCOMAT) 5 : IMPLICIT INTEGER(I-N) 6 : IMPLICIT REAL*8(A-H,O-Z) 7 : DIMENSION SIG(*),VAR(*),EPSVPT(*),VARPT(*),XMAT(*) 8 : DIMENSION SM(4),SB(4),XXM1(4),XXB1(4),XXM2(4),XXB2(4) 9 : DIMENSION GAMM(4),GABB(4),EPMM(4),EPBB(4),XXM(4),XXB(4) 10 : DIMENSION ANSM(4),ANSB(4),ANM(4),ANB(4) 11 : DIMENSION EPS0(8) 12 : PARAMETER (AMAX = 1.0E20) 13 : DETIER=2.0D0/3.0D0 14 : ROOT=SQRT(1.5D0) 15 : C-------------------------------------------------------------------| 16 : C STEP-1 SEPARATING MEMBRANE & BENDING PARTS | 17 : C-------------------------------------------------------------------I 18 : NSTRS = NSTRS0+2 19 : NS = NSTRS/2 20 : SM(1)=SIG(1) 21 : SM(2)=SIG(2) 22 : SM(3)=0.0D0 23 : IF (NS.EQ.4) SM(4)=SIG(3) 24 : SB(1)=SIG(NS) 25 : SB(2)=SIG(NS+1) 26 : SB(3)=0.0D0 27 : IF (NS.EQ.4) SB(4)=SIG(NS+2) 28 : DO 20 I=1,NS 29 : XXM1(I) = DETIER * XMAT(11) * VAR( I) 30 : XXM2(I) = DETIER * XMAT(14) * VAR(2*NS+I) 31 : XXB1(I) = DETIER * XMAT(11) * VAR( NS+I) 32 : XXB2(I) = DETIER * XMAT(14) * VAR(3*NS+I) 33 : GAMM(I) = VAR(4*NS+I) 34 : GABB(I) = VAR(5*NS+I) 35 : EPMM(I) = VAR(6*NS+I) 36 : EPBB(I) = VAR(7*NS+I) 37 : 20 CONTINUE 38 : C-------------------------------------------------------------------| 39 : C STEP-2: EVALUATION OF J2 SIGMA - X | 40 : C-------------------------------------------------------------------I 41 : XXM(1)= (2.D0*SM(1) -SM(2))/3.D0 -XXM1(1) -XXM2(1) 42 : XXM(2)= (2.D0*SM(2) -SM(1))/3.D0 -XXM1(2) -XXM2(2) 43 : XXM(3)= -1.D0*(SM(1)+SM(2))/3.D0 -XXM1(3) -XXM2(3) 44 : XXM(4)=0.0D0 45 : IF(NS.EQ.4) XXM(4)= SM(4) -XXM1(4) -XXM2(4) 46 : XXB(1)= (2.D0*SB(1) -SB(2))/3.D0 -XXB1(1) -XXB2(1) 47 : XXB(2)= (2.D0*SB(2) -SB(1))/3.D0 -XXB1(2) -XXB2(2) 48 : XXB(3)= -1.D0*(SB(1)+SB(2))/3.D0 -XXB1(3) -XXB2(3) 49 : XXB(4)=0.0D0 50 : IF(NS.EQ.4) XXB(4)= SB(4) -XXB1(4) -XXB2(4) 51 : T1 = PROCON(XXM,XXM,NS) 52 : AJM2 = 3.0D0*T1/2.D0 53 : T1 = PROCON(XXB,XXB,NS) 54 : AJB2 = 3.0D0*T1/2.D0 55 : AJ2 = SQRT( AJM2 + ALFA*ALFA*AJB2 ) 56 : C--------------------------------------------------------------------| 57 : C STEP-3: CALCUL OF SIGV/K | 58 : C -------------------------------------------------------------------I 59 : RR = VAR (4*NSTRS+2) 60 : RS = XMAT(10)*RR 61 : SK = (AJ2 - RS - XMAT(7))/(XMAT(8) + XMAT(9)*RR ) 62 : C--------------------------------------------------------------------| 63 : C STEP-4: CALCULATION OF EFFECTIVE INELASTIC STRAIN INCREMENT (P) | 64 : C -------------------------------------------------------------------I 65 : IF (SK.GT.0.0D0) THEN 66 : PPT1= XPUISS(SK,XMAT(6) ,AMAX) 67 : PPT2= XPUISS(SK,XMAT(6)+1,AMAX) 68 : ELSE 69 : PPT1= 0.0D0 70 : PPT2= 0.0D0 71 : ENDIF 72 : T1 = XMAT(5)*PPT2 73 : PPT2=1.0D20 74 : IF(DABS(T1).LT.40.0D0) PPT2= DEXP(T1) 75 : PPT = PPT1 * PPT2 76 : VARPT(4*NSTRS+1) = PPT 77 : C---------------------------------------------------------------------| 78 : C******* CALCULATION OF INELASTIC STRAIN INCREMENTS (EPSV0) | 79 : C---------------------------------------------------------------------I 80 : IF(AJ2.EQ.0.0D0) AJ2=1.0D-20 81 : T1 = 1.5D0*PPT/AJ2 82 : EPS0(1) = T1*XXM(1) 83 : EPS0(2) = T1*XXM(2) 84 : EPS0(3) = T1*XXM(3) 85 : IF(NS.EQ.4) EPS0(4)= T1*XXM(4) 86 : EPS0(NS+1) = T1*XXB(1) *ALFA *ALFA 87 : EPS0(NS+2) = T1*XXB(2) *ALFA *ALFA 88 : EPS0(NS+3) = T1*XXB(3) *ALFA *ALFA 89 : IF(NS.EQ.4) EPS0(NS+4)= T1*XXB(4) *ALFA*ALFA 90 : DO 30 I=1,NSTRS 91 : 30 VARPT(3*NSTRS+I)=EPS0(I) 92 : C 93 : C----------------------------------------------------------------| 94 : C ******* CALCULATION OF PI(P) | 95 : C----------------------------------------------------------------I 96 : P = VAR(4*NSTRS+1) 97 : T1 = XMAT(16)*P 98 : T2 = DEXP(-T1) 99 : PIP= XMAT(13)+(1.0D0-XMAT(13)) * T2 100 : C----------------------------------------------------------------| 101 : C******* CALCULATION OF XII | 102 : C----------------------------------------------------------------I 103 : T1=PROCON(XXM1,XXM1,NS) 104 : T1=3.D0*T1/2.D0 105 : T2=PROCON(XXB1,XXB1,NS) 106 : T2=3.D0*T2/2.D0 107 : C 108 : X1II = SQRT(T1+ALFA*ALFA*T2) 109 : X1IISM = 0.0D0 110 : IF(XMAT(17).NE.0.D0) X1IISM = X1II/XMAT(17) 111 : C 112 : T1=PROCON(XXM2,XXM2,NS) 113 : T1=3.D0*T1/2.D0 114 : T2=PROCON(XXB2,XXB2,NS) 115 : T2=3.D0*T2/2.D0 116 : C 117 : X2II = SQRT(T1+ALFA*ALFA*T2) 118 : X2IISM = 0.0D0 119 : IF(XMAT(18).NE.0.D0) X2IISM = X2II/XMAT(18) 120 : C 121 : COX1 = 0.D0 122 : COX2 = 0.D0 123 : IF ((X1II.NE.0.D0).AND.(X1IISM.GT.0.D0)) 124 : . COX1 = XPUISS(X1IISM,XMAT(19),AMAX) / X1II 125 : IF ((X2II.NE.0.D0).AND.(X2IISM.GT.0.D0)) 126 : . COX2 = XPUISS(X2IISM,XMAT(20),AMAX) / X2II 127 : C ----------------------------------------------------------------| 128 : C******* CALCULATION OF DX1 AND DX2 | 129 : C-----------------------------------------------------------------I 130 : DO 74 I=1,NSTRS 131 : T1 = EPS0(I) 132 : T2 = XMAT(12) * PIP * VAR(I) * PPT 133 : T3 = XMAT(11) * COX1 * VAR(I) 134 : VARPT(I)= T1 - T2 -T3 135 : T2 = XMAT(15) * PIP * VAR(NSTRS+I) * PPT 136 : T3 = XMAT(14) * COX2 * VAR(NSTRS+I) 137 : VARPT(NSTRS+I)= T1 - T2 - T3 138 : 74 CONTINUE 139 : C-----------------------------------------------------------------| 140 : C******* CALCULATION OF DR | 141 : C-----------------------------------------------------------------I 142 : T1 = 1.0D0-(1.0D0-VAR(4*NSTRS+3)/XMAT(25))**2 143 : QR = VAR(4*NSTRS+3)-XMAT(26)*T1 144 : CO1= QR-VAR(4*NSTRS+2) 145 : CO0= ABS(CO1) 146 : CO = XPUISS(CO0,XMAT(22)-1.0D0,AMAX) 147 : T1= XMAT(16)*(VAR(4*NSTRS+3)-VAR(4*NSTRS+2))*PPT 148 : T2= XMAT(21)*CO*CO1 149 : DR= T1 + T2 150 : VARPT(4*NSTRS+2)=DR 151 : C----------------------------------------------------------------| 152 : C******* CALCULATION OF PROD (N X N*) | 153 : C----------------------------------------------------------------I 154 : TM1 = EPMM(1)-GAMM(1) 155 : TM2 = EPMM(2)-GAMM(2) 156 : TM3 = EPMM(3)-GAMM(3) 157 : TM4 = 0.0D0 158 : IF(NS.EQ.4) TM4 = EPMM(4)-GAMM(4) 159 : AIM2 = TM1*TM1+TM2*TM2+TM3*TM3+2.D0*TM4*TM4 160 : AIM2 = AIM2*3.D0/2.D0 161 : TB1 = EPBB(1)-GABB(1) 162 : TB2 = EPBB(2)-GABB(2) 163 : TB3 = EPBB(3)-GABB(3) 164 : TB4 = 0.0D0 165 : IF(NS.EQ.4) TB4 = EPBB(4)-GABB(4) 166 : AIB2 = TB1*TB1+TB2*TB2+TB3*TB3+2.D0*TB4*TB4 167 : AIB2 = AIB2*3.D0/2.D0 168 : AI2 = SQRT(AIM2+(AIB2/ALFA/ALFA)) 169 : IF (AI2.LT.1.D-10) THEN 170 : IF (AI2.EQ.0.D0) AI2=1.D-10 171 : AI20=AI2*1.D20 172 : TM1=TM1*1.D20 173 : TM2=TM2*1.D20 174 : TM3=TM3*1.D20 175 : TM4=TM4*1.D20 176 : TB1=TB1*1.D20 177 : TB2=TB2*1.D20 178 : TB3=TB3*1.D20 179 : TB4=TB4*1.D20 180 : ELSE 181 : AI20=AI2 182 : ENDIF 183 : ANSM(1) = ROOT*TM1/AI20 184 : ANSM(2) = ROOT*TM2/AI20 185 : ANSM(3) = ROOT*TM3/AI20 186 : ANSM(4) = 0.0D0 187 : IF(NS.EQ.4) ANSM(4) = ROOT*TM4/AI20 188 : ANSB(1) = ROOT*TB1/AI20 189 : ANSB(2) = ROOT*TB2/AI20 190 : ANSB(3) = ROOT*TB3/AI20 191 : ANSB(4) = 0.0D0 192 : IF(NS.EQ.4) ANSB(4) = ROOT*TB4/AI20 193 : ANM (1) = ROOT*XXM(1)/AJ2 194 : ANM (2) = ROOT*XXM(2)/AJ2 195 : ANM (3) = ROOT*XXM(3)/AJ2 196 : ANM (4) = 0.0D0 197 : IF(NS.EQ.4) ANM (4) = ROOT*XXM(4)/AJ2 198 : ANB (1) = ROOT*XXB(1)/AJ2 199 : ANB (2) = ROOT*XXB(2)/AJ2 200 : ANB (3) = ROOT*XXB(3)/AJ2 201 : ANB (4) = 0.0D0 202 : IF(NS.EQ.4) ANB (4) = ROOT*XXB(4)/AJ2 203 : 76 CONTINUE 204 : FF = DETIER*AI2-VAR(4*NSTRS+4) 205 : HF=0.0D0 206 : IF(FF.GT.0.0D0) HF=1.0D0 207 : ANAN1=PROCON(ANM,ANSM,NS) 208 : * ANAN1 = ANM(1)*ANSM(1)+ANM(2)*ANSM(2) 209 : * ANAN1 = ANAN1+2.D0*ANM(3)*ANSM(3) 210 : ANANSM=0.0D0 211 : IF(ANAN1.GT.0.0D0) ANANSM=ANAN1 212 : ANAN1=PROCON(ANB,ANSB,NS) 213 : * ANAN1 = ANB(1)*ANSB(1)+ANB(2)*ANSB(2) 214 : * ANAN1 = ANAN1+2.D0*ANB(3)*ANSB(3) 215 : ANANSB=0.0D0 216 : IF(ANAN1.GT.0.0D0) ANANSB=ANAN1 217 : C----------------------------------------------------------------| 218 : C******* CALCULATION OF DQ | 219 : C----------------------------------------------------------------I 220 : ANANS=ANANSM+ANANSB/ALFA/ALFA 221 : DQ = XMAT(23)*HF*ANANS*PPT 222 : VARPT(4*NSTRS+4)=DQ 223 : C----------------------------------------------------------------| 224 : C******* CALCULATION OF DGETA | 225 : C----------------------------------------------------------------I 226 : T1 = ROOT*(1.0D0-XMAT(23))*HF*ANANS*PPT 227 : DO 78 I=1,NS 228 : VARPT(2*NSTRS+I) = T1*ANSM(I) 229 : VARPT(2*NSTRS+NS+I)= T1*ANSB(I) 230 : 78 CONTINUE 231 : C----------------------------------------------------------------| 232 : C******* CALCULATION OF DQQ | 233 : C----------------------------------------------------------------I 234 : VARPT(4*NSTRS+3)=2.0D0*XMAT(24)*(XMAT(25)-VAR(4*NSTRS+3))*DQ 235 : C 236 : EPSVPT(1)=EPS0(1) 237 : EPSVPT(2)=EPS0(2) 238 : IF (NS.EQ.4) EPSVPT(3)=EPS0(4) 239 : EPSVPT(NS)=EPS0(NS+1) 240 : EPSVPT(NS+1)=EPS0(NS+2) 241 : IF (NS.EQ.4) EPSVPT(6)=EPS0(8) 242 : C 243 : RETURN 244 : END 245 : 246 : 247 : 248 : 249 : 250 :
© Cast3M 2003 - All rights reserved.
Disclaimer