1 : C CCONST SOURCE PV 11/03/08 21:15:00 6888 2 : SUBROUTINE CCONST(wrk52,wrk53,wrk54,WRK7,WRK8,WRK9, 3 : 1 WRK91,NVARI,NSSINC,INV,IFOURB,T0,TF,FI0,FIF 4 : 4 ,TLIFE,NCOURB,IB,IGAU,NBPGAU,KERREU1,iecou,xecou) 5 : C CONSTI SOURCE BROC 00/12/20 21:15:56 4058 6 : c SUBROUTINE CONSTI(WRK0,WR00,WRK1,WRK5,WRK7,WRK8,WRK9,WTRAV, 7 : c 1 INPLAS,MFR,DT,NSTRS,NVARI,NCOMAT,PRECAS,MSOUPA,JECHER,DTT, 8 : c 2 NSSINC,INV,KERRE,ICARA,IFOURB,NYOG,NYNU,NYALFA,NYSMAX, 9 : c 3 NYN,NYM,NYKK,NYALF1,NYBET1,NYR,NYA,NYKX,NNKX,NYRHO,NSIGY,T0,TF, 10 : c 5 TREF,TLIFE,ITHHER,NCOURB,CMATE,N2EL,N2PTEL,IB,IGAU,EPAIST, 11 : c 7NBPGAU,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,KERREU1) 12 : C 13 : C--------------------------------------------------------------------- 14 : C Objet: Calculer au cours d'un pas de temps DT, l'evolution des 15 : C variables internes a l'aide d'un schema Runge-Kutta 1.2 16 : C --------------------------------------------------------------------- 17 : C MFR1 <- MFR, XCARB <- XCAR, NSTRS1 <- NSTRS, 18 : C 19 : C--------------------------------------------------------------------- 20 : C Entree: INPLAS type de materiau 21 : C MFR indice de la formulation mecanique(seulement massif ou coque 22 : C pour les materiaux endommageables) 23 : C DEPST(NSTRS1) increment des deformations totales 24 : C SIG0(NSTRS1) contraintes initiales 25 : C EPIN0(NSTRS1) deformations viscoplastiques initiales 26 : C VAR0(NVARI) variables internes initiales 27 : C NVARI nombre de variables internes 28 : C YOG(NYOG) courbe du module d'Young en fonction de T°C 29 : C YNU(NYNU) courbe du coefficient de Poisson en fonction de T°C 30 : C SIGY(NSIGY) courbe de la limite elastique en fonction de T°C 31 : C YRHO(NYRHO) courbe de la masse volumique en fonction de T°C 32 : C YALFA(NYALFA) courbe du coeff de dilatation en fonction de T°C 33 : C YN(NYN) 34 : C YM(NYM) 35 : C YKK(NYKK) 36 : C YALFA1(NYALF1) courbes des autres coefficients caracteristiques 37 : C YBETA1(NYBET1) en fonction de la T°C intervenant 38 : C YALF2(NYALF2) dans les lois d'evolution 39 : C YBET2(NYBET2) 40 : C YR(NYR) 41 : C YA(NYA) 42 : C YKX(NYKX) fonction k(X) tabulee en fonction de la temperature 43 : C NKX(NNKX) tableau de pointeurs sur les courbes de k(X) 44 : C XMAT(NCOMAT) materiau 45 : C XCARB(ICARA) caracteristiques geometriques 46 : C YSMAX(NYSMAX) intervient ds. le test de convergence des iter. 47 : C TRUC(NCOURB) tableau de travail 48 : C PRECIS precision relative sur SIGMA 49 : C MSOUPA nombre maximal de sous pas autorises 50 : C JECHER = 0 avancer 51 : C = 1 rechercher sortie avec DTT 52 : C IFOURB = -3 EN DEFORM. PLANES GENER. 53 : C -2 EN CONTR.PLANES 54 : C -1 EN DEFORM. PLANES 55 : C 0 EN AXISYMETRIE 56 : C 1 EN SERIE DE FOURIER 57 : C 2 EN TRIDIM 58 : * CMATE = NOM DU MATERIAU 59 : * VALMAT= TABLEAU DE CARACTERISTIQUES DU MATERIAU 60 : * VALCAR= TABLEAU DE CARACTERISTIQUES GEOMETRIQUES 61 : * N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE 62 : * N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE 63 : * IB = NUMERO DE L ELEMENT COURANT 64 : * IGAU = NUMERO DU POINT COURANT 65 : * EPAIST= EPAISSEUR 66 : * NBPGAU= NBRE DE POINTS DE GAUSS 67 : * MELE = NUMERO DE L ELEMENT FINI 68 : * NPINT = NBRE DE POINTS D INTEGRATION 69 : * NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES 70 : * NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES 71 : * SECT = SECTION 72 : * LHOOK = TAILLE DE LA MATRICE DE HOOKE 73 : C DD(NSTRS1,NSTRS1) matrice de Hooke en fonction de T 74 : C DDV(NSTRS1,NSTRS1) derivee de DD 75 : C DDINV(NSTRS1,NSTRS1) inverse de DD 76 : C T0 temperature a t0 77 : C TF temperature a t0+DT 78 : C FI0 densite de fissions a t0 79 : C FIF densite de fissions a t0+DT 80 : C TREF temperature de reference 81 : C DT pas de temps 82 : C ITHHER = 0 pas de chargement thermique et materiau constant 83 : C = 1 chargement thermique et materiau constant 84 : C = 2 chargement thermique et materiau(T) 85 : C----------------------------------------------------------------------- 86 : C 87 : C----------------------------------------------------------------------- 88 : C Sortie: SIGF(NSTRS1) contraintes finales 89 : C EPINF(NSTRS1) deformations viscoplastiques finales 90 : C VARF(NVARI) variables internes finales 91 : C DTT sous-increment de temps optimal (si JECHER=1) 92 : C TLIFE sous-increment de temps a rupture pour materiau 93 : C viscoplastique endommageable 94 : C NSSINC nombre de sous-increments si JECHER=0 95 : C INV = 1 si inversion 96 : C 0 sinon 97 : C KERRE = 0 si tout OK 98 : C <> 0 si entrees incoherentes 99 : C----------------------------------------------------------------------- 100 : C 101 : IMPLICIT INTEGER(I-N) 102 : IMPLICIT REAL*8(A-H,O-Z) 103 : -INC CCOPTIO 104 : -INC DECHE 105 : 106 : 107 : SEGMENT IECOU 108 : * COMMON/IECOU/NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK, 109 : INTEGER NYOG, NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK, 110 : C INTEGER NYOG, NYNU, NYALFA,NYSMAX,NYN, NYM, NYKK, 111 : 1 NYALF1,NYBET1,NYR , NYA, NYRHO,NSIGY, NNKX,NYKX,icow16, 112 : C . NYALF1,NYBET1,NYR, NYA, NYRHO,NSIGY, NNKX,NYKX, IND, 113 : 2 icow17,icow18,icow19,icow20,icow21,icow22,icow23,icow24, 114 : C . NSOM, NINV, NINCMA,NCOMP, JELEM, LEGAUS,INAT, NCXMAT, 115 : 3 icow25,icow26,icow27,icow28,icow29,icow30,ICARA, 116 : C . LTRAC, MFR, IELE, NHRM, NBNN, NBELEM,ICARA, 117 : 4 icow32,icow33,NSTRS1,MFR1, NBGMAT,NELMAT,MSOUPA, 118 : C . LW2, NDEF, NSTRSS,MFR1, NBGMAT,NELMAT,MSOUPA, 119 : 5 icow39,icow40,icow41,icow42,icow43,icow44,NYOG1, 120 : C . NUMAT1,LENDO, NBBB, NNVARI,KERR1, MELEME,NYOG1, 121 : 6 NYNU1,NYALFT1,NYSMAX1,NYN1,NYM1,NYKK1,NYALF2, 122 : C . NYNU1,NYALFT1,NYSMAX1,NYN1,NYM1,NYKK1,NYALF2, 123 : 7 NYBET2,NYR1,NYA1,NYQ1,NYRHO1,NSIGY1 124 : C . NYBET2,NYR1,NYA1,NYQ1,NYRHO1,NSIGY1 125 : ENDSEGMENT 126 : 127 : 128 : SEGMENT XECOU 129 : * COMMON/XECOU/DTOPTI,TSOM,TCAR,DTT,DT,TREFA,TEMP00 130 : REAL*8 xcow1, xcow2,xcow3,DTT ,DT, TREF, xcow7 131 : C REAL*8 DTOPTI,TSOM, TCAR, DTT, DT, TREFA,TEMP00 132 : ENDSEGMENT 133 : 134 : 135 : C 136 : C 137 : SEGMENT WRK7 138 : REAL*8 F(NCOURB,2),W(NCOURB),TRUC(NCOURB) 139 : ENDSEGMENT 140 : C 141 : SEGMENT WRK8 142 : REAL*8 DD(NSTRS1,NSTRS1),DDV(NSTRS1,NSTRS1),DDINV(NSTRS1,NSTRS1) 143 : REAL*8 DDINVp(NSTRS1,NSTRS1) 144 : ENDSEGMENT 145 : C 146 : SEGMENT WRK9 147 : REAL*8 YOG(NYOG),YNU(NYNU),YALFA(NYALFA),YSMAX(NYSMAX) 148 : REAL*8 YN(NYN),YM(NYM),YKK(NYKK),YALFA1(NYALF1) 149 : REAL*8 YBETA1(NYBET1),YR(NYR),YA(NYA),YKX(NYKX),YRHO(NYRHO) 150 : REAL*8 SIGY(NSIGY) 151 : INTEGER NKX(NNKX) 152 : ENDSEGMENT 153 : C 154 : SEGMENT WRK91 155 : REAL*8 YOG1(NYOG1),YNU1(NYNU1),YALFT1(NYALFT1),YSMAX1(NYSMAX1) 156 : REAL*8 YN1(NYN1),YM1(NYM1),YKK1(NYKK1),YALF2(NYALF2) 157 : REAL*8 YBET2(NYBET2),YR1(NYR1),YA1(NYA1),YQ1(NYQ1),YRHO1(NYRHO1) 158 : REAL*8 SIGY1(NSIGY1) 159 : ENDSEGMENT 160 : C 161 : DIMENSION VAR(100),VAR1(100),VARP1(100),VARP2(100) 162 : DIMENSION CRIGI(12),VAR12(100),VARP3(100) 163 : DIMENSION VARP4(100),VAR13(100),VART(100) 164 : DIMENSION VART1(100) 165 : C 166 : C#MC 21/01/99 : les tableaux doivent dimensionnes en fonction 167 : C du plus grand INFELE(16) (voir elquoi.eso) 168 : DIMENSION SIG(8),SIG1(8),SIG12(8),SIG13(8) 169 : DIMENSION DSPT(8),EPSTHD(8),XX(8) 170 : DIMENSION EVP1(8),EVP2(8),XPM1(8),XPM2(8),EVP3(8),EVP4(8) 171 : DIMENSION XPM3(8),XPM4(8) 172 : DIMENSION SIGP1(8),SIGP2(8), SIGP3(8), SIGP4(8) 173 : DIMENSION EPSV(8),EPSV1(8),EPSV12(8),EPSV13(8) 174 : C 175 : logical dtlibr,iforce 176 : C 177 : NCOMAT = NMATT 178 : C 179 : C 180 : C 181 : iffo=0 182 : * pasbea=0.d0 183 : PRELOC=1.d-8 184 : msoupa=1000000 185 : * write(6,*) 'cconst ncomat',ncomat 186 : * write(6,*) (xmat(iu),iu=1,ncomat+1) 187 : dtlibr=.TRUE. 188 : C Test sur l'identite de toutes les listes de temperatures des coefficients 189 : C intervenant dans les lois d'evolutions non-lineaires des variables internes 190 : IF (INPLAS.EQ.29) THEN 191 : * write(6,*) 'cconst avant test kerre',kerre 191 : CALL TEST(YN,NYN,YM,NYM,YKK,NYKK,YALFA1,NYALF1,YBETA1,NYBET1, 192 : & YR,NYR,YA,NYA,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,ITEST) 193 : * write(6,*) 'cconst avant test kerre',kerre 194 : ENDIF 195 : IF (INPLAS.EQ.142) THEN 196 : * write(6,*) 'cconst avant test1 kerre',kerre 196 : CALL TEST1(YN1,NYN1,YM1,NYM1,YKK1,NYKK1,YALF2,NYALF2,YBET2, 197 : & NYBET2,YR1,NYR1,YA1,NYA1,SIGY1,NSIGY1,YQ1,NYQ1,ITEST) 198 : * write(6,*) 'cconst avant test1 kerre',kerre 199 : ENDIF 200 : C 201 : KERRE = 0 202 : IF (MFR1.NE.1.AND.MFR1.NE.3.AND.MFR1.NE.5.AND.MFR1.NE.17.AND. 203 : & MFR1.NE.33) THEN 204 : KERRE = 99 205 : RETURN 206 : ENDIF 207 : * 208 : * AM 5/5/00 MFR1 = 33 : MODELES 19 A 24 pour le moment 209 : * AM 27/5/3 : ET 44,45 210 : * 211 : IF (MFR1.EQ.33) THEN 212 : IF ((INPLAS.LT.19.OR.INPLAS.GT.24).AND. 213 : & (INPLAS.NE.44.AND.INPLAS.NE.45))THEN 214 : KERRE = 99 215 : RETURN 216 : ENDIF 217 : ENDIF 218 : * 219 : * write(6,*) 'cconst mfr1',mfr1 220 : IF (MFR1.EQ.3) THEN 221 : THICK = XCARB(1) 222 : ALFA = XCARB(2) 223 : ENDIF 224 : * dtprem=0.D0 225 : * dtdeux=0.d0 226 : dtleft= dt 227 : BORNE = 2.0 228 : RMAX = 1.3 229 : RMIN = 0.7 230 : DIV = 7.0 231 : FAC = 3.0 232 : TLIFE = -1.D0 233 : C 234 : C CALCUL DES INCREMENTS DE DEFORMATIONS 235 : C 236 : IF ((INPLAS.NE.29).AND.(INPLAS.NE.142)) THEN 237 : * write(6,*) 'cconst avant calcsig kerre',kerre 237 : CALL CALSIG(DEPST,DDAUX,NSTRS1,CMATE,VALMAT,VALCAR,N2EL, 238 : 1 N2PTEL,MFR1,IFOURB,IB,IGAU,EPAIST,NBPGAU,MELE, 239 : 2 NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC,XGLOB, 240 : 3 D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,IRTD) 241 : * write(6,*) 'cconst apres calcsig kerre',kerre 242 : C 243 : IF (IRTD.NE.1) THEN 244 : KERRE=69 245 : GOTO 998 246 : ENDIF 247 : C 248 : ENDIF 249 : IF (MFR1.EQ.3) THEN 250 : DO 10 I=1,NSTRS1/2 251 : SIG0( I)= SIG0( I)/THICK 252 : SIG0(NSTRS1/2+I)= SIG0(NSTRS1/2+I)*6.0D0/THICK/THICK 253 : IF ((INPLAS.NE.29).AND.(INPLAS.NE.142)) THEN 254 : DSIGT( I)= DSIGT( I)/THICK 255 : DSIGT(NSTRS1/2+I)= DSIGT(NSTRS1/2+I)*6.0D0/THICK/THICK 256 : ELSE 257 : DEPST( I)= DEPST( I) 258 : DEPST(NSTRS1/2+I)= -DEPST(NSTRS1/2+I)*THICK/2.D0 259 : ENDIF 260 : 10 CONTINUE 261 : IF (IFOURB.EQ.-2) THEN 262 : SIG0(2)=0.D0 263 : SIG0(4)=0.D0 264 : IF ((INPLAS.NE.29).AND.(INPLAS.NE.142)) THEN 265 : DSIGT(2)=0.D0 266 : DSIGT(4)=0.D0 267 : ENDIF 268 : ENDIF 269 : ENDIF 270 : C 271 : C REMISE A ZERO DE SIG A L'EXCEPTION DU MOMENT SUIVANT Z ET DE 272 : C L'EFFORT SUIVANT X (MODE I DU CHARGEMENT) 273 : C 274 : IF (MFR1.EQ.17) THEN 275 : SIG0(2) = 0.D0 276 : SIG0(3) = 0.D0 277 : SIG0(4) = 0.D0 278 : SIG0(5) = 0.D0 279 : ENDIF 280 : C 281 : C------------------------------------------ 282 : C CONTROLE DE LA COHERENCE DES ENTREES 283 : C------------------------------------------ 284 : IF (DT.LT.0.0) KERRE = 414 285 : IF (INPLAS.EQ.63.AND.MFR1.NE.1) THEN 286 : KERRE=99 287 : RETURN 288 : ENDIF 289 : IF (DT.EQ.0.0) DT = 1.e-20 290 : MOTERR(1:8) = ' CONST ' 291 : IF (INPLAS.EQ.17) THEN 292 : IF ((NVARI.NE.(6+4*NSTRS1)).AND.(MFR1.NE.5)) KERRE = 146 293 : IF ((NVARI.NE.(10+4*NSTRS1)).AND.(MFR1.EQ.5)) KERRE = 146 294 : IF (IFOURB.NE.-2.AND.NCOMAT.LT.24) KERRE = 146 295 : IF (IFOURB.EQ.-2.AND.NCOMAT.LT.25) KERRE = 146 296 : XMAX=XMAT(8) 297 : GOTO 30 298 : ENDIF 299 : 300 : IF (MFR1.NE.33) THEN 301 : * write(6,*) 'cconst inplas ifourb ncomat',inplas,ifourb,ncomat 302 : IF (INPLAS.EQ.19.AND.IFOURB.NE.-2.AND.NCOMAT.LT. 8)KERRE = 146 303 : IF (INPLAS.EQ.19.AND.IFOURB.EQ.-2.AND.NCOMAT.LT. 9)KERRE = 146 304 : IF (INPLAS.EQ.20.AND.IFOURB.NE.-2.AND.NCOMAT.LT.18)KERRE = 146 305 : IF (INPLAS.EQ.20.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.19)KERRE = 146 306 : IF (INPLAS.EQ.21.AND.IFOURB.NE.-2.AND.NCOMAT.LT.12)KERRE = 146 307 : IF (INPLAS.EQ.21.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.13)KERRE = 146 308 : IF (INPLAS.EQ.22.AND.IFOURB.NE.-2.AND.NCOMAT.LT.12)KERRE = 146 309 : IF (INPLAS.EQ.22.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.14)KERRE = 146 310 : IF (INPLAS.EQ.23.AND.IFOURB.NE.-2.AND.NCOMAT.LT.16)KERRE = 146 311 : IF (INPLAS.EQ.23.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.17)KERRE = 146 312 : IF (INPLAS.EQ.24.AND.IFOURB.NE.-2.AND.NCOMAT.LT.11)KERRE = 146 313 : IF (INPLAS.EQ.24.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.12)KERRE = 146 314 : IF (INPLAS.EQ.25.AND.IFOURB.NE.-2.AND.NCOMAT.LT.26)KERRE = 146 315 : IF (INPLAS.EQ.25.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.27)KERRE = 146 316 : C IF (INPLAS.EQ.29.AND.IFOURB.NE.-2.AND.NCOMAT.LT.13)KERRE = 146 317 : C IF (INPLAS.EQ.29.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.14)KERRE = 146 318 : IF (INPLAS.EQ.44.AND.IFOURB.NE.-2.AND.NCOMAT.LT.20)KERRE = 146 319 : IF (INPLAS.EQ.44.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.21)KERRE = 146 320 : IF (INPLAS.EQ.45.AND.IFOURB.NE.-2.AND.NCOMAT.LT.27)KERRE = 146 321 : IF (INPLAS.EQ.45.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.28)KERRE = 146 322 : IF (INPLAS.EQ.53.AND.IFOURB.NE.-2.AND.NCOMAT.LT.28)KERRE = 146 323 : IF (INPLAS.EQ.53.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.29)KERRE = 146 324 : IF (INPLAS.EQ.61.AND.IFOURB.NE.-2.AND.NCOMAT.LT.18)KERRE = 146 325 : IF (INPLAS.EQ.61.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.19)KERRE = 146 326 : IF (INPLAS.EQ.63.AND.IFOURB.NE.-2.AND.NCOMAT.LT.32)KERRE = 146 327 : IF (INPLAS.EQ.63.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.33)KERRE = 146 328 : IF (INPLAS.EQ.70.AND.IFOURB.NE.-2.AND.NCOMAT.LT.14)KERRE = 146 329 : IF (INPLAS.EQ.70.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.15)KERRE = 146 330 : IF (INPLAS.EQ.76.AND.IFOURB.NE.-2.AND.NCOMAT.LT.26)KERRE = 146 331 : IF (INPLAS.EQ.76.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.27)KERRE = 146 332 : IF (INPLAS.EQ.77.AND.IFOURB.NE.-2.AND.NCOMAT.LT.18)KERRE = 146 333 : IF (INPLAS.EQ.77.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.19)KERRE = 146 334 : IF (INPLAS.EQ.83.AND.IFOURB.NE.-2.AND.NCOMAT.LT.15)KERRE = 146 335 : IF (INPLAS.EQ.83.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.17)KERRE = 146 336 : IF (INPLAS.EQ.84.AND.IFOURB.NE.-2.AND.NCOMAT.LT.13)KERRE = 146 337 : IF (INPLAS.EQ.84.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.14)KERRE = 146 338 : IF (INPLAS.EQ.85.AND.IFOURB.NE.-2.AND.NCOMAT.LT.19)KERRE = 146 339 : IF (INPLAS.EQ.85.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.20)KERRE = 146 340 : IF (INPLAS.EQ.86.AND.IFOURB.NE.-2.AND.NCOMAT.LT.17)KERRE = 146 341 : IF (INPLAS.EQ.86.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.18)KERRE = 146 342 : IF (INPLAS.EQ.102.AND.IFOURB.NE.-2.AND.NCOMAT.LT.25)KERRE = 146 343 : IF (INPLAS.EQ.102.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.26)KERRE = 146 344 : IF (INPLAS.EQ.130.AND.IFOURB.NE.-2.AND.NCOMAT.LT.10)KERRE = 146 345 : IF (INPLAS.EQ.130.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.11)KERRE = 146 346 : IF (INPLAS.EQ.136.AND.IFOURB.NE.-2.AND.NCOMAT.LT.10)KERRE = 146 347 : IF (INPLAS.EQ.136.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.11)KERRE = 146 348 : IF (INPLAS.EQ.137.AND.IFOURB.NE.-2.AND.NCOMAT.LT.10)KERRE = 146 349 : IF (INPLAS.EQ.137.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.11)KERRE = 146 350 : IF (INPLAS.EQ.138.AND.IFOURB.NE.-2.AND.NCOMAT.LT.10)KERRE = 146 351 : IF (INPLAS.EQ.138.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.11)KERRE = 146 352 : IF (INPLAS.EQ.139.AND.IFOURB.NE.-2.AND.NCOMAT.LT.10)KERRE = 146 353 : IF (INPLAS.EQ.139.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.11)KERRE = 146 354 : 355 : C 356 : ELSE 357 : C 358 : C cas MFR1=33 359 : C 360 : 361 : IF (INPLAS.EQ.19.AND.IFOURB.NE.-2.AND.NCOMAT.LT.16)KERRE = 146 362 : IF (INPLAS.EQ.19.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.17)KERRE = 146 363 : IF (INPLAS.EQ.20.AND.IFOURB.NE.-2.AND.NCOMAT.LT.26)KERRE = 146 364 : IF (INPLAS.EQ.20.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.27)KERRE = 146 365 : IF (INPLAS.EQ.21.AND.IFOURB.NE.-2.AND.NCOMAT.LT.20)KERRE = 146 366 : IF (INPLAS.EQ.21.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.21)KERRE = 146 367 : IF (INPLAS.EQ.22.AND.IFOURB.NE.-2.AND.NCOMAT.LT.20)KERRE = 146 368 : IF (INPLAS.EQ.22.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.22)KERRE = 146 369 : IF (INPLAS.EQ.23.AND.IFOURB.NE.-2.AND.NCOMAT.LT.24)KERRE = 146 370 : IF (INPLAS.EQ.23.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.25)KERRE = 146 371 : IF (INPLAS.EQ.24.AND.IFOURB.NE.-2.AND.NCOMAT.LT.19)KERRE = 146 372 : IF (INPLAS.EQ.24.AND.IFOURB.EQ.-2.AND.NCOMAT.LT.20)KERRE = 146 373 : C 374 : ENDIF 375 : C 376 : IF (IFOURB.EQ.1) THEN 377 : KERRE = 194 378 : MOTERR(1:8) = 'FLUAGE' 379 : ENDIF 380 : XMAX=XMAT(5) 381 : IF ((INPLAS.EQ.25).OR.(INPLAS.EQ.53)) XMAX=XMAT(7) 382 : IF ((INPLAS.EQ.76).OR.(INPLAS.EQ.77)) XMAX=XMAT(7) 383 : IF ((INPLAS.EQ.70).OR.(INPLAS.EQ.107)) XMAX=XMAT(1)*1.D-3 384 : IF (INPLAS.EQ.29) THEN 384 : CALL DERTRA(NYSMAX,YSMAX,TF,XMAX,XMAXV,TO,TO) 385 : ENDIF 386 : IF (INPLAS.EQ.142) THEN 386 : CALL DERTRA(NYSMAX1,YSMAX1,TF,XMAX,XMAXV,TO,TO) 387 : ENDIF 388 : C 389 : C TEST SUR XMAX MILL 8/3/91 390 : C 391 : IF (XMAX.EQ.0.D0) THEN 392 : IF (INPLAS.EQ.29) THEN 392 : CALL DERTRA(NYOG,YOG,TF,XMAX,XMAXV,TO,TO) 393 : XMAX=XMAX*1.D-3 394 : ELSEIF (INPLAS.EQ.142) THEN 394 : CALL DERTRA(NYOG1,YOG1,TF,XMAX,XMAXV,TO,TO) 395 : XMAX=XMAX*1.D-3 396 : ELSEIF ((INPLAS.NE.29).AND.(INPLAS.NE.142)) THEN 397 : XMAX=XMAT(1)*1.D-3 398 : ENDIF 399 : ENDIF 400 : C 401 : 30 CONTINUE 402 : C 403 : C----------------------------- 404 : IF (KERRE.NE.0) THEN 405 : GOTO 999 406 : ENDIF 407 : 408 : C 409 : C=========================================================== 410 : C A PARTIR DE MAINTENANT, LES DEFORMATIONS 411 : C DE CISAILLEMENT NE SONT PLUS 412 : C DEFINIES PAR DES GAMA. 413 : C ON DIVISE DONC LES TERMES DE CISAILLEMENT PAR 2. 414 : C CECI NE CONCERNE PAS LE MODELE VISCO-ENDOMMAGEABLE 415 : C DE LEMAITRE (INPLAS=29 ET INPLAS=142). 416 : C 417 : C SEULES LES FORMULATIONS SUIVANTES SONT ACCEPTEES PAR CONSTI: 418 : C MFR1=1 (MASSIF) 419 : C MFR1=5 (COQUES EPAISSES) 420 : C MFR1=3 (COQUES MINCES) 421 : C MFR1=17 (TUYAUX FISSURES) 422 : C MFR1=33 (POREUX) 423 : C 424 : IF ((INPLAS.NE.29).AND.(INPLAS.NE.142)) THEN 425 : C 426 : C Cas de la formulation massive 427 : C Les termes de cisaillement apparaissent 428 : C au delà de la troisieme composante 429 : C 430 : IF (MFR1.EQ.1.OR.MFR1.EQ.33) THEN 431 : DO I=4,NSTRS1 432 : EPIN0(I)=0.5D0*EPIN0(I) 433 : ENDDO 434 : C 435 : C Cas des coques épaisses 436 : C Les termes de cisaillement apparaissent 437 : C au delà de la deuxieme composante 438 : C 439 : ELSE IF (MFR1.EQ.5) THEN 440 : DO I=3,NSTRS1 441 : EPIN0(I)=0.5D0*EPIN0(I) 442 : ENDDO 443 : C 444 : C Cas des coques minces 445 : C Les termes de cisaillement apparaissent 446 : C pour la troisieme et la sixieme composante 447 : C uniquement dans les cas de calculs 448 : C tridimensionnels ou d'analyse de Fourier 449 : C 450 : ELSE IF (MFR1.EQ.3) THEN 451 : IF ((IFOURB.EQ.1).OR.(IFOURB.EQ.2)) THEN 452 : EPIN0(3)=0.5D0*EPIN0(3) 453 : EPIN0(6)=0.5D0*EPIN0(6) 454 : ENDIF 455 : C 456 : C Reste le cas des tuyaux fissurés (MFR1=17) 457 : C 458 : ENDIF 459 : ENDIF 460 : C 461 : C=========================================================== 462 : C 463 : C ---------------- 464 : C INITIALISATION 465 : C ---------------- 466 : ITERO = 0 467 : 6543 CONTINUE 468 : 469 : itero = 1 + itero 470 : if ( itero.ne.1) THEN 471 : if(ib.eq.1.and.igau.eq.1) write(6,*) 'itero ', itero 472 : dtlibr = .true. 473 : preloc = preloc * 7.d0 474 : c write(6,*) ' precision modifiée ', preloc 475 : if (itero.gt.3) then 476 : **** kerre = 460 477 : kerre = 268 478 : return 479 : endif 480 : endif 481 : DTLEFT = DT 482 : TAU = DTLEFT 483 : dtaumi= dtleft / 1500. 484 : TI0=T0 485 : TI1=TF 486 : TPOINT=(TF-T0)/DT 487 : FII0=FI0 488 : FII1=FIF 489 : FPOINT=(FIF-FI0)/DT 490 : ASIG = SQRT(PROCON(SIG0,SIG0,NSTRS1)) 491 : ERRABS = PRELOC*ASIG 492 : IF (XMAX.GT.ASIG) ERRABS = PRELOC*XMAX 493 : DO 40 I=1,NSTRS1 494 : SIG(I) = SIG0(I) 495 : EPSV(I) = EPIN0(I) 496 : IF ((INPLAS.NE.29).AND.(INPLAS.NE.142)) THEN 497 : DSPT(I) = DSIGT(I)/DT 498 : ENDIF 499 : 40 CONTINUE 500 : * 501 : * iter=0 502 : * if ( .NOT.DTLIBR) THEN 503 : * dtminl = ( dt * 1.001 ) / msopua 504 : * r = dtseco / dtprem 505 : * 1245 continue 506 : * iter=iter+1 507 : ** if ( abs ( 1.- R) . gt. 0.001 ) then 508 : * bb = ( 1 - r**(msoupa-10)) / ( 1 - r) * dtprem 509 : * else 510 : * r = 1.d0 511 : * bb = dtprem * ( msoupa - 10) 512 : * endif 513 : * tau = dtprem * dt / bb * 1.0001 514 : * write (6,1234)iter,dtprem,dtseco,dtdeux,r,bb,dt,tau 515 : * if (bb . lt . dt/1.2) THEN 516 : * if ( iter.lt.15) then 517 : * r = r + abs ( 1. - r ) / 10. 518 : * else 519 : * kerre = 460 520 : * return 521 : * endif 522 : * go to 1245 523 : * endif 524 : * 1234 format ('it pr se de r b t ta',i2, 7e9.3) 525 : * 526 : * dtx = dt * 1.00001; 527 : * write(6,*) 'avpremdeux r', dtprem,dtdeux,r 527 : * call decoup(-msoupa+10,dtprem/dtx,dtdeux/dtx,r,nn,xde 528 : * $ ,xdf,dtx) 529 : * write(6,*) 'xde xdf de r',xde,xdf,r 530 : * tau = xde / r 531 : * 532 : * endif 533 : C 534 : IF (INPLAS.EQ.29) THEN 535 : C 536 : C================================================ 537 : C Calcul de l increment de deformation totale reel. 538 : C On enleve donc tous les termes qui correspondent 539 : C a l influence de la temperature et de 540 : C l endommagement (travail inverse de ce qui est 541 : C fait dans le procedure increme). 542 : C================================================ 543 : C 544 : ********* materiau dependant de la temperature *********************** 544 : CALL DERTRA(NYOG,YOG,T0,YUNG0,YUNGV0,TO,TO) 544 : CALL DERTRA(NYNU,YNU,T0,ENU0,ENUV0,TO,TO) 545 : XMAT(1)=YUNG0 546 : XMAT(2)=ENU0 547 : C------------------------------------------------ 548 : C Calcul de la matrice de Hooke inverse DD a t=t0 549 : C------------------------------------------------ 549 : CALL ELAST1(2,IFOURB,VAR0,NVARI,XMAT,NCOMAT,YUNGV0,ENUV0, 550 : & XCARB,ICARA,MFR1,NSTRS1,DD,DDV,KERRE,2,ITHHER) 551 : C 552 : ********* materiau dependant de la temperature *********************** 552 : CALL DERTRA(NYOG,YOG,TF,YUNG1,YUNGV1,TO,TO) 552 : CALL DERTRA(NYNU,YNU,TF,ENU1,ENUV1,TO,TO) 553 : XMAT(1)=YUNG1 554 : XMAT(2)=ENU1 555 : C--------------------------------------------------- 556 : C Calcul de la matrice de Hooke inverse DDINV a T=TF 557 : C--------------------------------------------------- 557 : CALL ELAST1(2,IFOURB,VAR0,NVARI,XMAT,NCOMAT,YUNGV1,ENUV1, 558 : & XCARB,ICARA,MFR1,NSTRS1,DDINV,DDV,KERRE,2,ITHHER) 559 : *********************************************************************** 560 : C 560 : CALL DERTRA(NYALFA,YALFA,T0,ALFA0,ALFAV0,TO,TO) 560 : CALL DERTRA(NYALFA,YALFA,TF,ALFAF,ALFAVF,TO,TO) 561 : CTEPS=ALFA0*(T0-TREF)-ALFAF*(TF-TREF) 562 : C 562 : CALL ZDANUL(DSPT,NSTRS1) 563 : AA=1.D0 564 : DO 45 I=1,NSTRS1 565 : DSPT(I)=DEPST(I) 566 : IF (I.GT.3) AA=0.D0 567 : DO 46 J=1,NSTRS1 568 : DSPT(I)=DSPT(I)+(DDINV(I,J)*SIG0(J)) 569 : DSPT(I)=DSPT(I)-(DD(I,J)*SIG0(J)) 570 : 46 CONTINUE 571 : DSPT(I)=DSPT(I)-(AA*CTEPS) 572 : DSPT(I)=DSPT(I)/DT 573 : 45 CONTINUE 574 : C 575 : ELSEIF (INPLAS.EQ.142) THEN 576 : C 577 : C================================================ 578 : C Calcul de l increment de deformation totale reel. 579 : C On enleve donc tous les termes qui correspondent 580 : C a l influence de la temperature et de 581 : C l endommagement (travail inverse de ce qui est 582 : C fait dans le procedure increme). 583 : C================================================ 584 : C 585 : ********* materiau dependant de la temperature *********************** 585 : CALL DERTRA(NYOG1,YOG1,T0,YUNG0,YUNGV0,TO,TO) 585 : CALL DERTRA(NYNU1,YNU1,T0,ENU0,ENUV0,TO,TO) 586 : XMAT(1)=YUNG0 587 : XMAT(2)=ENU0 588 : C------------------------------------------------ 589 : C Calcul de la matrice de Hooke inverse DD a t=t0 590 : C------------------------------------------------ 590 : CALL ELAST4(2,IFOURB,VAR0,NVARI,XMAT,NCOMAT,YUNGV0,ENUV0, 591 : & XCARB,ICARA,MFR1,NSTRS1,DD,DDV,KERRE,2,ITHHER) 592 : C 593 : ********* materiau dependant de la temperature *********************** 593 : CALL DERTRA(NYOG1,YOG1,TF,YUNG1,YUNGV1,TO,TO) 593 : CALL DERTRA(NYNU1,YNU1,TF,ENU1,ENUV1,TO,TO) 594 : XMAT(1)=YUNG1 595 : XMAT(2)=ENU1 596 : C--------------------------------------------------- 597 : C Calcul de la matrice de Hooke inverse DDINV a T=TF 598 : C--------------------------------------------------- 598 : CALL ELAST4(2,IFOURB,VAR0,NVARI,XMAT,NCOMAT,YUNGV1,ENUV1, 599 : & XCARB,ICARA,MFR1,NSTRS1,DDINV,DDV,KERRE,2,ITHHER) 600 : *********************************************************************** 601 : C 601 : CALL DERTRA(NYALFT1,YALFT1,T0,ALFA0,ALFAV0,TO,TO) 601 : CALL DERTRA(NYALFT1,YALFT1,TF,ALFAF,ALFAVF,TO,TO) 602 : CTEPS=ALFA0*(T0-TREF)-ALFAF*(TF-TREF) 603 : C 603 : CALL ZDANUL(DSPT,NSTRS1) 604 : AA=1.D0 605 : DO I=1,NSTRS1 606 : DSPT(I)=DEPST(I) 607 : IF (I.GT.3) AA=0.D0 608 : DO J=1,NSTRS1 609 : DSPT(I)=DSPT(I)+(DDINV(I,J)*SIG0(J)) 610 : DSPT(I)=DSPT(I)-(DD(I,J)*SIG0(J)) 611 : ENDDO 612 : DSPT(I)=DSPT(I)-(AA*CTEPS) 613 : DSPT(I)=DSPT(I)/DT 614 : ENDDO 615 : ENDIF 616 : DO I=1,NVARI 617 : VAR(I)=VAR0(I) 618 : ENDDO 619 : IF (NVARI.LT.100) THEN 620 : DO I=NVARI+1,100 621 : VAR(I)=0.0D0 622 : ENDDO 623 : ENDIF 624 : 625 : 626 : C 627 : C --------------------------------------------------------------------- 628 : INV = 0 629 : NSSINC = 0 630 : nitera = 1 631 : nopri=0 632 : C --------------------------------------------------------------------- 633 : C DEBUT DES ITERATIONS EN SSINCREMENTS /FIN SI DTLEFT = 0 634 : C --------------------------------------------------------------------- 635 : 70 CONTINUE 636 : iforce=.false. 637 : C if(dtaumi.gt.TAU) THEN 638 : if(dtaumi.gt.TAU.and.nssinc.gt.400) THEN 639 : tau=min(dtaumi,dtleft) 640 : iforce=.true. 641 : endif 642 : NSSINC = NSSINC + 1 643 : nopri = nopri + nitera - 1 644 : IF (NSSINC.GT.msoupa) THEN 645 : DTLIBR=.FALSE. 646 : GOTO 6543 647 : C GOTO 999 648 : ENDIF 649 : C 650 : C--------------------------------------------------------------------- 651 : C START OF CALCULATIONS 652 : C_____________________________________________________________________ 653 : IF (MFR1.EQ.17.AND.INPLAS.NE.19) GOTO 999 654 : IF (MFR1.NE.3.AND.MFR1.NE.17.AND.INPLAS.EQ.17) THEN 654 : CALL XXPT1(SIG,EPSV,VAR,EVP1,VARP1,XPM1,XMAT,NSTRS1,NVARI, 655 : & NCOMAT,MFR1) 656 : ELSE IF (MFR1.NE.3.AND.MFR1.NE.17.AND.((INPLAS.GE.19.AND. 657 : & INPLAS.LE.24).OR.INPLAS.EQ.61.OR.INPLAS.EQ.107)) THEN 658 : C----------------------------------------------------------- 659 : C Mise a jour eventuelle de la nouvelle temperature TI1 et 660 : C de la nouvelle densite de fissions FII1 661 : C----------------------------------------------------------- 662 : C 663 : DELTAT=TPOINT*TAU 664 : TI1=TI0+DELTAT 665 : DELTAF=FPOINT*TAU 666 : FII1=FII0+DELTAF 666 : CALL INCRE1(TAU,SIG,EPSV,VAR,EVP1,VARP1,XMAT,NSTRS1,NVARI, 667 : & INPLAS,NCOMAT,MFR1,FII0,FII1,TI1) 668 : ELSE IF (MFR1.NE.3.AND.MFR1.NE.17.AND.INPLAS.EQ.25) THEN 668 : CALL INCRE2(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFR1,NVARI,NCOMAT) 669 : ELSE IF (MFR1.EQ.1.AND.INPLAS.EQ.130) THEN 669 : CALL INCREP(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFR1, 670 : & NVARI,NCOMAT) 671 : ELSE IF (MFR1.EQ.1.AND.(INPLAS.EQ.136.OR.INPLAS.EQ.137.OR. 672 : a INPLAS.EQ.138.OR.INPLAS.EQ.139)) THEN 672 : CALL INCVAR(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFR1, 673 : & NVARI,NCOMAT,INPLAS) 674 : ELSE IF (MFR1.NE.3.AND.MFR1.NE.17.AND.INPLAS.EQ.76) THEN 674 : CALL INCRA2(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFR1,NVARI,NCOMAT) 675 : ELSE IF (MFR1.NE.3.AND.MFR1.NE.17.AND.INPLAS.EQ.77) THEN 675 : CALL INCRB2(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFR1,NVARI,NCOMAT) 676 : ELSE IF (MFR1.NE.3.AND.MFR1.NE.17.AND.INPLAS.EQ.53) THEN 676 : CALL INCRE5(SIG,VAR,EVP1,VARP1,XMAT,NSTRS1,MFR1,NVARI,NCOMAT) 677 : ELSE IF (MFR1.NE.3.AND.INPLAS.EQ.63) THEN 677 : CALL INCRE7(SIG,VAR,DSPT,EVP1,VARP1,XMAT,NSTRS1,MFR1,NVARI, 678 : & NCOMAT,IFOURB) 679 : ELSE IF (MFR1.EQ.3.AND.((INPLAS.GE.19.AND.INPLAS.LE.24) 680 : & .OR.INPLAS.EQ.61)) THEN 680 : CALL INCRE3(TAU,SIG,EPSV,VAR,XMAT,EVP1,VARP1,ALFA,NSTRS1, 681 : & NVARI,INPLAS,NCOMAT) 682 : ELSE IF (MFR1.EQ.3.AND.INPLAS.EQ.25) THEN 682 : CALL INCRE4(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS1,NVARI,NCOMAT) 683 : ELSE IF (MFR1.EQ.3.AND.INPLAS.EQ.76) THEN 683 : CALL INCRA4(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS1,NVARI,NCOMAT) 684 : ELSE IF (MFR1.EQ.3.AND.INPLAS.EQ.77) THEN 684 : CALL INCRB4(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS1,NVARI,NCOMAT) 685 : ELSE IF (MFR1.EQ.3.AND.INPLAS.EQ.53) THEN 685 : CALL INCRE6(SIG,VAR,EVP1,VARP1,XMAT,ALFA,NSTRS1,NVARI,NCOMAT) 686 : ELSE IF (MFR1.NE.3.AND.(INPLAS.EQ.85.OR.INPLAS.EQ.86. 687 : & OR.INPLAS.EQ.84.OR.INPLAS.EQ.102)) THEN 687 : CALL DEVFLO(INPLAS,SIG,EPSV,VAR,XMAT,NCOMAT,NSTRS1,NVARI,EVP1, 688 : & VARP1,TAU) 689 : ELSE IF (MFR1.NE.3.AND.INPLAS.EQ.70) THEN 689 : CALL INCRE8(SIG,VAR,T0,TF,EVP1,VARP1,XMAT,NSTRS1,MFR1,NVARI, 690 : & NCOMAT) 691 : C 692 : ELSE IF (MFR1.NE.3.AND.MFR1.NE.17.AND.INPLAS.EQ.29) THEN 693 : if (nssinc.eq.1) then 694 : C 695 : C----------------------------------------------------------- 696 : C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t0 697 : C ou le materiau est a la temperature TI0 comprise dans [TINF,TSUP] 698 : C----------------------------------------------------------- 698 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,YALFA1, 699 : & NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 700 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT, 701 : & NCOMAT,TI0,TINF,TSUP,ITEST,TRUC,NCOURB) 702 : C 703 : IF (ITHHER.EQ.2) THEN 704 : C********** materiau dependant de la temperature ********************** 705 : C---------- Initialisation du tableau XMAT1(NCOMAT) a T=TINF 705 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 706 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA, 707 : & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX, 708 : & NKX,NNKX,XMAT1,NCOMAT,TINF,TO,TO,ITEST,TRUC, 709 : & NCOURB) 710 : C---------- Initialisation du tableau XMAT2(NCOMAT) a T=TSUP 710 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 711 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA, 712 : & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX, 713 : & NKX,NNKX,XMAT2,NCOMAT,TSUP,TO,TO,ITEST,TRUC, 714 : & NCOURB) 715 : C********************************************************************** 716 : ENDIF 717 : C-------------------------------------------------------------- 718 : C Calcul de la derivee de la dilatation thermique /temps a t=t0 719 : C-------------------------------------------------------------- 719 : CALL DERTRA(NYALFA,YALFA,TI0,ALFA0,ALFAV0,TO,TO) 719 : CALL ZDANUL(EPSTHD,NSTRS1) 720 : CTH=(ALFAV0*TPOINT*(TI0-TREF))+(ALFA0*TPOINT) 721 : DO I=1,3 722 : EPSTHD(I)=CTH 723 : ENDDO 724 : C 724 : CALL XXCREE(TAU,SIG,EPSV,VAR,SIGP1,EVP1,VARP1,EPSTHD,DSPT, 725 : & XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS1,NVARI,NCOMAT, 726 : & NYKX,NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU,MFR1, 727 : & XCARB,ICARA,IFOURB,2,TI0,TPOINT,TINF,TSUP,ITEST, 728 : & ITHHER,TRUC,NCOURB) 729 : c DO i= 1,6 730 : c WRITE(6,*) 'sigp1(',i,')= ', sigp1(i) 731 : c ENDDO 732 : c DO i= 1,6 733 : c WRITE(6,*) 'evp1(',i,')= ', evp1(i) 734 : c ENDDO 735 : c DO i= 1,6 736 : c WRITE(6,*) 'varp1(',i,')= ', varp1(i) 737 : c ENDDO 737 : CALL ESTITO(SIG,NSTRS1,VAR,NVARI,YKX,NYKX,NKX,NNKX,XMAT, 738 : & NCOMAT,TI0,TAUX,TRUC,NCOURB) 739 : else 740 : do i=1,nstrs 741 : sigp1(i)=sigp4(i) 742 : evp1(i)=evp4(i) 743 : enddo 744 : do i=1,nvari 745 : varp1(i)=varp4(i) 746 : enddo 747 : endif 748 : C 749 : ELSE IF (MFR1.NE.3.AND.MFR1.NE.17.AND.INPLAS.EQ.142) THEN 750 : if (nssinc.eq.1) then 751 : C 752 : C----------------------------------------------------------- 753 : C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t0 754 : C ou le materiau est a la temperature TI0 comprise dans [TINF,TSUP] 755 : C----------------------------------------------------------- 755 : CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1, 756 : & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,NYA1, 757 : & YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,SIGY1,NSIGY1, 758 : & XMAT,NCOMAT,TI0,TINF,TSUP,ITEST) 759 : C 760 : IF (ITHHER.EQ.2) THEN 761 : C********** materiau dependant de la temperature ********************** 762 : C---------- Initialisation du tableau XMAT1(NCOMAT) a T=TINF 762 : CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1, 763 : & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1, 764 : & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,SIGY1, 765 : & NSIGY1,XMAT1,NCOMAT,TINF,TO,TO,ITEST) 766 : C---------- Initialisation du tableau XMAT2(NCOMAT) a T=TSUP 766 : CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1, 767 : & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1, 768 : & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,SIGY1, 769 : & NSIGY1,XMAT1,NCOMAT,TSUP,TO,TO,ITEST) 770 : C********************************************************************** 771 : ENDIF 772 : C-------------------------------------------------------------- 773 : C Calcul de la derivee de la dilatation thermique /temps a t=t0 774 : C-------------------------------------------------------------- 774 : CALL DERTRA(NYALFT1,YALFT1,TI0,ALFA0,ALFAV0,TO,TO) 774 : CALL ZDANUL(EPSTHD,NSTRS1) 775 : CTH=(ALFAV0*TPOINT*(TI0-TREF))+(ALFA0*TPOINT) 776 : DO I=1,3 777 : EPSTHD(I)=CTH 778 : ENDDO 778 : CALL XXCRE1(TAU,SIG,EPSV,VAR,SIGP1,EVP1,VARP1,EPSTHD,DSPT, 779 : & XMAT,XMAT1,XMAT2,NSTRS1,NVARI,NCOMAT,DD,DDV, 780 : & DDINV,DDINVp,YOG1,NYOG1,YNU1,NYNU1,MFR1,XCARB, 781 : & ICARA,IFOURB,2,TI0,TPOINT,TINF,TSUP,ITEST, 782 : & ITHHER,VART,IB,IGAU,kerre) 783 : c DO i= 1,6 784 : c WRITE(6,*) 'sigp1(',i,')= ', sigp1(i) 785 : c ENDDO 786 : c DO i= 1,6 787 : c WRITE(6,*) 'evp1(',i,')= ', evp1(i) 788 : c ENDDO 789 : c DO i= 1,6 790 : c WRITE(6,*) 'varp1(',i,')= ', varp1(i) 791 : c ENDDO 792 : VAR(8)=VART(8) 792 : CALL ESTIT1(SIG,NSTRS1,VAR,NVARI,XMAT,NCOMAT,TI0,TAUX) 793 : else 794 : do i=1,nstrs 795 : sigp1(i)=sigp4(i) 796 : evp1(i)=evp4(i) 797 : enddo 798 : do i=1,nvari 799 : varp1(i)=varp4(i) 800 : enddo 801 : endif 802 : ELSE IF (MFR1.EQ.17.AND.INPLAS.EQ.19) THEN 802 : CALL TUFINC(TAU,SIG,EPSV,VAR,XMAT,XCARB,EVP1,VARP1,NSTRS1, 803 : & NVARI,INPLAS,NCOMAT,KERREU1) 804 : ELSE IF ((MFR1.EQ.1.OR.MFR1.EQ.33).AND.INPLAS.EQ.44) THEN 804 : CALL POUDRA(SIG,EPSV,VAR,EVP1,VARP1,XMAT,NSTRS1,NVARI,NCOMAT, 805 : & KERRE) 806 : ELSE IF ((MFR1.EQ.1.OR.MFR1.EQ.33).AND.INPLAS.EQ.45) THEN 806 : CALL POUDRB(SIG,EPSV,VAR,EVP1,VARP1,XMAT,NSTRS1,NVARI,NCOMAT, 807 : & KERRE) 808 : ENDIF 809 : C 810 : NITERA = 0 811 : C -------------------------------------------------------------------- 812 : C DEBUT DES ITERATIONS SUR TAU OPTIMAL /FIN SI RA PETIT 813 : C -------------------------------------------------------------------- 814 : 80 CONTINUE 815 : iforce=.false. 816 : C WRITE(6,*) 'NITERA', nitera 817 : * if( tau.lt.dtaumi) then 818 : if( tau.lt.dtaumi.and.nssinc.gt.400) then 819 : tau=min(dtaumi,dtleft) 820 : iforce=.true. 821 : endif 822 : IF (MFR1.EQ.3) GOTO 150 823 : IF (MFR1.EQ.17) GOTO 210 824 : IF (INPLAS.EQ.17) THEN 825 : tau2=tau*0.5d0 825 : CALL AVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,EVP1,VARP1, 826 : & XPM1,DSPT,XMAT,NSTRS1,NVARI,NCOMAT,IFOURB,IVTEST, 827 : & MFR1) 827 : CALL XXPT1(SIG1,EPSV1,VAR1,EVP2,VARP2,XPM2,XMAT,NSTRS1, 828 : & NVARI,NCOMAT,MFR1) 829 : DO I=1,NSTRS1 830 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 831 : XPM2(I) = 0.5D0*(XPM1(I)+XPM2(I)) 832 : ENDDO 833 : DO I=1,4+NSTRS1 834 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 835 : ENDDO 835 : CALL AVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,EVP2,VARP2, 836 : & XPM2,DSPT,XMAT,NSTRS1,NVARI,NCOMAT,IFOURB,IVTEST, 837 : & MFR1) 837 : CALL XXPT1(SIG12,EPSV12,VAR12,EVP3,VARP3,XPM3,XMAT,NSTRS1, 838 : & NVARI,NCOMAT,MFR1) 838 : CALL AVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,EVP3, 839 : & VARP3,XPM3,DSPT,XMAT,NSTRS1,NVARI,NCOMAT,IFOURB, 840 : & IVTEST,MFR1) 840 : CALL XXPT1(SIG13,EPSV13,VAR13,EVP4,VARP4,XPM4,XMAT,NSTRS1, 841 : & NVARI,NCOMAT,MFR1) 842 : DO I=1,NSTRS1 843 : EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I)) 844 : XPM4(I) = 0.5D0*(XPM3(I)+XPM4(I)) 845 : enddo 846 : DO I=1,4+NSTRS1 847 : VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I)) 848 : enddo 848 : CALL AVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,EVP4, 849 : & VARP4,XPM4,DSPT,XMAT,NSTRS1,NVARI,NCOMAT,IFOURB, 850 : & IVTEST,MFR1) 850 : CALL XXPT1(SIGf,EPinf,VARf,EVP4,VARP4,XPM4,XMAT,NSTRS1, 851 : & NVARI,NCOMAT,MFR1) 852 : DO I=1,NSTRS1 853 : EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 854 : XPM2(I) = (XPM1(I)+XPM4(I))/6.d0+XPM3(I)*2.d0/3.d0 855 : enddo 856 : DO I=1,4+NSTRS1 857 : VARP2(I) = (VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 858 : enddo 858 : CALL AVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,EVP2,VARP2,XPM2, 859 : & DSPT,XMAT,NSTRS1,NVARI,NCOMAT,IFOURB,IVTEST,MFR1) 860 : C--------- 861 : ELSE IF (INPLAS.EQ.44) THEN 861 : CALL AVANP(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,EVP1, 862 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 862 : CALL POUDRA(SIGf,EPinf,VARf,EVP2,VARP2,XMAT,NSTRS1,NVARI, 863 : & NCOMAT,KERRE) 864 : DO I=1,NSTRS1 865 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 866 : ENDDO 867 : VARP2(1) = 0.5D0*(VARP1(1)+VARP2(1)) 867 : CALL AVANP(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 868 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 869 : * tau2=tau*0.5d0 869 : * CALL AVANP(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 870 : * & VARP1,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 870 : * CALL POUDRA(SIG1,EPSV1,VAR1,EVP2,VARP2,XMAT,NSTRS1,NVARI, 871 : * & NCOMAT,KERRE) 872 : * DO I=1,NSTRS1 873 : * EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 874 : * ENDDO 875 : * VARP2(1) = 0.5D0*(VARP1(1)+VARP2(1)) 875 : * CALL AVANP(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 876 : * & VARP2,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 876 : * CALL POUDRA(SIG12,EPSV12,VAR12,EVP3,VARP3,XMAT,NSTRS1,NVARI, 877 : * & NCOMAT,KERRE) 877 : * CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 878 : * & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 878 : * CALL POUDRA(SIG13,EPSV13,VAR13,EVP4,VARP4,XMAT,NSTRS1,NVARI, 879 : * & NCOMAT,KERRE) 880 : * DO I=1,NSTRS1 881 : * EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 882 : * enddo 883 : * VARP4(1) = 0.5d0*(VARP3(1)+VARP4(1)) 883 : * CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 884 : * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 884 : * CALL POUDRA(SIGf,EPinf,VARf,EVP4,VARP4,XMAT,NSTRS1,NVARI, 885 : * & NCOMAT,KERRE) 886 : * DO I=1,NSTRS1 887 : * EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 888 : * enddo 889 : * VARP2(1) = (VARP1(1)+VARP4(1))/6.d0+VARP3(1)*2.d0/3.d0 889 : * CALL AVANP(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,VARP2, 890 : * & XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 891 : *C--------- 892 : ELSE IF (INPLAS.EQ.45) THEN 892 : CALL AVANP(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,EVP1, 893 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 893 : CALL POUDRB(SIGf,EPinf,VARf,EVP2,VARP2,XMAT,NSTRS1,NVARI, 894 : & NCOMAT,KERRE) 895 : DO I=1,NSTRS1 896 : EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 897 : ENDDO 898 : VARP2(1) = 0.5d0*(VARP1(1)+VARP2(1)) 898 : CALL AVANP(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 899 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 900 : C--------- 901 : C CALCUL DE LA TAILLE DE GRAIN 902 : C--------- 902 : CALL GRAIN(TAU,EVP1,EVP2,SIG,SIG1,VAR,VAR1,XMAT,NSTRS1, 903 : & NVARI,KERRE) 904 : 905 : 906 : * tau2=tau*0.5d0 906 : * CALL AVANP(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 907 : * & VARP1,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 907 : * CALL POUDRB(SIG1,EPSV1,VAR1,EVP2,VARP2,XMAT,NSTRS1,NVARI, 908 : * & NCOMAT,KERRE) 909 : * DO I=1,NSTRS1 910 : * EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 911 : * ENDDO 912 : * VARP2(1) = 0.5d0*(VARP1(1)+VARP2(1)) 912 : * CALL AVANP(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 913 : * & VARP2,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 914 : *C--------- 915 : *C CALCUL DE LA TAILLE DE GRAIN 916 : *C--------- 916 : * CALL GRAIN(TAU2,EVP1,EVP2,SIG,SIG12,VAR,VAR12,XMAT,NSTRS1, 917 : * & NVARI,KERRE) 918 : *c 918 : * CALL POUDRB(SIG12,EPSV12,VAR12,EVP3,VARP3,XMAT,NSTRS1,NVARI, 919 : * & NCOMAT,KERRE) 919 : * CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIG13,EPSV13,VAR13,DSPT, 920 : * & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 920 : * CALL POUDRB(SIG13,EPSV13,VAR13,EVP4,VARP4,XMAT,NSTRS1,NVARI, 921 : * & NCOMAT,KERRE) 922 : * DO I=1,NSTRS1 923 : * EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 924 : * enddo 925 : * VARP4(1) = 0.5d0*(VARP1(1)+VARP2(1)) 925 : * CALL AVANP(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 926 : * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 926 : * CALL POUDRB(SIGf,EPinf,VARf,EVP4,VARP4,XMAT,NSTRS1,NVARI, 927 : * & NCOMAT,KERRE) 928 : * DO I=1,NSTRS1 929 : * EVP2(I) =(EVP3(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 930 : * enddo 931 : * VARP2(1) =(VARP1(1)+VARP2(1))/6.d0+VARP3(1)*2.d0/3.d0 931 : * CALL AVANP(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,VARP2, 932 : * & XMAT,NSTRS1,NVARI,IFOURB,NCOMAT) 933 : *C--------- 934 : *C CALCUL DE LA TAILLE DE GRAIN 935 : *C--------- 935 : * CALL GRAIN(TAU2,EVP3,EVP4,SIG12,SIGf,VAR12,VARf,XMAT,NSTRS1, 936 : * & NVARI,KERRE) 937 : *C--------- 938 : ELSE IF ((INPLAS.GE.19.AND.INPLAS.LE.24).OR.INPLAS.EQ.61.OR. 939 : & INPLAS.EQ.107) THEN 940 : tau2=tau*0.5d0 940 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 941 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 942 : C----------------------------------------------------------- 943 : C Mise a jour eventuelle de la nouvelle temperature TI1 et 944 : C de la nouvelle densite de fissions FII1 945 : C----------------------------------------------------------- 946 : C 947 : DELTAT=TPOINT*TAU 948 : TI1=TI0+DELTAT 949 : DELTAF=FPOINT*TAU 950 : FII1=FII0+DELTAF 951 : IF (INPLAS.EQ.107) VAR1(3)=VAR(3) 951 : CALL INCRE1(TAU,SIG1,EPSV1,VAR1,EVP2,VARP2,XMAT,NSTRS1, 952 : & NVARI,INPLAS,NCOMAT,MFR1,FII0,FII1,TI1) 953 : DO I=1,NSTRS1 954 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 955 : ENDDO 956 : IF (INPLAS.EQ.24.OR.INPLAS.EQ.107) THEN 957 : IF (INPLAS.EQ.107) VARPBU=VARP2(3) 958 : DO I=1,NVARI 959 : VARP2(I)=0.5D0*(VARP1(I)+VARP2(I)) 960 : ENDDO 961 : ELSE 962 : DO I=1,2*NSTRS1+2 963 : VARP2(I)= 0.5D0*(VARP1(I) + VARP2(I)) 964 : ENDDO 965 : DO I=2*NSTRS1+4,NVARI 966 : VARP2(I)= 0.5D0*(VARP1(I) + VARP2(I)) 967 : ENDDO 968 : ENDIF 969 : C----------------------------------------------------------- 970 : C Mise a jour eventuelle de la nouvelle temperature TI1 et 971 : C de la nouvelle densite de fissions FII1 972 : C----------------------------------------------------------- 973 : C 974 : DELTAT=TPOINT*TAU2 975 : TI12=TI0+DELTAT 976 : DELTAF=FPOINT*TAU2 977 : FII12=FII0+DELTAF 977 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 978 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 979 : IF (INPLAS.EQ.107) VAR12(3)=VAR(3) 979 : CALL INCRE1(TAU2,SIG12,EPSV12,VAR12,EVP3,VARP3,XMAT,NSTRS1, 980 : & NVARI,INPLAS,NCOMAT,MFR1,FII0,FII12,TI12) 981 : C----------------------------------------------------------- 982 : C Mise a jour eventuelle de la nouvelle temperature TI1 et 983 : C de la nouvelle densite de fissions FII1 984 : C----------------------------------------------------------- 985 : C 986 : TI1=TI12+DELTAT 987 : FII1=FII12+DELTAF 987 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 988 : & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 988 : CALL INCRE1(TAU2,SIG13,EPSV13,VAR13,EVP4,VARP4,XMAT,NSTRS1, 989 : & NVARI,INPLAS,NCOMAT,MFR1,FII12,FII1,TI1) 990 : DO I=1,NSTRS1 991 : EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I)) 992 : enddo 993 : IF (INPLAS.EQ.24.OR.INPLAS.EQ.107) THEN 994 : DO I=1,NVARI 995 : VARP4(I)=0.5D0*(VARP3(I)+VARP4(I)) 996 : enddo 997 : ELSE 998 : DO I=1,2*NSTRS1+2 999 : VARP4(I)= 0.5D0*(VARP3(I) + VARP4(I)) 1000 : enddo 1001 : DO I=2*NSTRS1+4,NVARI 1002 : VARP4(I)= 0.5D0*(VARP3(I) + VARP4(I)) 1003 : enddo 1004 : ENDIF 1004 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1005 : & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1006 : C----------------------------------------------------------- 1007 : C Mise a jour eventuelle de la nouvelle temperature TI1 et 1008 : C de la nouvelle densite de fissions FII1 1009 : C----------------------------------------------------------- 1010 : C 1011 : DELTAT=TPOINT*TAU2 1012 : TI12=TI0+DELTAT 1013 : DELTAF=FPOINT*TAU2 1014 : FII12=FII0+DELTAF 1015 : IF (INPLAS.EQ.107) VARf(3)=VAR(3) 1015 : CALL INCRE1(TAU2,SIGf,EPinf,VARf,EVP4,VARP4,XMAT,NSTRS1, 1016 : & NVARI,INPLAS,NCOMAT,MFR1,FII0,FII12,TI12) 1017 : DO I=1,NSTRS1 1018 : EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1019 : enddo 1020 : IF (INPLAS.EQ.24.OR.INPLAS.EQ.107) THEN 1021 : DO I=1,NVARI 1022 : VARP2(I)=(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1023 : enddo 1024 : IF (INPLAS.EQ.107) VARP2(3)=VARPBU 1025 : ELSE 1026 : DO I=1,2*NSTRS1+2 1027 : VARP2(I)=(VARP1(I) + VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1028 : enddo 1029 : DO I=2*NSTRS1+4,NVARI 1030 : VARP2(I)= (VARP1(I) + VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1031 : enddo 1032 : ENDIF 1032 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAr1,DSPT,EVP2, 1033 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1034 : IF(INPLAS.EQ.107) VARf(3)=VAR1(3) 1035 : C--------- 1036 : ELSE IF (INPLAS.EQ.25) THEN 1037 : tau2=tau*0.5d0 1037 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1038 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1038 : CALL INCRE2(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFR1,NVARI, 1039 : & NCOMAT) 1040 : DO I=1,NSTRS1 1041 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1042 : ENDDO 1043 : DO I=1,NVARI 1044 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1045 : ENDDO 1045 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1046 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1046 : CALL INCRE2(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFR1,NVARI, 1047 : & NCOMAT) 1047 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1048 : & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1048 : CALL INCRE2(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1049 : & NCOMAT) 1050 : DO I=1,NSTRS1 1051 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1052 : enddo 1053 : DO I=1,NVARI 1054 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1055 : enddo 1055 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1056 : & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1056 : CALL INCRE2(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1057 : & NCOMAT) 1058 : DO I=1,NSTRS1 1059 : EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1060 : enddo 1061 : DO I=1,NVARI 1062 : VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1063 : enddo 1063 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1064 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1065 : C--------- 1066 : ELSE IF (INPLAS.EQ.130) THEN 1067 : tau2=tau*0.5d0 1067 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1068 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1068 : CALL INCREP(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFR1,NVARI, 1069 : & NCOMAT) 1070 : DO I=1,NSTRS1 1071 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1072 : ENDDO 1073 : DO I=1,NVARI 1074 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1075 : ENDDO 1075 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1076 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1076 : CALL INCREP(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFR1,NVARI, 1077 : & NCOMAT) 1077 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1078 : & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1078 : CALL INCREP(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1079 : & NCOMAT) 1080 : DO I=1,NSTRS1 1081 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1082 : enddo 1083 : DO I=1,NVARI 1084 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1085 : enddo 1085 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1086 : & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1086 : CALL INCREP(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1087 : & NCOMAT) 1088 : DO I=1,NSTRS1 1089 : EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1090 : enddo 1091 : DO I=1,NVARI 1092 : VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1093 : enddo 1093 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1094 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1095 : C--------- 1096 : C--------- LOI CHAB_SINH_R, CHAB_SINH_X (Runge Kuta 2-3) 1097 : ELSE IF (INPLAS.EQ.136.OR.INPLAS.EQ.137.OR. 1098 : a INPLAS.EQ.138.OR.INPLAS.EQ.139) THEN 1099 : tau2=tau*0.5d0 1100 : C write(6,*)'première entrée dans advac' 1100 : CALL ADVAR(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1101 : & DEPST,VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1102 : C write(6,*)'sortie de advac' 1103 : C write(6,*)'seconde entrée dans increp' 1103 : CALL INCVAR(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFR1,NVARI, 1104 : & NCOMAT,INPLAS) 1105 : C write(6,*)'sortie de increp' 1106 : DO I=1,NSTRS1 1107 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1108 : ENDDO 1109 : DO I=1,2 1110 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1111 : ENDDO 1112 : C write(6,*)'seconde entrée dans advac' 1112 : CALL ADVAR(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1113 : & DEPST,VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1114 : C write(6,*)'sortie de advac' 1115 : C write(6,*)'troisième entrée entrée dans increp' 1115 : CALL INCVAR(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFR1,NVARI, 1116 : & NCOMAT,INPLAS) 1117 : C write(6,*)'sortie de increp' 1118 : C write(6,*)'troisième entrée dans advac' 1118 : CALL ADVAR(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1119 : & EVP3,DEPST,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1120 : C write(6,*)'sortie de advac' 1121 : C write(6,*)'quatrième entrée dans increp' 1121 : CALL INCVAR(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1122 : & NCOMAT,INPLAS) 1123 : C write(6,*)'sortie de increp' 1124 : DO I=1,NSTRS1 1125 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1126 : enddo 1127 : DO I=1,2 1128 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1129 : enddo 1130 : C write(6,*)'quatrième entrée dans advac' 1130 : CALL ADVAR(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1131 : & EVP4,DEPST,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1132 : C write(6,*)'sortie de advac' 1133 : C write(6,*)'cinquième entrée dans increp' 1133 : CALL INCVAR(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1134 : & NCOMAT,INPLAS) 1135 : C write(6,*)'sortie de increp' 1136 : DO I=1,NSTRS1 1137 : EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1138 : enddo 1139 : DO I=1,2 1140 : VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1141 : enddo 1142 : C write(6,*)'cinquième entrée dans advac' 1142 : CALL ADVAR(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1143 : & DEPST,VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1144 : C write(6,*)'sortie de advac' 1145 : C--------- 1146 : C--------- 1147 : ELSE IF (INPLAS.EQ.76) THEN 1147 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,EVP1, 1148 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1148 : CALL INCRA2(SIGf,VARf,EVP2,VARP2,XMAT,NSTRS1,MFR1,NVARI, 1149 : & NCOMAT) 1150 : DO I=1,NSTRS1 1151 : EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 1152 : ENDDO 1153 : DO I=1,NVARI 1154 : VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1155 : ENDDO 1155 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1156 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1157 : * tau2=tau*0.5d0 1157 : * CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1158 : * & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1158 : * CALL INCRA2(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFR1,NVARI, 1159 : * & NCOMAT) 1160 : * DO I=1,NSTRS1 1161 : * EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 1162 : * ENDDO 1163 : * DO I=1,NVARI 1164 : * VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1165 : * ENDDO 1165 : * CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1166 : * & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1166 : * CALL INCRA2(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFR1,NVARI, 1167 : * & NCOMAT) 1167 : * CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1168 : * & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1168 : * CALL INCRA2(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1169 : * & NCOMAT) 1170 : * DO I=1,NSTRS1 1171 : * EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1172 : * enddo 1173 : * DO I=1,NVARI 1174 : * VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1175 : * enddo 1175 : * CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1176 : * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1176 : * CALL INCRA2(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1177 : * & NCOMAT) 1178 : * DO I=1,NSTRS1 1179 : * EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1180 : * enddo 1181 : * DO I=1,NVARI 1182 : * VARP2(I) = (VARP3(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1183 : * enddo 1183 : * CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1184 : * & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1185 : C--------- 1186 : ELSE IF (INPLAS.EQ.77) THEN 1186 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,EVP1, 1187 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1187 : CALL INCRB2(SIGf,VARf,EVP2,VARP2,XMAT,NSTRS1,MFR1,NVARI, 1188 : & NCOMAT) 1189 : DO I=1,NSTRS1 1190 : EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 1191 : enddo 1192 : DO I=1,NVARI 1193 : VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1194 : enddo 1194 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1195 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1196 : 1197 : * tau2=tau*0.5d0 1197 : * CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1198 : * & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1198 : * CALL INCRB2(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFR1,NVARI, 1199 : * & NCOMAT) 1200 : * DO I=1,NSTRS1 1201 : * EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 1202 : * enddo 1203 : * DO I=1,NVARI 1204 : * VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1205 : * enddo 1205 : * CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1206 : * & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1206 : * CALL INCRB2(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFR1,NVARI, 1207 : * & NCOMAT) 1207 : * CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1208 : * & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1208 : * CALL INCRB2(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1209 : * & NCOMAT) 1210 : * DO I=1,NSTRS1 1211 : * EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1212 : * enddo 1213 : * DO I=1,NVARI 1214 : * VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1215 : * enddo 1215 : * CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1216 : * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1216 : * CALL INCRB2(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1217 : * & NCOMAT) 1218 : * DO I=1,NSTRS1 1219 : * EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1220 : * enddo 1221 : * DO I=1,NVARI 1222 : * VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1223 : * enddo 1223 : * CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1224 : * & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1225 : C--------- 1226 : ELSE IF (INPLAS.EQ.53) THEN 1227 : tau2=tau*0.5d0 1227 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1228 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1228 : CALL INCRE5(SIG1,VAR1,EVP2,VARP2,XMAT,NSTRS1,MFR1,NVARI, 1229 : & NCOMAT) 1230 : DO I=1,NSTRS1 1231 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1232 : ENDDO 1233 : DO I=1,NVARI 1234 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1235 : ENDDO 1235 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1236 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1236 : CALL INCRE5(SIG12,VAR12,EVP3,VARP3,XMAT,NSTRS1,MFR1,NVARI, 1237 : & NCOMAT) 1237 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1238 : & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1238 : CALL INCRE5(SIG13,VAR13,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1239 : & NCOMAT) 1240 : DO I=1,NSTRS1 1241 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1242 : enddo 1243 : DO I=1,NVARI 1244 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1245 : enddo 1245 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1246 : & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1246 : CALL INCRE5(SIGf,VARf,EVP4,VARP4,XMAT,NSTRS1,MFR1,NVARI, 1247 : & NCOMAT) 1248 : DO I=1,NSTRS1 1249 : EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1250 : enddo 1251 : DO I=1,NVARI 1252 : VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1253 : enddo 1253 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1254 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1255 : C--------- 1256 : ELSE IF (INPLAS.EQ.85.OR.INPLAS.EQ.86.OR.INPLAS.EQ.84.OR. 1257 : & INPLAS.EQ.102) THEN 1258 : tau2=tau*0.5d0 1258 : CALL ADVFLO(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1259 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT, 1260 : & MFR1) 1260 : CALL DEVFLO(INPLAS,SIG1,EPSV1,VAR1,XMAT,NCOMAT,NSTRS1,NVARI, 1261 : & EVP2,VARP2,TAU2) 1262 : DO I=1,NSTRS1 1263 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1264 : ENDDO 1265 : DO I=1,NVARI 1266 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1267 : ENDDO 1268 : C >>>> SI JE SUIS SUR LE PREMIER PAS <<<< 1269 : C et que j'ai calcule le resultat a la main 1270 : C _________________________________________ 1271 : IF (VAR(12).GT.1.D0) THEN 1272 : C 1273 : DO I=1,NVARI 1274 : VARP2(I) = VARP1(I) 1275 : ENDDO 1276 : DO I=1,NSTRS1 1277 : EVP2(I) = EVP1(I) 1278 : ENDDO 1279 : ENDIF 1280 : C 1280 : CALL ADVFLO(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1281 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT, 1282 : & MFR1) 1282 : CALL DEVFLO(INPLAS,SIG12,EPSV12,VAR12,XMAT,NCOMAT,NSTRS1, 1283 : & NVARI,EVP3,VARP3,TAU2) 1283 : CALL ADVFLO(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1284 : & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1285 : & NCOMAT,MFR1) 1285 : CALL DEVFLO(INPLAS,SIG13,EPSV13,VAR13,XMAT,NCOMAT,NSTRS1, 1286 : & NVARI,EVP4,VARP4,TAU2) 1287 : C print*,'==>4',VARP4(2),VARP4(3) 1288 : DO I=1,NSTRS1 1289 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1290 : enddo 1291 : C 1292 : DO I=1,NVARI 1293 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1294 : enddo 1294 : CALL ADVFLO(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1295 : & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1296 : & NCOMAT,MFR1) 1296 : CALL DEVFLO(INPLAS,SIGf,EPinf,VARf,XMAT,NCOMAT,NSTRS1,NVARI, 1297 : & EVP4,VARP4,TAU2) 1298 : DO I=1,NSTRS1 1299 : EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1300 : enddo 1301 : C 1302 : DO I=1,NVARI 1303 : VARP2(I) = (VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1304 : enddo 1305 : C print*,'==>5',VARP2(2),VARP2(3) 1305 : CALL ADVFLO(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1306 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT, 1307 : & MFR1) 1308 : C---------- 1309 : ELSE IF (INPLAS.EQ.63) THEN 1310 : tau2=tau*0.5d0 1310 : CALL ADVDDI(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1311 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT, 1312 : & MFR1) 1312 : CALL INCRE7(SIG1,VAR1,DSPT,EVP2,VARP2,XMAT,NSTRS1,MFR1, 1313 : & NVARI,NCOMAT,IFOURB) 1314 : DO I=1,NSTRS1 1315 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1316 : ENDDO 1317 : DO I=1,NVARI 1318 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1319 : ENDDO 1319 : CALL ADVDDI(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1320 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT, 1321 : & MFR1) 1321 : CALL INCRE7(SIG12,VAR12,DSPT,EVP3,VARP3,XMAT,NSTRS1,MFR1, 1322 : & NVARI,NCOMAT,IFOURB) 1322 : CALL ADVDDI(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1323 : & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1324 : & NCOMAT,MFR1) 1324 : CALL INCRE7(SIG13,VAR13,DSPT,EVP4,VARP4,XMAT,NSTRS1,MFR1, 1325 : & NVARI,NCOMAT,IFOURB) 1326 : DO I=1,NSTRS1 1327 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1328 : enddo 1329 : DO I=1,NVARI 1330 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1331 : enddo 1331 : CALL ADVDDI(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1332 : & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1333 : & NCOMAT,MFR1) 1333 : CALL INCRE7(SIGf,VARf,DSPT,EVP4,VARP4,XMAT,NSTRS1,MFR1, 1334 : & NVARI,NCOMAT,IFOURB) 1335 : DO I=1,NSTRS1 1336 : EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1337 : enddo 1338 : DO I=1,NVARI 1339 : VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1340 : enddo 1340 : CALL ADVDDI(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1341 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT, 1342 : & MFR1) 1343 : C-------- 1344 : ELSE IF (INPLAS.EQ.70) THEN 1345 : tau2=tau*0.5d0 1345 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1346 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1347 : t12=(t0+tf)*0.5d0 1347 : CALL INCRE8(SIG1,VAR1,T0,T12,EVP2,VARP2,XMAT,NSTRS1,MFR1, 1348 : & NVARI,NCOMAT) 1349 : C 1350 : DO I=1,NSTRS1 1351 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1352 : ENDDO 1353 : DO I=1,NVARI 1354 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1355 : ENDDO 1355 : CALL ADVAN1(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1356 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1356 : CALL INCRE8(SIG12,VAR12,T12,TF,EVP3,VARP3,XMAT,NSTRS1,MFR1, 1357 : & NVARI,NCOMAT) 1357 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1358 : & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1358 : CALL INCRE8(SIG13,VAR13,T12,TF,EVP4,VARP4,XMAT,NSTRS1,MFR1, 1359 : & NVARI,NCOMAT) 1360 : DO I=1,NSTRS1 1361 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1362 : enddo 1363 : DO I=1,NVARI 1364 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1365 : enddo 1365 : CALL ADVAN1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VArf,DSPT, 1366 : & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1366 : CALL INCRE8(SIGf,VARf,T12,TF,EVP4,VARP4,XMAT,NSTRS1,MFR1, 1367 : & NVARI,NCOMAT) 1368 : DO I=1,NSTRS1 1369 : EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1370 : enddo 1371 : DO I=1,NVARI 1372 : VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1373 : enddo 1373 : CALL ADVAN1(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAr1,DSPT,EVP2, 1374 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,MFR1) 1375 : C--------- 1376 : ELSE IF (INPLAS.EQ.29) THEN 1377 : C 1378 : 143 TAU2=0.5D0*TAU 1379 : C write(6,*) 'tau=',tau 1380 : C write(6,*) 'NSSINC=',NSSINC 1381 : * if (ib.eq.1.and.igau.eq.1)write (6,*) ' tau ' ,tau 1381 : CALL AVANXX(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,SIGP1,EVP1, 1382 : & VARP1,NSTRS1,NVARI) 1383 : c write(6,*) 'varp1(3)=',varp1(3) 1384 : c Do i=1,6 1385 : c write(6,*) 'sig1(',i,')=',sig1(i) 1386 : c enddo 1387 : c Do i=1,6 1388 : c write(6,*) 'epsv1(',i,')=',epsv1(i) 1389 : c enddo 1390 : c Do i=1,7 1391 : c write(6,*) 'var1(',i,')=',var1(i) 1392 : c enddo 1393 : * if (ib.eq.1.and.igau.eq.1) 1394 : * $ write(6,*)'sig1(1) sig2 sig3',sig1(1),sig1(2),sig1(3) 1395 : aap = MAX(ABS(SIG1(1)-SIG(1)),ABS(SIG1(2)-SIG(2))) 1396 : aap = max ( aap,ABS (Sig1(3)-SIG(3))) 1397 : IF ( aap . gt . XMAX * 5.) THEN 1398 : * write(6,*)'sig1(1) sig2 sig3',sig1(1),sig1(2),sig1(3) 1399 : rap = aap / xmax 1400 : TAU= TAU / rap 1401 : * if (ib.eq.1.and.igau.eq.1)write(6,*)'rap tau' 1402 : go to 143 1403 : * do I=1,nstrs 1404 : * sig1(i)=XMAX*100. 1405 : * sigf(I)=xmax*200. 1406 : * enddo 1407 : * go to 250 1408 : endif 1409 : C 1410 : C----------------------------------------------------------- 1411 : C Mise a jour eventuelle de la nouvelle temperature TI1 1412 : C----------------------------------------------------------- 1413 : C 1414 : DELTAT=TPOINT*TAU2 1415 : TI12=TI0+DELTAT 1416 : C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t+TAU/2 1417 : C ou le materiau est a la temperature TI12 comprise dans [TINF,TSUP] 1418 : C----------------------------------------------------------- 1418 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK,YALFA1, 1419 : & NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA,NYALFA, 1420 : & YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX,XMAT, 1421 : & NCOMAT,TI12,TINF,TSUP,ITEST,TRUC,NCOURB) 1422 : C 1423 : IF (ITHHER.EQ.2) THEN 1424 : C********** materiau dependant de la temperature ********************** 1425 : C---------- Initialisation du tableauXMAT1F(NCOMAT) a T=TINF 1425 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1426 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA, 1427 : & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX, 1428 : & NKX,NNKX,XMAT1,NCOMAT,TINF,TO,TO,ITEST,TRUC, 1429 : & NCOURB) 1430 : C---------- Initialisation du tableauXMAT2P(NCOMAT) a T=TSUP 1430 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1431 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA, 1432 : & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX, 1433 : & NKX,NNKX,XMAT2,NCOMAT,TSUP,TO,TO,ITEST,TRUC, 1434 : & NCOURB) 1435 : C********************************************************************** 1436 : ENDIF 1437 : C------------------------------------------------------------------ 1438 : C Calcul de la derivee de la dilatation thermique /temps a t=t+TAU/2 1439 : C------------------------------------------------------------------ 1439 : CALL DERTRA(NYALFA,YALFA,TI12,ALFA1,ALFAV1,TO,TO) 1439 : CALL ZDANUL(EPSTHD,NSTRS1) 1440 : CTH=(ALFAV1*TPOINT*(TI12-TREF))+(ALFA1*TPOINT) 1441 : DO I=1,3 1442 : EPSTHD(I)=CTH 1443 : ENDDO 1444 : C 1445 : c DO I=1,3 1446 : c WRITE(6,*) 'sig1(',I,')= ',sig1(I) 1447 : c ENDDO 1447 : CALL XXCREE(TAU,SIG1,EPSV1,VAR1,SIGP2,EVP2,VARP2,EPSTHD, 1448 : & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS1,NVARI, 1449 : & NCOMAT,NYKX,NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU, 1450 : & MFR1,XCARB,ICARA,IFOURB,2,TI12,TPOINT,TINF,TSUP, 1451 : & ITEST,ITHHER,TRUC,NCOURB) 1452 : c Do i=1,3 1453 : c write(6,*) 'sigp2(',i,')=',sigp2(i) 1454 : c enddo 1455 : C 1456 : do i=1,nstrs 1457 : sigp2(i) = 0.5d0* ( sigp2(i)+sigp1(i)) 1458 : evp2(i) = 0.5d0* ( evp2(i)+evp1(i)) 1459 : enddo 1460 : do i=1,nvari 1461 : varp2(i)= 0.5D0 * ( varp2(i)+varp1(i)) 1462 : enddo 1463 : t=tau2 1463 : CALL AVANXX(TAU2,SIG,EPSV,VAR,SIG12,EPSV12,VAR12,SIGP2,EVP2, 1464 : & VARP2,NSTRS1,NVARI) 1465 : c Do i=1,6 1466 : c write(6,*) 'sig12(',i,')=',sig12(i) 1467 : c enddo 1468 : c Do i=1,6 1469 : c write(6,*) 'epsv12(',i,')=',epsv12(i) 1470 : c enddo 1471 : c Do i=1,7 1472 : c write(6,*) 'var12(',i,')=',var12(i) 1473 : c enddo 1474 : if (tau2.ne.t) then 1475 : tau=2.d0*tau2 1476 : goto 143 1477 : endif 1478 : * if (ib.eq.1.and.igau.eq.1) 1479 : * $ write(6,*)'SIg1(1) SIg2 sig3',sig12(1),sig12(2),sig12(3) 1480 : aap = MAX(ABS(SIG12(1)-SIG(1)),ABS(SIG12(2)-SIG(2))) 1481 : aap = max ( aap,ABS (Sig12(3)-SIG(3))) 1482 : IF ( aap . gt . XMAX * 5.) THEN 1483 : * write(6,*)'SIg12(1) SIg12 SI1g3',sig12(1),sig12(2),sig12(3) 1484 : rap = aap / xmax 1485 : TAU= TAU / rap 1486 : * if (ib.eq.1.and.igau.eq.1)write(6,*)'rap tau' 1487 : go to 143 1488 : * do I=1,nstrs 1489 : * sig1(i)=XMAX*100. 1490 : * sigf(I)=xmax*200. 1491 : * enddo 1492 : * go to 250 1493 : endif 1494 : C 1494 : CALL XXCREE(TAU,SIG12,EPSV12,VAR12,SIGP3,EVP3,VARP3,EPSTHD, 1495 : & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS1,NVARI, 1496 : & NCOMAT,NYKX,NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU, 1497 : & MFR1,XCARB,ICARA,IFOURB,2,TI12,TPOINT,TINF,TSUP, 1498 : & ITEST,ITHHER,TRUC,NCOURB) 1498 : CALL AVANXX(TAU2,SIG12,EPSV12,VAR12,SIG13,EPSV13,VAR13, 1499 : & SIGP3,EVP3,VARP3,NSTRS1,NVARI) 1500 : DELTAT=TPOINT*TAU 1501 : TI1=TI0+DELTAT 1502 : C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t+TAU 1503 : C ou le materiau est a la temperature TI1 comprise dans [TINF,TSUP] 1504 : C----------------------------------------------------------- 1504 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1505 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA,YALFA, 1506 : & NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX,NKX,NNKX, 1507 : & XMAT,NCOMAT,TI1,TINF,TSUP,ITEST,TRUC,NCOURB) 1508 : IF (ITHHER.EQ.2) THEN 1509 : C********** materiau dependant de la temperature ********************** 1510 : C---------- Initialisation du tableau XMAT1(NCOMAT) a T=TINF 1510 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1511 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA, 1512 : & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX, 1513 : & NKX,NNKX,XMAT1,NCOMAT,TINF,TO,TO,ITEST,TRUC, 1514 : & NCOURB) 1515 : C---------- Initialisation du tableau XMAT2(NCOMAT) a T=TSUP 1515 : CALL INITT(YOG,NYOG,YNU,NYNU,YN,NYN,YM,NYM,YKK,NYKK, 1516 : & YALFA1,NYALF1,YBETA1,NYBET1,YR,NYR,YA,NYA, 1517 : & YALFA,NYALFA,YRHO,NYRHO,SIGY,NSIGY,YKX,NYKX, 1518 : & NKX,NNKX,XMAT2,NCOMAT,TSUP,TO,TO,ITEST,TRUC, 1519 : & NCOURB) 1520 : C********************************************************************** 1521 : ENDIF 1522 : C------------------------------------------------------------------ 1523 : C Calcul de la derivee de la dilatation thermique /temps a t=t+TAU 1524 : C------------------------------------------------------------------ 1524 : CALL DERTRA(NYALFA,YALFA,TI1,ALFA1,ALFAV1,TO,TO) 1524 : CALL ZDANUL(EPSTHD,NSTRS1) 1525 : CTH=(ALFAV1*TPOINT*(TI1-TREF))+(ALFA1*TPOINT) 1526 : DO I=1,3 1527 : EPSTHD(I)=CTH 1528 : ENDDO 1529 : C 1529 : CALL XXCREE(TAU,SIG13,EPSV13,VAR13,SIGP4,EVP4,VARP4,EPSTHD, 1530 : & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS1,NVARI, 1531 : & NCOMAT,NYKX,NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU, 1532 : & MFR1,XCARB,ICARA,IFOURB,2,TI1,TPOINT,TINF,TSUP, 1533 : & ITEST,ITHHER,TRUC,NCOURB) 1534 : do i=1,nstrs 1535 : sigp4(i)= 0.5D0*( sigp4(i)+sigp3(i)) 1536 : evp4(i) =0.5D0*( evp4(i)+ evp3(i)) 1537 : enddo 1538 : do i=1,nvari 1539 : varp4(i)=0.5D0 * ( varp4(i)+varp3(i)) 1540 : enddo 1540 : call avanxx(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,SIGP4, 1541 : & EVP4,VARP4,NSTRS1,NVARI) 1541 : CALL XXCREE(TAU,SIG13,EPSV13,VAR13,SIGP4,EVP4,VARP4,EPSTHD, 1542 : & DSPT,XMAT,XMAT1,XMAT2,YKX,NKX,NSTRS1,NVARI, 1543 : & NCOMAT,NYKX,NNKX,DD,DDV,DDINV,YOG,NYOG,YNU,NYNU, 1544 : & MFR1,XCARB,ICARA,IFOURB,2,TI1,TPOINT,TINF,TSUP, 1545 : & ITEST,ITHHER,TRUC,NCOURB) 1546 : DO I=1,NSTRS1 1547 : EVP2(I) = (EVP1(I)+EVP4(I))/6.D0+EVP3(I)*2.D0/3.D0 1548 : SIGP2(I)=(SIGP1(I)+SIGP4(I))/6.D0+SIGP3(I)*2.D0/3.D0 1549 : ENDDO 1550 : DO I=1,NVARI 1551 : VARP2(I)=(VARP1(I)+VARP4(I))/6.D0+VARP3(I)*2.D0/3.D0 1552 : ENDDO 1553 : T=TAU 1553 : CALL AVANXX(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,SIGP2,EVP2, 1554 : & VARP2,NSTRS1,NVARI) 1555 : c Do i=1,6 1556 : c write(6,*) 'sig1(',i,')=',sig1(i) 1557 : c enddo 1558 : c Do i=1,6 1559 : c write(6,*) 'epsv1(',i,')=',epsv1(i) 1560 : c enddo 1561 : c Do i=1,3 1562 : c write(6,*) 'var1(',i,')=',var1(i) 1563 : c enddo 1564 : c IF (TAU.NE.T) GOTO 143 1565 : C--------- 1566 : ELSE IF (INPLAS.EQ.142) THEN 1567 : C 1568 : 144 TAU2=0.5D0*TAU 1569 : C write(6,*) 'tau=',tau 1570 : C write(6,*) 'NSSINC=',NSSINC 1571 : * if (ib.eq.1.and.igau.eq.1)write (6,*) ' tau ' ,tau 1571 : CALL AVANX1(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,SIGP1,EVP1, 1572 : & VARP1,NSTRS1,NVARI) 1573 : c Do i=2,4 1574 : c write(6,*) 'varp1(',i,')=',varp1(i) 1575 : c enddo 1576 : c Do i=1,6 1577 : c write(6,*) 'sig1(',i,')=',sig1(i) 1578 : c enddo 1579 : c Do i=1,6 1580 : c write(6,*) 'epsv1(',i,')=',epsv1(i) 1581 : c enddo 1582 : c Do i=1,7 1583 : c write(6,*) 'var1(',i,')=',var1(i) 1584 : c enddo 1585 : aap = MAX(ABS(SIG1(1)-SIG(1)),ABS(SIG1(2)-SIG(2))) 1586 : aap = max ( aap,ABS (Sig1(3)-SIG(3))) 1587 : IF ( aap . gt . XMAX * 5.) THEN 1588 : * write(6,*)'sig1(1) sig2 sig3',sig1(1),sig1(2),sig1(3) 1589 : rap = aap / xmax 1590 : TAU= TAU / rap 1591 : go to 144 1592 : * do I=1,nstrs 1593 : * sig1(i)=XMAX*100. 1594 : * sigf(I)=xmax*200. 1595 : * enddo 1596 : * go to 250 1597 : endif 1598 : C 1599 : C----------------------------------------------------------- 1600 : C Mise a jour eventuelle de la nouvelle temperature TI1 1601 : C----------------------------------------------------------- 1602 : C 1603 : DELTAT=TPOINT*TAU2 1604 : TI12=TI0+DELTAT 1605 : C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t+TAU/2 1606 : C ou le materiau est a la temperature TI12 comprise dans [TINF,TSUP] 1607 : C----------------------------------------------------------- 1607 : CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1, 1608 : & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1,NYA1, 1609 : & YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,SIGY1,NSIGY1, 1610 : & XMAT,NCOMAT,TI12,TINF,TSUP,ITEST) 1611 : C 1612 : IF (ITHHER.EQ.2) THEN 1613 : C********** materiau dependant de la temperature ********************** 1614 : C---------- Initialisation du tableauXMAT1F(NCOMAT) a T=TINF 1614 : CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1, 1615 : & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1, 1616 : & NYA1,YQ1,NYQ1,YALFT2,NYALFT1,YRHO1,NYRHO1, 1617 : & SIGY1,NSIGY1,XMAT1,NCOMAT,TINF,TO,TO,ITEST) 1618 : C---------- Initialisation du tableauXMAT2P(NCOMAT) a T=TSUP 1618 : CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1, 1619 : & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1, 1620 : & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1, 1621 : & SIGY1,NSIGY1,XMAT2,NCOMAT,TSUP,TO,TO,ITEST) 1622 : C********************************************************************** 1623 : ENDIF 1624 : C------------------------------------------------------------------ 1625 : C Calcul de la derivee de la dilatation thermique /temps a t=t+TAU/2 1626 : C------------------------------------------------------------------ 1626 : CALL DERTRA(NYALFT1,YALFT1,TI12,ALFA1,ALFAV1,TO,TO) 1626 : CALL ZDANUL(EPSTHD,NSTRS1) 1627 : CTH=(ALFAV1*TPOINT*(TI12-TREF))+(ALFA1*TPOINT) 1628 : DO I=1,3 1629 : EPSTHD(I)=CTH 1630 : ENDDO 1631 : C 1632 : c DO I=1,4 1633 : c WRITE(6,*) 'VAR1(',I,')= ',VAR1(I) 1634 : c ENDDO 1635 : c DO I=1,6 1636 : c WRITE(6,*) 'SIG1(',I,')= ',SIG1(I) 1637 : c ENDDO 1637 : CALL XXCRE1(TAU,SIG1,EPSV1,VAR1,SIGP2,EVP2,VARP2,EPSTHD, 1638 : & DSPT,XMAT,XMAT1,XMAT2,NSTRS1,NVARI,NCOMAT,DD, 1639 : & DDV,DDINV,DDINVp,YOG1,NYOG1,YNU1,NYNU1,MFR1, 1640 : & XCARB,ICARA,IFOURB,2,TI12,TPOINT,TINF,TSUP, 1641 : & ITEST,ITHHER,VART1,IB,IGAU,kerre) 1642 : c DO I=1,4 1643 : c WRITE(6,*) 'VAR1 ap(',I,')= ',VAR1(I) 1644 : c ENDDO 1645 : c DO I=1,4 1646 : c WRITE(6,*) 'VARP2(',I,')= ',VARP2(I) 1647 : c ENDDO 1648 : c DO I=1,6 1649 : c WRITE(6,*) 'SIGP2(',I,')= ',SIGP2(I) 1650 : c ENDDO 1651 : c DO I=1,6 1652 : c WRITE(6,*) 'EVP2(',I,')= ',EVP2(I) 1653 : c ENDDO 1654 : C 1655 : do i=1,nstrs 1656 : sigp2(i) = 0.5d0* ( sigp2(i)+sigp1(i)) 1657 : evp2(i) = 0.5d0* ( evp2(i)+evp1(i)) 1658 : enddo 1659 : do i=1,nvari 1660 : varp2(i)= 0.5D0 * ( varp2(i)+varp1(i)) 1661 : enddo 1662 : t=tau2 1662 : CALL AVANX1(TAU2,SIG,EPSV,VAR,SIG12,EPSV12,VAR12,SIGP2,EVP2, 1663 : & VARP2,NSTRS1,NVARI) 1664 : c Do i=1,6 1665 : c write(6,*) 'sig12(',i,')=',sig12(i) 1666 : c enddo 1667 : c Do i=1,6 1668 : c write(6,*) 'epsv12(',i,')=',epsv12(i) 1669 : c enddo 1670 : c Do i=1,7 1671 : c write(6,*) 'var12(',i,')=',var12(i) 1672 : c enddo 1673 : if (tau2.ne.t) then 1674 : tau=2.d0*tau2 1675 : goto 144 1676 : endif 1677 : * if (ib.eq.1.and.igau.eq.1) 1678 : * $ write(6,*)'SIg1(1) SIg2 sig3',sig12(1),sig12(2),sig12(3) 1679 : aap = MAX(ABS(SIG12(1)-SIG(1)),ABS(SIG12(2)-SIG(2))) 1680 : aap = max ( aap,ABS (Sig12(3)-SIG(3))) 1681 : IF ( aap . gt . XMAX * 5.) THEN 1682 : * write(6,*)'SIg12(1) SIg12 SI1g3',sig12(1),sig12(2),sig12(3) 1683 : rap = aap / xmax 1684 : TAU= TAU / rap 1685 : * if (ib.eq.1.and.igau.eq.1)write(6,*)'rap tau' 1686 : go to 144 1687 : * do I=1,nstrs 1688 : * sig1(i)=XMAX*100. 1689 : * sigf(I)=xmax*200. 1690 : * enddo 1691 : * go to 250 1692 : endif 1693 : C 1693 : CALL XXCRE1(TAU,SIG12,EPSV12,VAR12,SIGP3,EVP3,VARP3,EPSTHD, 1694 : & DSPT,XMAT,XMAT1,XMAT2,NSTRS1,NVARI,NCOMAT,DD, 1695 : & DDV,DDINV,DDINVp,YOG1,NYOG1,YNU1,NYNU1,MFR1, 1696 : & XCARB,ICARA,IFOURB,2,TI12,TPOINT,TINF,TSUP, 1697 : & ITEST,ITHHER,VART1,IB,IGAU,kerre) 1697 : CALL AVANX1(TAU2,SIG12,EPSV12,VAR12,SIG13,EPSV13,VAR13, 1698 : & SIGP3,EVP3,VARP3,NSTRS1,NVARI) 1699 : DELTAT=TPOINT*TAU 1700 : TI1=TI0+DELTAT 1701 : 1702 : C Initialisation du tableau XMAT(NCOMAT) a l'instant t=t+TAU 1703 : C ou le materiau est a la temperature TI1 comprise dans [TINF,TSUP] 1704 : C----------------------------------------------------------- 1704 : CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1, 1705 : & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1, 1706 : & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1,SIGY1, 1707 : & NSIGY1,XMAT,NCOMAT,TI1,TINF,TSUP,ITEST) 1708 : IF (ITHHER.EQ.2) THEN 1709 : C********** materiau dependant de la temperature ********************** 1710 : C---------- Initialisation du tableau XMAT1(NCOMAT) a T=TINF 1710 : CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1, 1711 : & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1, 1712 : & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1, 1713 : & SIGY1,NSIGY1,XMAT1,NCOMAT,TINF,TO,TO,ITEST) 1714 : C---------- Initialisation du tableau XMAT2(NCOMAT) a T=TSUP 1714 : CALL INITT1(YOG1,NYOG1,YNU1,NYNU1,YN1,NYN1,YM1,NYM1,YKK1, 1715 : & NYKK1,YALF2,NYALF2,YBET2,NYBET2,YR1,NYR1,YA1, 1716 : & NYA1,YQ1,NYQ1,YALFT1,NYALFT1,YRHO1,NYRHO1, 1717 : & SIGY1,NSIGY1,XMAT2,NCOMAT,TSUP,TO,TO,ITEST) 1718 : C********************************************************************** 1719 : ENDIF 1720 : C------------------------------------------------------------------ 1721 : C Calcul de la derivee de la dilatation thermique /temps a t=t+TAU 1722 : C------------------------------------------------------------------ 1722 : CALL DERTRA(NYALFT1,YALFT1,TI1,ALFA1,ALFAV1,TO,TO) 1722 : CALL ZDANUL(EPSTHD,NSTRS1) 1723 : CTH=(ALFAV1*TPOINT*(TI1-TREF))+(ALFA1*TPOINT) 1724 : DO I=1,3 1725 : EPSTHD(I)=CTH 1726 : ENDDO 1727 : C 1727 : CALL XXCRE1(TAU,SIG13,EPSV13,VAR13,SIGP4,EVP4,VARP4,EPSTHD, 1728 : & DSPT,XMAT,XMAT1,XMAT2,NSTRS1,NVARI,NCOMAT,DD, 1729 : & DDV,DDINV,DDINVp,YOG1,NYOG1,YNU1,NYNU1,MFR1, 1730 : & XCARB,ICARA,IFOURB,2,TI1,TPOINT,TINF,TSUP, 1731 : & ITEST,ITHHER,VART1,IB,IGAU,kerre) 1732 : do i=1,nstrs 1733 : sigp4(i)= 0.5D0*( sigp4(i)+sigp3(i)) 1734 : evp4(i) =0.5D0*( evp4(i)+ evp3(i)) 1735 : enddo 1736 : do i=1,nvari 1737 : varp4(i)=0.5D0 * ( varp4(i)+varp3(i)) 1738 : enddo 1738 : call AVANX1(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,SIGP4, 1739 : & EVP4,VARP4,NSTRS1,NVARI) 1739 : CALL XXCRE1(TAU,SIG13,EPSV13,VAR13,SIGP4,EVP4,VARP4,EPSTHD, 1740 : & DSPT,XMAT,XMAT1,XMAT2,NSTRS1,NVARI,NCOMAT,DD, 1741 : & DDV,DDINV,DDINVp,YOG1,NYOG1,YNU1,NYNU1,MFR1, 1742 : & XCARB,ICARA,IFOURB,2,TI1,TPOINT,TINF,TSUP, 1743 : & ITEST,ITHHER,VART,IB,IGAU,kerre) 1744 : DO I=1,NSTRS1 1745 : EVP2(I) = (EVP1(I)+EVP4(I))/6.D0+EVP3(I)*2.D0/3.D0 1746 : SIGP2(I)=(SIGP1(I)+SIGP4(I))/6.D0+SIGP3(I)*2.D0/3.D0 1747 : ENDDO 1748 : DO I=1,NVARI 1749 : VARP2(I)=(VARP1(I)+VARP4(I))/6.D0+VARP3(I)*2.D0/3.D0 1750 : ENDDO 1751 : T=TAU 1751 : CALL AVANX1(TAU,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,SIGP2,EVP2, 1752 : & VARP2,NSTRS1,NVARI) 1753 : c Do i=1,6 1754 : c write(6,*) 'sig1(',i,')=',sig1(i) 1755 : c enddo 1756 : c Do i=1,6 1757 : c write(6,*) 'epsv1(',i,')=',epsv1(i) 1758 : c enddo 1759 : c Do i=1,7 1760 : c write(6,*) 'var1(',i,')=',var1(i) 1761 : c enddo 1762 : c IF (TAU.NE.T) GOTO 144 1763 : ENDIF 1764 : GOTO 250 1765 : C _____________________________________________________________________ 1766 : 150 CONTINUE 1767 : C---------------------------------------------------------------------- 1768 : C CALCULATIONS FOR GENERALISED STRESS/STRAIN FORMULATIONS 1769 : C---------------------------------------------------------------------- 1770 : IF ((INPLAS.GE.19.AND.INPLAS.LE.24).OR.INPLAS.EQ.61) THEN 1771 : tau2=tau*0.5d0 1771 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1772 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1772 : CALL INCRE3(TAU2,SIG1,EPSV1,VAR1,XMAT,EVP2,VARP2,ALFA, 1773 : & NSTRS1,NVARI,INPLAS,NCOMAT) 1774 : DO I=1,NSTRS1,1 1775 : EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 1776 : ENDDO 1777 : IF (INPLAS.EQ.24) THEN 1778 : DO I=1,NVARI 1779 : VARP2(I)=0.5D0*(VARP1(I)+VARP2(I)) 1780 : ENDDO 1781 : ELSE 1782 : DO I=1,2*NSTRS1+2 1783 : VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1784 : ENDDO 1785 : DO I=2*NSTRS1+4,NVARI 1786 : VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1787 : ENDDO 1788 : ENDIF 1788 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1789 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1789 : CALL INCRE3(TAU2,SIG12,EPSV12,VAR12,XMAT,EVP3,VARP3,ALFA, 1790 : & NSTRS1,NVARI,INPLAS,NCOMAT) 1790 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1791 : & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1792 : & NCOMAT) 1792 : CALL INCRE3(TAU2,SIG13,EPSV13,VAR13,XMAT,EVP4,VARP4,ALFA, 1793 : & NSTRS1,NVARI,INPLAS,NCOMAT) 1794 : DO I=1,NSTRS1 1795 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1796 : enddo 1797 : IF (INPLAS.EQ.24) THEN 1798 : DO I=1,NVARI 1799 : VARP4(I)=0.5D0*(VARP3(I)+VARP4(I)) 1800 : enddo 1801 : ELSE 1802 : DO I=1,2*NSTRS1+2 1803 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1804 : enddo 1805 : DO I=2*NSTRS1+4,NVARI 1806 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1807 : enddo 1808 : ENDIF 1808 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1809 : & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1810 : & NCOMAT) 1810 : CALL INCRE3(TAU2,SIGf,EPinf,VARf,XMAT,EVP4,VARP4,ALFA, 1811 : & NSTRS1,NVARI,INPLAS,NCOMAT) 1812 : DO I=1,NSTRS1,1 1813 : EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1814 : enddo 1815 : IF (INPLAS.EQ.24) THEN 1816 : DO I=1,NVARI 1817 : VARP2(I)=(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1818 : enddo 1819 : ELSE 1820 : DO I=1,2*NSTRS1+2 1821 : VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1822 : enddo 1823 : DO I=2*NSTRS1+4,NVARI 1824 : VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1825 : enddo 1826 : endif 1826 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1827 : & VARp2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1828 : C--------- 1829 : ELSE IF (INPLAS.EQ.25) THEN 1830 : tau2=tau*0.5d0 1830 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1831 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1831 : CALL INCRE4(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI, 1832 : & NCOMAT) 1833 : DO I=1,NSTRS1 1834 : EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 1835 : ENDDO 1836 : DO I=1,NVARI 1837 : VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1838 : ENDDO 1838 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1839 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1839 : CALL INCRE4(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS1,NVARI, 1840 : & NCOMAT) 1840 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1841 : & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1842 : & NCOMAT) 1842 : CALL INCRE4(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI, 1843 : & NCOMAT) 1844 : DO I=1,NSTRS1 1845 : EVP4(I) = 0.5d0*(EVP3(I)+EVP4(I)) 1846 : enddo 1847 : DO I=1,NVARI 1848 : VARP4(I) = 0.5d0*(VARP3(I)+VARP4(I)) 1849 : enddo 1849 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1850 : & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1851 : & NCOMAT) 1851 : CALL INCRE4(SIGf,VARf,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI, 1852 : & NCOMAT) 1853 : DO I=1,NSTRS1 1854 : EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1855 : enddo 1856 : DO I=1,NVARI 1857 : VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1858 : enddo 1858 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1859 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1860 : C--------- 1861 : ELSE IF (INPLAS.EQ.76) THEN 1861 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT, 1862 : & EVP1,VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1863 : & NCOMAT) 1863 : CALL INCRA4(SIGf,VARf,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI, 1864 : & NCOMAT) 1865 : DO I=1,NSTRS1 1866 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1867 : ENDDO 1868 : DO I=1,NVARI 1869 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1870 : ENDDO 1870 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1871 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1872 : * tau2=tau*0.5d0 1872 : * CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT, 1873 : * & EVP1,VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1874 : * & NCOMAT) 1874 : * CALL INCRA4(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI, 1875 : * & NCOMAT) 1876 : * DO I=1,NSTRS1 1877 : * EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1878 : * ENDDO 1879 : * DO I=1,NVARI 1880 : * VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1881 : * ENDDO 1881 : * CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1882 : * & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1882 : * CALL INCRA4(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS1,NVARI, 1883 : * & NCOMAT) 1883 : * CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1884 : * & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1885 : * & NCOMAT) 1885 : * CALL INCRA4(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI, 1886 : * & NCOMAT) 1887 : * DO I=1,NSTRS1 1888 : * EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I)) 1889 : * enddo 1890 : * DO I=1,NVARI 1891 : * VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I)) 1892 : * enddo 1892 : * CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1893 : * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1894 : * & NCOMAT) 1895 : * DO I=1,NSTRS1 1896 : * EVP2(I) = (EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1897 : * enddo 1898 : * DO I=1,NVARI 1899 : * VARP2(I) = (VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1900 : * enddo 1900 : * CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1901 : * & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1902 : C--------- 1903 : ELSE IF (INPLAS.EQ.77) THEN 1903 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIGf,EPinf,VARf,DSPT,EVP1, 1904 : & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,ncomat) 1904 : CALL INCRB4(SIGf,VARf,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI, 1905 : & NCOMAT) 1906 : DO I=1,NSTRS1 1907 : EVP2(I) = 0.5d0*(EVP1(I)+EVP2(I)) 1908 : enddo 1909 : DO I=1,NVARI 1910 : VARP2(I) = 0.5d0*(VARP1(I)+VARP2(I)) 1911 : enddo 1911 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1912 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1913 : * tau2=tau*0.5d0 1913 : * CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1, 1914 : * & VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1914 : * CALL INCRB4(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI, 1915 : * & NCOMAT) 1916 : * DO I=1,NSTRS1 1917 : * EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1918 : * ENDDO 1919 : * DO I=1,NVARI 1920 : * VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1921 : * ENDDO 1921 : * CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1922 : * & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1922 : * CALL INCRB4(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS1,NVARI, 1923 : * & NCOMAT) 1923 : * CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1924 : * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1925 : * & NCOMAT) 1925 : * CALL INCRB4(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI, 1926 : * & NCOMAT) 1927 : * DO I=1,NSTRS1 1928 : * EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I)) 1929 : * enddo 1930 : * DO I=1,NVARI 1931 : * VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I)) 1932 : * enddo 1932 : * CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1933 : * & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1934 : * & NCOMAT) 1934 : * CALL INCRB4(SIGf,VARf,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI, 1935 : * & NCOMAT) 1936 : * DO I=1,NSTRS1 1937 : * EVP2(I) =(EVP3(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1938 : * enddo 1939 : * DO I=1,NVARI 1940 : * VARP2(I) =(VARP3(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1941 : * enddo 1941 : * CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1942 : * & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1943 : C--------- 1944 : ELSE IF (INPLAS.EQ.53) THEN 1945 : tau2=tau*0.5d0 1945 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT, 1946 : & EVP1,VARP1,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1947 : & NCOMAT) 1947 : CALL INCRE6(SIG1,VAR1,EVP2,VARP2,XMAT,ALFA,NSTRS1,NVARI, 1948 : & NCOMAT) 1949 : DO I=1,NSTRS1 1950 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1951 : ENDDO 1952 : DO I=1,NVARI 1953 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1954 : ENDDO 1954 : CALL ADVAN2(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1955 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1955 : CALL INCRE6(SIG12,VAR12,EVP3,VARP3,XMAT,ALFA,NSTRS1,NVARI, 1956 : & NCOMAT) 1956 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1957 : & EVP3,VARP3,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1958 : & NCOMAT) 1958 : CALL INCRE6(SIG13,VAR13,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI, 1959 : & NCOMAT) 1960 : DO I=1,NSTRS1 1961 : EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I)) 1962 : enddo 1963 : DO I=1,NVARI 1964 : VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I)) 1965 : enddo 1965 : CALL ADVAN2(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT, 1966 : & EVP4,VARP4,XMAT,NSTRS1,NVARI,IFOURB,INPLAS, 1967 : & NCOMAT) 1967 : CALL INCRE6(SIGf,VARf,EVP4,VARP4,XMAT,ALFA,NSTRS1,NVARI, 1968 : & NCOMAT) 1969 : DO I=1,NSTRS1 1970 : EVP2(I) =(EVP1(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 1971 : enddo 1972 : DO I=1,NVARI 1973 : VARP2(I) =(VARP1(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 1974 : enddo 1974 : CALL ADVAN2(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2, 1975 : & VARP2,XMAT,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1976 : C--------- 1977 : ENDIF 1978 : GOTO 250 1979 : C 1980 : C CAS D'UN TUYAU FISSURE EN FLUAGE SUIVANT LA LOI "NORTON" 1981 : C 1982 : 210 CONTINUE 1983 : IF (INPLAS.NE.19) GOTO 999 1984 : tau2=tau*0.5d0 1984 : CALL TUFADV(TAU2,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EVP1,VARP1, 1985 : & XMAT,XCARB,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 1985 : CALL TUFINC(TAU2,SIG1,EPSV1,VAR1,XMAT,XCARB,EVP2,VARP2,NSTRS1, 1986 : & NVARI,INPLAS,NCOMAT,KERREU1) 1987 : DO I=1,6 1988 : EVP2(I) = 0.5D0*(EVP1(I)+EVP2(I)) 1989 : ENDDO 1990 : DO I=1,4 1991 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1992 : ENDDO 1993 : DO I=6,NVARI 1994 : VARP2(I) = 0.5D0*(VARP1(I)+VARP2(I)) 1995 : ENDDO 1995 : CALL TUFADV(TAU2,SIG,EPSV,VAR,SIG12,EPsv12,VAR12,DSPT,EVP2, 1996 : & VARP2,XMAT,XCARB,NSTRS1,NVARI,IFOURB,INPLAS, 1997 : & NCOMAT) 1997 : CALL TUFINC(TAU2,SIG12,EPSV12,VAR12,XMAT,XCARB,EVP3,VARP3, 1998 : & NSTRS1,NVARI,INPLAS,NCOMAT,KERREU1) 1998 : CALL TUFADV(TAU2,SIG12,EPSV12,VAR12,SIG13,EPsv13,VAR13,DSPT, 1999 : & EVP3,VARP3,XMAT,XCARB,NSTRS1,NVARI,IFOURB,INPLAS, 2000 : & NCOMAT) 2000 : CALL TUFINC(TAU2,SIG13,EPSV13,VAR13,XMAT,XCARB,EVP4,VARP4, 2001 : & NSTRS1,NVARI,INPLAS,NCOMAT,KERREU1) 2002 : DO I=1,6 2003 : EVP4(I) = 0.5D0*(EVP3(I)+EVP4(I)) 2004 : enddo 2005 : DO I=1,4 2006 : VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I)) 2007 : enddo 2008 : DO I=6,NVARI 2009 : VARP4(I) = 0.5D0*(VARP3(I)+VARP4(I)) 2010 : enddo 2010 : CALL TUFADV(TAU2,SIG12,EPSV12,VAR12,SIGf,EPinf,VARf,DSPT,EVP4, 2011 : & VARP4,XMAT,XCARB,NSTRS1,NVARI,IFOURB,INPLAS, 2012 : & NCOMAT) 2012 : CALL TUFINC(TAU2,SIGf,EPinf,VARf,XMAT,XCARB,EVP4,VARP4,NSTRS1, 2013 : & NVARI,INPLAS,NCOMAT,KERREU1) 2014 : DO I=1,6 2015 : EVP2(I) =(EVP3(I)+EVP4(I))/6.d0+EVP3(I)*2.d0/3.d0 2016 : enddo 2017 : DO I=1,4 2018 : VARP2(I) =(VARP3(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 2019 : enddo 2020 : DO I=6,NVARI 2021 : VARP2(I) =(VARP3(I)+VARP4(I))/6.d0+VARP3(I)*2.d0/3.d0 2022 : enddo 2022 : CALL TUFADV(TAU,SIG,EPSV,VAR,SIG1,EPsv1,VAR1,DSPT,EVP2,VARP2, 2023 : & XMAT,XCARB,NSTRS1,NVARI,IFOURB,INPLAS,NCOMAT) 2024 : C 2025 : C---------------------------------------------------------------------- 2026 : 250 CONTINUE 2027 : C --------------------------------------------------------------------- 2028 : C CALCUL DU RAPPORT : ERREUR CALCULEE / ERREUR ADMISE 2029 : C --------------------------------------------------------------------- 2030 : DO I=1,NSTRS1 2031 : XX(I) = SIGF(I)-SIG1(I) 2032 : ENDDO 2033 : RA = SQRT(PROCON(XX,XX,NSTRS1))/(ERRABS) 2034 : c 2035 : * write(6,*) ' ra ' , ra 2036 : IF (MFR1.EQ.17.AND.INPLAS.EQ.19) THEN 2037 : RA=SQRT(XX(1)**2 + XX(6)**2)/ERRABS 2038 : ENDIF 2039 : SQRA = SQRT(RA) 2040 : IF (INPLAS.EQ.29) THEN 2041 : RD = 0.D0 2042 : IF (VARF(3).NE.0.D0.AND.VAR1(3).GT.1.0D-5) THEN 2043 : RD = (VARF(3)-VAR1(3))/VARF(3) 2044 : RD = DABS(RD)/1.D-4 2045 : ENDIF 2046 : RA = DMAX1(RA,RD) 2047 : SQRA = SQRT(RA) 2048 : ELSEIF (INPLAS.EQ.142) THEN 2049 : RD = 0.D0 2050 : IF (VARF(8).NE.0.D0.AND.VAR1(8).GT.1.0D-5) THEN 2051 : RD = (VARF(8)-VAR1(8))/VARF(8) 2052 : RD = DABS(RD)/1.D-4 2053 : ENDIF 2054 : RA = DMAX1(RA,RD) 2055 : SQRA = SQRT(RA) 2056 : ENDIF 2057 : C --------------------------------------------------------------------- 2058 : C TEST DE FIN D'ITERATIONS / MISE A JOUR DE TAU /OPTION JECHER 2059 : C DIV =7 BORNE = 2 2060 : C SI SQRA>7 TAU = TAU/7 ET NOUVEL ESSAI 2061 : C SI 2ESTITO(SIG,NSTRS1,VAR,NVARI,YKX,NYKX,NKX,NNKX,XMAT, 2135 : & NCOMAT,TI1,TD,TRUC,NCOURB) 2136 : 2137 : IF ((VARF(3).GE.0.96).OR.(TD.LT.1.D0)) THEN 2138 : VARF(3)=1.D0 2139 : TLIFE = DT - (DTLEFT - TAU) 2140 : GOTO 999 2141 : ENDIF 2142 : C 2143 : ELSEIF (INPLAS.EQ.142) THEN 2144 : C-------------------------------------------------------------- 2145 : C Estimation du pas de temps apres la mise a jour des variables 2146 : C-------------------------------------------------------------- 2147 : C 2147 : CALL ESTIT1(SIG,NSTRS1,VAR,NVARI,XMAT,NCOMAT,TI1,TD) 2148 : 2149 : IF ((VARF(8).GE.0.96).OR.(TD.LT.1.D0)) THEN 2150 : VARF(8)=1.D0 2151 : TLIFE = DT - (DTLEFT - TAU) 2152 : GOTO 999 2153 : ENDIF 2154 : ENDIF 2155 : C 2156 : C -------------------------------------------------------------------- 2157 : C TEST DE FIN SS INCREMENTS / MISE A JOUR DE TAU 2158 : C si SQRA<1/3 TAU = TAU*3 2159 : C si 1/3 RMAX on vise RA = 1 2162 : C fin des boucles en ss increments si tau = dtleft 2163 : C -------------------------------------------------------------------- 2164 : C 2165 : IF ( TAU.LT.DTLEFT ) THEN 2166 : * DTDEUX=TAU 2167 : DTLEFT = DTLEFT - TAU 2168 : * IF (dtlibr) then 2169 : IF ( FAC*SQRA.LT.1.D0) THEN 2170 : TAU=TAU*FAC 2171 : ELSEIF ( (SQRA.LT.RMIN).OR.(SQRA.GT.RMAX) ) THEN 2172 : TAU=TAU/SQRA 2173 : ENDIF 2174 : * else 2175 : * TAU = TAU * R 2176 : * endif 2177 : IF (TAU.GT.DTLEFT) then 2178 : TAU = DTLEFT 2179 : endif 2180 : IF ((INPLAS.EQ.29).OR.(INPLAS.EQ.107).OR.(INPLAS.EQ.142)) THEN 2181 : C---------------------------------------------------------------------------- 2182 : C Mise a jour des temperatures 2183 : C TI0 temperature au dedut du pas de sous-incrementation avec TINF C TI1 temperature a la fin du pas de sous-incrementation 2185 : C----------------------------------------------------------------------------- 2186 : TI0=TI1 2187 : DELTAT=TPOINT*TAU 2188 : TI1=TI0+DELTAT 2189 : ENDIF 2190 : IF (INPLAS.EQ.107) THEN 2191 : C---------------------------------------------------------------------------- 2192 : C Mise a jour des densites de fissions 2193 : C FII0 densite de fissions au dedut du pas de sous-incrementation 2194 : C FII1 densite de fissions a la fin du pas de sous-incrementation 2195 : C----------------------------------------------------------------------------- 2196 : FII0=FII1 2197 : DELTAF=FPOINT*TAU 2198 : FII1=FII0+DELTAF 2199 : ENDIF 2200 : GOTO 70 2201 : ENDIF 2202 : C 2203 : IF (ABS(TAU-DTLEFT).GT.(TAU/1000.)) THEN 2204 : WRITE ( IOIMP,* ) ' PROBLEME TAU > DTLEFT ' 2205 : KERRE = 223 2206 : ENDIF 2207 : 2208 : C----------------------------------------------------------------------- 2209 : 999 CONTINUE 2210 : * if(ib.eq.1.and.igau.eq.1) then 2211 : * write(6,*)'inplas nssinc nopri pasbea iforce',inplas,nssinc,nopri 2212 : * $ ,pasbea,iffo 2213 : * endif 2214 : IF (MFR1.EQ.3) THEN 2215 : DO 1000 I=1,NSTRS1/2 2216 : SIGF( I) =SIGF( I)*THICK 2217 : SIGF(NSTRS1/2+I) =SIGF(NSTRS1/2+ I)*THICK*THICK/6.0 2218 : * DSIGT( I)=DSIGT( I)*THICK 2219 : * DSIGT(NSTRS1/2+I)=DSIGT(NSTRS1/2+I)*THICK*THICK/6.0 2220 : 1000 CONTINUE 2221 : ENDIF 2222 : C 2223 : C=========================================================== 2224 : C RETOUR A LA DEFINITION NORMALE DES DEFORMATIONS 2225 : C A SAVOIR: LES DEFORMATIONS DE CISAILLEMENT SONT 2226 : C DEFINIES PAR DES GAMA. 2227 : C ON MULTIPLIE DONC LES TERMES DE CISAILLEMENT PAR 2. 2228 : C CECI NE CONCERNE PAS LE MODELE VISCO-ENDOMMAGEABLE 2229 : C DE LEMAITRE (INPLAS=29). 2230 : C 2231 : C SEULES LES FORMULATIONS SUIVANTES SONT ACCEPTEES PAR CONSTI: 2232 : C MFR1=1 (MASSIF) 2233 : C MFR1=5 (COQUES EPAISSES) 2234 : C MFR1=3 (COQUES MINCES) 2235 : C MFR1=17 (TUYAUX FISSURES) 2236 : C MFR1=33 (POREUX) 2237 : C 2238 : IF ((INPLAS.NE.29).AND.(INPLAS.NE.142)) THEN 2239 : C 2240 : C Cas de la formulation massive 2241 : C Les termes de cisaillement apparaissent 2242 : C au delà de la troisieme composante 2243 : C 2244 : IF (MFR1.EQ.1.OR.MFR1.EQ.33) THEN 2245 : DO 14 I=1,NSTRS1 2246 : A=1.D0 2247 : IF (I.GT.3) A=2.D0 2248 : EPIN0(I)=EPIN0(I)*A 2249 : EPINF(I)=EPINF(I)*A 2250 : 14 CONTINUE 2251 : C 2252 : C Cas des coques épaisses 2253 : C Les termes de cisaillement apparaissent 2254 : C au delà de la deuxieme composante 2255 : C 2256 : ELSE IF (MFR1.EQ.5) THEN 2257 : DO 15 I=1,NSTRS1 2258 : A=1.D0 2259 : IF (I.GT.2) A=2.D0 2260 : EPIN0(I)=EPIN0(I)*A 2261 : EPINF(I)=EPINF(I)*A 2262 : 15 CONTINUE 2263 : C 2264 : C Cas des coques minces 2265 : C Les termes de cisaillement apparaissent 2266 : C pour la troisieme et la sixieme composante 2267 : C uniquement dans les cas de calculs 2268 : C tridimensionnels ou d'analyse de Fourier 2269 : C 2270 : ELSE IF (MFR1.EQ.3) THEN 2271 : IF ((IFOURB.EQ.1).OR.(IFOURB.EQ.2)) THEN 2272 : DO 16 I=1,NSTRS1 2273 : A=1.D0 2274 : IF (I.EQ.3) A=2.D0 2275 : IF (I.EQ.6) A=2.D0 2276 : EPIN0(I)=EPIN0(I)*A 2277 : EPINF(I)=EPINF(I)*A 2278 : 16 CONTINUE 2279 : ENDIF 2280 : C 2281 : C Reste le cas des tuyaux fissurés (MFR1=17) 2282 : C 2283 : ENDIF 2284 : ENDIF 2285 : C 2286 : C=========================================================== 2287 : C 2288 : 998 RETURN 2289 : END 2290 : 2291 : 2292 : 2293 : 2294 : 2295 : 2296 : 2297 : 2298 : 2299 : 2300 : 2301 : 2302 : 2303 : 2304 : 2305 : 2306 : 2307 : 2308 : 2309 : 2310 : 2311 : 2312 : 2313 :
© Cast3M 2003 - All rights reserved.
Disclaimer