1 : C DP SOURCE CHAT 05/01/12 22:54:43 5004 2 : SUBROUTINE DP(SIG,DSIG,YOUN,ANU,RT1,RT2,RDP,ADP,HDP, 3 : 1 XLAM1,XLAM2,XLAM3,IDAM,ANG,IFISSU,EPPLDP,EPPLTR,ALPHA,KERRE) 4 : IMPLICIT INTEGER(I-N) 5 : IMPLICIT REAL*8(A-H,O-Z) 6 : -INC CCOPTIO 7 : DIMENSION SIG(3),DSIG(3),SGG(3),DSGG(3),SFG(3),DSFG(3), 8 : 1 A(3),B(3),IDAM(3),EPC(3),EPDP(3),SSI(3),SI(3),EPC1(3), 9 : 1 EPPLDP(3),EPPLTR(3) 10 : ITER=0 11 : SIREF=1.E-6*YOUN 12 : IF(IFISSU.EQ.1) BETA=ALPHA 13 : IF(IFISSU.EQ.0) BETA=1.D0 14 : DO 10 ITYP=1,3 15 : EPPLTR(ITYP)=0.D0 16 : EPPLDP(ITYP)=0.D0 17 : 10 EPDP(ITYP)=0.D0 18 : ISOR=0 19 : XT=0.D0 20 : IF(IIMPI.EQ.9) WRITE(IOIMP,9999) 21 : 9999 FORMAT(1X,'DP ECOULEMENT SUIVANT DRUCKER',/) 22 : 9998 FORMAT(1X,'DP ',I4,'ITERATIONS INTERNES',/) 23 : C----------------------------------------------- 24 : C ON SEPLACE DANS LE REPERE DE FISSURATION 25 : C----------------------------------------------- 26 : C 26 : CALL CHREP(SIG,SFG,ANG) 26 : CALL CHREP(DSIG,DSFG,ANG) 27 : C 28 : C------------------------------------------------ 29 : C ECOULEMENT SUIVANT LE DRUCKER SEUL 30 : C------------------------------------------------ 31 : C---------------------------------------------- 32 : C DEFINITION D UNE CONTRAINTE DE REFERENCE 33 : C SI RMAX DU DRUCKER INFERIEURE A CETTE VALEUR 34 : C ALORS SIGMA=0 35 : C---------------------------------------------- 36 : C 37 : RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP))) 38 : IF(SIREF.LT.RMAX) GOTO 29 39 : 19 DO 20 ITYP=1,3 40 : 20 SIG(ITYP)=SIG(ITYP)+DSIG(ITYP) 40 : CALL NORME(SIG,DL3) 41 : DL3=DL3/YOUN*10.D0 42 : XLAM3=XLAM3+DL3 43 : RDP=0.D0 44 : HDP=0.D0 45 : ADP=0.D0 45 : CALL CPHOIN(SIG,EPPLDP,YOUN,ANU) 46 : DO 30 ITYP=1,3 47 : IDAM(ITYP)=0 48 : DSIG(ITYP)=0.D0 49 : 30 SIG(ITYP)=0.D0 50 : IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER 51 : RETURN 52 : C 53 : C----------------------------------------------------- 54 : C ESTIMATION DU PAS D'INCREMENT DE CONTRAINTES 55 : C----------------------------------------------------- 56 : C 56 : C 29 CALL GDP(SIG,DSIG,RDP,ADP,GAMDP) 57 : C IF(GAMDP.GT.1.E-8) THEN 58 : C IDAM(3)=0 59 : C RETURN 60 : C 60 : 29 CALL SIJ(SFG,SI,SIETOI) 60 : CALL EPSDP(SI,SIETOI,ADP,EPC) 60 : CALL CPHOMO(EPC,SSI,YOUN,ANU,BETA) 60 : CALL SCAL(SSI,DSFG,VAL) 60 : CALL NORME(DSFG,VA1) 60 : CALL NORME(SSI,VA2) 61 : RMIN=MIN((RDP/1.73),(RDP/(1.D0+2.D0*ADP))) 62 : IF(VA1.EQ.0.D0) THEN 63 : IDAM(3)=0 64 : RETURN 65 : ENDIF 66 : X=VAL/VA1/VA2 67 : IF(X.GE.1.D0) THEN 68 : X=1.D0 69 : GOTO 31 70 : ENDIF 71 : X=RMIN/SQRT(1.0001D0-X*X)/VA1/8.D0 72 : IF(X.GT.1.D0) X=1.D0 73 : C 74 : C---------------------------------------------------------- 75 : C ON ECOULE ET ON REGARDE LA VARIATION DE NORMALE 76 : C---------------------------------------------------------- 77 : C 78 : 31 ITER=ITER+1 79 : IF(ITER.GT.201) GOTO 653 80 : DO 45 ITYP=1,3 81 : DSGG(ITYP)=DSFG(ITYP)*X 82 : A(ITYP)=SFG(ITYP)+DSGG(ITYP) 83 : 45 B(ITYP)=-SSI(ITYP) 83 : CALL SCAL2(EPC,SSI,VAL) 84 : VAL=VAL-HDP 85 : IF(VAL.LT.0.D0) THEN 86 : KERRE=459 87 : RETURN 88 : ENDIF 89 : ITER=ITER+1 90 : 653 IF(ITER.GT.200) THEN 91 : KERRE=460 92 : RETURN 93 : ENDIF 93 : CALL DLAMDP(A,B,DL3,RDP,ADP,HDP,ITEST) 94 : IF(ITEST.EQ.1) THEN 95 : X=X/2.D0 96 : GOTO 31 97 : ENDIF 98 : DO 50 ITYP=1,3 99 : 50 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) 99 : CALL SIJ(SGG,SI,SIETOI) 99 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 99 : CALL SCAL(EPC,EPC1,VAL) 99 : CALL NORME(EPC,VA1) 99 : CALL NORME(EPC1,VA2) 100 : CO=VAL/VA1/VA2 101 : IF(CO.LT.0.99) THEN 102 : X=X/2.D0 103 : GOTO 31 104 : ENDIF 105 : IF(DL3.LT.0.D0) THEN 106 : IDAM(3)=0 107 : DL3=0.D0 108 : ISOR=1 109 : GOTO 525 110 : ENDIF 111 : RD=RDP-DL3*HDP 112 : IF(RD.LT.SIREF) GOTO 19 113 : IF(IFISSU.EQ.1) GOTO 100 113 : CALL CTRSF(SGG,RT1,VAL) 114 : IF(VAL.LE.0.D0) GOTO 500 115 : C 116 : C------------------------------------------------- 117 : C CAS OU LA LIMITE EN TRACTION EST DEPASSEE 118 : C MAIS ON NE CONNAIT PAS LE REPERE PRINCIPAL 119 : C DE FISSURATION 120 : C------------------------------------------------- 121 : IFISSU=1 121 : CALL CANG(SGG,ANG,YOUN) 122 : DO 55 ITYP=1,3 123 : 55 DSGG(ITYP)=SFG(ITYP) 123 : CALL CHREP(DSGG,SFG,ANG) 123 : CALL CHREP(DSIG,DSFG,ANG) 123 : CALL SIJ(SFG,SI,SIETOI) 123 : CALL EPSDP(SI,SIETOI,ADP,EPC) 123 : CALL CPHOMO(EPC,SSI,YOUN,ANU,BETA) 124 : DO 60 ITYP=1,3 125 : DSGG(ITYP)=DSFG(ITYP)*X 126 : A(ITYP)=SFG(ITYP)+DSGG(ITYP) 127 : 60 B(ITYP)=-SSI(ITYP) 127 : CALL DLAMDP(A,B,DL3,RDP,ADP,HDP,ITEST) 128 : DO 65 ITYP=1,3 129 : 65 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) 129 : CALL CTRAF(SGG(1),RT1,VCTR1) 130 : IF(VCTR1.LE.0.D0) GOTO 80 131 : C 132 : C------------------------------------ 133 : C ON ENDOMMAGE LA TRACTION 1 134 : C------------------------------------ 135 : C 136 : ISOR=1 137 : IF(DSFG(1).NE.0.D0) THEN 138 : E=(RT1-SFG(1))/DSFG(1) 139 : F=SSI(1)/DSFG(1) 140 : DO 70 ITYP=1,3 141 : A(ITYP)=SFG(ITYP)+E*DSFG(ITYP) 142 : 70 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) 142 : CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST) 143 : DO 69 ITYP=1,3 144 : SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 145 : 69 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) 145 : CALL SIJ(SGG,SI,SIETOI) 145 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 145 : CALL SCAL(EPC,EPC1,VAL) 145 : CALL NORME(EPC,VA1) 145 : CALL NORME(EPC1,VA2) 146 : CO1=VAL/VA1/VA2 146 : CALL SIJ(DSGG,SI,SIETOI) 146 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 146 : CALL SCAL(EPC,EPC1,VAL) 146 : CALL NORME(EPC,VA1) 146 : CALL NORME(EPC1,VA2) 147 : CO2=VAL/VA1/VA2 148 : XIN1=E+F*DL31 149 : XIN2=E+F*DL32 150 : IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN 151 : X=XIN1 152 : DL3=DL31 153 : GOTO 71 154 : ENDIF 155 : IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN 156 : X=XIN2 157 : DL3=DL32 158 : GOTO 71 159 : ENDIF 160 : IF(IIMPI.EQ.9) WRITE(IOIMP,10101) 161 : 10101 FORMAT(1X,'ERREUR DP TRACTION 1 SF',/) 162 : DL3=DL31 163 : X=XIN1 164 : 71 DO 72 ITYP=1,3 165 : 72 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) 166 : IDAM(1)=1 167 : IDAM(2)=0 168 : IDAM(3)=1 169 : GOTO 80 170 : ENDIF 171 : DL3=(-RT1+SFG(1))/SSI(1) 172 : RD=RDP-DL3*HDP 173 : IF(RD.LT.SIREF) GOTO 19 174 : DO 74 ITYP=1,3 175 : A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 176 : 74 B(ITYP)=DSFG(ITYP) 176 : CALL XDP(A,B,RD,ADP,X,ITEST) 177 : DO 76 ITYP=1,3 178 : 76 SGG(ITYP)=A(ITYP)+X*B(ITYP) 179 : IDAM(1)=1 180 : IDAM(2)=0 181 : IDAM(3)=1 182 : C 183 : C------------------------------------ 184 : C ON ENDOMMAGE LA TRACTION 2 185 : C------------------------------------ 186 : C 186 : 80 CALL CTRAF(SGG(2),RT2,VCTR2) 187 : IF(VCTR2.LE.0.D0) GOTO 91 188 : ISOR=1 189 : IF(DSFG(2).NE.0.D0) THEN 190 : E=(RT2-SFG(2))/DSFG(2) 191 : F=SSI(2)/DSFG(2) 192 : DO 82 ITYP=1,3 193 : A(ITYP)=SFG(ITYP)+E*DSFG(ITYP) 194 : 82 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) 194 : CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST) 195 : DO 81 ITYP=1,3 196 : SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 197 : 81 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) 197 : CALL SIJ(SGG,SI,SIETOI) 197 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 197 : CALL SCAL(EPC,EPC1,VAL) 197 : CALL NORME(EPC,VA1) 197 : CALL NORME(EPC1,VA2) 198 : CO1=VAL/VA1/VA2 198 : CALL SIJ(DSGG,SI,SIETOI) 198 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 198 : CALL SCAL(EPC,EPC1,VAL) 198 : CALL NORME(EPC,VA1) 198 : CALL NORME(EPC1,VA2) 199 : CO2=VAL/VA1/VA2 200 : XIN1=E+F*DL31 201 : XIN2=E+F*DL32 202 : IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN 203 : X=XIN1 204 : DL3=DL31 205 : GOTO 83 206 : ENDIF 207 : IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN 208 : X=XIN2 209 : DL3=DL32 210 : GOTO 83 211 : ENDIF 212 : IF(IIMPI.EQ.9) WRITE(IOIMP,20202) 213 : 20202 FORMAT(1X,'ERREUR DP TRACTION 2 SF',/) 214 : DL3=DL31 215 : X=XIN1 216 : 83 DO 84 ITYP=1,3 217 : 84 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) 218 : IDAM(1)=0 219 : IDAM(2)=1 220 : IDAM(3)=1 221 : GOTO 91 222 : ENDIF 223 : DL3=(-RT2+SFG(2))/SSI(2) 224 : RD=RDP-DL3*HDP 225 : IF(RD.LT.SIREF) GOTO 19 226 : DO 86 ITYP=1,3 227 : A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 228 : 86 B(ITYP)=DSFG(ITYP) 228 : CALL XDP(A,B,RD,ADP,X,ITEST) 229 : DO 88 ITYP=1,3 230 : 88 SGG(ITYP)=A(ITYP)+X*B(ITYP) 231 : IDAM(1)=0 232 : IDAM(2)=1 233 : IDAM(3)=1 234 : 91 RDP=RDP-DL3*HDP 235 : IF(RDP.LT.SIREF) THEN 236 : ANG=0.D0 237 : IFISSU=0 238 : GOTO 19 239 : ENDIF 240 : XT=XT+X 241 : DO 90 ITYP=1,3 242 : SFG(ITYP)=SGG(ITYP) 243 : 90 DSFG(ITYP)=(1.D0-XT)*DSFG(ITYP) 244 : DSGG(1)=0.D0 245 : DSGG(2)=0.D0 246 : DSGG(3)=(1.D0-ALPHA)*DSFG(3) 246 : CALL CPHOIN(DSGG,SGG,YOUN,ANU) 246 : CALL CHREP(SGG,EPPLTR,-ANG) 247 : DO 92 ITYP=1,3 248 : 92 SGG(ITYP)=DL3*EPC(ITYP) 248 : CALL CHREP(SGG,EPPLDP,-ANG) 249 : DO 94 ITYP=1,3 250 : 94 EPPLDP(ITYP)=EPPLDP(ITYP)+EPDP(ITYP) 250 : CALL CHREP(SFG,SIG,-ANG) 251 : DSFG(3)=ALPHA*DSFG(3) 251 : CALL CHREP(DSFG,DSIG,-ANG) 252 : IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER 252 : CALL GDP(SIG,DSIG,RDP,ADP,GAMDP) 253 : IF(GAMDP.GT.1.E-8) IDAM(3)=0 254 : RETURN 255 : C 256 : C------------------------------------------------------------ 257 : C ON REGARDE SI ON N ENDOMMAGE PAS LES AUTRES CRITERES 258 : C AUQUEL CAS IL FAUT CALCULER X POUR ARRIVER AU COUPLAGE 259 : C------------------------------------------------------------ 260 : C------------------------------------ 261 : C ON ENDOMMAGE LA TRACTION 1 262 : C------------------------------------ 263 : C 264 : 100 CONTINUE 264 : CALL CTRAF(SGG(1),RT1,VCTR1) 264 : CALL CCOAF(SGG(1),XLAM1,VCCO1) 265 : IF(VCTR1.GT.0.D0) GOTO 105 266 : IF(VCCO1.GT.0.D0) GOTO 200 266 : CALL CTRAF(SGG(2),RT2,VCTR2) 266 : CALL CCOAF(SGG(2),XLAM2,VCCO2) 267 : IF(VCTR2.GT.0.D0) GOTO 300 268 : IF(VCCO2.GT.0.D0) GOTO 400 269 : GOTO 500 270 : 105 ISOR=1 271 : IF(DSFG(1).NE.0.D0) THEN 272 : E=(RT1-SFG(1))/DSFG(1) 273 : F=SSI(1)/DSFG(1) 274 : DO 110 ITYP=1,3 275 : A(ITYP)=SFG(ITYP)+E*DSFG(ITYP) 276 : 110 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) 276 : CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST) 277 : DO 111 ITYP=1,3 278 : SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 279 : 111 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) 279 : CALL SIJ(SGG,SI,SIETOI) 279 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 279 : CALL SCAL(EPC,EPC1,VAL) 279 : CALL NORME(EPC,VA1) 279 : CALL NORME(EPC1,VA2) 280 : CO1=VAL/VA1/VA2 280 : CALL SIJ(DSGG,SI,SIETOI) 280 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 280 : CALL SCAL(EPC,EPC1,VAL) 280 : CALL NORME(EPC,VA1) 280 : CALL NORME(EPC1,VA2) 281 : CO2=VAL/VA1/VA2 282 : XIN1=E+F*DL31 283 : XIN2=E+F*DL32 284 : IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN 285 : X=XIN1 286 : DL3=DL31 287 : GOTO 119 288 : ENDIF 289 : IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN 290 : X=XIN2 291 : DL3=DL32 292 : GOTO 119 293 : ENDIF 294 : IF(IIMPI.EQ.9) WRITE(IOIMP,30303) 295 : 30303 FORMAT(1X,'ERREUR DP TRACTION 1 AF',/) 296 : DL3=DL31 297 : X=XIN1 298 : 119 DO 120 ITYP=1,3 299 : 120 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) 300 : IDAM(1)=1 301 : IDAM(2)=0 302 : IDAM(3)=1 303 : GOTO 150 304 : ENDIF 305 : DL3=(-RT1+SFG(1))/SSI(1) 306 : RD=RDP-DL3*HDP 307 : IF(RDP.LT.SIREF) GOTO 19 308 : DO 130 ITYP=1,3 309 : A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 310 : 130 B(ITYP)=DSFG(ITYP) 310 : CALL XDP(A,B,RD,ADP,X,ITEST) 311 : DO 140 ITYP=1,3 312 : 140 SGG(ITYP)=A(ITYP)+X*B(ITYP) 313 : IDAM(1)=1 314 : IDAM(2)=0 315 : IDAM(3)=1 315 : 150 CALL CTRAF(SGG(2),RT2,VCTR2) 315 : CALL CCOAF(SGG(2),XLAM2,VCCO2) 316 : IF(VCTR2.GT.0.D0) GOTO 300 317 : IF(VCCO2.GT.0.D0) GOTO 400 318 : GOTO 500 319 : C 320 : C------------------------------------ 321 : C ON ENDOMMAGE LA COMPRESSION 1 322 : C------------------------------------ 323 : C 324 : 200 ISOR=1 325 : IF(DSFG(1).NE.0.D0) THEN 326 : E=SFG(1)/DSFG(1) 327 : F=SSI(1)/DSFG(1) 328 : DO 210 ITYP=1,3 329 : A(ITYP)=SFG(ITYP)-E*DSFG(ITYP) 330 : 210 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) 330 : CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST) 331 : DO 211 ITYP=1,3 332 : SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 333 : 211 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) 333 : CALL SIJ(SGG,SI,SIETOI) 333 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 333 : CALL SCAL(EPC,EPC1,VAL) 333 : CALL NORME(EPC,VA1) 333 : CALL NORME(EPC1,VA2) 334 : CO1=VAL/VA1/VA2 334 : CALL SIJ(DSGG,SI,SIETOI) 334 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 334 : CALL SCAL(EPC,EPC1,VAL) 334 : CALL NORME(EPC,VA1) 334 : CALL NORME(EPC1,VA2) 335 : CO2=VAL/VA1/VA2 336 : XIN1=-E+F*DL31 337 : XIN2=-E+F*DL32 338 : IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN 339 : X=XIN1 340 : DL3=DL31 341 : GOTO 219 342 : ENDIF 343 : IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN 344 : X=XIN2 345 : DL3=DL32 346 : GOTO 219 347 : ENDIF 348 : IF(IIMPI.EQ.9) WRITE(IOIMP,40404) 349 : 40404 FORMAT(1X,'ERREUR DP COMPRESSION 1',/) 350 : DL3=DL31 351 : X=XIN1 352 : 219 DO 220 ITYP=1,3 353 : 220 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) 354 : IDAM(1)=-1 355 : IDAM(2)=0 356 : IDAM(3)=1 357 : GOTO 250 358 : ENDIF 359 : DL3=SFG(1)/SSI(1) 360 : RD=RDP-DL3*HDP 361 : IF(RD.LT.SIREF) GOTO 19 362 : DO 230 ITYP=1,3 363 : A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 364 : 230 B(ITYP)=DSFG(ITYP) 364 : CALL XDP(A,B,RD,ADP,X,ITEST) 365 : DO 240 ITYP=1,3 366 : 240 SGG(ITYP)=A(ITYP)+X*B(ITYP) 367 : IDAM(1)=-1 368 : IDAM(2)=0 369 : IDAM(3)=1 369 : 250 CALL CTRAF(SGG(2),RT2,VCTR2) 369 : CALL CCOAF(SGG(2),XLAM2,VCCO2) 370 : IF(VCTR2.GT.0.D0) GOTO 300 371 : IF(VCCO2.GT.0.D0) GOTO 400 372 : GOTO 500 373 : C 374 : C------------------------------------ 375 : C ON ENDOMMAGE LA TRACTION 2 376 : C------------------------------------ 377 : C 378 : 300 ISOR=1 379 : IF(DSFG(2).NE.0.D0) THEN 380 : E=(RT2-SFG(2))/DSFG(2) 381 : F=SSI(2)/DSFG(2) 382 : DO 310 ITYP=1,3 383 : A(ITYP)=SFG(ITYP)+E*DSFG(ITYP) 384 : 310 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) 384 : CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST) 385 : DO 311 ITYP=1,3 386 : SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 387 : 311 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) 387 : CALL SIJ(SGG,SI,SIETOI) 387 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 387 : CALL SCAL(EPC,EPC1,VAL) 387 : CALL NORME(EPC,VA1) 387 : CALL NORME(EPC1,VA2) 388 : CO1=VAL/VA1/VA2 388 : CALL SIJ(DSGG,SI,SIETOI) 388 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 388 : CALL SCAL(EPC,EPC1,VAL) 388 : CALL NORME(EPC,VA1) 388 : CALL NORME(EPC1,VA2) 389 : CO2=VAL/VA1/VA2 390 : XIN1=E+F*DL31 391 : XIN2=E+F*DL32 392 : IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN 393 : X=XIN1 394 : DL3=DL31 395 : GOTO 319 396 : ENDIF 397 : IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN 398 : X=XIN2 399 : DL3=DL32 400 : GOTO 319 401 : ENDIF 402 : IF(IIMPI.EQ.9) WRITE(IOIMP,50505) 403 : 50505 FORMAT(1X,'ERREUR DP TRACTION 2 AF',/) 404 : DL3=DL31 405 : X=XIN1 406 : 319 DO 320 ITYP=1,3 407 : 320 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) 408 : IDAM(1)=0 409 : IDAM(2)=1 410 : IDAM(3)=1 411 : GOTO 500 412 : ENDIF 413 : DL3=(-RT2+SFG(2))/SSI(2) 414 : RD=RDP-DL3*HDP 415 : IF(RD.LT.SIREF) GOTO 19 416 : DO 330 ITYP=1,3 417 : A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 418 : 330 B(ITYP)=DSFG(ITYP) 418 : CALL XDP(A,B,RD,ADP,X,ITEST) 419 : DO 340 ITYP=1,3 420 : 340 SGG(ITYP)=A(ITYP)+X*B(ITYP) 421 : IDAM(1)=0 422 : IDAM(2)=1 423 : IDAM(3)=1 424 : GOTO 500 425 : C 426 : C------------------------------------ 427 : C ON ENDOMMAGE LA COMPRESSION 2 428 : C------------------------------------ 429 : C 430 : 400 ISOR=1 431 : IF(DSFG(2).NE.0.D0) THEN 432 : E=SFG(2)/DSFG(2) 433 : F=SSI(2)/DSFG(2) 434 : DO 410 ITYP=1,3 435 : A(ITYP)=SFG(ITYP)-E*DSFG(ITYP) 436 : 410 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) 436 : CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST) 437 : DO 411 ITYP=1,3 438 : SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 439 : 411 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) 439 : CALL SIJ(SGG,SI,SIETOI) 439 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 439 : CALL SCAL(EPC,EPC1,VAL) 439 : CALL NORME(EPC,VA1) 439 : CALL NORME(EPC1,VA2) 440 : CO1=VAL/VA1/VA2 440 : CALL SIJ(DSGG,SI,SIETOI) 440 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 440 : CALL SCAL(EPC,EPC1,VAL) 440 : CALL NORME(EPC,VA1) 440 : CALL NORME(EPC1,VA2) 441 : CO2=VAL/VA1/VA2 442 : XIN1=-E+F*DL31 443 : XIN2=-E+F*DL32 444 : IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN 445 : X=XIN1 446 : DL3=DL31 447 : GOTO 419 448 : ENDIF 449 : IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN 450 : X=XIN2 451 : DL3=DL32 452 : GOTO 419 453 : ENDIF 454 : IF(IIMPI.EQ.9) WRITE(IOIMP,60606) 455 : 60606 FORMAT(1X,'ERREUR DP COMPRESSION 2 ',/) 456 : DL3=DL31 457 : X=XIN1 458 : 419 DO 420 ITYP=1,3 459 : 420 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) 460 : IDAM(1)=0 461 : IDAM(2)=-1 462 : IDAM(3)=1 463 : GOTO 500 464 : ENDIF 465 : DO 430 ITYP=1,3 466 : DL3=SFG(2)/SSI(2) 467 : RD=RDP-DL3*HDP 468 : IF(RD.LT.SIREF) GOTO 19 469 : A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 470 : 430 B(ITYP)=DSFG(ITYP) 470 : CALL XDP(A,B,RD,ADP,X,ITEST) 471 : DO 440 ITYP=1,3 472 : 440 SGG(ITYP)=A(ITYP)+X*B(ITYP) 473 : IDAM(1)=0 474 : IDAM(2)=-1 475 : IDAM(3)=1 476 : 500 DO 510 ITYP=1,3 477 : EPDP(ITYP)=DL3*EPC(ITYP)+EPDP(ITYP) 478 : 510 SFG(ITYP)=SGG(ITYP) 479 : C 480 : C------------------------------------------------------- 481 : C CAS OU LA LIMITE EN TRACTION N EST PAS DEPASSEE 482 : C------------------------------------------------------- 483 : C 484 : RDP=RDP-DL3*HDP 485 : IF(RDP.LT.SIREF) GOTO 19 486 : XLAM3=XLAM3+DL3 487 : XT=X+XT 488 : C=1.D0-1.D-10 489 : IF(XT.GT.C) THEN 490 : DO 520 ITYP=1,3 491 : IDAM(ITYP)=0 492 : 520 DSIG(ITYP)=0.D0 492 : CALL CHREP(SFG,SIG,-ANG) 492 : CALL CHREP(EPDP,EPPLDP,-ANG) 493 : IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER 494 : RETURN 495 : ENDIF 496 : 525 IF(ISOR.EQ.1) THEN 497 : DO 530 ITYP=1,3 498 : 530 DSFG(ITYP)=(1D0-XT)*DSFG(ITYP) 498 : CALL CHREP(SFG,SIG,-ANG) 498 : CALL CHREP(DSFG,DSIG,-ANG) 498 : CALL CHREP(EPDP,EPPLDP,-ANG) 499 : IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER 500 : RETURN 501 : ENDIF 502 : X=2.D0*X 503 : IF((XT+X).GT.1.D0) X=1.D0-XT 503 : CALL SIJ(SFG,SI,SIETOI) 503 : CALL EPSDP(SI,SIETOI,ADP,EPC) 503 : CALL CPHOMO(EPC,SSI,YOUN,ANU,BETA) 504 : IF(DL3.LT.0.D0) THEN 505 : KERRE=461 506 : RETURN 507 : ENDIF 508 : GOTO 31 509 : END 510 :
© Cast3M 2003 - All rights reserved.
Disclaimer