1 : C CONSTI SOURCE AM 08/12/19 21:16:03 6237 2 : SUBROUTINE CONSTI(WRK0,WR00,WRK1,WRK5,WRK7,WRK8,WRK9,WTRAV, 3 : 1 INPLAS,MFR,DT,NSTRS,NVARI,NCOMAT,PRECAS,MSOUPA,JECHER,DTT, 4 : 2 NSSINC,INV,KERRE,ICARA,IFOURB,NYOG,NYNU,NYALFA,NYSMAX, 5 : 3 NYN,NYM,NYKK,NYALF1,NYBET1,NYR,NYA,NYKX,NNKX,NYRHO,NSIGY,T0,TF, 6 : 5 TREF,TLIFE,ITHHER,NCOURB,CMATE,N2EL,N2PTEL,IB,IGAU,EPAIST, 7 : 7NBPGAU,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,CRIGI,KERREU1) 8 : C 9 : C--------------------------------------------------------------------- 10 : C Objet: Calculer au cours d'un pas de temps DT, l'evolution des 11 : C variables internes a l'aide d'un schema Runge-Kutta 1.2 12 : C --------------------------------------------------------------------- 13 : C 14 : C--------------------------------------------------------------------- 15 : C Entree: INPLAS type de materiau 16 : C MFR indice de la formulation mecanique(seulement massif ou coque 17 : C pour les materiaux endommageables) 18 : C DEPST(NSTRS) increment des deformations totales 19 : C SIG0(NSTRS) contraintes initiales 20 : C EPIN0(NSTRS) deformations viscoplastiques initiales 21 : C VAR0(NVARI) variables internes initiales 22 : C NVARI nombre de variables internes 23 : C YOG(NYOG) courbe du module d'Young en fonction de T°C 24 : C YNU(NYNU) courbe du coefficient de Poisson en fonction de T°C 25 : C SIGY(NSIGY) courbe de la limite elastique en fonction de T°C 26 : C YRHO(NYRHO) courbe de la masse volumique en fonction de T°C 27 : C YALFA(NYALFA) courbe du coeff de dilatation en fonction de T°C 28 : C YN(NYN) 29 : C YM(NYM) 30 : C YKK(NYKK) courbes des autres coefficients caracteristiques 31 : C YALFA1(NYALF1) en fonction de la T°C intervenant 32 : C YBETA1(NYBET1) dans les lois d'evolution 33 : C YR(NYR) 34 : C YA(NYA) 35 : C YKX(NYKX) fonction k(X) tabulee en fonction de la temperature 36 : C NKX(NNKX) tableau de pointeurs sur les courbes de k(X) 37 : C XMAT(NCOMAT) materiau 38 : C XCAR(ICARA) caracteristiques geometriques 39 : C YSMAX(NYSMAX) intervient ds. le test de convergence des iter. 40 : C TRUC(NCOURB) tableau de travail 41 : C PRECIS precision relative sur SIGMA 42 : C MSOUPA nombre maximal de sous pas autorises 43 : C JECHER = 0 avancer 44 : C = 1 rechercher sortie avec DTT 45 : C IFOURB = -3 EN DEFORM. PLANES GENER. 46 : C -2 EN CONTR.PLANES 47 : C -1 EN DEFORM. PLANES 48 : C 0 EN AXISYMETRIE 49 : C 1 EN SERIE DE FOURIER 50 : C 2 EN TRIDIM 51 : * CMATE = NOM DU MATERIAU 52 : * VALMAT= TABLEAU DE CARACTERISTIQUES DU MATERIAU 53 : * VALCAR= TABLEAU DE CARACTERISTIQUES GEOMETRIQUES 54 : * N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE 55 : * N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE 56 : * IB = NUMERO DE L ELEMENT COURANT 57 : * IGAU = NUMERO DU POINT COURANT 58 : * EPAIST= EPAISSEUR 59 : * NBPGAU= NBRE DE POINTS DE GAUSS 60 : * MELE = NUMERO DE L ELEMENT FINI 61 : * NPINT = NBRE DE POINTS D INTEGRATION 62 : * NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES 63 : * NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES 64 : * SECT = SECTION 65 : * LHOOK = TAILLE DE LA MATRICE DE HOOKE 66 : C DD(NSTRS,NSTRS) matrice de Hooke en fonction de T 67 : C DDV(NSTRS,NSTRS) derivee de DD 68 : C DDINV(NSTRS,NSTRS) inverse de DD 69 : C T0 temperature a t0 70 : C TF temperature a t0+DT 71 : C TREF temperature de reference 72 : C DT pas de temps 73 : C ITHHER = 0 pas de chargement thermique et materiau constant 74 : C = 1 chargement thermique et materiau constant 75 : C = 2 chargement thermique et materiau(T) 76 : C----------------------------------------------------------------------- 77 : C 78 : C----------------------------------------------------------------------- 79 : C Sortie: SIGF(NSTRS) contraintes finales 80 : C EPINF(NSTRS) deformations viscoplastiques finales 81 : C VARF(NVARI) variables internes finales 82 : C DTT sous-increment de temps optimal (si JECHER=1) 83 : C TLIFE sous-increment de temps a rupture pour materiau 84 : C viscoplastique endommageable 85 : C NSSINC nombre de sous-increments si JECHER=0 86 : C INV = 1 si inversion 87 : C 0 sinon 88 : C KERRE = 0 si tout OK 89 : C <> 0 si entrees incoherentes 90 : C----------------------------------------------------------------------- 91 : C 92 : IMPLICIT INTEGER(I-N) 93 : IMPLICIT REAL*8(A-H,O-Z) 94 : -INC CCOPTIO 95 : * 96 : SEGMENT WRK0 97 : REAL*8 XMAT(NCXMAT) 98 : ENDSEGMENT 99 : * 100 : SEGMENT WR00 101 : CHARACTER*16 TYMAT(NCXMAT) 102 : REAL*8 XMAT1(NCXMAT),XMAT2(NCXMAT) 103 : ENDSEGMENT 104 : * 105 : SEGMENT WRK1 106 : REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS) 107 : REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI) 108 : REAL*8 DEFP(NSTRS),XCAR(ICARA) 109 : ENDSEGMENT 110 : * 111 : SEGMENT WRK5 112 : REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS) 113 : ENDSEGMENT 114 : * 115 : SEGMENT WRK7 116 : REAL*8 F(NCOURB,2),W(NCOURB),TRUC(NCOURB) 117 : ENDSEGMENT 118 : * 119 : SEGMENT WRK8 120 : REAL*8 DD(NSTRS,NSTRS),DDV(NSTRS,NSTRS),DDINV(NSTRS,NSTRS) 121 : REAL*8 DDINVp(NSTRS1,NSTRS1) 122 : ENDSEGMENT 123 : * 124 : SEGMENT WRK9 125 : REAL*8 YOG(NYOG),YNU(NYNU),YALFA(NYALFA),YSMAX(NYSMAX) 126 : REAL*8 YN(NYN),YM(NYM),YKK(NYKK),YALFA1(NYALF1) 127 : REAL*8 YBETA1(NYBET1),YR(NYR),YA(NYA),YKX(NYKX),YRHO(NYRHO) 128 : REAL*8 SIGY(NSIGY) 129 : INTEGER NKX(NNKX) 130 : ENDSEGMENT 131 : * 132 : SEGMENT WTRAV 133 : REAL*8 DDAUX(LHOOK,LHOOK),VALMAT(NUMAT) 134 : REAL*8 VALCAR(NUCAR),DSIGT(NSTRS) 135 : REAL*8 TXR(IDIM,IDIM),DDHOMU(LHOOK,LHOOK) 136 : REAL*8 XLOC(IDIM,IDIM),XGLOB(IDIM,IDIM) 137 : REAL*8 D1HOOK(LHOOK,LHOOK),ROTHOO(LHOOK,LHOOK) 138 : ENDSEGMENT 139 : * 140 : DIMENSION VAR(100),VAR1(100),VARP1(100),VARP2(100) 141 : DIMENSION CRIGI(12),VARP12(100),VAR12(100),VARP3(100) 142 : DIMENSION VARP4(100),VAR13(100),VARP5(100) 143 : * 144 : C#MC 21/01/99 : les tableaux doivent dimensionnes en fonction 145 : C du plus grand INFELE(16) (voir elquoi.eso) 146 : DIMENSION SIG(8),SIG1(8),SIG12(8),SIG13(8),SIG15(8) 147 : DIMENSION DSPT(8),EPSTHD(8),XX(8),SIGP5(8) 148 : DIMENSION EVP1(8),EVP2(8),XPM1(8),XPM2(8),EVP3(8),EVP4(8) 149 : DIMENSION XPM3(8),XPM4(8) 150 : DIMENSION SIGP1(8),SIGP2(8), SIGP3(8), SIGP4(8),EVP5(8) 151 : DIMENSION EPSV(8),EPSV1(8),EPSCP(8),EPSV12(8),EPSV13(8) 152 : * 153 : CHARACTER*8 CMATE 154 : logical dtlibr,impre 155 : precis = precas 156 : C 157 : * 158 : dtlibr=.TRUE. 159 : IF (INPLAS.EQ.29) THEN 160 : C Test sur l'identite de toutes les listes de temperatures des coefficients 161 : C intervenant dans les lois d'evolutions non-lineaires des variables internes 161 : CALL TEST(YN,NYN,YM,NYM,YKK,NYKK,YALFA1,NYALF1,YBETA1,NYBET1, 162 : & YR,NYR,YA,NYA,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,ITEST) 163 : ENDIF 164 : KERRE = 0 165 : IF(MFR.NE.1.AND.MFR.NE.3.AND.MFR.NE.5.AND.MFR.NE.17 166 : & .AND.MFR.NE.33)THEN 167 : KERRE = 99 168 : RETURN 169 : ENDIF 170 : * 171 : * AM 5/5/00 MFR = 33 : MODELES 19 A 24 pour le moment 172 : * 173 : IF(MFR.EQ.33) THEN 174 : IF(INPLAS.LT.19.OR.INPLAS.GT.24) THEN 175 : KERRE = 99 176 : RETURN 177 : ENDIF 178 : ENDIF 179 : * 180 : IF(MFR.EQ.3) THEN 181 : THICK = XCAR(1) 182 : ALFA = XCAR(2) 183 : ENDIF 184 : * dtprem=0.D0 185 : * dtdeux=0.d0 186 : dtleft= dt 187 : BORNE = 2.0 188 : RMAX = 1.3 189 : RMIN = 0.7 190 : DIV = 7.0 191 : FAC = 3.0 192 : TLIFE = -1.D0 193 : CCC Eloi 194 : CCC Pour etre en harmonie avec l'appel de INCRE1 par CCONST 195 : FI1 = 0.D0 196 : FITAU = 0.D0 197 : TTAU = 0.D0 198 : C 199 : C CALCUL DES INCREMENTS DE DEFORMATIONS 200 : C 201 : IF (INPLAS.NE.29) THEN 201 : CALL CALSIG(DEPST,DDAUX,NSTRS,CMATE,VALMAT, 202 : 1 VALCAR,N2EL,N2PTEL,MFR,IFOURB,IB,IGAU,EPAIST, 203 : 2 NBPGAU,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC, 204 : 3 XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,IRTD) 205 : * 206 : IF(IRTD.NE.1) THEN 207 : KERRE=69 208 : GOTO 998 209 : ENDIF 210 : * 211 : ENDIF 212 : IF(MFR.EQ.3) THEN 213 : DO 10 I=1,NSTRS/2 214 : SIG0( I) = SIG0( I)/THICK 215 : SIG0(NSTRS/2+I) = SIG0(NSTRS/2+I)*6.0D0/THICK/THICK 216 : IF (INPLAS.NE.29) THEN 217 : DSIGT( I) = DSIGT( I)/THICK 218 : DSIGT(NSTRS/2+I)= DSIGT(NSTRS/2+I)*6.0D0/THICK/THICK 219 : ELSE 220 : DEPST( I) = DEPST( I) 221 : DEPST(NSTRS/2+I)= -DEPST(NSTRS/2+I)*THICK/2 222 : ENDIF 223 : 10 CONTINUE 224 : IF(IFOURB.EQ.-2) THEN 225 : SIG0 (2) =0.0 226 : SIG0 (4) =0.0 227 : IF (INPLAS.NE.29) THEN 228 : DSIGT(2) =0.0 229 : DSIGT(4) =0.0 230 : ENDIF 231 : ENDIF 232 : ENDIF 233 : C 234 : C REMISE A ZERO DE SIG A L'EXCEPTION DU MOMENT SUIVANT Z ET DE 235 : C L'EFFORT SUIVANT X (MODE I DU CHARGEMENT) 236 : C 237 : IF(MFR.EQ.17) THEN 238 : SIG0( 2) = 0.0D0 239 : SIG0( 3) = 0.0D0 240 : SIG0( 4) = 0.0D0 241 : SIG0( 5) = 0.0D0 242 : ENDIF 243 : C 244 : C------------------------------------------ 245 : C CONTROLE DE LA COHERENCE DES ENTREES 246 : C------------------------------------------ 247 : IF (DT.LT.0.0) KERRE = 414 248 : IF (INPLAS.EQ.63.AND.MFR.NE.1) THEN 249 : KERRE=99 250 : RETURN 251 : ENDIF 252 : IF(DT.EQ.0.0) DT = 1.e-20 253 : MOTERR(1:8) = ' CONST ' 254 : IF(INPLAS.NE.17) GO TO 20 255 : IF ((NVARI.NE.(6+4*NSTRS)).AND.(MFR.NE.5)) KERRE = 146 256 : IF ((NVARI.NE.(10+4*NSTRS)).AND.(MFR.EQ.5)) KERRE = 146 257 : IF (IFOURB.NE.-2.AND.NCOMAT.LT.24) KERRE = 146 258 : IF (IFOURB.EQ.-2.AND.NCOMAT.LT.25) KERRE = 146 259 : XMAX=XMAT(8) 260 : GO TO 30 261 : 20 CONTINUE 262 : 263 : IF(MFR.NE.33) THEN 264 : 265 : IF (INPLAS.EQ.19.AND.IFOURB.NE.-2.AND.NCOMAT.LT. 8)KERRE = 146 266 : IF (INPLAS.EQ.19.AND.IFOURB.EQ.-2.AND.NCOMAT.LT. 9)KERRE = 146 267 : IF (INPLAS.EQ.20.AND.IFOURB.NE.-2.AND.NCOMAT.LT.18)KERRE = 146 268 : IF (INPLAS.EQ.20.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.19)KERRE = 146 269 : IF (INPLAS.EQ.21.AND.IFOURB.NE.-2.AND.NCOMAT.LT.12)KERRE = 146 270 : IF (INPLAS.EQ.21.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.13)KERRE = 146 271 : IF (INPLAS.EQ.22.AND.IFOURB.NE.-2.AND.NCOMAT.LT.12)KERRE = 146 272 : IF (INPLAS.EQ.22.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.14)KERRE = 146 273 : IF (INPLAS.EQ.23.AND.IFOURB.NE.-2.AND.NCOMAT.LT.16)KERRE = 146 274 : IF (INPLAS.EQ.23.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.17)KERRE = 146 275 : IF (INPLAS.EQ.24.AND.IFOURB.NE.-2.AND.NCOMAT.LT.11)KERRE = 146 276 : IF (INPLAS.EQ.24.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.12)KERRE = 146 277 : IF (INPLAS.EQ.25.AND.IFOURB.NE.-2.AND.NCOMAT.LT.26)KERRE = 146 278 : IF (INPLAS.EQ.25.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.27)KERRE = 146 279 : IF (INPLAS.EQ.29.AND.IFOURB.NE.-2.AND.NCOMAT.LT.13)KERRE = 146 280 : IF (INPLAS.EQ.29.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.14)KERRE = 146 281 : IF (INPLAS.EQ.44.AND.IFOURB.NE.-2.AND.NCOMAT.LT.20)KERRE = 146 282 : IF (INPLAS.EQ.44.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.21)KERRE = 146 283 : IF (INPLAS.EQ.45.AND.IFOURB.NE.-2.AND.NCOMAT.LT.27)KERRE = 146 284 : IF (INPLAS.EQ.45.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.28)KERRE = 146 285 : IF (INPLAS.EQ.53.AND.IFOURB.NE.-2.AND.NCOMAT.LT.28)KERRE = 146 286 : IF (INPLAS.EQ.53.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.29)KERRE = 146 287 : IF (INPLAS.EQ.61.AND.IFOURB.NE.-2.AND.NCOMAT.LT.18)KERRE = 146 288 : IF (INPLAS.EQ.61.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.19)KERRE = 146 289 : IF (INPLAS.EQ.63.AND.IFOURB.NE.-2.AND.NCOMAT.LT.32)KERRE = 146 290 : IF (INPLAS.EQ.63.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.33)KERRE = 146 291 : IF (INPLAS.EQ.70.AND.IFOURB.NE.-2.AND.NCOMAT.LT.14)KERRE = 146 292 : IF (INPLAS.EQ.70.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.15)KERRE = 146 293 : IF (INPLAS.EQ.76.AND.IFOURB.NE.-2.AND.NCOMAT.LT.26)KERRE = 146 294 : IF (INPLAS.EQ.76.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.27)KERRE = 146 295 : IF (INPLAS.EQ.77.AND.IFOURB.NE.-2.AND.NCOMAT.LT.18)KERRE = 146 296 : IF (INPLAS.EQ.77.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.19)KERRE = 146 297 : IF (INPLAS.EQ.83.AND.IFOURB.NE.-2.AND.NCOMAT.LT.15)KERRE = 146 298 : IF (INPLAS.EQ.83.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.17)KERRE = 146 299 : IF (INPLAS.EQ.84.AND.IFOURB.NE.-2.AND.NCOMAT.LT.13)KERRE = 146 300 : IF (INPLAS.EQ.84.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.14)KERRE = 146 301 : IF (INPLAS.EQ.85.AND.IFOURB.NE.-2.AND.NCOMAT.LT.19)KERRE = 146 302 : IF (INPLAS.EQ.85.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.20)KERRE = 146 303 : IF (INPLAS.EQ.86.AND.IFOURB.NE.-2.AND.NCOMAT.LT.17)KERRE = 146 304 : IF (INPLAS.EQ.86.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.18)KERRE = 146 305 : IF (INPLAS.EQ.102.AND.IFOURB.NE.-2.AND.NCOMAT.LT.25)KERRE = 146 306 : IF (INPLAS.EQ.102.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.26)KERRE = 146 307 : 308 : ELSE 309 : * 310 : * cas MFR=33 311 : * 312 : 313 : IF (INPLAS.EQ.19.AND.IFOURB.NE.-2.AND.NCOMAT.LT.16)KERRE = 146 314 : IF (INPLAS.EQ.19.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.17)KERRE = 146 315 : IF (INPLAS.EQ.20.AND.IFOURB.NE.-2.AND.NCOMAT.LT.26)KERRE = 146 316 : IF (INPLAS.EQ.20.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.27)KERRE = 146 317 : IF (INPLAS.EQ.21.AND.IFOURB.NE.-2.AND.NCOMAT.LT.20)KERRE = 146 318 : IF (INPLAS.EQ.21.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.21)KERRE = 146 319 : IF (INPLAS.EQ.22.AND.IFOURB.NE.-2.AND.NCOMAT.LT.20)KERRE = 146 320 : IF (INPLAS.EQ.22.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.22)KERRE = 146 321 : IF (INPLAS.EQ.23.AND.IFOURB.NE.-2.AND.NCOMAT.LT.24)KERRE = 146 322 : IF (INPLAS.EQ.23.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.25)KERRE = 146 323 : IF (INPLAS.EQ.24.AND.IFOURB.NE.-2.AND.NCOMAT.LT.19)KERRE = 146 324 : IF (INPLAS.EQ.24.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.20)KERRE = 146 325 : 326 : 327 : ENDIF 328 : 329 : 330 : IF(IFOURB.EQ.1) THEN 331 : KERRE = 194 332 : MOTERR(1:8) = 'FLUAGE' 333 : ENDIF 334 : XMAX=XMAT(5) 335 : IF((INPLAS.EQ.25).OR.(INPLAS.EQ.53)) XMAX=XMAT(7) 336 : IF((INPLAS.EQ.76).OR.(INPLAS.EQ.77)) XMAX=XMAT(7) 337 : IF(INPLAS.EQ.70) XMAX =XMAT(1)*1.D-3 338 : IF(INPLAS.EQ.29) THEN 338 : CALL DERTRA(NYSMAX,YSMAX,TF,XMAX,XMAXV,TO,TO) 339 : ENDIF 340 : * 341 : * TEST SUR XMAX MILL 8/3/91 342 : * 343 : IF (XMAX.EQ.0.D0) THEN 344 : IF(INPLAS.EQ.29) THEN 344 : CALL DERTRA(NYOG,YOG,TF,XMAX,XMAXV,TO,TO) 345 : XMAX=XMAX*1.D-3 346 : ELSE 347 : XMAX=XMAT(1)*1.D-3 348 : ENDIF 349 : ENDIF 350 : * 351 : 30 CONTINUE 352 : C 353 : C----------------------------- 354 : IF (KERRE.NE.0) THEN 355 : GOTO 999 356 : ENDIF 357 : 358 : C 359 : C=========================================================== 360 : C A PARTIR DE MAINTENANT, LES DEFORMATIONS 361 : C DE CISAILLEMENT NE SONT PLUS 362 : C DEFINIES PAR DES GAMA. 363 : C ON DIVISE DONC LES TERMES DE CISAILLEMENT PAR 2. 364 : C CECI NE CONCERNE PAS LE MODELE VISCO-ENDOMMAGEABLE 365 : C DE LEMAITRE (INPLAS=29). 366 : C 367 : C SEULES LES FORMULATIONS SUIVANTES SONT ACCEPTEES PAR CONSTI: 368 : C MFR=1 (MASSIF) 369 : C MFR=5 (COQUES EPAISSES) 370 : C MFR=3 (COQUES MINCES) 371 : C MFR=17 (TUYAUX FISSURES) 372 : C MFR=33 (POREUX) 373 : C 374 : IF (INPLAS.NE.29) THEN 375 : C 376 : C Cas de la formulation massive 377 : C Les termes de cisaillement apparaissent 378 : C au delà de la troisieme composante 379 : C 380 : IF (MFR.EQ.1.OR.MFR.EQ.33) THEN 381 : DO 11 I=4,NSTRS 382 : EPIN0(I)=EPIN0(I)/2d0 383 : 11 CONTINUE 384 : C 385 : C Cas des coques épaisses 386 : C Les termes de cisaillement apparaissent 387 : C au delà de la deuxieme composante 388 : C 389 : ELSE IF (MFR.EQ.5) THEN 390 : DO 12 I=3,NSTRS 391 : EPIN0(I)=EPIN0(I)/2d0 392 : 12 CONTINUE 393 : C 394 : C Cas des coques minces 395 : C Les termes de cisaillement apparaissent 396 : C pour la troisieme et la sixieme composante 397 : C uniquement dans les cas de calculs 398 : C tridimensionnels ou d'analyse de Fourier 399 : C 400 : ELSE IF (MFR.EQ.3) THEN 401 : IF ((IFOURB.EQ.1).OR.(IFOURB.EQ.2)) THEN 402 : EPIN0(3)=EPIN0(3)/2d0 403 : EPIN0(6)=EPIN0(6)/2d0 404 : ENDIF 405 : C 406 : C Reste le cas des tuyaux fissurés (MFR=17) 407 : C 408 : ENDIF 409 : ENDIF 410 : C 411 : C=========================================================== 412 : C 413 : C ---------------- 414 : C INITIALISATION 415 : C ---------------- 416 : ITERO = 0 417 : 6543 CONTINUE 418 : 419 : itero = 1 + itero 420 : if( itero.ne.1) THEN 421 : c write(6,*) 'itero ib igau', itero,ib,igau 422 : dtlibr = .true. 423 : precis = precis * 7. 424 : * write(6,*) ' precision modifiée ', precis 425 : if( itero. gt . 3) then 426 : **** kerre = 460 427 : kerre = 268 428 : return 429 : endif 430 : endif 431 : DTLEFT = DT 432 : TAU = DTLEFT 433 : TI0=T0 434 : TI1=TF 435 : TPOINT=(TF-T0)/DT 436 : ASIG = SQRT(PROCON(SIG0,SIG0,NSTRS)) 437 : ERRABS = PRECIS*ASIG 438 : IF (XMAX.GT.ASIG) ERRABS = PRECIS*XMAX 439 : DO 40 I=1,NSTRS 440 : SIG(I) = SIG0(I) 441 : EPSV(I) = EPIN0(I) 442 : IF (INPLAS.NE.29) DSPT(I) = DSIGT(I)/DT 443 : 40 CONTINUE 444 : * 445 : * iter=0 446 : * if( .NOT.DTLIBR) THEN 447 : * dtminl = ( dt * 1.001 ) / msopua 448 : * r = dtseco / dtprem 449 : * 1245 continue 450 : * iter=iter+1 451 : ** if ( abs ( 1.- R) . gt. 0.001 ) then 452 : * bb = ( 1 - r**(msoupa-10)) / ( 1 - r) * dtprem 453 : * else 454 : * r = 1.d0 455 : * bb = dtprem * ( msoupa - 10) 456 : * endif 457 : * tau = dtprem * dt / bb * 1.0001 458 : * write (6,1234)iter,dtprem,dtseco,dtdeux,r,bb,dt,tau 459 : * if(bb . lt . dt/1.2) THEN 460 : * if( iter.lt.15) then 461 : * r = r + abs ( 1. - r ) / 10. 462 : * else 463 : * kerre = 460 464 : * return 465 : * endif 466 : * go to 1245 467 : * endif 468 : * 1234 format ('it pr se de r b t ta',i2, 7e9.3) 469 : * 470 : * dtx = dt * 1.00001; 471 : * write(6,*) 'avpremdeux r', dtprem,dtdeux,r 471 : * call decoup(-msoupa+10,dtprem/dtx,dtdeux/dtx,r,nn,xde 472 : * $ ,xdf,dtx) 473 : * write(6,*) 'xde xdf de r',xde,xdf,r 474 : * tau = xde / r 475 : * 476 : * endif 477 : C 478 : IF (INPLAS.EQ.29) THEN 479 : C 480 : C================================================ 481 : C Calcul de l increment de deformation totale reel. 482 : C On enleve donc tous les termes qui correspondent 483 : C a l influence de la temperature et de 484 : C l endommagement (travail inverse de ce qui est 485 : C fait dans le procedure increme). 486 : C================================================ 487 : C 488 : ********* materiau dependant de la temperature *********************** 488 : CALL DERTRA(NYOG,YOG,T0,YUNG0,YUNGV0,TO,TO) 488 : CALL DERTRA(NYNU,YNU,T0,ENU0,ENUV0,TO,TO) 489 : XMAT(1)=YUNG0 490 : XMAT(2)=ENU0 491 : C------------------------------------------------ 492 : C Calcul de la matrice de Hooke inverse DD a t=t0 493 : C------------------------------------------------ 493 : CALL ELAST1(2,IFOURB,VAR0,NVARI,XMAT,NCOMAT,YUNGV0, 494 : & ENUV0,XCAR,ICARA,MFR,NSTRS,DD,DDV,KERRE,2,ITHHER) 495 : C 496 : ********* materiau dependant de la temperature *********************** 496 : CALL DERTRA(NYOG,YOG,TF,YUNG1,YUNGV1,TO,TO) 496 : CALL DERTRA(NYNU,YNU,TF,ENU1,ENUV1,TO,TO) 497 : XMAT(1)=YUNG1 498 : XMAT(2)=ENU1 499 : C--------------------------------------------------- 500 : C Calcul de la matrice de Hooke inverse DDINV a T=TF 501 : C--------------------------------------------------- 501 : CALL ELAST1(2,IFOURB,VAR0,NVARI,XMAT,NCOMAT,YUNGV1, 502 : & ENUV1,XCAR,ICARA,MFR,NSTRS,DDINV,DDV,KERRE,2,ITHHER) 503 : *********************************************************************** 504 : C 504 : CALL DERTRA(NYALFA,YALFA,T0,ALFA0,ALFAV0,TO,TO) 504 : CALL DERTRA(NYALFA,YALFA,TF,ALFAF,ALFAVF,TO,TO) 505 : CTEPS=ALFA0*(T0-TREF)-ALFAF*(TF-TREF) 506 : C 507 : C 507 : CALL ZDANUL(DSPT,NSTRS) 508 : AA=1.D0 509 : DO 45 I=1,NSTRS 510 : DSPT(I)=DEPST(I) 511 : IF (I.GT.3) AA=0.D0 512 : DO 46 J=1,NSTRS 513 : DSPT(I)=DSPT(I)+(DDINV(I,J)*SIG0(J)) 514 : DSPT(I)=DSPT(I)-(DD(I,J)*SIG0(J)) 515 : 46 CONTINUE 516 : DSPT(I)=DSPT(I)-(AA*CTEPS) 517 : DSPT(I)=DSPT(I)/DT 518 : 45 CONTINUE 519 : ENDIF 520 : DO 48 I=1,NVARI 521 : 48 VAR(I)=VAR0(I) 522 : C 523 : C --------------------------------------------------------------------- 524 : INV = 0 525 : NSSINC = 0 526 : nitera=0 527 : C --------------------------------------------------------------------- 528 : C DEBUT DES ITERATIONS EN SSINCREMENTS /FIN SI DTLEFT = 0 529 : C --------------------------------------------------------------------- 530 : 70 NSSINC = NSSINC + 1 531 : IF (NSSINC.GT.msoupa) THEN 532 : DTLIBR=.FALSE. 533 : GO TO 6543 534 : * GOTO 999 535 : ENDIF 536 : C 537 : C--------------------------------------------------------------------- 538 : C START OF CALCULATIONS 539 : C_____________________________________________________________________ 540 : IF (MFR.EQ.17.AND.INPLAS.NE.19) GO TO 999 541 : IF(MFR.NE.3.AND.MFR.NE.17.AND.INPLAS.EQ.17) THEN 541 : CALL XXPT1(SIG,EPSV,VAR,EVP1,VARP1,XPM1,XMAT,NSTRS,NVARI, 542 : & NCOMAT,MFR) 543 : ELSE IF(MFR.NE.3.AND.MFR.NE.17.AND.((INPLAS.GE.19.AND. 544 : & INPLAS.LE.24).OR.INPLAS.EQ.61)) THEN 544 : CALL INCRE1(TAU,SIG,EPSV,VAR,EVP1,VARP1,XMAT,NSTRS,NVARI, 545 : & INPLAS,NCOMAT,MFR,FI1,FITAU,TTAU) 546 : ELSE IF(MFR.NE.3.AND.MFR.NE.17.AND.INPLAS.EQ.25) THEN 546 : CALL INCRE2(SIG,VAR,EVP1,VARP1,XMAT,NSTRS,MFR, 547 : & NVARI,NCOMAT) 548 : ELSE IF(MFR.NE.3.AND.MFR.NE.17.AND.INPLAS.EQ.76) THEN 548 : CALL INCRA2(SIG,VAR,EVP1,VARP1,XMAT,NSTRS,MFR, 549 : & NVARI,NCOMAT) 550 : ELSE IF(MFR.NE.3.AND.MFR.NE.17.AND.INPLAS.EQ.77) THEN 550 : CALL INCRB2(SIG,VAR,EVP1,VARP1,XMAT,NSTRS,MFR, 551 : & NVARI,NCOMAT) 552 : ELSE IF(MFR.NE.3.AND.MFR.NE.17.AND.INPLAS.EQ.53) THEN 552 : CALL INCRE5(SIG,VAR,EVP1,VARP1,XMAT,NSTRS,MFR, 553 : & NVARI,NCOMAT) 554 : ELSE IF(MFR.NE.3.AND.INPLAS.EQ.63) THEN 554 : CALL INCRE7(SIG,VAR,DSPT,EVP1,VARP1,XMAT,NSTRS,MFR, 555 : & NVARI,NCOMAT,IFOURB) 556 : ELSE IF(MFR.EQ.3.AND.((INPLAS.GE.19.AND.INPLAS.LE.24) 557 : & .OR.INPLAS.EQ.61)) THEN 557 : CALL INCRE3(TAU,SIG,EPSV,VAR,XMAT,EVP1,VARP1,ALFA,NSTRS, 558 : & NVARI,INPLAS,NCOMAT) 559 : ELSE IF(MFR.EQ.3.AND.INPLAS.EQ.25) THEN 559 : CALL INCRE4(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS 560 : & ,NVARI,NCOMAT) 561 : ELSE IF(MFR.EQ.3.AND.INPLAS.EQ.76) THEN 561 : CALL INCRA4(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS 562 : & ,NVARI,NCOMAT) 563 : ELSE IF(MFR.EQ.3.AND.INPLAS.EQ.77) THEN 563 : CALL INCRB4(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS 564 : & ,NVARI,NCOMAT) 565 : ELSE IF(MFR.EQ.3.AND.INPLAS.EQ.53) THEN 565 : CALL INCRE6(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS, 566 : & NVARI,NCOMAT) 567 : ELSE IF (MFR.NE.3.AND.(INPLAS.EQ.85.OR.INPLAS.EQ.86. 568 : & OR.INPLAS.EQ.84.OR.INPLAS.EQ.102)) THEN 568 : CALL DEVFLO(INPLAS,SIG,EPSV,VAR,XMAT,NCOMAT,NSTRS,NVARI, 569 : & EVP1,VARP1,TAU) 570 : ELSE IF(MFR.NE.3.AND.INPLAS.EQ.70) THEN 570 : CALL INCRE8(SIG,VAR,T0,TF,EVP1,VARP1,XMAT,NSTRS, 571 : & MFR,NVARI,NCOMAT) 572 : C 573 : ELSE IF(MFR.NE.3.AND.MFR.NE.17.AND.INPLAS.EQ.29) THEN 574 : if (nssinc.eq.1) then 575 : C 576 : C----------------------------------------------------------- 577 : C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t0 578 : C ou le materiau est a la temperature TI0 comprise dans [TINF,TSUP] 579 : C----------------------------------------------------------- 579 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 580 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 581 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT,NCOMAT,TI0, 582 : & TINF,TSUP,ITEST,TRUC,NCOURB) 583 : C 584 : IF (ITHHER.EQ.2) THEN 585 : C********** materiau dependant de la temperature ********************** 586 : C---------- Initialisation du tableau XMAT1(NCOMAT) a T=TINF 586 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 587 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 588 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT1,NCOMAT,TINF, 589 : & TO,TO,ITEST,TRUC,NCOURB) 590 : C---------- Initialisation du tableau XMAT2(NCOMAT) a T=TSUP 590 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 591 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 592 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT2,NCOMAT,TSUP, 593 : & TO,TO,ITEST,TRUC,NCOURB) 594 : C********************************************************************** 595 : ENDIF 596 : C-------------------------------------------------------------- 597 : C Calcul de la derivee de la dilatation thermique /temps a t=t0 598 : C-------------------------------------------------------------- 598 : CALL DERTRA(NYALFA,YALFA,TI0,ALFA0,ALFAV0,TO,TO) 598 : CALL ZDANUL(EPSTHD,NSTRS) 599 : CTH=(ALFAV0*TPOINT*(TI0-TREF))+(ALFA0*TPOINT) 600 : DO 47 I=1,3 601 : 47 EPSTHD(I)=CTH 602 : C 602 : CALL XXCREE(TAU,SIG,EPSV,VAR,SIGP1,EVP1,VARP1,EPSTHD, 603 : & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS,NVARI,NCOMAT,NYKX, 604 : & NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,MFR,XCAR,ICARA,IFOURB, 605 : & 2,TI0,TPOINT,TINF,TSUP,ITEST,ITHHER,TRUC,NCOURB) 605 : CALL ESTITO(SIG,NSTRS,VAR,NVARI,YKX,NYKX,NKX,NNKX, 606 : & XMAT,NCOMAT,TI0,TAUX,TRUC,NCOURB) 607 : else 608 : do i=1,nstrs 609 : sigp1(i)=sigp4(i) 610 : evp1(i)=evp4(i) 611 : enddo 612 : do i=1,nvari 613 : varp1(i)=varp4(i) 614 : enddo 615 : endif 616 : ELSE IF(MFR.EQ.17.AND.INPLAS.EQ.19) THEN 616 : CALL TUFINC(TAU,SIG,EPSV,VAR,XMAT,XCAR,EVP1,VARP1,NSTRS, 617 : & NVARI,INPLAS,NCOMAT,KERREU1) 618 : ELSE IF(MFR.EQ.1.AND.INPLAS.EQ.44) THEN 618 : CALL POUDRA(SIG,EPSV,VAR,EVP1,VARP1,XMAT,NSTRS,NVARI, 619 : & NCOMAT,KERRE) 620 : ELSE IF(MFR.EQ.1.AND.INPLAS.EQ.45) THEN 620 : CALL POUDRB(SIG,EPSV,VAR,EVP1,VARP1,XMAT,NSTRS,NVARI, 621 : & NCOMAT,KERRE) 622 : ENDIF 623 : C 624 : NITERA = 0 625 : C -------------------------------------------------------------------- 626 : C DEBUT DES ITERATIONS SUR TAU OPTIMAL /FIN SI RA PETIT 627 : C -------------------------------------------------------------------- 628 : 80 NITERA = NITERA + 1 629 : IF(MFR.EQ.3) GO TO 150 630 : IF(MFR.EQ.17) GO TO 210 631 : IF(INPLAS.EQ.17) THEN 632 : tau2=tau*0.5d0 632 : CALL AVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,EVP1,VARP1, 633 : & XPM1,DSPT,XMAT,NSTRS,NVARI,NCOMAT,IFOURB,IVTEST, 634 : & MFR) 634 : CALL XXPT1(SIG1,EPSV1,VAR1,EVP2,VARP2,XPM2,XMAT,NSTRS, 635 : & NVARI,NCOMAT,MFR) 636 : DO 90 I=1,NSTRS 637 : EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 638 : XPM2(I) = 0.5*(XPM1(I)+XPM2(I)) 639 : 90 CONTINUE 640 : DO 100 I=1,4+NSTRS 641 : 100 VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 641 : CALL AVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,EVP2,VARP2, 642 : & XPM2,DSPT,XMAT,NSTRS,NVARI,NCOMAT,IFOURB,IVTEST, 643 : & MFR) 643 : CALL XXPT1(SIG12,EPSV12,VAR12,EVP3,VARP3,XPM3,XMAT,NSTRS, 644 : & NVARI,NCOMAT,MFR) 644 : CALL AVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13 645 : $ ,EVP3,VARP3,XPM3,DSPT,XMAT,NSTRS,NVARI,NCOMAT 646 : & ,IFOURB,IVTEST,MFR) 646 : CALL XXPT1(SIG13,EPSV13,VAR13,EVP4,VARP4,XPM4,XMAT,NSTRS, 647 : & NVARI,NCOMAT,MFR) 648 : DO I=1,NSTRS 649 : EVP4(I) = 0.5*(EVP3(I)+EVP4(I)) 650 : XPM4(I) = 0.5*(XPM3(I)+XPM4(I)) 651 : enddo 652 : DO I=1,4+NSTRS 653 : VARP4(I) = 0.5*(VARP3(I)+VARP4(I)) 654 : enddo 654 : CALL AVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf 655 : $ ,EVP4,VARP4,XPM4,DSPT,XMAT,NSTRS,NVARI,NCOMAT 656 : & ,IFOURB,IVTEST,MFR) 656 : CALL XXPT1(SIGf,EPinf,VARf,EVP4,VARP4,XPM4,XMAT,NSTRS, 657 : & NVARI,NCOMAT,MFR) 658 : DO I=1,NSTRS 659 : EVP2(I) = (EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 660 : XPM2(I) = (XPM1(I)+XPM4(I))/6d0+XPM3(I)*2d0/3d0 661 : enddo 662 : DO I=1,4+NSTRS 663 : VARP2(I) = (VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 664 : enddo 664 : CALL AVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1 665 : $ ,EVP2,VARP2,XPM2,DSPT,XMAT,NSTRS,NVARI,NCOMAT 666 : & ,IFOURB,IVTEST,MFR) 667 : C--------- 668 : ELSE IF(INPLAS.EQ.44) THEN 669 : tau2=tau*0.5d0 669 : CALL AVANP(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 670 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,NCOMAT) 670 : CALL POUDRA(SIG1,EPSV1,VAR1,EVP2,VARP2,XMAT,NSTRS,NVARI, 671 : & NCOMAT,KERRE) 672 : DO 105 I=1,NSTRS 673 : EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 674 : 105 CONTINUE 675 : VARP2(1) = 0.5*(VARP1(1)+VARP2(1)) 675 : CALL AVANP(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 676 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,NCOMAT) 676 : CALL POUDRA(SIG12,EPSV12,VAR12,EVP3,VARP3,XMAT,NSTRS,NVARI, 677 : & NCOMAT,KERRE) 677 : CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13 678 : $ ,DSPT,EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,NCOMAT) 678 : CALL POUDRA(SIG13,EPSV13,VAR13,EVP4,VARP4,XMAT,NSTRS,NVARI, 679 : & NCOMAT,KERRE) 680 : DO I=1,NSTRS 681 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 682 : enddo 683 : VARP4(1) = 0.5d0*(VARP3(1)+VARP4(1)) 683 : CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf 684 : $ ,DSPT,EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,NCOMAT) 684 : CALL POUDRA(SIGf,EPinf,VARf,EVP4,VARP4,XMAT,NSTRS,NVARI, 685 : & NCOMAT,KERRE) 686 : DO I=1,NSTRS 687 : EVP2(I) = (EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 688 : enddo 689 : VARP2(1) = (VARP1(1)+VARP4(1))/6d0+VARP3(1)*2d0/3d0 689 : CALL AVANP(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1 690 : $ ,DSPT,EVP2,VARP2,XMAT,NSTRS,NVARI,IFOURB,NCOMAT) 691 : C--------- 692 : ELSE IF(INPLAS.EQ.45) THEN 693 : tau2=tau*0.5d0 693 : CALL AVANP(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 694 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,NCOMAT) 694 : CALL POUDRB(SIG1,EPSV1,VAR1,EVP2,VARP2,XMAT,NSTRS,NVARI, 695 : & NCOMAT,KERRE) 696 : DO 106 I=1,NSTRS 697 : EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 698 : 106 CONTINUE 699 : VARP2(1) = 0.5d0*(VARP1(1)+VARP2(1)) 699 : CALL AVANP(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 700 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,NCOMAT) 701 : C--------- 702 : C CALCUL DE LA TAILLE DE GRAIN 703 : C--------- 703 : CALL GRAIN(TAU2,EVP1,EVP2,SIG,SIG12,VAR,VAR12,XMAT,NSTRS, 704 : & NVARI,KERRE) 705 : c 705 : CALL POUDRB(SIG12,EPSV12,VAR12,EVP3,VARP3,XMAT,NSTRS,NVARI, 706 : & NCOMAT,KERRE) 706 : CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIG13,EPSV13,VAR13 707 : & ,DSPT,EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,NCOMAT) 707 : CALL POUDRB(SIG13,EPSV13,VAR13,EVP4,VARP4,XMAT,NSTRS,NVARI, 708 : & NCOMAT,KERRE) 709 : DO I=1,NSTRS 710 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 711 : enddo 712 : VARP4(1) = 0.5d0*(VARP1(1)+VARP2(1)) 712 : CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf 713 : & ,DSPT,EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,NCOMAT) 713 : CALL POUDRB(SIGf,EPinf,VARf,EVP4,VARP4,XMAT,NSTRS,NVARI, 714 : & NCOMAT,KERRE) 715 : DO I=1,NSTRS 716 : EVP2(I) =(EVP3(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 717 : enddo 718 : VARP2(1) =(VARP1(1)+VARP2(1))/6d0+VARP3(1)*2d0/3d0 718 : CALL AVANP(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1 719 : & ,DSPT,EVP2,VARP2,XMAT,NSTRS,NVARI,IFOURB,NCOMAT) 720 : C--------- 721 : C CALCUL DE LA TAILLE DE GRAIN 722 : C--------- 722 : CALL GRAIN(TAU2,EVP3,EVP4,SIG12,SIGf,VAR12,VARf,XMAT,NSTRS, 723 : & NVARI,KERRE) 724 : C--------- 725 : ELSE IF((INPLAS.GE.19.AND.INPLAS.LE.24).OR.INPLAS.EQ.61 726 : & )THEN 727 : tau2=tau*0.5d0 727 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 728 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 728 : CALL INCRE1(TAU,SIG1,EPSV1,VAR1,EVP2,VARP2,XMAT,NSTRS,NVARI, 729 : & INPLAS,NCOMAT,MFR,FI1,FITAU,TTAU) 730 : DO 110 I=1,NSTRS 731 : 110 EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 732 : IF(INPLAS.EQ.24) THEN 733 : DO 115 I=1,NVARI 734 : 115 VARP2(I)=0.5D0*(VARP1(I)+VARP2(I)) 735 : ELSE 736 : DO 120 I=1,2*NSTRS+2 737 : 120 VARP2(I)= 0.5*(VARP1(I) + VARP2(I)) 738 : DO 130 I=2*NSTRS+4,NVARI 739 : 130 VARP2(I)= 0.5*(VARP1(I) + VARP2(I)) 740 : ENDIF 740 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 741 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 741 : CALL INCRE1(TAU2,SIG12,EPSV12,VAR12,EVP3,VARP3,XMAT,NSTRS, 742 : & NVARI,INPLAS,NCOMAT,MFR,FI1,FITAU,TTAU) 742 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 743 : & EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 743 : CALL INCRE1(TAU2,SIG13,EPSV13,VAR13,EVP4,VARP4,XMAT,NSTRS, 744 : & NVARI,INPLAS,NCOMAT,MFR,FI1,FITAU,TTAU) 745 : DO I=1,NSTRS 746 : EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I)) 747 : enddo 748 : IF(INPLAS.EQ.24) THEN 749 : DO I=1,NVARI 750 : VARP4(I)=0.5D0*(VARP3(I)+VARP4(I)) 751 : enddo 752 : ELSE 753 : DO I=1,2*NSTRS+2 754 : VARP4(I)= 0.5D0*(VARP3(I) + VARP4(I)) 755 : enddo 756 : DO I=2*NSTRS+4,NVARI 757 : VARP4(I)= 0.5D0*(VARP3(I) + VARP4(I)) 758 : enddo 759 : ENDIF 759 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VArf,DSPT, 760 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 760 : CALL INCRE1(TAU2,SIGf,EPinf,VARf,EVP4,VARP4,XMAT,NSTRS, 761 : & NVARI,INPLAS,NCOMAT,MFR,FI1,FITAU,TTAU) 762 : DO I=1,NSTRS 763 : EVP2(I) = (EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 764 : enddo 765 : IF(INPLAS.EQ.24) THEN 766 : DO I=1,NVARI 767 : VARP2(I)=(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 768 : enddo 769 : ELSE 770 : DO I=1,2*NSTRS+2 771 : VARP2(I)=(VARP1(I) + VARP4(I))/6d0+VARP3(I)*2d0/3d0 772 : enddo 773 : DO I=2*NSTRS+4,NVARI 774 : VARP2(I)= (VARP1(I) + VARP4(I))/6d0+VARP3(I)*2d0/3d0 775 : enddo 776 : ENDIF 776 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAr1,DSPT,EVP2, 777 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 778 : C--------- 779 : ELSE IF(INPLAS.EQ.25) THEN 780 : tau2=tau*0.5d0 780 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 781 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 781 : CALL INCRE2(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS,MFR,NVARI, 782 : & NCOMAT) 783 : DO 135 I=1,NSTRS 784 : 135 EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 785 : DO 140 I=1,NVARI 786 : 140 VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 786 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 787 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 787 : CALL INCRE2(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS,MFR,NVARI, 788 : & NCOMAT) 788 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 789 : & EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 789 : CALL INCRE2(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS,MFR,NVARI, 790 : & NCOMAT) 791 : DO I=1,NSTRS 792 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 793 : enddo 794 : DO I=1,NVARI 795 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 796 : enddo 796 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 797 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 797 : CALL INCRE2(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS,MFR,NVARI, 798 : & NCOMAT) 799 : DO I=1,NSTRS 800 : EVP2(I) =(EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 801 : enddo 802 : DO I=1,NVARI 803 : VARP2(I) =(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 804 : enddo 804 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 805 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 806 : C--------- 807 : ELSE IF(INPLAS.EQ.76) THEN 808 : tau2=tau*0.5d0 808 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 809 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 809 : CALL INCRA2(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS,MFR,NVARI, 810 : & NCOMAT) 811 : DO 1135 I=1,NSTRS 812 : 1135 EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 813 : DO 1140 I=1,NVARI 814 : 1140 VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 814 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 815 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 815 : CALL INCRA2(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS,MFR,NVARI, 816 : & NCOMAT) 816 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 817 : & EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 817 : CALL INCRA2(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS,MFR,NVARI, 818 : & NCOMAT) 819 : DO I=1,NSTRS 820 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 821 : enddo 822 : DO I=1,NVARI 823 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 824 : enddo 824 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 825 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 825 : CALL INCRA2(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS,MFR,NVARI, 826 : & NCOMAT) 827 : DO I=1,NSTRS 828 : EVP2(I) =(EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 829 : enddo 830 : DO I=1,NVARI 831 : VARP2(I) = (VARP3(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 832 : enddo 832 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 833 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 834 : C--------- 835 : ELSE IF(INPLAS.EQ.77) THEN 836 : tau2=tau*0.5d0 836 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 837 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 837 : CALL INCRB2(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS,MFR,NVARI, 838 : & NCOMAT) 839 : DO I=1,NSTRS 840 : EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 841 : enddo 842 : DO I=1,NVARI 843 : VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 844 : enddo 844 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 845 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 845 : CALL INCRB2(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS,MFR,NVARI, 846 : & NCOMAT) 846 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 847 : & EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 847 : CALL INCRB2(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS,MFR,NVARI, 848 : & NCOMAT) 849 : DO I=1,NSTRS 850 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 851 : enddo 852 : DO I=1,NVARI 853 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 854 : enddo 854 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 855 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 855 : CALL INCRB2(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS,MFR,NVARI, 856 : & NCOMAT) 857 : DO I=1,NSTRS 858 : EVP2(I) = (EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 859 : enddo 860 : DO I=1,NVARI 861 : VARP2(I) =(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 862 : enddo 862 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 863 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 864 : C--------- 865 : ELSE IF(INPLAS.EQ.53) THEN 866 : tau2=tau*0.5d0 866 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 867 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 868 : 868 : CALL INCRE5(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS,MFR, 869 : & NVARI,NCOMAT) 870 : DO 137 I=1,NSTRS 871 : 137 EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 872 : DO 141 I=1,NVARI 873 : 141 VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 873 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 874 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 874 : CALL INCRE5(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS,MFR, 875 : & NVARI,NCOMAT) 875 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 876 : & EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 876 : CALL INCRE5(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS,MFR, 877 : & NVARI,NCOMAT) 878 : DO I=1,NSTRS 879 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 880 : enddo 881 : DO I=1,NVARI 882 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 883 : enddo 883 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 884 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 884 : CALL INCRE5(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS,MFR, 885 : & NVARI,NCOMAT) 886 : DO I=1,NSTRS 887 : EVP2(I) =(EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 888 : enddo 889 : DO I=1,NVARI 890 : VARP2(I) =(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 891 : enddo 891 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 892 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 893 : C--------- 894 : ELSE IF(INPLAS.EQ.85.OR.INPLAS.EQ.86.OR.INPLAS.EQ.84 895 : & .OR.INPLAS.EQ.102) THEN 896 : tau2=tau*0.5d0 896 : CALL ADVFLO(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 897 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT, 898 : & MFR) 898 : CALL DEVFLO(INPLAS,SIG1,EPSV1,VAR1,XMAT,NCOMAT,NSTRS,NVARI 899 : & ,EVP2,VARP2,TAU2) 900 : 901 : DO 739 I=1,NSTRS 902 : 739 EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 903 : DO 741 I=1,NVARI 904 : 741 VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 905 : C >>>> SI JE SUIS SUR LE PREMIER PAS <<<< 906 : C et que j'ai calcule le resultat a la main 907 : C _________________________________________ 908 : IF (VAR(12).GT.1.) THEN 909 : 910 : DO 788 I=1,NVARI 911 : 788 VARP2(I) = VARP1(I) 912 : DO 737 I=1,NSTRS 913 : EVP2(I) = EVP1(I) 914 : 737 CONTINUE 915 : ENDIF 916 : 916 : CALL ADVFLO(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 917 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT,MFR) 917 : CALL DEVFLO(INPLAS,SIG12,EPSV12,VAR12,XMAT,NCOMAT, 918 : $ NSTRS,NVARI,EVP3,VARP3,TAU2) 918 : CALL ADVFLO(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13, 919 : $ DSPT,EVP3, 920 : & VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT,MFR) 920 : CALL DEVFLO(INPLAS,SIG13,EPSV13,VAR13,XMAT,NCOMAT, 921 : $ NSTRS,NVARI,EVP4,VARP4,TAU2) 922 : C print*,'==>4',VARP4(2),VARP4(3) 923 : DO I=1,NSTRS 924 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 925 : enddo 926 : c 927 : DO I=1,NVARI 928 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 929 : enddo 929 : CALL ADVFLO(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf, 930 : $ DSPT,EVP4, 931 : & VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT,MFR) 931 : CALL DEVFLO(INPLAS,SIGf,EPinf,VARf,XMAT,NCOMAT, 932 : $ NSTRS,NVARI,EVP4,VARP4,TAU2) 933 : DO I=1,NSTRS 934 : EVP2(I) = (EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 935 : enddo 936 : c 937 : DO I=1,NVARI 938 : VARP2(I) = (VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 939 : enddo 940 : C print*,'==>5',VARP2(2),VARP2(3) 940 : CALL ADVFLO(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1, 941 : $ DSPT,EVP2, 942 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT,MFR) 943 : C--------- 944 : ELSE IF(INPLAS.EQ.63) THEN 945 : tau2=tau*0.5d0 945 : CALL ADVDDI(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 946 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT, 947 : & MFR) 947 : CALL INCRE7(SIG1,VAR1,DSPT,EVP2,VARP2,XMAT,NSTRS,MFR, 948 : & NVARI,NCOMAT,IFOURB) 949 : DO 138 I=1,NSTRS 950 : 138 EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 951 : DO 142 I=1,NVARI 952 : 142 VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 952 : CALL ADVDDI(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 953 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT,MFR) 953 : CALL INCRE7(SIG12,VAR12,DSPT,EVP3,VARP3,XMAT,NSTRS,MFR, 954 : & NVARI,NCOMAT,IFOURB) 954 : CALL ADVDDI(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13 955 : $ ,DSPT,EVP3, 956 : & VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT,MFR) 956 : CALL INCRE7(SIG13,VAR13,DSPT,EVP4,VARP4,XMAT,NSTRS,MFR, 957 : & NVARI,NCOMAT,IFOURB) 958 : DO I=1,NSTRS 959 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 960 : enddo 961 : DO I=1,NVARI 962 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 963 : enddo 963 : CALL ADVDDI(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf 964 : $ ,DSPT,EVP4, 965 : & VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT,MFR) 965 : CALL INCRE7(SIGf,VARf,DSPT,EVP4,VARP4,XMAT,NSTRS,MFR, 966 : & NVARI,NCOMAT,IFOURB) 967 : DO I=1,NSTRS 968 : EVP2(I) =(EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 969 : enddo 970 : DO I=1,NVARI 971 : VARP2(I) =(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 972 : enddo 972 : CALL ADVDDI(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1 973 : $ ,DSPT,EVP2, 974 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT,MFR) 975 : C-------- 976 : ELSE IF(INPLAS.EQ.70) THEN 977 : tau2=tau*0.5d0 977 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 978 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 979 : t12=(t0+tf)*0.5d0 979 : CALL INCRE8(SIG1,VAR1,T0,T12,EVP2,VARP2,XMAT,NSTRS,MFR, 980 : & NVARI,NCOMAT) 981 : C 982 : DO 177 I=1,NSTRS 983 : 177 EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 984 : DO 178 I=1,NVARI 985 : 178 VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 985 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 986 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 986 : CALL INCRE8(SIG12,VAR12,T12,TF,EVP3,VARP3,XMAT,NSTRS,MFR, 987 : & NVARI,NCOMAT) 987 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 988 : & EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 988 : CALL INCRE8(SIG13,VAR13,T12,TF,EVP4,VARP4,XMAT,NSTRS,MFR, 989 : & NVARI,NCOMAT) 990 : DO I=1,NSTRS 991 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 992 : enddo 993 : DO I=1,NVARI 994 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 995 : enddo 995 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VArf,DSPT, 996 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 996 : CALL INCRE8(SIGf,VARf,T12,TF,EVP4,VARP4,XMAT,NSTRS,MFR, 997 : & NVARI,NCOMAT) 998 : DO I=1,NSTRS 999 : EVP2(I) =(EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 1000 : enddo 1001 : DO I=1,NVARI 1002 : VARP2(I) =(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 1003 : enddo 1003 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAr1,DSPT,EVP2, 1004 : & VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,MFR) 1005 : C--------- 1006 : ELSE IF(INPLAS.EQ.29) THEN 1007 : 1008 : 143 TAU2=TAU/2.D0 1008 : CALL AVANXX(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,SIGP1,EVP1, 1009 : & VARP1,NSTRS,NVARI) 1010 : C 1011 : C----------------------------------------------------------- 1012 : C Mise a jour eventuelle de la nouvelle temperature TI1 1013 : C----------------------------------------------------------- 1014 : C 1015 : DELTAT=TPOINT*TAU2 1016 : TI12=TI0+DELTAT 1017 : C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t+TAU/2 1018 : C ou le materiau est a la temperature TI12 comprise dans [TINF,TSUP] 1019 : C----------------------------------------------------------- 1019 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1020 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 1021 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT,NCOMAT,TI12, 1022 : & TINF,TSUP,ITEST,TRUC,NCOURB) 1023 : C 1024 : IF (ITHHER.EQ.2) THEN 1025 : C********** materiau dependant de la temperature ********************** 1026 : C---------- Initialisation du tableauXMAT1F(NCOMAT) a T=TINF 1026 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1027 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 1028 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT1,NCOMAT,TINF, 1029 : & TO,TO,ITEST,TRUC,NCOURB) 1030 : C---------- Initialisation du tableauXMAT2P(NCOMAT) a T=TSUP 1030 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1031 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 1032 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT2,NCOMAT,TSUP, 1033 : & TO,TO,ITEST,TRUC,NCOURB) 1034 : C********************************************************************** 1035 : ENDIF 1036 : C------------------------------------------------------------------ 1037 : C Calcul de la derivee de la dilatation thermique /temps a t=t+TAU/2 1038 : C------------------------------------------------------------------ 1038 : CALL DERTRA(NYALFA,YALFA,TI12,ALFA1,ALFAV1,TO,TO) 1038 : CALL ZDANUL(EPSTHD,NSTRS) 1039 : CTH=(ALFAV1*TPOINT*(TI12-TREF))+(ALFA1*TPOINT) 1040 : DO 136 I=1,3 1041 : 136 EPSTHD(I)=CTH 1042 : C 1042 : CALL XXCREE(TAU,SIG1,EPSV1,VAR1,SIGP2,EVP2,VARP2,EPSTHD, 1043 : & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS,NVARI,NCOMAT,NYKX, 1044 : & NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,MFR,XCAR,ICARA,IFOURB, 1045 : & 2,TI12,TPOINT,TINF,TSUP,ITEST,ITHHER,TRUC,NCOURB) 1046 : C 1047 : do 1360 i=1,nstrs 1048 : sigp2(i) = 0.5d0* ( sigp2(i)+sigp1(i)) 1049 : evp2(i) = 0.5d0* ( evp2(i)+evp1(i)) 1050 : 1360 continue 1051 : do 1361 i=1,nvari 1052 : varp2(i)= 0.5D0 * ( varp2(i)+varp1(i)) 1053 : 1361 continue 1054 : t=tau2 1054 : CALL AVANXX(TAU2,SIG,EPSV,VAR,SIG12,EPSV12,VAR12,SIGP2, 1055 : & EVP2, VARP2,NSTRS,NVARI) 1056 : if (tau2.ne.t)then 1057 : tau=2d0*tau2 1058 : goto 143 1059 : endif 1060 : 1061 : C 1061 : CALL XXCREE(TAU,SIG12,EPSV12,VAR12,SIGP3,EVP3,VARP3,EPSTHD, 1062 : & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS,NVARI,NCOMAT,NYKX, 1063 : & NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,MFR,XCAR,ICARA,IFOURB, 1064 : & 2,TI12,TPOINT,TINF,TSUP,ITEST,ITHHER,TRUC,NCOURB) 1065 : 1065 : CALL AVANXX(TAU2,SIG12,EPSV12,VAR12,SIG13,EPSV13,VAR13,SIGP3, 1066 : & EVP3, VARP3,NSTRS,NVARI) 1067 : DELTAT=TPOINT*TAU 1068 : TI1=TI0+DELTAT 1069 : C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t+TAU 1070 : C ou le materiau est a la temperature TI1 comprise dans [TINF,TSUP] 1071 : C----------------------------------------------------------- 1071 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1072 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 1073 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT,NCOMAT,TI1, 1074 : & TINF,TSUP,ITEST,TRUC,NCOURB) 1075 : IF (ITHHER.EQ.2) THEN 1076 : C********** materiau dependant de la temperature ********************** 1077 : C---------- Initialisation du tableau XMAT1(NCOMAT) a T=TINF 1077 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1078 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 1079 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT1,NCOMAT,TINF, 1080 : & TO,TO,ITEST,TRUC,NCOURB) 1081 : C---------- Initialisation du tableau XMAT2(NCOMAT) a T=TSUP 1081 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1082 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 1083 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT2,NCOMAT,TSUP, 1084 : & TO,TO,ITEST,TRUC,NCOURB) 1085 : C********************************************************************** 1086 : ENDIF 1087 : C------------------------------------------------------------------ 1088 : C Calcul de la derivee de la dilatation thermique /temps a t=t+TAU 1089 : C------------------------------------------------------------------ 1089 : CALL DERTRA(NYALFA,YALFA,TI1,ALFA1,ALFAV1,TO,TO) 1089 : CALL ZDANUL(EPSTHD,NSTRS) 1090 : CTH=(ALFAV1*TPOINT*(TI1-TREF))+(ALFA1*TPOINT) 1091 : DO 1362 I=1,3 1092 : 1362 EPSTHD(I)=CTH 1093 : C 1093 : CALL XXCREE(TAU,SIG13,EPSV13,VAR13,SIGP4,EVP4,VARP4,EPSTHD, 1094 : & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS,NVARI,NCOMAT,NYKX, 1095 : & NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,MFR,XCAR,ICARA,IFOURB, 1096 : & 2,TI1,TPOINT,TINF,TSUP,ITEST,ITHHER,TRUC,NCOURB) 1097 : 1098 : do 1363 i=1,nstrs 1099 : sigp4(i)= 0.5D0*( sigp4(i)+sigp3(i)) 1100 : evp4(i) =0.5D0*( evp4(i)+ evp3(i)) 1101 : 1363 continue 1102 : do 1364 i=1,nvari 1103 : varp4(i)=0.5D0 * ( varp4(i)+varp3(i)) 1104 : 1364 continue 1104 : call avanxx(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,SIGP4, 1105 : & EVP4, VARP4,NSTRS,NVARI) 1106 : 1106 : CALL XXCREE(TAU,SIG13,EPSV13,VAR13,SIGP4,EVP4,VARP4,EPSTHD, 1107 : & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS,NVARI,NCOMAT,NYKX, 1108 : & NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,MFR,XCAR,ICARA,IFOURB, 1109 : & 2,TI1,TPOINT,TINF,TSUP,ITEST,ITHHER,TRUC,NCOURB) 1110 : DO 145 I=1,NSTRS 1111 : EVP2(I) = (EVP1(I)+EVP4(I))/6.D0+EVP3(I)*2.D0/3.D0 1112 : SIGP2(I)=(SIGP1(I)+SIGP4(I))/6.D0+SIGP3(I)*2.D0/3.D0 1113 : 145 CONTINUE 1114 : DO 148 I=1,NVARI 1115 : 148 VARP2(I)=(VARP1(I)+VARP4(I))/6.D0+VARP3(I)*2.D0/3.D0 1116 : T=TAU 1116 : CALL AVANXX(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,SIGP2,EVP2, 1117 : & VARP2,NSTRS,NVARI) 1118 : c IF (TAU.NE.T) GOTO 143 1119 : ENDIF 1120 : GO TO 250 1121 : C _____________________________________________________________________ 1122 : 150 CONTINUE 1123 : C---------------------------------------------------------------------- 1124 : C CALCULATIONS FOR GENERALISED STRESS/STRAIN FORMULATIONS 1125 : C---------------------------------------------------------------------- 1126 : IF((INPLAS.GE.19.AND.INPLAS.LE.24).OR.INPLAS.EQ.61 1127 : & ) THEN 1128 : tau2=tau*0.5d0 1128 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1129 : & VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1129 : CALL INCRE3(TAU2,SIG1,EPSV1,VAR1,XMAT,EVP2,VARP2,ALFA, 1130 : & NSTRS,NVARI,INPLAS,NCOMAT) 1131 : DO 160 I=1,NSTRS,1 1132 : 160 EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 1133 : IF(INPLAS.EQ.24) THEN 1134 : DO 165 I=1,NVARI 1135 : 165 VARP2(I)=0.5D0*(VARP1(I)+VARP2(I)) 1136 : ELSE 1137 : DO 170 I=1,2*NSTRS+2 1138 : 170 VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1139 : DO 180 I=2*NSTRS+4,NVARI 1140 : 180 VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1141 : ENDIF 1141 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT, 1142 : & EVP2,VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1142 : CALL INCRE3(TAU2,SIG12,EPSV12,VAR12,XMAT,EVP3,VARP3,ALFA, 1143 : & NSTRS,NVARI,INPLAS,NCOMAT) 1143 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13 1144 : $ ,DSPT, 1145 : & EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1145 : CALL INCRE3(TAU2,SIG13,EPSV13,VAR13,XMAT,EVP4,VARP4,ALFA, 1146 : & NSTRS,NVARI,INPLAS,NCOMAT) 1147 : DO I=1,NSTRS,1 1148 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1149 : enddo 1150 : IF(INPLAS.EQ.24) THEN 1151 : DO I=1,NVARI 1152 : VARP4(I)=0.5D0*(VARP3(I)+VARP4(I)) 1153 : enddo 1154 : ELSE 1155 : DO I=1,2*NSTRS+2 1156 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1157 : enddo 1158 : DO I=2*NSTRS+4,NVARI 1159 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1160 : enddo 1161 : ENDIF 1161 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1162 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1162 : CALL INCRE3(TAU2,SIGf,EPinf,VARf,XMAT,EVP4,VARP4,ALFA, 1163 : & NSTRS,NVARI,INPLAS,NCOMAT) 1164 : DO I=1,NSTRS,1 1165 : EVP2(I) =(EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 1166 : enddo 1167 : IF(INPLAS.EQ.24) THEN 1168 : DO I=1,NVARI 1169 : VARP2(I)=(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 1170 : enddo 1171 : ELSE 1172 : DO I=1,2*NSTRS+2 1173 : VARP2(I) =(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 1174 : enddo 1175 : DO I=2*NSTRS+4,NVARI 1176 : VARP2(I) =(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 1177 : enddo 1178 : endif 1178 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT, 1179 : & EVP2,VARp2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1180 : C--------- 1181 : ELSE IF(INPLAS.EQ.25) THEN 1182 : tau2=tau*0.5d0 1182 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT, 1183 : & EVP1,VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1183 : CALL INCRE4(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS, 1184 : & NVARI,NCOMAT) 1185 : DO 190 I=1,NSTRS 1186 : 190 EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 1187 : DO 195 I=1,NVARI 1188 : 195 VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1188 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT, 1189 : & EVP2,VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1189 : CALL INCRE4(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS, 1190 : & NVARI,NCOMAT) 1190 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13 1191 : $ ,DSPT, 1192 : & EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1192 : CALL INCRE4(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS, 1193 : & NVARI,NCOMAT) 1194 : DO I=1,NSTRS 1195 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1196 : enddo 1197 : DO I=1,NVARI 1198 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1199 : enddo 1199 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf 1200 : $ ,DSPT, 1201 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1201 : CALL INCRE4(SIGf,VARf,EVP4,VARP4,XMAT,ALFA,NSTRS, 1202 : & NVARI,NCOMAT) 1203 : DO I=1,NSTRS 1204 : EVP2(I) =(EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 1205 : enddo 1206 : DO I=1,NVARI 1207 : VARP2(I) =(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 1208 : enddo 1208 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1 1209 : $ ,DSPT, 1210 : & EVP2,VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1211 : C--------- 1212 : ELSE IF(INPLAS.EQ.76) THEN 1213 : tua2=tau*0.5d0 1213 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT, 1214 : & EVP1,VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1214 : CALL INCRA4(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS, 1215 : & NVARI,NCOMAT) 1216 : DO 1190 I=1,NSTRS 1217 : 1190 EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 1218 : DO 1195 I=1,NVARI 1219 : 1195 VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 1219 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT, 1220 : & EVP2,VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1220 : CALL INCRA4(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS, 1221 : & NVARI,NCOMAT) 1221 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13 1222 : $ ,DSPT, 1223 : & EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1223 : CALL INCRA4(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS, 1224 : & NVARI,NCOMAT) 1225 : DO I=1,NSTRS 1226 : EVP4(I) = 0.5*(EVP3(I)+EVP4(I)) 1227 : enddo 1228 : DO I=1,NVARI 1229 : VARP4(I) = 0.5*(VARP3(I)+VARP4(I)) 1230 : enddo 1230 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf 1231 : $ ,DSPT, 1232 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1233 : DO I=1,NSTRS 1234 : EVP2(I) = (EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 1235 : enddo 1236 : DO I=1,NVARI 1237 : VARP2(I) = (VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 1238 : enddo 1239 : C--------- 1240 : ELSE IF(INPLAS.EQ.77) THEN 1241 : tau2=tau*0.5d0 1241 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT, 1242 : & EVP1,VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1242 : CALL INCRB4(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS, 1243 : & NVARI,NCOMAT) 1244 : DO 2190 I=1,NSTRS 1245 : 2190 EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 1246 : DO 2195 I=1,NVARI 1247 : 2195 VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 1247 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT, 1248 : & EVP2,VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1248 : CALL INCRB4(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS, 1249 : & NVARI,NCOMAT) 1249 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13 1250 : $ ,DSPT, 1251 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1251 : CALL INCRB4(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS, 1252 : & NVARI,NCOMAT) 1253 : DO I=1,NSTRS 1254 : EVP4(I) = 0.5*(EVP3(I)+EVP4(I)) 1255 : enddo 1256 : DO I=1,NVARI 1257 : VARP4(I) = 0.5*(VARP3(I)+VARP4(I)) 1258 : enddo 1258 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf 1259 : $ ,DSPT, 1260 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1260 : CALL INCRB4(SIGf,VARf,EVP4,VARP4,XMAT,ALFA,NSTRS, 1261 : & NVARI,NCOMAT) 1262 : DO I=1,NSTRS 1263 : EVP2(I) =(EVP3(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 1264 : enddo 1265 : DO I=1,NVARI 1266 : VARP2(I) =(VARP3(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 1267 : enddo 1267 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1 1268 : $ ,DSPT, 1269 : & EVP2,VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1270 : C--------- 1271 : ELSE IF(INPLAS.EQ.53) THEN 1272 : tau2=tau*0.5d0 1272 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT, 1273 : & EVP1,VARP1,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1273 : CALL INCRE6(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS, 1274 : & NVARI,NCOMAT) 1275 : DO 191 I=1,NSTRS 1276 : 191 EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 1277 : 1278 : DO 196 I=1,NVARI 1279 : 196 VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 1279 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT, 1280 : & EVP2,VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1280 : CALL INCRE6(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS, 1281 : & NVARI,NCOMAT) 1281 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13 1282 : $ ,DSPT, 1283 : & EVP3,VARP3,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1283 : CALL INCRE6(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS, 1284 : & NVARI,NCOMAT) 1285 : DO I=1,NSTRS 1286 : EVP4(I) = 0.5*(EVP3(I)+EVP4(I)) 1287 : enddo 1288 : DO I=1,NVARI 1289 : VARP4(I) = 0.5*(VARP3(I)+VARP4(I)) 1290 : enddo 1290 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf 1291 : $ ,DSPT, 1292 : & EVP4,VARP4,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1292 : CALL INCRE6(SIGf,VARf,EVP4,VARP4,XMAT,ALFA,NSTRS, 1293 : & NVARI,NCOMAT) 1294 : DO I=1,NSTRS 1295 : EVP2(I) =(EVP1(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 1296 : enddo 1297 : DO I=1,NVARI 1298 : VARP2(I) =(VARP1(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 1299 : enddo 1299 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1 1300 : $ ,DSPT, 1301 : & EVP2,VARP2,XMAT,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1302 : C--------- 1303 : ENDIF 1304 : GO TO 250 1305 : C 1306 : C CAS D'UN TUYAU FISSURE EN FLUAGE SUIVANT LA LOI "NORTON" 1307 : C 1308 : 210 CONTINUE 1309 : IF(INPLAS.NE.19) GO TO 999 1310 : tau2=tau*0.5d0 1310 : CALL TUFADV(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,VARP1, 1311 : & XMAT,XCAR,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1311 : CALL TUFINC(TAU2,SIG1,EPSV1,VAR1,XMAT,XCAR,EVP2,VARP2,NSTRS, 1312 : & NVARI,INPLAS,NCOMAT,KERREU1) 1313 : DO 220 I=1,6 1314 : EVP2(I) = 0.5*(EVP1(I)+EVP2(I)) 1315 : 220 CONTINUE 1316 : DO 230 I=1,4 1317 : VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 1318 : 230 CONTINUE 1319 : DO 240 I=6,NVARI 1320 : VARP2(I) = 0.5*(VARP1(I)+VARP2(I)) 1321 : 240 CONTINUE 1321 : CALL TUFADV(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12 1322 : $ ,DSPT,EVP2,VARP2, 1323 : & XMAT,XCAR,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1323 : CALL TUFINC(TAU2,SIG12,EPSV12,VAR12,XMAT,XCAR,EVP3,VARP3,NSTRS, 1324 : & NVARI,INPLAS,NCOMAT,KERREU1) 1324 : CALL TUFADV(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13 1325 : $ ,DSPT,EVP3,VARP3, 1326 : & XMAT,XCAR,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1326 : CALL TUFINC(TAU2,SIG13,EPSV13,VAR13,XMAT,XCAR,EVP4,VARP4,NSTRS, 1327 : & NVARI,INPLAS,NCOMAT,KERREU1) 1328 : DO I=1,6 1329 : EVP4(I) = 0.5*(EVP3(I)+EVP4(I)) 1330 : enddo 1331 : DO I=1,4 1332 : VARP4(I) = 0.5*(VARP3(I)+VARP4(I)) 1333 : enddo 1334 : DO I=6,NVARI 1335 : VARP4(I) = 0.5*(VARP3(I)+VARP4(I)) 1336 : enddo 1336 : CALL TUFADV(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf 1337 : $ ,DSPT,EVP4,VARP4, 1338 : & XMAT,XCAR,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1338 : CALL TUFINC(TAU2,SIGf,EPinf,VARf,XMAT,XCAR,EVP4,VARP4,NSTRS, 1339 : & NVARI,INPLAS,NCOMAT,KERREU1) 1340 : DO I=1,6 1341 : EVP2(I) =(EVP3(I)+EVP4(I))/6d0+EVP3(I)*2d0/3d0 1342 : enddo 1343 : DO I=1,4 1344 : VARP2(I) =(VARP3(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 1345 : enddo 1346 : DO I=6,NVARI 1347 : VARP2(I) =(VARP3(I)+VARP4(I))/6d0+VARP3(I)*2d0/3d0 1348 : enddo 1348 : CALL TUFADV(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1 1349 : $ ,DSPT,EVP2,VARP2, 1350 : & XMAT,XCAR,NSTRS,NVARI,IFOURB,INPLAS,NCOMAT) 1351 : C 1352 : C---------------------------------------------------------------------- 1353 : 250 CONTINUE 1354 : C --------------------------------------------------------------------- 1355 : C CALCUL DU RAPPORT : ERREUR CALCULEE / ERREUR ADMISE 1356 : C --------------------------------------------------------------------- 1357 : DO 260 I=1,NSTRS 1358 : 260 XX(I) = SIGF(I)-SIG1(I) 1359 : RA = SQRT(PROCON(XX,XX,NSTRS))/(ERRABS) 1360 : c 1361 : IF (MFR.EQ.17.AND.INPLAS.EQ.19) THEN 1362 : RA=SQRT(XX(1)**2 + XX(6)**2)/ERRABS 1363 : ENDIF 1364 : SQRA = SQRT(RA) 1365 : IF (INPLAS.EQ.29) THEN 1366 : RD = 0.D0 1367 : IF (VARF(3).NE.0.D0.AND.VAR1(3).GT.1.0D-5) THEN 1368 : RD = (VARF(3)-VAR1(3))/VARF(3) 1369 : RD = DABS(RD)/1.D-4 1370 : ENDIF 1371 : RA = DMAX1(RA,RD) 1372 : SQRA = SQRT(RA) 1373 : ENDIF 1374 : C --------------------------------------------------------------------- 1375 : C TEST DE FIN D'ITERATIONS / MISE A JOUR DE TAU /OPTION JECHER 1376 : C DIV =7 BORNE = 2 1377 : C SI SQRA>7 TAU = TAU/7 ET NOUVEL ESSAI 1378 : C SI 2ESTITO(SIG,NSTRS,VAR,NVARI,YKX,NYKX,NKX,NNKX, 1447 : & XMAT,NCOMAT,TI1,TD,TRUC,NCOURB) 1448 : 1449 : IF ((VARF(3).GE.0.96).OR.(TD.LT.1.D0)) THEN 1450 : VARF(3)=1.D0 1451 : TLIFE = DT - (DTLEFT - TAU) 1452 : GOTO 999 1453 : ENDIF 1454 : ENDIF 1455 : C 1456 : C -------------------------------------------------------------------- 1457 : C TEST DE FIN SS INCREMENTS / MISE A JOUR DE TAU 1458 : C si SQRA<1/3 TAU = TAU*3 1459 : C si 1/3 RMAX on vise RA = 1 1462 : C fin des boucles en ss increments si tau = dtleft 1463 : C -------------------------------------------------------------------- 1464 : C 1465 : IF ( TAU.LT.DTLEFT ) THEN 1466 : * DTDEUX=TAU 1467 : DTLEFT = DTLEFT - TAU 1468 : * IF(dtlibr) then 1469 : IF ( FAC*SQRA.LT.1.D0) THEN 1470 : TAU=TAU*FAC 1471 : ELSEIF ( (SQRA.LT.RMIN).OR.(SQRA.GT.RMAX) ) THEN 1472 : TAU=TAU/SQRA 1473 : ENDIF 1474 : * else 1475 : * TAU = TAU * R 1476 : * endif 1477 : IF (TAU.GT.DTLEFT) TAU = DTLEFT 1478 : IF (INPLAS.EQ.29) THEN 1479 : C---------------------------------------------------------------------------- 1480 : C Mise a jour des temperatures 1481 : C TI0 temperature au dedut du pas de sous-incrementation avec TINF C TI1 temperature a la fin du pas de sous-incrementation 1483 : C----------------------------------------------------------------------------- 1484 : TI0=TI1 1485 : DELTAT=TPOINT*TAU 1486 : TI1=TI0+DELTAT 1487 : ENDIF 1488 : 1489 : GOTO 70 1490 : ENDIF 1491 : C 1492 : IF (ABS(TAU-DTLEFT).GT.(TAU/1000.)) THEN 1493 : WRITE ( IOIMP,* ) ' PROBLEME TAU > DTLEFT ' 1494 : KERRE = 223 1495 : ENDIF 1496 : C----------------------------------------------------------------------- 1497 : 999 CONTINUE 1498 : IF(MFR.EQ.3) THEN 1499 : DO 1000 I=1,NSTRS/2 1500 : SIGF( I) =SIGF( I)*THICK 1501 : SIGF(NSTRS/2+I) =SIGF(NSTRS/2+ I)*THICK*THICK/6.0 1502 : * DSIGT( I)=DSIGT( I)*THICK 1503 : * DSIGT(NSTRS/2+I)=DSIGT(NSTRS/2+I)*THICK*THICK/6.0 1504 : 1000 CONTINUE 1505 : ENDIF 1506 : 1507 : C 1508 : C=========================================================== 1509 : C RETOUR A LA DEFINITION NORMALE DES DEFORMATIONS 1510 : C A SAVOIR: LES DEFORMATIONS DE CISAILLEMENT SONT 1511 : C DEFINIES PAR DES GAMA. 1512 : C ON MULTIPLIE DONC LES TERMES DE CISAILLEMENT PAR 2. 1513 : C CECI NE CONCERNE PAS LE MODELE VISCO-ENDOMMAGEABLE 1514 : C DE LEMAITRE (INPLAS=29). 1515 : C 1516 : C SEULES LES FORMULATIONS SUIVANTES SONT ACCEPTEES PAR CONSTI: 1517 : C MFR=1 (MASSIF) 1518 : C MFR=5 (COQUES EPAISSES) 1519 : C MFR=3 (COQUES MINCES) 1520 : C MFR=17 (TUYAUX FISSURES) 1521 : C MFR=33 (POREUX) 1522 : C 1523 : IF (INPLAS.NE.29) THEN 1524 : C 1525 : C Cas de la formulation massive 1526 : C Les termes de cisaillement apparaissent 1527 : C au delà de la troisieme composante 1528 : C 1529 : IF (MFR.EQ.1.OR.MFR.EQ.33) THEN 1530 : DO 14 I=1,NSTRS 1531 : A=1.D0 1532 : IF (I.GT.3) A=2.D0 1533 : EPIN0(I)=EPIN0(I)*A 1534 : EPINF(I)=EPINF(I)*A 1535 : 14 CONTINUE 1536 : C 1537 : C Cas des coques épaisses 1538 : C Les termes de cisaillement apparaissent 1539 : C au delà de la deuxieme composante 1540 : C 1541 : ELSE IF (MFR.EQ.5) THEN 1542 : DO 15 I=1,NSTRS 1543 : A=1.D0 1544 : IF (I.GT.2) A=2.D0 1545 : EPIN0(I)=EPIN0(I)*A 1546 : EPINF(I)=EPINF(I)*A 1547 : 15 CONTINUE 1548 : C 1549 : C Cas des coques minces 1550 : C Les termes de cisaillement apparaissent 1551 : C pour la troisieme et la sixieme composante 1552 : C uniquement dans les cas de calculs 1553 : C tridimensionnels ou d'analyse de Fourier 1554 : C 1555 : ELSE IF (MFR.EQ.3) THEN 1556 : IF ((IFOURB.EQ.1).OR.(IFOURB.EQ.2)) THEN 1557 : DO 16 I=1,NSTRS 1558 : A=1.D0 1559 : IF (I.EQ.3) A=2.D0 1560 : IF (I.EQ.6) A=2.D0 1561 : EPIN0(I)=EPIN0(I)*A 1562 : EPINF(I)=EPINF(I)*A 1563 : 16 CONTINUE 1564 : ENDIF 1565 : C 1566 : C Reste le cas des tuyaux fissurés (MFR=17) 1567 : C 1568 : ENDIF 1569 : ENDIF 1570 : C 1571 : C=========================================================== 1572 : C 1573 : 998 RETURN 1574 : END 1575 : 1576 : 1577 : 1578 : 1579 : 1580 : 1581 : 1582 : 1583 :
© Cast3M 2003 - All rights reserved.
Disclaimer