1 : C UO2OT2 SOURCE DURAND 13/12/03 21:15:02 7874 2 : C responsable STRUB 3 : SUBROUTINE UO2OT2(MFR,IB,IGAU,DT,TETA1,TETA2,FI1,FI2,PRECIS, 4 : & MSOUPA,XMAT,IVAL,NCOMAT,NSIMP,XCAR,ICARA,SIG0, 5 : & NSTRS,DEPST,VAR0,NVARI,SIGF,VARF,DEFP,KERRE) 6 : C---------------------------------------------------------------------- 7 : C CE SOUS-PROGRAMME EST APPELE DANS "COML8" 8 : C IL PREPARE L'INTEGRATION DU MODELE UO2 COUPLANT LES MODELES 9 : C OTTOSEN ET GATT_MONERIE 10 : C SCHEMA EULER-CAUCHY AVEC DECOUPAGE DU SOUS PAS D INTEGRATION EN 2 11 : C CONTROLE AVEC METHODE DE SIMPSON 12 : C---------------------------------------------------------------------- 13 : C 14 : C ENTREES: 15 : C ------- 16 : C MFR = INDICE DE LA FORMULATION MECANIQUE; SEULEMENT 17 : C MASSIF OU COQUES EN 3D 18 : C IB = NUMERO DE L ELEMENT 19 : C IGAU = NUMERO DU POINT D INTEGRATION 20 : C DT = PAS D INTEGRATION 21 : C TETA1 = TEMPERATURE AU DEBUT DU PAS D INTEGRATION 22 : C TETA2 = TEMPERATURE A LA FIN DU PAS D INTEGRATION 23 : C FI1 = DENSITE DE FISSION AU DEBUT DU PAS D INTEGRATION 24 : C FI2 = DENSITE DE FISSION A LA FIN DU PAS D INTEGRATION 25 : C PRECIS = PRECISION POUR LA VISCOPLASTICITE 26 : C MSOUPA = NBR. MAX. DE SOUS PAS AUTORISES POUR LA VISCOPLASTICITE 27 : C NCOMAT = NBR. DE CARACTERISTIQUES THERMOMECANIQUES DU MATERIAU 28 : C XMAT(NCOMAT) = CARACTERISTIQUES THERMOMECANIQUES DU MATERIAU 29 : C IVAL(NCOMAT) = INDICE DES COMPOSANTES DE MATERIAU 30 : C NSIMP = POINTE SUR LA CARACTERISTIQUE FACULTATIVE 'SIMP' DE XMAT 31 : C ICARA = NBR. DE CARACT. GEOMETRIQUES DES ELEMENTS FINIS 32 : C XCAR(ICARA) = CARACT. GEOMETRIQUES DES ELEMENTS FINIS 33 : C NSTRS = NBR. DE COMPOSANTES DES CONTR. OU DES DEFORM. 34 : C SIG0(NSTRS) = CONTR. AU DEBUT DU PAS D'INTEGRATION 35 : C DEPST(NSTRS) = INCREMENT DES DEFORM. TOTALES 36 : C NVARI = NBR. DE VARIABLES INTERNES 37 : C VAR0(NVARI) = VARIABLES INTERNES AU DEBUT DU PAS D INTEGRATION 38 : C 39 : C SORTIES 40 : C ------- 41 : C SIGF(NSTRS) = CONTR. A LA FIN DU PAS D'INTEGRATION 42 : C VARF(NVARI) = VARIABLES INTERNES A LA FIN DU PAS D'INTEGRATION 43 : C DEFP(NSTRS) = INCREMENT DES DEFORM. INELASTIQUES A LA FIN DU PAS 44 : C D'INTEGRATION (FISSURATION+VISCOPLASTICITE) 45 : C KERRE = INDICE QUI REGIT LES ERREURS 46 : C---------------------------------------------------------------------- 47 : C ================================================================== 48 : C ICI IL FAUT PROGRAMMER EN FORTRAN PUR 49 : C =================================================================== 50 : C 51 : IMPLICIT INTEGER(I-N) 52 : IMPLICIT REAL*8(A-H,O-Z) 53 : -INC CCOPTIO 54 : -INC CCREEL 55 : C 56 : PARAMETER (XZER=0.D0,UNDEMI=.5D0,UN=1.D0,DEUX=2.D0,TROIS=3.D0, 57 : & DIX=10.D0,NGAT=4) 58 : C 59 : DIMENSION XMAT(*),IVAL(*),XCAR(*) 60 : DIMENSION SIG0(*),DEPST(*),VAR0(*),SIGF(*),VARF(*),DEFP(*) 61 : C 62 : DIMENSION SIGMA0(6),DSIGMA(6),DDEF0(6),DDEFP0(6),SIGF0(6) 63 : DIMENSION SIGMA(6),DDEF(6),DDEFP(6),SIGMAF(6),DDEFPT(6) 64 : C 65 : DIMENSION WMAX(3),W(3),WMAX0(3),W0(3), 66 : & GFTR(3),GS(3),XLTR(3),XINVL(3),WRUPT(3),IRESU(20), 67 : & VF(3),XVF(3,3),VF1(3),VF2(3),VF3(3),VCA1(3),VCA2(3),VCA3(3), 68 : & BILIN(3),SBILI(3) 69 : C 70 : DIMENSION TAIL(6),P(6) 71 : C 72 : DIMENSION VARGA0(NGAT),VARGAF(NGAT) 73 : DIMENSION EPSV0(6),EPSVF0(6),EPSV(6),EPSVF(6) 74 : C 75 : C******************************************************************* 76 : C 77 : JEBOUC=0 78 : IIMPI0=IIMPI 79 : C 80 : 2020 JEBOUC=JEBOUC+1 81 : KERRE=0 82 : C 83 : C=================================================================== 84 : C TEST DE COMPATIBILITE CALCUL/FORMULATION 85 : C=================================================================== 86 : C 87 : C------UNIQUEMENT EN MASSIF OU EN COQUES MINCES 88 : C PAS DE FORMULATION DE FOURIER----------- 89 : C 90 : IF ((MFR.NE.1.AND.MFR.NE.3.AND.MFR.NE.9) 91 : . .OR.IFOUR.EQ.1) THEN 92 : KERRE=984 93 : GO TO 9999 94 : ENDIF 95 : C 96 : C================================= 97 : C --- CONTROLE DU PAS DE TEMPS --- 98 : C================================= 99 : C 100 : IF (DT.LT.0.D0) THEN 101 : KERRE = 414 102 : PRINT *,' UO2OT2 - PAS DE TEMPS NEGATIF' 103 : GO TO 9999 104 : ENDIF 105 : IF (DT.EQ.0.D0) DT=1.D-20 106 : C 107 : C=================================================================== 108 : C INITIALISATION DES VARIABLES INTERNES ET DES CARACTERISTIQUES 109 : C=================================================================== 110 : C 111 : C 112 : C################################################################### 113 : C=================================================================== 114 : C INITIALISATION DES CARACTERISTIQUES 115 : C=================================================================== 116 : C################################################################### 117 : C 118 : C Les 4 premieres valeurs de Xmat_OBLIGATOIRES sont YOUN,NU,RHO,ALPH 119 : C puis R,DG,...(caract. mecaniques non lineaires obligatoires) 120 : C La premiere valeur de Xmat_FACULTATIF est VISQ et la deuxieme en CP 121 : C est DIM3 122 : C puis GFTR,LTR,...(caract. mecaniques non lineaires facultatives) 123 : C 124 : YOUN=XMAT(1) 125 : XNU =XMAT(2) 126 : G = UNDEMI*YOUN/(UN+XNU) 127 : PRECIE=1.D-10 128 : PRECIZ=YOUN*PRECIE 129 : C 130 : C===================================================================== 131 : C----CALCUL DU COEF AA INTERVENANT DANS LA VITESSE DE DENSIFICATION--- 132 : C===================================================================== 133 : C 133 : CALL ADENS(XMAT,AA,KERRE) 134 : IF(KERRE.NE.0) GO TO 2021 135 : C 136 : C==================================================================== 137 : C----NOBL+i POINTE SUR LA ieme CARACTERISTIQUE DE FISSURATION FACULT. 138 : C==================================================================== 139 : C 140 : IF (IFOMOD.EQ.2.AND.MFR.EQ.1) THEN 141 : NOBL=49 142 : ELSE 143 : NOBL=44 144 : IF(MFR.EQ.1.AND.IFOUR.EQ.-2) NOBL=45 145 : ENDIF 146 : C 147 : C=========================================================== 148 : C---MGAT: NOMBRE DE VAR. INT. PROPRES AU MODELE GATT_MONERIE 149 : C--- PARMI CES VAR. INT. IL Y A LES DEF. VISCOPLAST. 150 : C=========================================================== 151 : C 152 : IF (IFOUR.EQ.2.AND.(MFR.EQ.1.OR.MFR.EQ.3)) THEN 153 : MGAT=10 154 : ELSE 155 : MGAT=8 156 : IF(MFR.EQ.9) MGAT=12 157 : ENDIF 158 : C 159 : C=================================================== 160 : C----------------TRACTION SIMPLE-------------------- 161 : C=================================================== 162 : C 163 : XDLTR=XMAT(2+NOBL) 164 : DEFOTR=1.2D-4 165 : IF (IVAL(2+NOBL).EQ.0) XDLTR=YOUN*DEFOTR 166 : XDGFTR=XMAT(1+NOBL) 167 : IF (IVAL(1+NOBL).EQ.0) XDGFTR=XDLTR*3.9D-5 168 : BTR=XMAT(4+NOBL) 169 : IF (IVAL(4+NOBL).EQ.0) BTR=0.2D0 170 : * 171 : * PETIT TEST SUR BTR 172 : * 173 : BTR=MIN(BTR,UN) 174 : 175 : XDWRUP=XMAT(5+NOBL) 176 : XDBILI=XMAT(6+NOBL) 177 : C 178 : C__________________________________________________________ 179 : C en defo planes ou axis 180 : C les caracteristiques dans la direction normale au plan 181 : C sont traitees particulierement 182 : C---------------------------------------------------------- 183 : C 184 : XDEPSR=0.D0 185 : IF (IFOUR.EQ.0.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN 186 : XDEPSR=XMAT(7+NOBL) 187 : IF (IVAL(7+NOBL).EQ.0) XDEPSR=TROIS*XDLTR/YOUN 188 : ENDIF 189 : C 190 : C=================================================== 191 : C------------------CISAILLEMENT--------------------- 192 : C=================================================== 193 : C 194 : XDGS=XMAT(3+NOBL) 195 : IF (IVAL(3+NOBL).EQ.0) XDGS=YOUN*1.8D-4 196 : C 197 : C################################################################### 198 : C=================================================================== 199 : C INITIALISATION DES VARIABLES INTERNES 200 : C=================================================================== 201 : C################################################################### 202 : C 203 : C--------------------------------------------------------------------- 204 : C RECUPERATION DES VARIABLES INTERNES PROPRES AU MODELE GATT_MONERIE 205 : C AUTRES QUE LES DEF. VISCOPLAST. 206 : C--------------------------------------------------------------------- 207 : C 208 : DO 9 IC=1,NGAT 209 : VARGA0(IC)=VAR0(NVARI-NGAT+IC) 210 : 9 CONTINUE 211 : C 212 : C====================================== 213 : C---------CAS TRIDIMENSIONNEL MASSIF--- 214 : C====================================== 215 : C 216 : C NVARI=29 cf. IDVAR4 217 : C 218 : IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN 219 : DO 10 IC=1,3 220 : ICN=IC+NOBL 221 : WMAX(IC)=VAR0(IC+1) 222 : W(IC)=VAR0(IC+4) 223 : GFTR(IC)=XMAT(ICN+6) 224 : IF (GFTR(IC).EQ.XZER) GFTR(IC)=XDGFTR 225 : GS(IC)=XMAT(ICN+9) 226 : IF (GS(IC).EQ.XZER) GS(IC)=XDGS 227 : XLTR(IC)=XMAT(ICN+12) 228 : IF (XLTR(IC).EQ.XZER) XLTR(IC)=XDLTR 229 : VF1(IC)=VAR0(IC+7) 230 : VF2(IC)=VAR0(IC+10) 231 : VF3(IC)=VAR0(IC+13) 232 : XINVL(IC)=VAR0(IC+16) 233 : WRUPT(IC)=XMAT(ICN+15) 234 : BILIN(IC)=XMAT(ICN+18) 235 : IF (BILIN(IC).EQ.XZER.OR.WRUPT(IC).EQ.XZER) THEN 236 : IF(XDBILI.EQ.XZER.OR.XDWRUP.EQ.XZER) THEN 237 : WRUPT(IC)=DEUX*GFTR(IC)/XLTR(IC) 238 : BILIN(IC)=XZER 239 : SBILI(IC)=XLTR(IC) 240 : ELSE 241 : WRUPT(IC)=XDWRUP 242 : BILIN(IC)=XDBILI 243 : SBILI(IC)=(DEUX*GFTR(IC)-XLTR(IC)*XDBILI)/XDWRUP 244 : ENDIF 245 : ELSE 246 : SBILI(IC)=(DEUX*GFTR(IC)-XLTR(IC)*BILIN(IC))/WRUPT(IC) 247 : ENDIF 248 : 10 CONTINUE 249 : ENDIF 250 : C 251 : C====================================== 252 : C-----------CAS CONT PLANE------------- 253 : C---- OU TRIDIM COQUES MINCES --------- 254 : C====================================== 255 : C 256 : C NVARI=19 CONT PLANE cf. IDVAR4 257 : C NVARI=21/23 3D COQUES MINCES SANS/AVEC CISAILLEMENT TRANSVERSE 258 : C 259 : IF (IFOUR.EQ.-2.OR. 260 : . (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9))) THEN 261 : DO 11 IC=1,2 262 : ICN=IC+NOBL 263 : WMAX(IC+1)=VAR0(IC+1) 264 : W(IC+1)=VAR0(IC+3) 265 : GFTR(IC+1)=XMAT(ICN+6) 266 : IF (GFTR(IC+1).EQ.XZER) GFTR(IC+1)=XDGFTR 267 : GS(IC+1)=XMAT(ICN+8) 268 : IF (GS(IC+1).EQ.XZER) GS(IC+1)=XDGS 269 : XLTR(IC+1)=XMAT(ICN+10) 270 : IF (XLTR(IC+1).EQ.XZER) XLTR(IC+1)=XDLTR 271 : VF2(IC)=VAR0(IC+5) 272 : VF3(IC)=VAR0(IC+7) 273 : XINVL(IC+1)=VAR0(IC+9) 274 : WRUPT(IC+1)=XMAT(ICN+12) 275 : BILIN(IC+1)=XMAT(ICN+14) 276 : IF (BILIN(IC+1).EQ.XZER.OR.WRUPT(IC+1).EQ.XZER) THEN 277 : IF(XDBILI.EQ.XZER.OR.XDWRUP.EQ.XZER) THEN 278 : WRUPT(IC+1)=DEUX*GFTR(IC+1)/XLTR(IC+1) 279 : BILIN(IC+1)=XZER 280 : SBILI(IC+1)=XLTR(IC+1) 281 : ELSE 282 : WRUPT(IC+1)=XDWRUP 283 : BILIN(IC+1)=XDBILI 284 : SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*XDBILI) 285 : & /XDWRUP 286 : ENDIF 287 : ELSE 288 : SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*BILIN(IC+1)) 289 : & /WRUPT(IC+1) 290 : ENDIF 291 : 11 CONTINUE 292 : C 293 : C------------------------------------------------------------ 294 : C La direction normale au plan est une direction principale 295 : C elle est definie par VF1 et indice par 1 296 : C------------------------------------------------------------ 297 : C 298 : WMAX(1)=XZER 299 : W(1)=XZER 300 : GFTR(1)=XDGFTR 301 : GS(1)=XDGS 302 : XLTR(1)=XDLTR 303 : VF1(1)=XZER 304 : VF1(2)=XZER 305 : VF1(3)=UN 306 : XINVL(1)=XZER 307 : VF2(3)=XZER 308 : VF3(3)=XZER 309 : WRUPT(1)=DEUX*GFTR(1)/XLTR(1) 310 : BILIN(1)=XZER 311 : SBILI(1)=XLTR(1) 312 : ENDIF 313 : C 314 : C=========================================== 315 : C-----------CAS DEFO PLANE/AXIS------------- 316 : C=========================================== 317 : C 318 : C NVARI=22 cf. IDVAR4 319 : C 320 : IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-3.OR.IFOUR.EQ.0) THEN 321 : DO 12 IC=1,2 322 : ICN=IC+NOBL 323 : WMAX(IC+1)=VAR0(IC+1) 324 : W(IC+1)=VAR0(IC+4) 325 : GFTR(IC+1)=XMAT(ICN+7) 326 : IF (GFTR(IC+1).EQ.XZER) GFTR(IC+1)=XDGFTR 327 : GS(IC+1)=XMAT(ICN+10) 328 : IF (GS(IC+1).EQ.XZER) GS(IC+1)=XDGS 329 : XLTR(IC+1)=XMAT(ICN+13) 330 : IF (XLTR(IC+1).EQ.XZER) XLTR(IC+1)=XDLTR 331 : VF2(IC)=VAR0(IC+7) 332 : VF3(IC)=VAR0(IC+9) 333 : XINVL(IC+1)=VAR0(IC+11) 334 : WRUPT(IC+1)=XMAT(ICN+16) 335 : BILIN(IC+1)=XMAT(ICN+18) 336 : IF (BILIN(IC+1).EQ.XZER.OR.WRUPT(IC+1).EQ.XZER) THEN 337 : IF(XDBILI.EQ.XZER.OR.XDWRUP.EQ.XZER) THEN 338 : WRUPT(IC+1)=DEUX*GFTR(IC+1)/XLTR(IC+1) 339 : BILIN(IC+1)=XZER 340 : SBILI(IC+1)=XLTR(IC+1) 341 : ELSE 342 : WRUPT(IC+1)=XDWRUP 343 : BILIN(IC+1)=XDBILI 344 : SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*XDBILI) 345 : & /XDWRUP 346 : ENDIF 347 : ELSE 348 : SBILI(IC+1)=(DEUX*GFTR(IC+1)-XLTR(IC+1)*BILIN(IC+1)) 349 : & /WRUPT(IC+1) 350 : ENDIF 351 : 12 CONTINUE 352 : C 353 : C------------------------------------------------------------ 354 : C La direction normale au plan est une direction principale 355 : C elle est definie par VF1 et indice par 1 356 : C------------------------------------------------------------ 357 : C 358 : WMAX(1)=VAR0(4) 359 : W(1)=VAR0(7) 360 : XLTR(1)=XMAT(NOBL+16) 361 : IF (XLTR(1).EQ.XZER) XLTR(1)=XDLTR 362 : EPSR=XDEPSR 363 : GS(1)=XMAT(NOBL+13) 364 : IF (GS(1).EQ.XZER) GS(1)=XDGS 365 : XINVL(1)=VAR0(14) 366 : WRUPT(1)=EPSR 367 : BILIN(1)=XMAT(NOBL+21) 368 : GFTR(1)=XMAT(NOBL+10) 369 : IF (BILIN(1).EQ.XZER.OR.GFTR(1).EQ.XZER) THEN 370 : * 371 : * MLR : ICI ON NE PEUT PAS FAIRE MIEUX CAR ON VEUT 372 : * DES DEFORMATIONS DANS LA DIRECTION ETUDIEE 373 : * 374 : IF (GFTR(1).EQ.XZER) GFTR(1)=UNDEMI*XLTR(1)*EPSR 375 : BILIN(1)=XZER 376 : SBILI(1)=XLTR(1) 377 : ELSE 378 : SBILI(1)=(DEUX*GFTR(1)-XLTR(1)*BILIN(1))/WRUPT(1) 379 : ENDIF 380 : C 381 : VF1(1)=XZER 382 : VF1(2)=XZER 383 : VF1(3)=UN 384 : C 385 : VF2(3)=XZER 386 : VF3(3)=XZER 387 : ENDIF 388 : C 389 : C 390 : C####################################### 391 : C======================================= 392 : C---------PARAMETRES DE TAILLE---------- 393 : C======================================= 394 : C####################################### 395 : C 396 : NTAIL=36 397 : IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN 398 : C 399 : C-----------TRIDIM MASSIF------------------ 400 : C 401 : DO 15 IC=1,6 402 : TAIL(IC)=XMAT(IC+NTAIL) 403 : P(IC)=XMAT(IC+NTAIL+6) 404 : 15 CONTINUE 405 : 406 : ELSE 407 : C 408 : C------AXIS/DEF/CONT PLANES/COQUES MINCES--------- 409 : C 410 : 411 : TAIL(1)=XMAT(1+NTAIL) 412 : TAIL(2)=XMAT(2+NTAIL) 413 : TAIL(3)=XMAT(4+NTAIL) 414 : TAIL(4)=XMAT(3+NTAIL) 415 : TAIL(5)=XZER 416 : TAIL(6)=XZER 417 : P(1)=XMAT(5+NTAIL) 418 : P(2)=XMAT(6+NTAIL) 419 : P(3)=UN 420 : P(4)=XMAT(7+NTAIL) 421 : P(5)=XZER 422 : P(6)=XZER 423 : ENDIF 424 : C 425 : C 426 : C IMPRESSION DES DONNEES MATERIAU ,TAILLE ET VARIABLES INTERNES 427 : C -------------------------------------------------------------- 428 : C 429 : IF(IIMPI.EQ.42) THEN 430 : WRITE(IOIMP,77000) IB,IGAU 431 : 77000 FORMAT(////////2X,' IB=',I4,2X,'IGAU=',I3//) 432 : ENDIF 433 : IF(IIMPI.EQ.42) THEN 434 : WRITE(IOIMP,77001) YOUN,XNU,XDLTR,XDGFTR,BTR,XDEPSR,XDGS, 435 : . XDWRUP,XDBILI,AA 436 : 77001 FORMAT(///2X,' YUNG=',1PE12.5,2X,'XNU=',1PE12.5/ 437 : . 2X,'LTR=',1PE12.5,2X,'GF=',1PE12.5,2X,'BETA=',1PE12.5/ 438 : . 2X,'EPSR=',1PE12.5,2X,'GS=',1PE12.5,2X,'WRUP=',1PE12.5/ 439 : . 2X,'BILI=',1PE12.5,2X,'AA=',1PE12.5///) 440 : * 441 : WRITE(IOIMP,77002) (WMAX(I),I=1,3) 442 : 77002 FORMAT('0 WMAX '/3(1X,1PE12.5)/) 443 : * 444 : WRITE(IOIMP,77003) (W(I),I=1,3),(GFTR(I),I=1,3) 445 : 77003 FORMAT('0 W '/3(1X,1PE12.5)/ 446 : . 2X,'GFTR'/3(1X,1PE12.5)/) 447 : * 448 : WRITE(IOIMP,77004) (GS(I),I=1,3),(XLTR(I),I=1,3) 449 : 77004 FORMAT('0 GS '/3(1X,1PE12.5)/ 450 : . 2X,'XLTR'/3(1X,1PE12.5)/) 451 : * 452 : WRITE(IOIMP,77005) (VF1(I),I=1,3),(VF2(I),I=1,3) 453 : 77005 FORMAT('0 VF1 '/3(1X,1PE12.5)/ 454 : . 2X,'VF2 '/3(1X,1PE12.5)/) 455 : * 456 : WRITE(IOIMP,77006) (VF3(I),I=1,3),(XINVL(I),I=1,3) 457 : 77006 FORMAT('0 VF3 '/3(1X,1PE12.5)/ 458 : . 2X,'XINVL'/3(1X,1PE12.5)/) 459 : * 460 : WRITE(IOIMP,77007) (WRUPT(I),I=1,3),(BILIN(I),I=1,3) 461 : 77007 FORMAT('0 WRUPT'/3(1X,1PE12.5)/ 462 : . 2X,'BILIN'/3(1X,1PE12.5)/) 463 : * 464 : WRITE(IOIMP,77008) (SBILI(I),I=1,3) 465 : 77008 FORMAT('0 SBILI'/3(1X,1PE12.5)/) 466 : * 467 : WRITE(IOIMP,77009) (TAIL(I),I=1,6),(P(I),I=1,6) 468 : 77009 FORMAT('0 TAIL '/6(1X,1PE12.5)/ 469 : . 2X,'P '/6(1X,1PE12.5)/) 470 : * 471 : WRITE(IOIMP,77090) (VARGA0(I),I=1,NGAT) 472 : 77090 FORMAT('0 VARGA0 EN ENTREE'/4(1X,1PE12.5)/) 473 : * 474 : WRITE(IOIMP,17009) (SIG0(I),I=1,NSTRS) 475 : 17009 FORMAT('0 SIG0 EN ENTREE '/8(1X,1PE12.5)/) 476 : * 477 : WRITE(IOIMP,18009) (DEPST(I),I=1,NSTRS) 478 : 18009 FORMAT('0 DEPST EN ENTREE '/8(1X,1PE12.5)/) 479 : * 480 : WRITE(IOIMP,18010) FI1,FI2 481 : 18010 FORMAT('0 FI1 FI2 '/2(1X,1PE12.5)/) 482 : * 483 : WRITE(IOIMP,18011) DT,TETA1,TETA2 484 : 18011 FORMAT('0 DT TETA1 TETA2 '/3(1X,1PE12.5)/) 485 : ENDIF 486 : C 487 : C 488 : C======================================================================= 489 : C ADAPTATION DE L'OPTION DE CALCUL VERS LE 3D MASSIF 490 : C DE SIG0 A SIGMA0 491 : C 492 : C*********************************************************************** 493 : C A T T E N T I O N 494 : C 495 : C DANS LA SUITE ON TRAVAILLE SUR EPSXY AU LIEU DE GAMXY !!!! 496 : C 497 : C*********************************************************************** 498 : C 499 : C======================================================================= 500 : C 500 : CALL ZDANUL(SIGMA0,6) 500 : CALL ZDANUL(DSIGMA,6) 500 : CALL ZDANUL(EPSV0,6) 501 : C 502 : IF (MFR.EQ.1) THEN 503 : C 504 : C-----------------------MASSIF 3D/2D----NSTRS=6/4--------------- 505 : C 506 : DO 20 IC=1,NSTRS 507 : SIGMA0(IC)=SIG0(IC) 508 : IF(IC.LE.3) THEN 509 : DSIGMA(IC)=DEPST(IC) 510 : EPSV0(IC) =VAR0(NVARI-MGAT+IC) 511 : ELSE 512 : DSIGMA(IC)=DEPST(IC)*UNDEMI 513 : EPSV0(IC) =VAR0(NVARI-MGAT+IC)*UNDEMI 514 : ENDIF 515 : 20 CONTINUE 516 : C 517 : ELSEIF (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)) THEN 518 : C 519 : C-----3D COQUES MINCES SANS/AVEC CISAIL. TRANS.-----NSTRS=6/8-------- 520 : C ON NE PREND QUE LA PARTIE MEMBRANE !! 521 : C 522 : EPAI=XCAR(1) 523 : SIGMA0(1)=SIG0(1)/EPAI 524 : SIGMA0(2)=SIG0(2)/EPAI 525 : SIGMA0(4)=SIG0(3)/EPAI 526 : DSIGMA(1)=DEPST(1) 527 : DSIGMA(2)=DEPST(2) 528 : DSIGMA(4)=DEPST(3)*UNDEMI 529 : EPSV0(1) =VAR0(NVARI-MGAT+1) 530 : EPSV0(2) =VAR0(NVARI-MGAT+2) 531 : EPSV0(4) =VAR0(NVARI-MGAT+3)*UNDEMI 532 : ENDIF 533 : C 534 : C####################################################################### 535 : C======================================================================= 536 : C CALCUL DES PARAMETRES POUR UN MATERIAU PRE-FISSURE 537 : C======================================================================= 538 : C####################################################################### 539 : C 540 : XNF1=VF1(1)*VF1(1)+VF1(2)*VF1(2)+VF1(3)*VF1(3) 541 : XNF2=VF2(1)*VF2(1)+VF2(2)*VF2(2)+VF2(3)*VF2(3) 542 : XNF3=VF3(1)*VF3(1)+VF3(2)*VF3(2)+VF3(3)*VF3(3) 543 : C 544 : C======================================================================= 545 : C CALCUL DES PARAMETRES DE TAILLE POUR UN MATERIAU PRE-FISSURE 546 : C======================================================================= 547 : C 548 : C---on calcule la parametre de taille si la fissure est ouverte-- 549 : C---------------et le parametre de taille nul-------------------- 550 : C 551 : IF (XNF1.NE.XZER.AND.W(1).NE.XZER.AND.XINVL(1).EQ.XZER) THEN 552 : C 553 : C------------FISSURE 1 OUVERTE--------------- 554 : C 555 : XL1=TAIL(1)*VF1(1)*VF1(1)+TAIL(2)*VF1(2)*VF1(2) 556 : XL1=XL1+TAIL(3)*VF1(3)*VF1(3)+DEUX*TAIL(4)*VF1(2)*VF1(1) 557 : XL1=XL1+DEUX*TAIL(5)*VF1(1)*VF1(3) 558 : XL1=XL1+DEUX*TAIL(6)*VF1(2)*VF1(3) 559 : P1=P(1)*VF1(1)*VF1(1)+P(2)*VF1(2)*VF1(2)+P(3)*VF1(3)*VF1(3) 560 : P1=P1+DEUX*P(4)*VF1(2)*VF1(1)+DEUX*P(5)*VF1(1)*VF1(3) 561 : P1=P1+DEUX*P(6)*VF1(2)*VF1(3) 562 : WMAX(1)=W(1) 563 : IF (XL1.NE.XZER) THEN 564 : XINVL(1)=ABS(P1/XL1) 565 : ELSE 566 : XINVL(1)=UN 567 : ENDIF 568 : ENDIF 569 : C 570 : C---------FISSURE 2 OUVERTE----------- 571 : C 572 : IF (XNF2.NE.XZER.AND.W(2).NE.XZER.AND.XINVL(2).EQ.XZER) THEN 573 : XL2=TAIL(1)*VF2(1)*VF2(1)+TAIL(2)*VF2(2)*VF2(2) 574 : XL2=XL2+TAIL(3)*VF2(3)*VF2(3)+DEUX*TAIL(4)*VF2(2)*VF2(1) 575 : XL2=XL2+DEUX*TAIL(5)*VF2(1)*VF2(3) 576 : XL2=XL2+DEUX*TAIL(6)*VF2(2)*VF2(3) 577 : P2=P(1)*VF2(1)*VF2(1)+P(2)*VF2(2)*VF2(2)+P(3)*VF2(3)*VF2(3) 578 : P2=P2+DEUX*P(4)*VF2(2)*VF2(1)+DEUX*P(5)*VF2(1)*VF2(3) 579 : P2=P2+DEUX*P(6)*VF2(2)*VF2(3) 580 : WMAX(2)=W(2) 581 : IF (XL2.NE.XZER) THEN 582 : XINVL(2)=ABS(P2/XL2) 583 : ELSE 584 : XINVL(2)=UN 585 : ENDIF 586 : ENDIF 587 : C 588 : C---------FISSURE 3 OUVERTE----------- 589 : C 590 : IF (XNF3.NE.XZER.AND.W(3).NE.XZER.AND.XINVL(3).EQ.XZER) THEN 591 : XL3=TAIL(1)*VF3(1)*VF3(1)+TAIL(2)*VF3(2)*VF3(2) 592 : XL3=XL3+TAIL(3)*VF3(3)*VF3(3)+DEUX*TAIL(4)*VF3(2)*VF3(1) 593 : XL3=XL3+DEUX*TAIL(5)*VF3(1)*VF3(3) 594 : XL3=XL3+DEUX*TAIL(6)*VF3(2)*VF3(3) 595 : P3=P(1)*VF3(1)*VF3(1)+P(2)*VF3(2)*VF3(2)+P(3)*VF3(3)*VF3(3) 596 : P3=P3+DEUX*P(4)*VF3(2)*VF3(1)+DEUX*P(5)*VF3(1)*VF3(3) 597 : P3=P3+DEUX*P(6)*VF3(2)*VF3(3) 598 : WMAX(3)=W(3) 599 : IF (XL3.NE.XZER) THEN 600 : XINVL(3)=ABS(P3/XL3) 601 : ELSE 602 : XINVL(3)=UN 603 : ENDIF 604 : ENDIF 605 : C 606 : C====================================================================== 607 : C CALCUL DU NOMBRE DE FISSURE 608 : C====================================================================== 609 : C 610 : NFISSU=0 611 : IF (XINVL(1).NE.XZER) NFISSU=NFISSU+1 612 : IF (XINVL(2).NE.XZER) NFISSU=NFISSU+1 613 : IF (XINVL(3).NE.XZER) NFISSU=NFISSU+1 614 : C 615 : C================================================================ 616 : C CALCUL DU NOMBRE DE DIRECTION IMPOSEE 617 : C qui ne sont pas des directions de fissuration 618 : C================================================================ 619 : C 620 : NVF=0 621 : IF (XNF1.NE.XZER.AND.XINVL(1).EQ.XZER) NVF=NVF+1 622 : IF (XNF2.NE.XZER.AND.XINVL(2).EQ.XZER) NVF=NVF+1 623 : IF (XNF3.NE.XZER.AND.XINVL(3).EQ.XZER) NVF=NVF+1 624 : C 625 : C--remarque : en 2D NVF la direction (0 0 1) est toujours imposee-- 626 : C 627 : C======================================================================= 628 : C-------------test la consistance des vecteurs VF1 VF2 VF3-------------- 629 : C VF1 VF2 et VF3 sont dans l ordre d apparition 1 2 3 630 : C======================================================================= 631 : C 632 : IF (XNF1.EQ.XZER.AND.(XNF2+XNF3).NE.XZER) THEN 633 : KERRE=985 634 : GO TO 2021 635 : ENDIF 636 : C 637 : IF (XNF2.EQ.XZER.AND.XNF3.NE.XZER) THEN 638 : KERRE=985 639 : GO TO 2021 640 : ENDIF 641 : C 642 : PRDT=VF1(1)*VF2(1)+VF1(2)*VF2(2)+VF1(3)*VF2(3) 643 : PRDT=PRDT+VF1(1)*VF3(1)+VF1(2)*VF3(2)+VF1(3)*VF3(3) 644 : PRDT=PRDT+VF2(1)*VF3(1)+VF2(2)*VF3(2)+VF2(3)*VF3(3) 645 : PRDT=ABS(PRDT) 646 : C 647 : IF (PRDT.GE.1D-3) THEN 648 : KERRE=985 649 : GO TO 2021 650 : ENDIF 651 : C 652 : C####################################################################### 653 : C======================================================================= 654 : C INCREMENT DE DEFORMATION 655 : C======================================================================= 656 : C####################################################################### 657 : C 658 : DO 34 I=1,6 659 : DDEF0(I)=DSIGMA(I) 660 : 34 CONTINUE 661 : C 662 : C 663 : C IMPRESSION DES INCREMENTS DE DEFORMATION ET ETAT INITIAL 664 : C -------------------------------------------------------- 665 : C 666 : IF(IIMPI.EQ.42) THEN 667 : WRITE(IOIMP,77010) (SIGMA0(I),I=1,6) 668 : 77010 FORMAT('0 SIGMA0 EN REPERE GENERAL '/6(1X,1PE12.5)/) 669 : * 670 : WRITE(IOIMP,77011) (DDEF0(I),I=1,6) 671 : 77011 FORMAT('0 DDEF0 EN REPERE GENERAL '/6(1X,1PE12.5)/) 672 : * 673 : WRITE(IOIMP,77013) (EPSV0(I),I=1,6) 674 : 77013 FORMAT('0 EPSV0 EN REPERE GENERAL '/6(1X,1PE12.5)/) 675 : * 676 : WRITE(IOIMP,77012) NFISSU,NVF,(XINVL(I),I=1,3) 677 : 77012 FORMAT('0 NFISSU=',I3,2X,'NVF=',I3/ 678 : . '0 XINVL '/3(1X,1PE12.5)/) 679 : ENDIF 680 : C 681 : C 682 : C####################################################################### 683 : C======================================================================= 684 : C 685 : C LES CHOSES SERIEUSES COMMENCENT : ITERATIONS INTERNES 686 : C 687 : C======================================================================= 688 : C####################################################################### 689 : C 690 : C======================================================================= 691 : C INITIALISATION DES VARIABLES GLOBALES AUX ITERATIONS INTERNES 692 : C======================================================================= 693 : C 694 : PSOM=0.D0 695 : DO 334 I=1,6 696 : PSOM=PSOM+ABS(DDEF0(I)) 697 : 334 CONTINUE 698 : PSOM=PSOM/(3.D0*DEFOTR) 699 : * MLR 22/11/96 700 : PSOM=MIN(PSOM,1.D6) 701 : * 702 : * AM 30/04/96 ON MODULE LA PRECISION SELON LA VALEUR DE PSOM 703 : * 704 : * PRECIS = MIN (1.D-4,1.D-4/PSOM) 705 : * EPSILO = MIN (1.D-2,1.D-2/PSOM) 706 : EPSIL2 = MIN (1.D-4,1.D-4/PSOM) 707 : TAURES=UN 708 : ITER=0 709 : C 709 : CALL ZDANUL(DDEFPT,6) 710 : C 711 : C --- LES VITESSES DE TEMPERATURE ET DE DENSITE DE FISSION SONT CTES --- 712 : C 713 : TPOINT=(TETA2-TETA1)/DT 714 : FPOINT=(FI2-FI1)/DT 715 : C 716 : DTREST=DT 717 : TEMPE1=TETA1 718 : DFISS1=FI1 719 : C 720 : C======================================================================= 721 : C LABEL DE DEBUT DES ITERATIONS INTERNES 722 : C======================================================================= 723 : C 724 : 31 CONTINUE 725 : C 726 : ITER=ITER+1 727 : C 728 : IF(IIMPI.EQ.42) THEN 729 : WRITE(IOIMP,77015) ITER,TAURES 730 : 77015 FORMAT(//////2X,' >>>>>>>>> ITERATION INTERNE ', 731 : & I3,2X,'TAURES=',1PE12.5/) 732 : ENDIF 733 : C 734 : IF (ITER.GE.25) THEN 735 : C------non convergence des iterations internes------ 736 : KERRE=986 737 : GO TO 2021 738 : ENDIF 739 : C 740 : C 741 : C======================================================================= 742 : C INITIALISATION DES VARIABLES POUR GESTION DES SOUS ITERATIONS 743 : C======================================================================= 744 : C---prise en compte de la totalite du reste de l increment de def tot--- 745 : C----en sortie de UO2CA2 IRESU contient la nouvelle non linearite de --- 746 : C-------fissuration rencontree lors des sous iterations internes-------- 747 : C 748 : C 749 : TAU=UN 750 : C 751 : DO IC=1,3 752 : W0(IC)=W(IC) 753 : WMAX0(IC)=WMAX(IC) 754 : ENDDO 755 : C 756 : IF(IIMPI.EQ.42) THEN 757 : WRITE(IOIMP,73032) (W0(I),I=1,3),(WMAX0(I),I=1,3) 758 : 73032 FORMAT(' W0 '/3(1X,1PE12.5)/' WMAX0 '/3(1X,1PE12.5)/) 759 : * 760 : WRITE(IOIMP,73034) (WRUPT(I),I=1,3),(XINVL(I),I=1,3) 761 : 73034 FORMAT(' WRUPT'/3(1X,1PE12.5)/' XINVL'/3(1X,1PE12.5)/) 762 : WRITE(IOIMP,73934) XNF1, XNF2,XNF3 763 : 73934 FORMAT(/// 2X, 'XNF1 XNF2 XNF3 = ',3(1X,1PE12.5)/) 764 : ENDIF 765 : C 766 : C 767 : C======================================================================= 768 : C REPERE DE CALCUL 769 : C======================================================================= 770 : C 771 : C 772 : IF (XNF1.NE.XZER) THEN 773 : C 774 : C------------DIRECTION 1 IMPOSEE--------------- 775 : C 776 : VCA1(1)=VF1(1) 777 : VCA1(2)=VF1(2) 778 : VCA1(3)=VF1(3) 779 : IF (XNF3.NE.XZER) THEN 780 : C 781 : C---------DIRECTION 1 2 3 IMPOSEES----------- 782 : C 783 : VCA2(1)=VF2(1) 784 : VCA2(2)=VF2(2) 785 : VCA2(3)=VF2(3) 786 : VCA3(1)=VF3(1) 787 : VCA3(2)=VF3(2) 788 : VCA3(3)=VF3(3) 789 : ELSEIF (XNF2.NE.XZER) THEN 790 : C 791 : C----------DIRECTION 1 ET 2 IMPOSEES------------ 792 : C 793 : VCA2(1)=VF2(1) 794 : VCA2(2)=VF2(2) 795 : VCA2(3)=VF2(3) 796 : VCA3(1)=VF1(2)*VF2(3)-VF1(3)*VF2(2) 797 : VCA3(2)=VF1(3)*VF2(1)-VF1(1)*VF2(3) 798 : VCA3(3)=VF1(1)*VF2(2)-VF1(2)*VF2(1) 799 : ELSE 800 : C 801 : C-------------UNIQUEMENT LA DIRECTION 1 IMPOSEE-------------- 802 : C 803 : IF (VCA1(2).NE.XZER.OR.VCA1(3).NE.XZER) THEN 804 : VCA2(1)=XZER 805 : VCA2(2)=-VCA1(3) 806 : VCA2(3)=VCA1(2) 807 : XVCA=SQRT(VCA2(1)*VCA2(1)+VCA2(2)*VCA2(2) 808 : . +VCA2(3)*VCA2(3)) 809 : VCA2(1)=VCA2(1)/XVCA 810 : VCA2(2)=VCA2(2)/XVCA 811 : VCA2(3)=VCA2(3)/XVCA 812 : ELSE 813 : VCA2(1)=XZER 814 : VCA2(2)=UN 815 : VCA2(3)=XZER 816 : ENDIF 817 : VCA3(1)=VF1(2)*VCA2(3)-VF1(3)*VCA2(2) 818 : VCA3(2)=VF1(3)*VCA2(1)-VF1(1)*VCA2(3) 819 : VCA3(3)=VF1(1)*VCA2(2)-VF1(2)*VCA2(1) 820 : ENDIF 821 : ELSE 822 : C 823 : C------------PAS DE DIRECTION IMPOSEE---------- 824 : C 825 : VCA1(1)=UN 826 : VCA1(2)=XZER 827 : VCA1(3)=XZER 828 : VCA2(1)=XZER 829 : VCA2(2)=UN 830 : VCA2(3)=XZER 831 : VCA3(1)=XZER 832 : VCA3(2)=XZER 833 : VCA3(3)=UN 834 : ENDIF 835 : C 836 : C======================================================================= 837 : C CALCUL DE DDEF0 (VIT. DEF. TOT.) ET SIGMA0 ET EPSV0 (DEF. VISCOPLAST.) 838 : C DANS LE REPERE DE CALCUL 839 : C RESULTAT NOTE : DDEF ET SIGMA ET EPSV 840 : C======================================================================= 841 : C 842 : LECAS=1 842 : CALL UO2ROT(SIGMA0,SIGMA,VCA1,VCA2,VCA3,LECAS) 842 : CALL UO2ROT(DDEF0,DDEF,VCA1,VCA2,VCA3,LECAS) 842 : CALL UO2ROT(EPSV0,EPSV,VCA1,VCA2,VCA3,LECAS) 843 : C 844 : IF(IIMPI.EQ.42) THEN 845 : WRITE(IOIMP,70016) (VCA1(I),I=1,3),(VCA2(I),I=1,3), 846 : & (VCA3(I),I=1,3) 847 : 70016 FORMAT(2X,'VECTEUR VCA1 ',3(1X,1PE12.5)/ 848 : & 2X,'VECTEUR VCA2 ',3(1X,1PE12.5)/ 849 : & 2X,'VECTEUR VCA3 ',3(1X,1PE12.5)//) 850 : * 851 : WRITE(IOIMP,77016) (SIGMA(I),I=1,6) 852 : 77016 FORMAT(2X,'SIGMA0 EN REPERE CALCUL '/6(1X,1PE12.5)/) 853 : * 854 : WRITE(IOIMP,77017) (DDEF(I),I=1,6) 855 : 77017 FORMAT(2X,'DDEF0 EN REPERE CALCUL '/6(1X,1PE12.5)/) 856 : * 857 : WRITE(IOIMP,77018) (EPSV(I),I=1,6) 858 : 77018 FORMAT(2X,'EPSV0 EN REPERE CALCUL '/6(1X,1PE12.5)/) 859 : * 860 : WRITE(IOIMP,73017) PRECIZ 861 : 73017 FORMAT(2X,'PRECIZ = ',1PE12.5/) 862 : ENDIF 863 : C 864 : C----------------------------------------------------------------------- 865 : C 866 : C VERIFICATIONS SUR L'ETAT INITIAL 867 : C ZZZZ A COMPLETER 868 : C----------------------------------------------------------------------- 869 : C 870 : ICAZ=1 870 : CALL UO2TE2(XINVL,W0,WMAX0,SIGMA,XLTR,PRECIZ, 871 : & IB,IGAU,ICAZ,KERRE) 872 : IF(KERRE.EQ.70) GO TO 2021 873 : C 874 : C 875 : C======================================================================= 876 : C SOUS ITERATIONS INTERNES GEREES PAR UO2CA2 877 : C 878 : C CES SOUS-ITERATIONS REDUISENT L INCREMENT DE DEF. TOT. DE MANIERE 879 : C A ANNULER TOUTES LES NON LINEARITES EVENTUELLES (FISSURATION) 880 : C======================================================================= 881 : C 881 : CALL IANUL(IRESU,20) 882 : C 883 : DO IC=1,3 884 : W(IC)=W0(IC) 885 : WMAX(IC)=WMAX0(IC) 886 : ENDDO 887 : C 888 : C======================================================================= 889 : C 890 : C---------------------------ECOULEMENT---------------------------------- 891 : C 892 : C======================================================================= 893 : C 893 : CALL UO2CA2(DTREST,MSOUPA,PRECIE,PRECIZ,SIGMA,DDEF,EPSV,VARGA0, 894 : & NGAT,W,WMAX,XLTR, 895 : & XINVL,GS,XMAT,NCOMAT,NSIMP,AA, 896 : & TEMPE1,TPOINT,DFISS1,FPOINT,PRECIS,IB,IGAU, 897 : & NFISSU,NVF,XVF,DTCALC,IRESU,NRESU, 898 : & SIGMAF,DDEFP,EPSVF,VARGAF,KERRE) 899 : IF (KERRE.NE.0) THEN 900 : PRINT *,'IB=',IB,' IGAU=',IGAU 901 : GO TO 2021 902 : ENDIF 903 : C 904 : C 905 : IF(IIMPI.EQ.42) THEN 906 : WRITE(IOIMP,77031) 907 : 77031 FORMAT(' SORTIE D UO2CA2 ' /) 908 : * 909 : WRITE(IOIMP,77032) (W(I),I=1,3),(WMAX(I),I=1,3) 910 : 77032 FORMAT(' W '/3(1X,1PE12.5)/' WMAX '/3(1X,1PE12.5)/) 911 : * 912 : WRITE(IOIMP,75631) NFISSU,NVF,NRESU 913 : 75631 FORMAT(' NFISSU = ',I3,2X,'NVF = ',I3,2X,'NRESU=',I3/) 914 : WRITE(IOIMP,75632) (IRESU(I),I=1,NRESU) 915 : 75632 FORMAT(' IRESU = ',10I4/) 916 : WRITE(IOIMP,75633) ((XVF(I,J),I=1,3),J=1,3) 917 : 75633 FORMAT(' TABLEAU XVF '/(3(1X,1PE12.5)/)) 918 : ENDIF 919 : C 920 : C 921 : C======================================================================= 922 : C CALCUL DU RESTE DE L'INCREMENT DE DEFORMATION 923 : C ET MISE A JOUR DES VARIABLES INTERNES 924 : C======================================================================= 925 : C 926 : C 927 : TAU=DTCALC/DTREST 928 : DTREST=(UN-TAU)*DTREST 929 : TEMPE1=TEMPE1+(TPOINT*DTCALC) 930 : DFISS1=DFISS1+(FPOINT*DTCALC) 931 : C 932 : TAURES=(UN-TAU)*TAURES 933 : C 934 : IF(IIMPI.EQ.42) THEN 935 : WRITE(IOIMP,77039) TAU,TAURES 936 : 77039 FORMAT(//2X,'VALEUR DE L INCREMENT ECOULEE ' / 937 : & /2X,' TAU = ',1PE12.5,2X,'TAURES=',1PE12.5/) 938 : ENDIF 939 : C 940 : CZZZZZZZZZZZZZZZZ 941 : C EVENTUELLEMENT TESTER L'EGALITE DE TAU A 0. AUSSI 942 : CZZZZZZZZZZZZZZZZ 943 : 944 : IF(TAU.LT.0.D0) THEN 945 : WRITE(IOIMP,70069) 946 : 70069 FORMAT(////2X,'######### UO2OT2: TAU NEGATIF #########'////) 947 : KERRE=414 948 : GO TO 2021 949 : ENDIF 950 : C 951 : C--------------------------------------------------------------------- 952 : C TEST SUR IRESU 953 : C--------------------------------------------------------------------- 954 : C 955 : IF(NRESU.GT.1) THEN 956 : DO 43 IR=1,NRESU 957 : JRESU=IRESU(IR) 958 : DO 44 KR=1,NRESU 959 : KRESU=IRESU(KR) 960 : IF(KR.NE.IR.AND.JRESU.EQ.KRESU) THEN 961 : WRITE(IOIMP,20069) 962 : 20069 FORMAT(////2X, 963 : & '########### UO2OT2: 2 IRESU IDENTIQUES ###########'////) 964 : KERRE=987 965 : GO TO 2021 966 : ENDIF 967 : 44 CONTINUE 968 : 43 CONTINUE 969 : ENDIF 970 : 971 : C 972 : C 973 : C======================================================================= 974 : C 975 : C-------------PRISE EN COMPTE DE LA NOUVELLE NON LINEARITE-------------- 976 : C 977 : C======================================================================= 978 : C 979 : C 980 : DO 55 IR=1,NRESU 981 : JRESU=IRESU(IR) 982 : C 983 : IF(IIMPI.EQ.42) THEN 984 : WRITE(IOIMP,74401) JRESU 985 : 74401 FORMAT(/2X,'MISE A JOUR POUR JRESU = ',I4/) 986 : ENDIF 987 : 988 : C 989 : C-----------------FISSURATION--------------- 990 : C 991 : IF (JRESU.GE.1.AND.JRESU.LE.3) THEN 992 : C 993 : NFISSU=NFISSU+1 994 : C 995 : C----------CALCUL DE VF , XINVL DANS LE REPERE GLOBAL------------- 996 : C 997 : XVFN=XVF(1,JRESU)**2 + XVF(2,JRESU)**2 998 : & + XVF(3,JRESU)**2 999 : IF(XVFN.EQ.XZER) THEN 1000 : WRITE(IOIMP,77027) JRESU 1001 : 77027 FORMAT(2X,' *** UO2OT2: PB AVEC UN VECTEUR XVF !!!! ' / 1002 : & 2X,' DIRECTION = ',I3//) 1003 : KERRE=987 1004 : GO TO 2021 1005 : ENDIF 1006 : C 1007 : C 1008 : VF(1)=VCA1(1)*XVF(1,JRESU)+VCA2(1)*XVF(2,JRESU) 1009 : & +VCA3(1)*XVF(3,JRESU) 1010 : VF(2)=VCA1(2)*XVF(1,JRESU)+VCA2(2)*XVF(2,JRESU) 1011 : & +VCA3(2)*XVF(3,JRESU) 1012 : VF(3)=VCA1(3)*XVF(1,JRESU)+VCA2(3)*XVF(2,JRESU) 1013 : & +VCA3(3)*XVF(3,JRESU) 1014 : XNF=VF(1)*VF(1)+VF(2)*VF(2)+VF(3)*VF(3) 1015 : XL=TAIL(1)*VF(1)*VF(1)+TAIL(2)*VF(2)*VF(2) 1016 : XL=XL+TAIL(3)*VF(3)*VF(3)+DEUX*TAIL(4)*VF(2)*VF(1) 1017 : XL=XL+DEUX*TAIL(5)*VF(1)*VF(3) 1018 : XL=XL+DEUX*TAIL(6)*VF(2)*VF(3) 1019 : PASS=P(1)*VF(1)*VF(1)+P(2)*VF(2)*VF(2)+P(3)*VF(3)*VF(3) 1020 : PASS=PASS+DEUX*P(4)*VF(2)*VF(1)+DEUX*P(5)*VF(1)*VF(3) 1021 : PASS=PASS+DEUX*P(6)*VF(2)*VF(3) 1022 : IF (XL.NE.XZER) THEN 1023 : XTAILLE=ABS(PASS/XL) 1024 : ELSE 1025 : XTAILLE=UN 1026 : ENDIF 1027 : C 1028 : XINVL(JRESU)=XTAILLE 1029 : C 1030 : C 1031 : C MISE A JOUR DES DIRECTIONS DE FISSURE DANS LES VARIABLES INTERNES 1032 : C 1033 : C ------------------------------------------ 1034 : C MATERIAU NON FISSURE PREALABLEMENT 1035 : C ------------------------------------------ 1036 : C 1037 : IF (NFISSU.EQ.1) THEN 1038 : IF (NVF.EQ.0) THEN 1039 : VF1(1)=VF(1) 1040 : VF1(2)=VF(2) 1041 : VF1(3)=VF(3) 1042 : XNF1=XNF 1043 : GOTO 55 1044 : ENDIF 1045 : IF (NVF.EQ.1.AND.JRESU.EQ.1) THEN 1046 : NVF=NVF-1 1047 : GOTO 55 1048 : ENDIF 1049 : IF (NVF.EQ.1.AND.JRESU.NE.1) THEN 1050 : VF2(1)=VF(1) 1051 : VF2(2)=VF(2) 1052 : VF2(3)=VF(3) 1053 : XNF2=XNF 1054 : GOTO 55 1055 : ENDIF 1056 : IF (NVF.EQ.2.AND.JRESU.EQ.3) THEN 1057 : VF3(1)=VF(1) 1058 : VF3(2)=VF(2) 1059 : VF3(3)=VF(3) 1060 : XNF3=XNF 1061 : GOTO 55 1062 : ENDIF 1063 : IF (NVF.EQ.2.AND.JRESU.NE.3) THEN 1064 : NVF=NVF-1 1065 : GOTO 55 1066 : ENDIF 1067 : IF (NVF.EQ.3) THEN 1068 : NVF=NVF-1 1069 : GOTO 55 1070 : ENDIF 1071 : ENDIF 1072 : C 1073 : C------------------------------------------ 1074 : C UNE FISSURE AU PREALABLE 1075 : C------------------------------------------ 1076 : C 1077 : IF (NFISSU.EQ.2) THEN 1078 : IF (NVF.EQ.0) THEN 1079 : VF2(1)=VF(1) 1080 : VF2(2)=VF(2) 1081 : VF2(3)=VF(3) 1082 : XNF2=XNF 1083 : GOTO 55 1084 : ENDIF 1085 : IF (NVF.EQ.1.AND.JRESU.EQ.3) THEN 1086 : VF3(1)=VF(1) 1087 : VF3(2)=VF(2) 1088 : VF3(3)=VF(3) 1089 : XNF3=XNF 1090 : GOTO 55 1091 : ENDIF 1092 : IF (NVF.EQ.1.AND.JRESU.NE.3) THEN 1093 : NVF=NVF-1 1094 : GOTO 55 1095 : ENDIF 1096 : IF (NVF.EQ.2) THEN 1097 : NVF=NVF-1 1098 : GOTO 55 1099 : ENDIF 1100 : ENDIF 1101 : C 1102 : C------------------------------------------ 1103 : C DEUX FISSURES PRE EXISTANTES 1104 : C------------------------------------------ 1105 : C 1106 : IF (NFISSU.EQ.3) THEN 1107 : IF (NVF.EQ.1) THEN 1108 : NVF=0 1109 : GOTO 55 1110 : ENDIF 1111 : IF (JRESU.EQ.1) THEN 1112 : VF1(1)=VF(1) 1113 : VF1(2)=VF(2) 1114 : VF1(3)=VF(3) 1115 : XNF1=XNF 1116 : GOTO 55 1117 : ENDIF 1118 : IF (JRESU.EQ.2) THEN 1119 : VF2(1)=VF(1) 1120 : VF2(2)=VF(2) 1121 : VF2(3)=VF(3) 1122 : XNF2=XNF 1123 : GOTO 55 1124 : ENDIF 1125 : IF (JRESU.EQ.3) THEN 1126 : VF3(1)=VF(1) 1127 : VF3(2)=VF(2) 1128 : VF3(3)=VF(3) 1129 : XNF3=XNF 1130 : GOTO 55 1131 : ENDIF 1132 : ENDIF 1133 : ENDIF 1134 : C 1135 : C 1136 : 55 CONTINUE 1137 : 1138 : C 1139 : C QUELQUES TESTS SUPPLEMENTAIRES 1140 : C 1141 : C 1142 : * DO I=1,3 1143 : * IF(ABS(WMAX(I)-WRUPT(I)).LT.WRUPT(I)*PRECIE) THEN 1144 : * WMAX(I)=WRUPT(I) 1145 : * ENDIF 1146 : * ENDDO 1147 : C 1148 : ICAZ=2 1148 : CALL UO2TE2(XINVL,W,WMAX,SIGMAF,XLTR,PRECIZ, 1149 : & IB,IGAU,ICAZ,KERRE) 1150 : IF(KERRE.EQ.70) GO TO 2021 1151 : C 1152 : DO 202 I=1,3 1153 : IF(DDEFP(I).GT.0.D0) THEN 1154 : IF(DABS(SIGMAF(I)).LT.PRECIZ) SIGMAF(I)=0.D0 1155 : ENDIF 1156 : 202 CONTINUE 1157 : C 1158 : C 1159 : C======================================================================= 1160 : C CALCUL DE SIGMAF ET DDEFP ET EPSVF DANS LE REPERE GLOBAL 1161 : C RESULTAT NOTE : SIGF0 ET DDEFP0 ET EPSVF0 1162 : C======================================================================= 1163 : C 1164 : LECAS=2 1164 : CALL UO2ROT(SIGMAF,SIGF0,VCA1,VCA2,VCA3,LECAS) 1164 : CALL UO2ROT(DDEFP,DDEFP0,VCA1,VCA2,VCA3,LECAS) 1164 : CALL UO2ROT(EPSVF,EPSVF0,VCA1,VCA2,VCA3,LECAS) 1165 : C 1166 : IF(IIMPI.EQ.42) THEN 1167 : WRITE(IOIMP,77040) (SIGF0(I),I=1,6) 1168 : 77040 FORMAT('0 SIGF EN REPERE GLOBAL '/6(1X,1PE12.5)/) 1169 : * 1170 : WRITE(IOIMP,77041) (DDEFP0(I),I=1,6) 1171 : 77041 FORMAT('0 DDEFP EN REPERE GLOBAL '/6(1X,1PE12.5)/) 1172 : * 1173 : WRITE(IOIMP,77042) (EPSVF0(I),I=1,6) 1174 : 77042 FORMAT('0 EPSVF EN REPERE GLOBAL '/6(1X,1PE12.5)/) 1175 : ENDIF 1176 : C 1177 : C 1178 : C======================================================================= 1179 : C MISE A JOUR DE L ETAT DU MATERIAU POUR UN NOUVEL INCREMENT INTERNE 1180 : C======================================================================= 1181 : C 1182 : DO 54 IC=1,6 1183 : SIGMA0(IC)=SIGF0(IC) 1184 : EPSV0(IC)=EPSVF0(IC) 1185 : DDEF0(IC)=(UN-TAU)*DDEF0(IC) 1186 : DDEFPT(IC)=DDEFPT(IC)+DDEFP0(IC) 1187 : 54 CONTINUE 1188 : DO I=1,NGAT 1189 : VARGA0(I)=VARGAF(I) 1190 : ENDDO 1191 : C 1192 : C 1193 : C======================================================================= 1194 : C --- CONTROLE DE L AMPLITUDE DE L INCREMENT INITIAL DE DEFORM. SI FISS. 1195 : C======================================================================= 1196 : TOLEPS=1E12 1197 : TOL=TOLEPS 1198 : EPSMAX=XZER 1199 : DO 56 I=1,3 1200 : IF (DABS(DEPST(I)).GT.EPSMAX) EPSMAX=DABS(DEPST(I)) 1201 : IF (XINVL(I).NE.XZER) THEN 1202 : TOL=(XINVL(I)*WRUPT(I)) - (XLTR(I)/YOUN) 1203 : TOL=DABS(TOL) 1204 : IF (TOL.LT.TOLEPS) TOLEPS=TOL 1205 : ENDIF 1206 : 56 CONTINUE 1207 : IF (EPSMAX.GT.TOLEPS) THEN 1208 : FACTEU=DIX*EPSMAX/TOLEPS 1209 : IFAC=IDINT(FACTEU) 1210 : * WRITE(IOIMP,77894) IFAC 1211 : *77894 FORMAT(/,'UO2OT2 - PAS DE TEMPS TROP GRAND D UN FACTEUR ',I4,/) 1212 : * KERRE=268 1213 : * RETURN 1214 : ENDIF 1215 : C 1216 : C 1217 : C======================================================================= 1218 : C TEST L ADMISSIBILITE DU DERNIER ECOULEMENT 1219 : C======================================================================= 1220 : C 1221 : C AM 30/04/96 REMPLACEMENT DE EPSILO PAR EPSIL2 1222 : C 1223 : IF (TAURES.GT.EPSIL2) GOTO 31 1224 : C 1225 : C####################################################################### 1226 : C======================================================================= 1227 : C 1228 : C C EST FINI 1229 : C LES CONTRAINTES FINALES SONT DONNEES PAR : SIGMA0 1230 : C LES INC. DE DEF INELAS (FISS.+VISCOPLAST.) SONT DONNES PAR : DDEFPT 1231 : C LES DEF VISCOPLAST. SONT DONNEES PAR : EPSV0 1232 : C 1233 : C======================================================================= 1234 : C####################################################################### 1235 : C 1236 : C 1237 : C####################################################################### 1238 : C======================================================================= 1239 : C MISE A JOUR DES VARIABLES INTERNES 1240 : C======================================================================= 1241 : C####################################################################### 1242 : C 1243 : C============================================ 1244 : C-------CAS TRIDIMENSIONNEL MASSIF----------- 1245 : C============================================ 1246 : C 1247 : C NVARI=29 cf. IDVAR4 1248 : C 1249 : IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN 1250 : DO 60 IC=1,3 1251 : VARF(IC+1) =WMAX(IC) 1252 : VARF(IC+4) =W(IC) 1253 : VARF(IC+7) =VF1(IC) 1254 : VARF(IC+10)=VF2(IC) 1255 : VARF(IC+13)=VF3(IC) 1256 : VARF(IC+16)=XINVL(IC) 1257 : 60 CONTINUE 1258 : ENDIF 1259 : C 1260 : C============================================ 1261 : C-------------CAS CONT PLANE----------------- 1262 : C---------OU TRIDIM COQUES MINCES ----------- 1263 : C============================================ 1264 : C 1265 : C NVARI=19/21/23 (CP/3D COQUES SANS/AVEC CIS.) cf. IDVAR4 1266 : C 1267 : IF (IFOUR.EQ.-2.OR. 1268 : . (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)))THEN 1269 : DO 62 IC=1,2 1270 : VARF(IC+1) =WMAX(IC+1) 1271 : VARF(IC+3) =W(IC+1) 1272 : VARF(IC+5) =VF2(IC) 1273 : VARF(IC+7) =VF3(IC) 1274 : VARF(IC+9) =XINVL(IC+1) 1275 : 62 CONTINUE 1276 : ENDIF 1277 : C 1278 : C============================================ 1279 : C-----------CAS DEFO PLANE/AXIS-------------- 1280 : C============================================ 1281 : C 1282 : C NVARI=22 cf. IDVAR4 1283 : C 1284 : IF (IFOUR.EQ.0.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN 1285 : DO 64 IC=1,2 1286 : VARF(IC+1) =WMAX(IC+1) 1287 : VARF(IC+4) =W(IC+1) 1288 : VARF(IC+7) =VF2(IC) 1289 : VARF(IC+9) =VF3(IC) 1290 : VARF(IC+11)=XINVL(IC+1) 1291 : 64 CONTINUE 1292 : VARF(4) =WMAX(1) 1293 : VARF(7) =W(1) 1294 : VARF(14)=XINVL(1) 1295 : ENDIF 1296 : C 1297 : C VARIABLE INTERNE DE NOM 'EPSE' 1298 : C ------------------------------ 1299 : VARF(1)=W(1)+W(2)+W(3) 1300 : C 1301 : C------------------------------------------------------------------ 1302 : C RANGEMENT DES VARIABLES INTERNES PROPRES AU MODELE GATT_MONERIE 1303 : C AUTRES QUE LES DEF. VISCOPLAST. 1304 : C------------------------------------------------------------------ 1305 : DO 66 IC=1,NGAT 1306 : VARF(NVARI-NGAT+IC)=VARGAF(IC) 1307 : 66 CONTINUE 1308 : C 1309 : C----------------------------------------------------- 1310 : C RANGEMENT DES VARIABLES INTERNES / DEF. VISCOPLAST. 1311 : C------------------------------------------------------ 1312 : KGAT=MGAT-NGAT 1313 : C 1314 : IF (MFR.EQ.1) THEN 1315 : C 1316 : C-----------------------MASSIF 3D/2D----KGAT=6/4--------------- 1317 : C 1318 : DO 68 IC=1,KGAT 1319 : IF(IC.LE.3) THEN 1320 : VARF(NVARI-MGAT+IC)=EPSV0(IC) 1321 : ELSE 1322 : VARF(NVARI-MGAT+IC)=EPSV0(IC)*DEUX 1323 : ENDIF 1324 : 68 CONTINUE 1325 : C 1326 : ELSEIF (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)) THEN 1327 : C 1328 : C-----3D COQUES MINCES SANS/AVEC CISAIL. TRANS.-----KGAT=6/8-------- 1329 : C ON NE PREND QUE LA PARTIE MEMBRANE !! 1330 : C 1331 : VARF(NVARI-MGAT+1)=EPSV0(1) 1332 : VARF(NVARI-MGAT+2)=EPSV0(2) 1333 : VARF(NVARI-MGAT+3)=EPSV0(4)*DEUX 1334 : VARF(NVARI-MGAT+4)=XZER 1335 : VARF(NVARI-MGAT+5)=XZER 1336 : VARF(NVARI-MGAT+6)=XZER 1337 : IF(MFR.EQ.9) THEN 1338 : VARF(NVARI-MGAT+7)=XZER 1339 : VARF(NVARI-MGAT+8)=XZER 1340 : ENDIF 1341 : ENDIF 1342 : C 1343 : C======================================================================== 1344 : C---------PASSAGE A L'OPTION DE CALCUL POUR LES CONTRAINTES-------------- 1345 : C======================================================================== 1346 : C 1347 : IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN 1348 : C 1349 : C----------MASSIF 3D---------------- 1350 : C 1351 : DO 70 I=1,6 1352 : SIGF(I)=SIGMA0(I) 1353 : IF(I.LE.3) THEN 1354 : DEFP(I)=DDEFPT(I) 1355 : ELSE 1356 : DEFP(I)=DDEFPT(I)*DEUX 1357 : ENDIF 1358 : 70 CONTINUE 1359 : ELSE IF (IFOUR.NE.2.AND.MFR.EQ.1) THEN 1360 : C 1361 : C---AXISYMETRIQUE/DEF/CONT PLANES---- 1362 : C 1363 : DO 80 I=1,4 1364 : SIGF(I)=SIGMA0(I) 1365 : IF(I.LE.3) THEN 1366 : DEFP(I)=DDEFPT(I) 1367 : ELSE 1368 : DEFP(I)=DDEFPT(I)*DEUX 1369 : ENDIF 1370 : 80 CONTINUE 1371 : IF (ABS(SIGMA0(5)).GT.(YOUN*1.D-15).OR. 1372 : & ABS(SIGMA0(6)).GT.(YOUN*1.D-15)) THEN 1373 : C 1374 : C SMRT OU SMTZ NON NULLES APRES ECOULEMENT 1375 : C 1376 : KERRE=988 1377 : GO TO 2021 1378 : ENDIF 1379 : C 1380 : ELSEIF (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9)) THEN 1381 : C 1382 : C-----CALCUL TRIDIM COQUES MINCES ------- 1383 : C 1384 : C ON MET A JOUR DE FACON NON LINEAIRE LA PARTIE MEMBRANE 1385 : C ET DE FACON LINEAIRE, LES PARTIES FLEXION ET EFFORTS 1386 : C TRANCHANTS LE CAS ECHEANT 1387 : C 1388 : FAC=(EPAI**3)/12.D0 1389 : AUX =FAC*YOUN/(UN-XNU*XNU) 1390 : AUX1=FAC*YOUN*UNDEMI/(UN+XNU) 1391 : SIGF(1)=SIGMA0(1)*EPAI 1392 : SIGF(2)=SIGMA0(2)*EPAI 1393 : SIGF(3)=SIGMA0(4)*EPAI 1394 : SIGF(4)=SIG0(4)+AUX*(DEPST(4)+XNU*DEPST(5)) 1395 : SIGF(5)=SIG0(5)+AUX*(DEPST(5)+XNU*DEPST(4)) 1396 : SIGF(6)=SIG0(6)+AUX1*DEPST(6) 1397 : DEFP(1)=DDEFPT(1) 1398 : DEFP(2)=DDEFPT(2) 1399 : DEFP(3)=DDEFPT(4)*DEUX 1400 : DEFP(4)=0.D0 1401 : DEFP(5)=0.D0 1402 : DEFP(6)=0.D0 1403 : IF(MFR.EQ.9) THEN 1404 : XK=1.2D0 1405 : AUX2=EPAI*YOUN*UNDEMI/(UN+XNU)/XK 1406 : SIGF(7)=SIG0(7)+AUX2*DEPST(7) 1407 : SIGF(8)=SIG0(8)+AUX2*DEPST(8) 1408 : DEFP(7)=0.D0 1409 : DEFP(8)=0.D0 1410 : ENDIF 1411 : ENDIF 1412 : C 1413 : IF(IIMPI.EQ.42) THEN 1414 : WRITE(IOIMP,77051) (SIGF(I),I=1,NSTRS) 1415 : 77051 FORMAT('0 SIGF '/8(1X,1PE12.5)/) 1416 : * 1417 : WRITE(IOIMP,77052) (DEFP(I),I=1,NSTRS) 1418 : 77052 FORMAT('0 DEFP '/8(1X,1PE12.5)/) 1419 : ENDIF 1420 : C 1421 : 2021 CONTINUE 1422 : C 1423 : IF(KERRE.EQ.0) GO TO 9999 1424 : C 1425 : IF(JEBOUC.EQ.1.AND.IIMPI.EQ.1042) THEN 1426 : IIMPI=42 1427 : WRITE(IOIMP,70901) IB,IGAU 1428 : 70901 FORMAT(2X,'>>>>>>>> UO2OT2 IB=',I7,2X,'IGAU=',I3/) 1429 : GO TO 2020 1430 : ENDIF 1431 : C 1432 : 9999 CONTINUE 1433 : IIMPI=IIMPI0 1434 : 1435 : IF(KERRE.NE.0.AND.IIMPI.EQ.42) THEN 1436 : WRITE(IOIMP,70902) IB,IGAU 1437 : 70902 FORMAT(2X,'SORTIE UO2 '////) 1438 : ENDIF 1439 : C 1440 : RETURN 1441 : END 1442 : 1443 : 1444 : 1445 : 1446 : 1447 : 1448 : 1449 : 1450 :
© Cast3M 2003 - All rights reserved.
Disclaimer