Download uo2ot2.eso

Back to the list

   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