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