1 : C FLUAGE SOURCE CHAT 05/01/13 00:04:07 5004 2 : SUBROUTINE FLUAGE(ITER,EPSTAR,S0,EPST,SSTAR,SI,DPSM1, 3 : 1 DPSM2,IBOU,DEPS,ICONV,TIMEXI,TIMEXF,YUNG,KERRE,ecou,necou) 4 : C 5 : C CE SOUS PROGRAMME CALCULE LA DEFORMATION DE FLUAGE 6 : C 7 : C SORTIES AVEC PROBLEMES 8 : C 9 : C KERRE = 3 DIMINUER LE PAS (TREANOR) 10 : C KERRE = 4 DEPS EST NEGATIF 11 : C KERRE = 5 PAS DE CONVERGENCE INTERNE 12 : C ( ANCIENNEMENT NSTOP=0 ) 13 : C 14 : IMPLICIT INTEGER(I-N) 15 : IMPLICIT REAL*8(A-H,O-Z) 16 : DIMENSION DSIGK1(6),DSIGK2(6),DSIGK3(6),DSIGK4(6) 17 : C 18 : SEGMENT ECOU 19 : *** COMMON/ECOU/TEST,ALFAH, 20 : REAL*8 TEST, ALFAH, 21 : 1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6), 22 : 2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),SIG5(6),SIGINT(6), 23 : 1 DALPHA(6),DSIGO(6),E(12),XINV(3), 24 : 2 SIPLAD(6),DSIGP0(6),TET,TETI 25 : ENDSEGMENT 26 : 27 : C COMMON/ECOU/TEST,ALFAH, 28 : C 1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6), 29 : C 2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),SIG5(6),SIGINT(6), 30 : C 1 DALPHA(6),DSIGO(6),E(12),XINV(3), 31 : C 2 SIPLAD(6),DSIGP0(6),TET,TETI 32 : C 33 : SEGMENT NECOU 34 : * COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO, 35 : INTEGER NCOURB,IPLAST,IT,IMAPLA,ISOTRO, 36 : . ITYP,IFOUR,IFLUAG, 37 : . ICINE,ITHER,IFLUPL,ICYCL,IBI, 38 : . JFLUAG,KFLUAG,LFLUAG, 39 : . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF 40 : ENDSEGMENT 41 : C COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO, 42 : C . ITYP,IFOUR,IFLUAG, 43 : C . ICINE,ITHER,IFLUPL,ICYCL,IBI, 44 : C . JFLUAG,KFLUAG,LFLUAG, 45 : C . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF 46 : C 47 : DATA ITMAX/15/ 48 : ITER=1 49 : ICLFLU=0 50 : IF(IRELAX.EQ.0) GO TO 414 51 : C 52 : C ESSAI DE CALCUL AUTOMATIQUE DU PAS 53 : C 54 : C IRELAX = 1 ALGORITHME LADOUCEUR 55 : C IRELAX = 2 ALGORITHME TREANOR 56 : C 57 : C 58 : C TESTS DE PRECISION POUR METHODE TREANOR 59 : C 60 : C EPREC=INCREMENT DE DEFORMATION INELASTIQUE MAXIMUM (1ERE ESTIMATION) 61 : C EPREC2=INCREMENT DE DEFORMATION INELASTIQUE MAXIMUM (VALEUR FINALE) 62 : C PRERUN TEST DE VALIDITE DU PAS DE TEMPS 63 : C PREDEF VALEUR DE REFERENCE POUR LES DEFORMATIONS TROP PETITES 64 : C PRESIG VALEUR DE REFERENCE POUR LES CONTRAINTES TROP PETITES 65 : C PREPH TEST POUR PHMAX 66 : C PREBTA = BORNE SUP POUR LES ITERATIONS INTERNES DE 2-EME NIVEAU 67 : C RPREC PRECISION SUR L ESTIMATION DE DELTA-EPS CUMULE ITER INT 2 NIV 68 : C PREZER VALEUR POUR INTERPOLATION EN DELTA-EPSILON 69 : C PREMIN VALEUR POUR ESTIMATION AUTOMATIQUE DU PAS EN TREANOR 70 : C 71 : EPREC =1.D-3 72 : EPREC2=1.D-2 73 : PRECIS=TEST 74 : PRERUN=PRECIS 75 : PREDEF=1.D-5 76 : PRESIG=YUNG*PREDEF 77 : PREPH=1.D-3 78 : PREBTA=2.D00 79 : RPREC=PRECIS 80 : PREZER=1.D-7 81 : PREMIN=3.D-1*PRERUN 82 : IF(IT.EQ.1) GO TO 4430 83 : IF(DPSM1.LT.PREZER) GO TO 4430 84 : EPREC=MIN(EPREC,DPSM1) 85 : EPREC2=MIN(EPREC2,DPSM1) 86 : 4430 CONTINUE 87 : TIMO=TEMPS-HPAS 88 : TIMEXF=TIMEXI+HPAS 89 : DTET=TET-TETI 90 : DTETDT=0.D00 91 : IF(HPAS.NE.0.) DTETDT=DTET/HPAS 92 : 200 CONTINUE 93 : C NITER= NOMBRE D'ITERATIONS SUR LE PAS 94 : NITER=3 95 : C 96 : C BTAEPS=ITERPOLATION DU DSIGP-DSIGP0 SUIVANT LA VARIATION DE 97 : C EPSILON ---- L'INITIALISATION DE LA PREMIERE ITERATION EST BIDON 98 : BTAEPS=1. 99 : BTAA=1. 100 : IF(IT.EQ.1) GO TO 430 101 : BTAA=DPSM1 102 : IF(BTAA.GT.PREZER) BTAEPS=1./BTAA 103 : C 104 : C IDECOU=NOMBRE DE DECOUPAGES POSSIBLE DU TEMPS 105 : 430 IDECOU=30 106 : IF(JSOUFL.NE.0) IDECOU=JSOUFL 107 : C 108 : C ICONV=1 SI CONVERGENCE INTERNE NON EFFECTUEE 109 : ICONV=0 110 : C 111 : C ICOMPT=NOMBRE D'ITERATIONS POUR AVOIR UNE BONNE ESTIMATION DE 112 : C LA VALEUR DE DELTA EPSILON ----- ICOMPT MAXIMUM=15 113 : C 114 : ICOMPT=1 115 : C 116 : C DSIGP0(IB)=PARTIE ELASTIQUE DU DSIGP(IB)--- INTERPOLEE EN TEMPS 117 : C DSIGP-DSIGP0=PARTIE INELASTIQUE DU DSIGP(IB)--- INTERPOLEE EN EPSILON 118 : C TEMINT=TEMPS INTERMEDIAIRE AU DEBUT DU PAS 119 : C TEMIN2=TEMPS INTERMEDIAIRE A LA FIN DU PAS 120 : C TRINS1 TEMPS INTRINSEQUE INTERMEDIAIRE DEBUT DU SS-PAS 121 : C TRINS2 TEMPS INTRINSEQUE INTERMEDIAIRE FIN DU SS-PAS 122 : C EPSINT=DEFORMATION DE FLUAGE AU DEBUT DES TEMPS INTERMEDIAIRES 123 : C EPSIN2=DEFORMATION DE FLUAGE A LA FIN DES TEMPS INTERMEDIAIRES 124 : C SINT=CONTRAINTE CALCULEE AU DEBUT DU PAS INTERMEDIAIRE 125 : C SINT2=CONTRAINTE CALCULEE A LA FIN DU PAS INTERMEDIAIRE 126 : C SIGINT(IB)=TENSEUR DE CONTRAINTE AU DEBUT DES PAS INTERMEDIAIRES 127 : C TETINI = TEMPERATURE INTERMEDIAIRE AU DEBUT DU SS-PAS 128 : C TETINF = TEMPERATURE INTERMEDIAIRE A LA FIN DU SS-PAS 129 : C HPAS2 = PAS DE TEMPS ITERMEDIAIRES 130 : C----------------------------------------------------------------------- 131 : C ON DEMARRE 132 : C----------------------------------------------------------------------- 133 : 499 TEMINT=TIMO 134 : TRINS1=TIMEXI 135 : EPSINT=EPSTAR 136 : SINT=S0 137 : DO 413 IB=1,IBOU 138 : 413 SIGINT(IB)=SIGEL(IB) 139 : C----------------------------------------------------------------------- 140 : C BOUCLE SUR LES SOUS-PAS 141 : C----------------------------------------------------------------------- 142 : DO 416 I=1,IDECOU 143 : C ON INTERPOLE LINEAIREMENT 144 : C 145 : TETINI=TETI+DTETDT*(TEMINT-TIMO) 146 : DECATE=TEMPS-TEMINT 147 : HPAS2=DECATE 148 : IF(IRELAX.NE.2) GO TO 8370 149 : C 150 : C MODIFS POUR LA METHODE DE TREANOR 151 : C POUR LA PREMIERE ESTIMATION DU PAS DANS LES ITERATIONS EN DEPS, 152 : C ON UTILISE LA VALEUR HFIRST TROUVEE A L ITERATION PRECEDENTE 153 : C POUR LE DECOUPAGE EN SOUS-PAS,ON AJUSTE AUTOMATIQUEMENT LA TAILLE 154 : C DU PAS . 155 : C 156 : IF(I.GT.1) GO TO 8371 157 : IF(ICOMPT.EQ.1) GO TO 8370 158 : HPAS2=HFIRST 159 : GO TO 8370 160 : 8371 HPAS2=HPADEC 161 : 8370 BETA=HPAS2/DECATE 162 : IF(BETA.GT.1.) BETA=1. 162 : CALL CRPLAW(VI,EPSINT,SINT,TETINI,TRINS1,HPAS2,ICLFLU,NCOURB) 163 : EPSPAS=HPAS2*VI 164 : C EPSPAS=INCREMENT D'ALLONGEMENT INELASTIQUE CALCULE A LA FIN 165 : C DU SOUS PAS INTERMEDIAIRE 166 : C BETA=COEFFICIENT CORRESPONDANT A LA FRACTION DU PAS CALCULE 167 : C 168 : IF(EPSPAS.GT.EPREC) BETA=BETA*EPREC/EPSPAS 169 : C 170 : C----------------------------------------------------------------------- 171 : C DEBUT DES CALCULS POUR UN SOUS-PAS DE TAILLE DONNEE 172 : C ON RECOMMENCE ICI EN CAS DE REDUCTION DU PAS 173 : C----------------------------------------------------------------------- 174 : C 175 : 424 HPAS2=DECATE*BETA 176 : BTAPAS=HPAS2/HPAS 177 : TEMIN2=TEMINT+HPAS2 178 : TRINS2=TRINS1+HPAS2 179 : TETINF=TETI+DTETDT*(TEMIN2-TIMO) 180 : TIMO5=TEMINT+0.5*HPAS2 181 : TRINS5=TRINS1+0.5*HPAS2 182 : TETIN5=TETI+DTETDT*(TIMO5-TIMO) 183 : IF(IRELAX.EQ.2) GO TO 1101 184 : C 185 : C CALCUL PAR LA METHODE LADOUCEUR 186 : C 187 : EPSPA2=EPSPAS*BETA 188 : EPSIN2=EPSINT+EPSPA2 189 : BTASIG=EPSPA2*BTAEPS 190 : IF(BTASIG.GT.PREBTA) BTASIG=PREBTA 191 : C 192 : C 193 : C IL FAUT TOUJOURS INTERPOLER EN DELTA-EPSILON, MEME SI DEPS EST PETIT, 194 : C POUR QUE LA RUSE DE LA 2-EME ITERATION MARCHE EN FLUAGE PUR 195 : C 196 : C 197 : IF(BTAA.LE.PREZER) BTASIG=BTAPAS 198 : ELTA=0. 199 : IF(SINT.NE.0.) ELTA=VI/SINT 200 : ELTF=HPAS2*ELTA 201 : DO 421 IB=1,IBOU 202 : 421 SIGT(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS+ 203 : 1 (DSIGP(IB)-DSIGP0(IB))*BTASIG 204 : 2 -E(IB)*SIGINT(IB)*ELTF 205 : SINT2=VNMISD(SIGT,ITYP,ALFAH,CVNMSD) 206 : C 207 : C DEBUT DES ITERATIONS SUR LA FRACTION DE PAS CONSIDERE 208 : C 209 : DO 417 J=1,NITER 209 : CALL CRPLAW(VINT,EPSIN2,SINT2,TETINF,TRINS2,HPAS2,ICLFLU,NCOURB) 210 : ELTO=.25*HPAS2 211 : IF(J.EQ.1) EPSPA5=ELTO*(3*VI+VINT)*.5 212 : IF(J.NE.1.AND.(VI+VINT).NE.0.) 213 : 1 EPSPA5=DEPS*(3*VI+VINT)/(VI+VINT)*.25 214 : EPSO5=EPSINT+EPSPA5 215 : BTASIG=EPSPA5*BTAEPS 216 : IF(BTASIG.GT.PREBTA) BTASIG=PREBTA 217 : IF(BTAA.LE.PREZER) BTASIG=BTAPAS*.5 218 : ELTB=0. 219 : IF(SINT2.NE.0.) ELTB=VINT/SINT2 220 : DO 422 IB=1,IBOU 221 : IF(J.EQ.1) SIG5(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS*.5+ 222 : 1 (DSIGP(IB)-DSIGP0(IB))*BTASIG 223 : 2 -ELTO*E(IB)*(3*SIGINT(IB)*ELTA+SIGT(IB)*ELTB)*.5 224 : IF(J.NE.1) SIG5(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS*.5+ 225 : 1 (DSIGP(IB)-DSIGP0(IB))*BTASIG 226 : 2 -E(IB)*ELTO*(SIGINT(IB)*ELTA+SIG5(IB)*ELTC*.25) 227 : 422 CONTINUE 228 : SO5=VNMISD(SIG5,ITYP,ALFAH,CVNMSD) 228 : CALL CRPLAW(VO5,EPSO5,SO5,TETIN5,TRINS5,HPAS2,ICLFLU,NCOURB) 229 : ELTO=.166666666667*HPAS2 230 : DEPS=ELTO*(VI+VINT+4*VO5) 231 : IF(DEPS.LT.EPREC2) GO TO 425 232 : BETA=BETA*.7 233 : GO TO 424 234 : 425 EPSIN2=EPSINT+DEPS 235 : BTASIG=DEPS*BTAEPS 236 : IF(BTASIG.GT.PREBTA) BTASIG=PREBTA 237 : IF(BTAA.LE.PREZER) BTASIG=BTAPAS 238 : ELTC=0. 239 : IF(SO5.NE.0.) ELTC=VO5/SO5*4. 240 : DO 423 IB=1,IBOU 241 : 423 SIGT(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS+ 242 : 1 (DSIGP(IB)-DSIGP0(IB))*BTASIG 243 : 2 -ELTO*E(IB)*(SIGINT(IB)*ELTA+SIGT(IB)*ELTB+SIG5(IB)*ELTC) 244 : SINT2=VNMISD(SIGT,ITYP,ALFAH,CVNMSD) 245 : 417 CONTINUE 246 : C 247 : GO TO 1200 248 : C 249 : 1101 CONTINUE 250 : C 251 : C CALCUL PAR LA METHODE DE TREANOR 252 : C 253 : WEP=0.5D00 253 : CALL FLURUN(SIGINT,EPSINT,TETINI,TRINS1,HPAS2,ICLFLU,NCOURB,IBOU, 254 : . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK1,DEPSK1,SIGT,EPSINA,WEP, 255 : . EPSINT,EPREC2,ecou) 256 : IF(ICOD.EQ.1) GO TO 424 256 : CALL FLURUN(SIGT,EPSINA,TETIN5,TRINS5,HPAS2,ICLFLU,NCOURB,IBOU, 257 : . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK2,DEPSK2,SIGT,EPSINA,WEP, 258 : . EPSINT,EPREC2,ecou) 259 : IF(ICOD.EQ.1) GO TO 424 260 : WEP=1.D00 260 : CALL FLURUN(SIGT,EPSINA,TETIN5,TRINS5,HPAS2,ICLFLU,NCOURB,IBOU, 261 : . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK3,DEPSK3,SIGT,EPSINA,WEP, 262 : . EPSINT,EPREC2,ecou) 263 : IF(ICOD.EQ.1) GO TO 424 264 : PHMAX=0. 265 : IF(DEPSK2-DEPSK1.NE.0.) PHMAX=2.*(DEPSK2-DEPSK3)/(DEPSK2-DEPSK1) 266 : DO 4101 IB=1,IBOU 267 : IF(DSIGK2(IB)-DSIGK1(IB).EQ.0.) GO TO 4101 268 : PH=2.*(DSIGK2(IB)-DSIGK3(IB))/(DSIGK2(IB)-DSIGK1(IB)) 269 : IF(PHMAX.LT.PH) PHMAX=PH 270 : 4101 CONTINUE 271 : IF(PHMAX.LE.0.) GO TO 4102 272 : IF(PHMAX.GE.PREPH) GO TO 4123 273 : XL1=1.-PHMAX*0.5 274 : XL2=0.5-PHMAX*0.166666666666666667 275 : XL3=0.166666666666666667-PHMAX*0.04166666666666666667 276 : XL4=-PHMAX*0.166666666666666667 277 : GO TO 4103 278 : 4123 CONTINUE 279 : XL1=(1.-EXP(-PHMAX))/PHMAX 280 : XL2=(1.-XL1)/PHMAX 281 : XL3=(0.5-XL2)/PHMAX 282 : XL4=XL1-2.*XL2 283 : GO TO 4103 284 : 4102 PHMAX=0. 285 : XL1=1. 286 : XL2=0.5 287 : XL3=0.166666666666666667 288 : XL4=0. 289 : 4103 CONTINUE 290 : XM1=-XL2+4.*XL3 291 : XM2=2.*(XL2-2.*XL3) 292 : XM3=4.*XL3-3.*XL2 293 : C 294 : C NOUVELLE ESTIMATION DE LA SOLUTION 295 : C 296 : EPSIN5=EPSINT+2.*XL2*DEPSK3+XL2*PHMAX*DEPSK2+XL4*DEPSK1 297 : DO 4104 IB=1,IBOU 298 : 4104 SIG5(IB)=SIGINT(IB)+2.*XL2*DSIGK3(IB)+XL2*PHMAX*DSIGK2(IB) 299 : . +XL4*DSIGK1(IB) 300 : WEP=1.D00 300 : CALL FLURUN(SIG5,EPSIN5,TETINF,TRINS2,HPAS2,ICLFLU,NCOURB, 301 : . IBOU,ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK4,DEPSK4,SIGT, 302 : . EPSINA,WEP,EPSINT,EPREC2,ecou) 303 : IF(ICOD.EQ.1) GO TO 424 304 : C 305 : C ESTIMATION FINALE DE LA SOLUTION 306 : C 307 : FAC1=1.+PHMAX*XM3+2.*PHMAX*XM2 308 : FAC2=XL1+XM3+0.5*XM2*PHMAX 309 : FAC3=XM2*(1.+0.5*PHMAX) 310 : EPSIN2=EPSINT*FAC1+DEPSK1*FAC2+DEPSK2*FAC3+DEPSK3*XM2 311 : . +DEPSK4*XM1+EPSIN5*XM1*PHMAX 312 : DO 4105 IB=1,IBOU 313 : 4105 SIGT(IB)=SIGINT(IB)*FAC1+DSIGK1(IB)*FAC2+DSIGK2(IB)*FAC3 314 : . +DSIGK3(IB)*XM2+DSIGK4(IB)*XM1+SIG5(IB)*XM1*PHMAX 315 : C 316 : C TEST DE PRECISION 317 : C 318 : ERMAX=ABS(EPSIN2-EPSIN5)/MAX(PREDEF,ABS(EPSIN2-EPSINT)) 319 : DO 4106 IB=1,IBOU 320 : ERM=ABS(SIGT(IB)-SIG5(IB))/MAX(PRESIG, 321 : . ABS(SIGT(IB)-SIGINT(IB))) 322 : IF(ERMAX.LT.ERM) ERMAX=ERM 323 : 4106 CONTINUE 324 : IF(ERMAX.LE.PRERUN) GO TO 1240 325 : BETA=BETA*0.5 326 : GO TO 424 327 : C 328 : C----------------------------------------------------------------------- 329 : C METHODE DE TREANOR - ESTIMATION AUTOMATIQUE DU PAS DE TEMPS 330 : C----------------------------------------------------------------------- 331 : C 332 : 1240 HPADEC=HPAS2 333 : IF(ERMAX.LE.PREMIN) HPADEC=2.D00*HPAS2 334 : SINT2=VNMISD(SIGT,ITYP,ALFAH,CVNMSD) 335 : 1200 CONTINUE 336 : C 337 : C CAS DU PREMIER DECOUPAGE : ON SAUVE LA TAILLE DU 1-ER SOUS-PAS 338 : C 339 : IF(I.EQ.1.AND.ICOMPT.EQ.1) HFIRST=HPAS2 340 : DO 418 IB=1,IBOU 341 : 418 SIGINT(IB)=SIGT(IB) 342 : C 343 : C----------------------------------------------------------------------- 344 : C SORTIE DE LA BOUCLE DES SOUS-PAS SI BETA=1. 345 : C LE DECOUPAGE EST FINI 346 : C----------------------------------------------------------------------- 347 : C 348 : IF(ABS(BETA-1.D00).LE.PREZER) GO TO 419 349 : EPSINT=EPSIN2 350 : C 351 : C----------------------------------------------------------------------- 352 : C SI ON N'A PAS FINI,ON REGARDE SI ON PASSE LE TEST ANTI-DIVERGENCE 353 : C SI CA A TENDANCE A EXPLOSER,ON RECOMMENCE AVEC UN BTAA MODIFIE 354 : C SINON ON SORT EN DEMANDANT PLUS DE SOUS-PAS 355 : C----------------------------------------------------------------------- 356 : C 357 : IF(IT.LE.2) GO TO 502 358 : IF(BTAA.LE.PREDEF) GO TO 502 359 : C 360 : C TEST ANTI-DIVERGENCE ITERATIONS INTERNES DE 2-EME NIVEAU 361 : C 362 : IF(DEPS.LE.1.5*BTAA) GO TO 502 363 : BTAA=1.1*BTAA 364 : BTAEPS=1./BTAA 365 : GO TO 499 366 : 502 CONTINUE 367 : SINT=SINT2 368 : TEMINT=TEMIN2 369 : IF(JNTRIN.EQ.0) TRINS1=TRINS2 370 : IF(JNTRIN.NE.0.AND.DEPS.NE.0.) TRINS1=TRINS2 371 : C 372 : C----------------------------------------------------------------------- 373 : C FIN DE LA BOUCLE SUR LES SOUS-PAS 374 : C----------------------------------------------------------------------- 375 : C 376 : 416 CONTINUE 377 : KERRE=3 378 : RETURN 379 : C 380 : C FIN DU DECOUPAGE EN SOUS-PAS 381 : C 382 : 419 SI=SINT2 383 : DEPS=EPSIN2-EPSTAR 384 : IF(DEPS.GE.0.) GO TO 3170 385 : KERRE=4 386 : DEPS=0.D00 387 : 3170 CONTINUE 388 : C 389 : C ON TESTE LA VALEUR DE DEPS PAR RAPPORT A L'ESTIMATION FAITE 390 : C ON CONTINUE JUSQ'A CONVERGENGE A RPREC PRES 391 : C 392 : IF(IT.EQ.1) GO TO 501 393 : IF(IT.EQ.2) GO TO 505 394 : C 395 : C SI BTAA EST INFERIEUR A PREZER,ON NE FAIT PAS D'ITERATIONS 396 : C INTERNES DE 2-EME NIVEAU 397 : C 398 : IF(BTAA.LE.PREZER) GO TO 501 399 : DIFFE=DEPS-BTAA 400 : RAPOR=ABS(DIFFE)/BTAA 401 : IF(RAPOR.LE.RPREC) GO TO 501 402 : IF(ICOMPT.LT.15) GO TO 415 403 : KERRE=5 404 : GO TO 505 405 : 415 CONTINUE 406 : ICOMPT=ICOMPT+1 407 : IF(ICOMPT.EQ.2) GO TO 503 408 : DESSU=BTAAZ*DEPS-BTAA*DEPSZ 409 : DESSOU=DIFFE-DIFFEZ 410 : 503 BTAAZ=BTAA 411 : DEPSZ=DEPS 412 : DIFFEZ=DIFFE 413 : IF(ICOMPT.EQ.2) GO TO 535 414 : IF(ABS(DESSOU).GT.1.D-20) GO TO 504 415 : BTAA=(BTAA+DEPS)*0.5 416 : GO TO 3390 417 : 504 BTAA=DESSU/DESSOU 418 : GO TO 3390 419 : 535 BTAA=DEPS 420 : 3390 IF(BTAA.GT.PREZER) BTAEPS=1./BTAA 421 : IF(BTAA.LT.0.) BTAA=0.5D00*BTAAZ 422 : GO TO 499 423 : 501 CONTINUE 424 : EPST=EPSIN2 425 : IF(JNTRIN.NE.0) TIMEXF=TRINS2 426 : RETURN 427 : 505 CONTINUE 428 : EPST=EPSIN2 429 : IF(JNTRIN.NE.0) TIMEXF=TRINS2 430 : IF(BTAA.LE.PREZER) RETURN 431 : ICONV=1 432 : RDEPS=DEPS/BTAA 433 : DO 506 IB=1,IBOU 434 : 506 DSIGP(IB)=SIGEL(IB)+DSIGP0(IB)+(DSIGP(IB)-DSIGP0(IB))*RDEPS 435 : RETURN 436 : C 437 : C----------------------------------------------------------------------- 438 : C METHODE CLASSIQUE CASTEM 439 : C----------------------------------------------------------------------- 440 : C 441 : 414 TIMO=TEMPS-HPAS 442 : TIMEXF=TIMEXI+HPAS 443 : TIMEX5=0.5*(TIMEXI+TIMEXF) 444 : TET5=0.5*(TETI+TET) 445 : TIMO5=0.5*(TIMO+TEMPS) 446 : IF(IT.NE.1) GO TO 411 447 : C 448 : C RUSE POUR LA 1-ERE ITERATION EN CAS THERMOPLASTIQUE 449 : C 449 : CALL CRPLAW(VI,EPSTAR,S0,TETI,TIMEXI,HPAS,ICLFLU,NCOURB) 450 : DPSM1=VI 451 : EPST=EPSTAR+HPAS*VI 451 : CALL CRPLAW(VF,EPST,SSTAR,TET,TIMEXF,HPAS,ICLFLU,NCOURB) 452 : DPSM2=SSTAR 453 : SF=SSTAR 454 : ELTO=0.166666666667*HPAS 455 : SO5=0.5*(S0+SF) 456 : EPST=EPSTAR+0.25*HPAS*(VI+VF) 456 : CALL CRPLAW(VO5,EPST,SO5,TET5,TIMEX5,HPAS,ICLFLU,NCOURB) 457 : ELTA=0 458 : ELTB=0 459 : ELTC=0 460 : IF(S0.NE.0.) ELTA=1./S0 461 : IF(SF.NE.0.) ELTB=1./SF 462 : IF(SO5.NE.0.) ELTC=1./SO5 463 : ELTF=ELTO*(VF*ELTB+2.*VO5*ELTC) 464 : ELTO=ELTO*(VI*ELTA+2.*VO5*ELTC) 465 : DO 412 IB=1,IBOU 466 : ELTA=1.-E(IB)*ELTO 467 : ELTB=1.+E(IB)*ELTF 468 : SIGEL(IB)=SIGEL(IB)*ELTB/ELTA 469 : 412 DSIGP(IB)=DSIGP(IB)*ELTB 470 : 411 VI=DPSM1 471 : SF=DPSM2 472 : EPST=EPSTAR+HPAS*VI 472 : CALL CRPLAW(VF,EPST,SF,TET,TIMEXF,HPAS,ICLFLU,NCOURB) 473 : ELTO=0.166666666667*HPAS 474 : SO5=0.5*(S0+SF) 475 : EPST=0.25*HPAS*(VI+VF)+EPSTAR 475 : CALL CRPLAW(VO5,EPST,SO5,TET5,TIMEX5,HPAS,ICLFLU,NCOURB) 476 : ELTA=0. 477 : ELTB=0. 478 : ELTC=0. 479 : IF(S0.NE.0.) ELTA=1./S0 480 : IF(SF.NE.0.) ELTB=1./SF 481 : IF(SO5.NE.0.) ELTC=1./SO5 482 : ELTF=ELTO*(VF*ELTB+2.*VO5*ELTC) 483 : ELTO=ELTO*(VI*ELTA+2.*VO5*ELTC) 484 : DO 410 IB=1,IBOU 485 : ELTA=1.-E(IB)*ELTO 486 : ELTB=1.+E(IB)*ELTF 487 : SIGT(IB)=(DSIGP(IB)+SIGEL(IB)*ELTA)/ELTB 488 : IF(IT.GT.1) GO TO 410 489 : DSIGP(IB)= SIGT(IB)*(1.+ELTB-ELTA) 490 : 410 CONTINUE 491 : SI=VNMISD(SIGT,ITYP,ALFAH,CVNMSD) 492 : DPSM2=SI 493 : DEPS=0.166666666667*HPAS*(VI+VF+4.*VO5) 494 : EPST=EPSTAR+DEPS 495 : IF(JNTRIN.NE.0.AND.DEPS.EQ.0.) TIMEXF=TIMEXI 496 : 57 CONTINUE 497 : RETURN 498 : END 499 : 500 : 501 : 502 : 503 :
© Cast3M 2003 - All rights reserved.
Disclaimer