Download fluage.eso

Back to the list

   1 : C FLUAGE    SOURCE    CHAT      05/01/13    00:04:07     5004           
   2 :       SUBROUTINE FLUAGE(ITER,EPSTAR,S0,EPST,SSTAR,SI,DPSM1,                     
   3 :      1 DPSM2,IBOU,DEPS,ICONV,TIMEXI,TIMEXF,YUNG,KERRE,ecou,necou)                          
   4 : C                                                                               
   5 : C            CE SOUS PROGRAMME CALCULE LA DEFORMATION DE FLUAGE                 
   6 : C                                                                               
   7 : C      SORTIES AVEC PROBLEMES                                                   
   8 : C                                                                               
   9 : C            KERRE = 3  DIMINUER LE PAS (TREANOR)                               
  10 : C            KERRE = 4  DEPS EST NEGATIF                                        
  11 : C            KERRE = 5  PAS DE CONVERGENCE INTERNE                              
  12 : C                         ( ANCIENNEMENT NSTOP=0 )                              
  13 : C                                                                               
  14 :       IMPLICIT INTEGER(I-N)
  15 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
  16 :       DIMENSION DSIGK1(6),DSIGK2(6),DSIGK3(6),DSIGK4(6)                         
  17 : C 
  18 :        SEGMENT ECOU
  19 : ***     COMMON/ECOU/TEST,ALFAH, 
  20 :        REAL*8 TEST, ALFAH,                                                  
  21 :      1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6),                                
  22 :      2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),SIG5(6),SIGINT(6),               
  23 :      1 DALPHA(6),DSIGO(6),E(12),XINV(3),                                       
  24 :      2 SIPLAD(6),DSIGP0(6),TET,TETI       
  25 :       ENDSEGMENT
  26 :                                                                              
  27 : C      COMMON/ECOU/TEST,ALFAH,                                                   
  28 : C     1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6),                                
  29 : C     2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),SIG5(6),SIGINT(6),          
  30 : C     1 DALPHA(6),DSIGO(6),E(12),XINV(3),                                        
  31 : C     2 SIPLAD(6),DSIGP0(6),TET,TETI                                             
  32 : C
  33 :        SEGMENT NECOU
  34 : *      COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  35 :        INTEGER NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  36 :      . ITYP,IFOUR,IFLUAG,
  37 :      . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  38 :      . JFLUAG,KFLUAG,LFLUAG,
  39 :      . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF
  40 :       ENDSEGMENT                                                                              
  41 : C      COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,                              
  42 : C     . ITYP,IFOUR,IFLUAG,                                                       
  43 : C     . ICINE,ITHER,IFLUPL,ICYCL,IBI,                                            
  44 : C     . JFLUAG,KFLUAG,LFLUAG,                                                    
  45 : C     . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF                                       
  46 : C                                                                               
  47 :       DATA ITMAX/15/                                                            
  48 :       ITER=1                                                                    
  49 :       ICLFLU=0                                                                  
  50 :       IF(IRELAX.EQ.0) GO TO 414                                                 
  51 : C                                                                               
  52 : C ESSAI DE CALCUL AUTOMATIQUE DU PAS                                            
  53 : C                                                                               
  54 : C  IRELAX = 1         ALGORITHME LADOUCEUR                                      
  55 : C  IRELAX = 2         ALGORITHME TREANOR                                        
  56 : C                                                                               
  57 : C                                                                               
  58 : C  TESTS DE PRECISION POUR METHODE TREANOR                                      
  59 : C                                                                               
  60 : C  EPREC=INCREMENT DE DEFORMATION INELASTIQUE MAXIMUM (1ERE ESTIMATION)         
  61 : C  EPREC2=INCREMENT DE DEFORMATION INELASTIQUE MAXIMUM (VALEUR FINALE)          
  62 : C  PRERUN  TEST DE VALIDITE DU PAS DE TEMPS                                     
  63 : C  PREDEF  VALEUR DE REFERENCE POUR LES DEFORMATIONS TROP PETITES               
  64 : C  PRESIG  VALEUR DE REFERENCE POUR LES CONTRAINTES TROP PETITES                
  65 : C  PREPH   TEST POUR PHMAX                                                      
  66 : C  PREBTA = BORNE SUP POUR LES ITERATIONS INTERNES DE 2-EME NIVEAU              
  67 : C  RPREC  PRECISION SUR L ESTIMATION DE DELTA-EPS CUMULE ITER INT 2 NIV         
  68 : C  PREZER  VALEUR POUR INTERPOLATION EN DELTA-EPSILON                           
  69 : C  PREMIN  VALEUR POUR ESTIMATION AUTOMATIQUE DU PAS EN TREANOR                 
  70 : C                                                                               
  71 :       EPREC =1.D-3                                                              
  72 :       EPREC2=1.D-2                                                              
  73 :       PRECIS=TEST                                                               
  74 :       PRERUN=PRECIS                                                             
  75 :       PREDEF=1.D-5                                                              
  76 :       PRESIG=YUNG*PREDEF                                                        
  77 :       PREPH=1.D-3                                                               
  78 :       PREBTA=2.D00                                                              
  79 :       RPREC=PRECIS                                                              
  80 :       PREZER=1.D-7                                                              
  81 :       PREMIN=3.D-1*PRERUN                                                       
  82 :       IF(IT.EQ.1) GO TO 4430                                                    
  83 :       IF(DPSM1.LT.PREZER) GO TO 4430                                            
  84 :       EPREC=MIN(EPREC,DPSM1)                                                    
  85 :       EPREC2=MIN(EPREC2,DPSM1)                                                  
  86 : 4430  CONTINUE                                                                  
  87 :       TIMO=TEMPS-HPAS                                                           
  88 :       TIMEXF=TIMEXI+HPAS                                                        
  89 :       DTET=TET-TETI                                                             
  90 :       DTETDT=0.D00                                                              
  91 :       IF(HPAS.NE.0.) DTETDT=DTET/HPAS                                           
  92 :   200 CONTINUE                                                                  
  93 : C  NITER= NOMBRE D'ITERATIONS SUR LE PAS                                        
  94 :       NITER=3                                                                   
  95 : C                                                                               
  96 : C  BTAEPS=ITERPOLATION DU DSIGP-DSIGP0 SUIVANT LA VARIATION DE                  
  97 : C  EPSILON ---- L'INITIALISATION DE LA PREMIERE ITERATION EST BIDON             
  98 :       BTAEPS=1.                                                                 
  99 :       BTAA=1.                                                                   
 100 :       IF(IT.EQ.1) GO TO 430                                                     
 101 :       BTAA=DPSM1                                                                
 102 :       IF(BTAA.GT.PREZER) BTAEPS=1./BTAA                                         
 103 : C                                                                               
 104 : C  IDECOU=NOMBRE DE DECOUPAGES POSSIBLE DU TEMPS                                
 105 : 430   IDECOU=30                                                                 
 106 :       IF(JSOUFL.NE.0) IDECOU=JSOUFL                                             
 107 : C                                                                               
 108 : C  ICONV=1 SI CONVERGENCE INTERNE NON EFFECTUEE                                 
 109 :       ICONV=0                                                                   
 110 : C                                                                               
 111 : C  ICOMPT=NOMBRE D'ITERATIONS POUR AVOIR UNE BONNE ESTIMATION DE                
 112 : C  LA VALEUR DE DELTA EPSILON ----- ICOMPT MAXIMUM=15                           
 113 : C                                                                               
 114 :       ICOMPT=1                                                                  
 115 : C                                                                               
 116 : C  DSIGP0(IB)=PARTIE ELASTIQUE DU DSIGP(IB)--- INTERPOLEE EN TEMPS              
 117 : C  DSIGP-DSIGP0=PARTIE INELASTIQUE DU DSIGP(IB)--- INTERPOLEE EN EPSILON        
 118 : C  TEMINT=TEMPS INTERMEDIAIRE AU DEBUT DU PAS                                   
 119 : C  TEMIN2=TEMPS INTERMEDIAIRE A LA FIN DU PAS                                   
 120 : C  TRINS1  TEMPS INTRINSEQUE INTERMEDIAIRE DEBUT DU SS-PAS                      
 121 : C  TRINS2  TEMPS INTRINSEQUE INTERMEDIAIRE FIN   DU SS-PAS                      
 122 : C  EPSINT=DEFORMATION DE FLUAGE AU DEBUT DES TEMPS INTERMEDIAIRES               
 123 : C  EPSIN2=DEFORMATION DE FLUAGE A LA FIN DES TEMPS INTERMEDIAIRES               
 124 : C  SINT=CONTRAINTE CALCULEE AU DEBUT DU PAS INTERMEDIAIRE                       
 125 : C  SINT2=CONTRAINTE CALCULEE A LA FIN DU PAS INTERMEDIAIRE                      
 126 : C  SIGINT(IB)=TENSEUR DE CONTRAINTE AU DEBUT DES PAS INTERMEDIAIRES             
 127 : C  TETINI = TEMPERATURE INTERMEDIAIRE AU DEBUT DU SS-PAS                        
 128 : C  TETINF = TEMPERATURE INTERMEDIAIRE A LA FIN DU SS-PAS                        
 129 : C  HPAS2 = PAS DE TEMPS ITERMEDIAIRES                                           
 130 : C-----------------------------------------------------------------------        
 131 : C                      ON DEMARRE                                               
 132 : C-----------------------------------------------------------------------        
 133 : 499   TEMINT=TIMO                                                               
 134 :       TRINS1=TIMEXI                                                             
 135 :       EPSINT=EPSTAR                                                             
 136 :       SINT=S0                                                                   
 137 :       DO 413 IB=1,IBOU                                                          
 138 : 413   SIGINT(IB)=SIGEL(IB)                                                      
 139 : C-----------------------------------------------------------------------        
 140 : C                    BOUCLE SUR LES SOUS-PAS                                    
 141 : C-----------------------------------------------------------------------        
 142 :       DO 416 I=1,IDECOU                                                         
 143 : C    ON INTERPOLE LINEAIREMENT                                                  
 144 : C                                                                               
 145 :       TETINI=TETI+DTETDT*(TEMINT-TIMO)                                          
 146 :       DECATE=TEMPS-TEMINT                                                       
 147 :       HPAS2=DECATE                                                              
 148 :       IF(IRELAX.NE.2) GO TO 8370                                                
 149 : C                                                                               
 150 : C            MODIFS POUR LA METHODE DE TREANOR                                  
 151 : C  POUR LA PREMIERE ESTIMATION DU PAS DANS LES ITERATIONS EN DEPS,              
 152 : C  ON UTILISE LA VALEUR HFIRST TROUVEE A L ITERATION PRECEDENTE                 
 153 : C  POUR LE DECOUPAGE EN SOUS-PAS,ON AJUSTE AUTOMATIQUEMENT LA TAILLE            
 154 : C  DU PAS .                                                                     
 155 : C                                                                               
 156 :       IF(I.GT.1) GO TO 8371                                                     
 157 :       IF(ICOMPT.EQ.1) GO TO 8370                                                
 158 :       HPAS2=HFIRST                                                              
 159 :       GO TO 8370                                                                
 160 : 8371  HPAS2=HPADEC                                                              
 161 : 8370  BETA=HPAS2/DECATE                                                         
 162 :       IF(BETA.GT.1.) BETA=1.                                                    
 162 :       CALL CRPLAW(VI,EPSINT,SINT,TETINI,TRINS1,HPAS2,ICLFLU,NCOURB)             
 163 :       EPSPAS=HPAS2*VI                                                           
 164 : C  EPSPAS=INCREMENT D'ALLONGEMENT INELASTIQUE CALCULE A LA FIN                  
 165 : C  DU SOUS PAS INTERMEDIAIRE                                                    
 166 : C  BETA=COEFFICIENT CORRESPONDANT A LA FRACTION DU PAS CALCULE                  
 167 : C                                                                               
 168 :       IF(EPSPAS.GT.EPREC) BETA=BETA*EPREC/EPSPAS                                
 169 : C                                                                               
 170 : C-----------------------------------------------------------------------        
 171 : C        DEBUT DES CALCULS POUR UN SOUS-PAS DE TAILLE DONNEE                    
 172 : C        ON RECOMMENCE ICI EN CAS DE REDUCTION DU PAS                           
 173 : C-----------------------------------------------------------------------        
 174 : C                                                                               
 175 :  424  HPAS2=DECATE*BETA                                                         
 176 :       BTAPAS=HPAS2/HPAS                                                         
 177 :       TEMIN2=TEMINT+HPAS2                                                       
 178 :       TRINS2=TRINS1+HPAS2                                                       
 179 :       TETINF=TETI+DTETDT*(TEMIN2-TIMO)                                          
 180 :       TIMO5=TEMINT+0.5*HPAS2                                                    
 181 :       TRINS5=TRINS1+0.5*HPAS2                                                   
 182 :       TETIN5=TETI+DTETDT*(TIMO5-TIMO)                                           
 183 :       IF(IRELAX.EQ.2) GO TO 1101                                                
 184 : C                                                                               
 185 : C  CALCUL PAR LA METHODE LADOUCEUR                                              
 186 : C                                                                               
 187 :       EPSPA2=EPSPAS*BETA                                                        
 188 :       EPSIN2=EPSINT+EPSPA2                                                      
 189 :       BTASIG=EPSPA2*BTAEPS                                                      
 190 :       IF(BTASIG.GT.PREBTA) BTASIG=PREBTA                                        
 191 : C                                                                               
 192 : C                                                                               
 193 : C  IL FAUT TOUJOURS INTERPOLER EN DELTA-EPSILON, MEME SI DEPS EST PETIT,        
 194 : C  POUR QUE LA RUSE DE LA 2-EME ITERATION MARCHE EN FLUAGE PUR                  
 195 : C                                                                               
 196 : C                                                                               
 197 :       IF(BTAA.LE.PREZER) BTASIG=BTAPAS                                          
 198 :       ELTA=0.                                                                   
 199 :       IF(SINT.NE.0.) ELTA=VI/SINT                                               
 200 :       ELTF=HPAS2*ELTA                                                           
 201 :       DO 421 IB=1,IBOU                                                          
 202 : 421   SIGT(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS+                                    
 203 :      1 (DSIGP(IB)-DSIGP0(IB))*BTASIG                                            
 204 :      2 -E(IB)*SIGINT(IB)*ELTF                                                   
 205 :       SINT2=VNMISD(SIGT,ITYP,ALFAH,CVNMSD)                                      
 206 : C                                                                               
 207 : C DEBUT DES ITERATIONS SUR LA FRACTION DE PAS CONSIDERE                         
 208 : C                                                                               
 209 :       DO 417 J=1,NITER                                                          
 209 :       CALL CRPLAW(VINT,EPSIN2,SINT2,TETINF,TRINS2,HPAS2,ICLFLU,NCOURB)          
 210 :       ELTO=.25*HPAS2                                                            
 211 :       IF(J.EQ.1) EPSPA5=ELTO*(3*VI+VINT)*.5                                     
 212 :       IF(J.NE.1.AND.(VI+VINT).NE.0.)                                            
 213 :      1 EPSPA5=DEPS*(3*VI+VINT)/(VI+VINT)*.25                                    
 214 :       EPSO5=EPSINT+EPSPA5                                                       
 215 :       BTASIG=EPSPA5*BTAEPS                                                      
 216 :       IF(BTASIG.GT.PREBTA) BTASIG=PREBTA                                        
 217 :       IF(BTAA.LE.PREZER) BTASIG=BTAPAS*.5                                       
 218 :       ELTB=0.                                                                   
 219 :       IF(SINT2.NE.0.) ELTB=VINT/SINT2                                           
 220 :       DO 422 IB=1,IBOU                                                          
 221 :       IF(J.EQ.1) SIG5(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS*.5+                      
 222 :      1 (DSIGP(IB)-DSIGP0(IB))*BTASIG                                            
 223 :      2 -ELTO*E(IB)*(3*SIGINT(IB)*ELTA+SIGT(IB)*ELTB)*.5                         
 224 :       IF(J.NE.1) SIG5(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS*.5+                      
 225 :      1 (DSIGP(IB)-DSIGP0(IB))*BTASIG                                            
 226 :      2 -E(IB)*ELTO*(SIGINT(IB)*ELTA+SIG5(IB)*ELTC*.25)                          
 227 : 422   CONTINUE                                                                  
 228 :       SO5=VNMISD(SIG5,ITYP,ALFAH,CVNMSD)                                        
 228 :       CALL CRPLAW(VO5,EPSO5,SO5,TETIN5,TRINS5,HPAS2,ICLFLU,NCOURB)              
 229 :       ELTO=.166666666667*HPAS2                                                  
 230 :       DEPS=ELTO*(VI+VINT+4*VO5)                                                 
 231 :       IF(DEPS.LT.EPREC2) GO TO 425                                              
 232 :       BETA=BETA*.7                                                              
 233 :       GO TO 424                                                                 
 234 : 425   EPSIN2=EPSINT+DEPS                                                        
 235 :       BTASIG=DEPS*BTAEPS                                                        
 236 :       IF(BTASIG.GT.PREBTA) BTASIG=PREBTA                                        
 237 :       IF(BTAA.LE.PREZER) BTASIG=BTAPAS                                          
 238 :       ELTC=0.                                                                   
 239 :       IF(SO5.NE.0.) ELTC=VO5/SO5*4.                                             
 240 :       DO 423 IB=1,IBOU                                                          
 241 : 423   SIGT(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS+                                    
 242 :      1 (DSIGP(IB)-DSIGP0(IB))*BTASIG                                            
 243 :      2 -ELTO*E(IB)*(SIGINT(IB)*ELTA+SIGT(IB)*ELTB+SIG5(IB)*ELTC)                
 244 :       SINT2=VNMISD(SIGT,ITYP,ALFAH,CVNMSD)                                      
 245 : 417   CONTINUE                                                                  
 246 : C                                                                               
 247 :       GO TO 1200                                                                
 248 : C                                                                               
 249 :  1101 CONTINUE                                                                  
 250 : C                                                                               
 251 : C  CALCUL PAR LA METHODE DE TREANOR                                             
 252 : C                                                                               
 253 :       WEP=0.5D00                                                                
 253 :       CALL FLURUN(SIGINT,EPSINT,TETINI,TRINS1,HPAS2,ICLFLU,NCOURB,IBOU,         
 254 :      . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK1,DEPSK1,SIGT,EPSINA,WEP,         
 255 :      . EPSINT,EPREC2,ecou)                                                           
 256 :       IF(ICOD.EQ.1) GO TO 424                                                   
 256 :       CALL FLURUN(SIGT,EPSINA,TETIN5,TRINS5,HPAS2,ICLFLU,NCOURB,IBOU,           
 257 :      . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK2,DEPSK2,SIGT,EPSINA,WEP,         
 258 :      . EPSINT,EPREC2,ecou)                                                           
 259 :       IF(ICOD.EQ.1) GO TO 424                                                   
 260 :       WEP=1.D00                                                                 
 260 :       CALL FLURUN(SIGT,EPSINA,TETIN5,TRINS5,HPAS2,ICLFLU,NCOURB,IBOU,           
 261 :      . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK3,DEPSK3,SIGT,EPSINA,WEP,         
 262 :      . EPSINT,EPREC2,ecou)                                                           
 263 :       IF(ICOD.EQ.1) GO TO 424                                                   
 264 :       PHMAX=0.                                                                  
 265 :       IF(DEPSK2-DEPSK1.NE.0.) PHMAX=2.*(DEPSK2-DEPSK3)/(DEPSK2-DEPSK1)          
 266 :       DO 4101 IB=1,IBOU                                                         
 267 :       IF(DSIGK2(IB)-DSIGK1(IB).EQ.0.) GO TO 4101                                
 268 :       PH=2.*(DSIGK2(IB)-DSIGK3(IB))/(DSIGK2(IB)-DSIGK1(IB))                     
 269 :       IF(PHMAX.LT.PH) PHMAX=PH                                                  
 270 : 4101  CONTINUE                                                                  
 271 :       IF(PHMAX.LE.0.) GO TO 4102                                                
 272 :       IF(PHMAX.GE.PREPH) GO TO 4123                                             
 273 :       XL1=1.-PHMAX*0.5                                                          
 274 :       XL2=0.5-PHMAX*0.166666666666666667                                        
 275 :       XL3=0.166666666666666667-PHMAX*0.04166666666666666667                     
 276 :       XL4=-PHMAX*0.166666666666666667                                           
 277 :       GO TO 4103                                                                
 278 : 4123  CONTINUE                                                                  
 279 :       XL1=(1.-EXP(-PHMAX))/PHMAX                                                
 280 :       XL2=(1.-XL1)/PHMAX                                                        
 281 :       XL3=(0.5-XL2)/PHMAX                                                       
 282 :       XL4=XL1-2.*XL2                                                            
 283 :       GO TO 4103                                                                
 284 : 4102  PHMAX=0.                                                                  
 285 :       XL1=1.                                                                    
 286 :       XL2=0.5                                                                   
 287 :       XL3=0.166666666666666667                                                  
 288 :       XL4=0.                                                                    
 289 : 4103  CONTINUE                                                                  
 290 :       XM1=-XL2+4.*XL3                                                           
 291 :       XM2=2.*(XL2-2.*XL3)                                                       
 292 :       XM3=4.*XL3-3.*XL2                                                         
 293 : C                                                                               
 294 : C  NOUVELLE ESTIMATION DE LA SOLUTION                                           
 295 : C                                                                               
 296 :       EPSIN5=EPSINT+2.*XL2*DEPSK3+XL2*PHMAX*DEPSK2+XL4*DEPSK1                   
 297 :       DO 4104 IB=1,IBOU                                                         
 298 : 4104  SIG5(IB)=SIGINT(IB)+2.*XL2*DSIGK3(IB)+XL2*PHMAX*DSIGK2(IB)                
 299 :      . +XL4*DSIGK1(IB)                                                          
 300 :       WEP=1.D00                                                                 
 300 :       CALL FLURUN(SIG5,EPSIN5,TETINF,TRINS2,HPAS2,ICLFLU,NCOURB,                
 301 :      . IBOU,ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK4,DEPSK4,SIGT,               
 302 :      . EPSINA,WEP,EPSINT,EPREC2,ecou)                                                
 303 :       IF(ICOD.EQ.1) GO TO  424                                                  
 304 : C                                                                               
 305 : C  ESTIMATION FINALE DE LA SOLUTION                                             
 306 : C                                                                               
 307 :       FAC1=1.+PHMAX*XM3+2.*PHMAX*XM2                                            
 308 :       FAC2=XL1+XM3+0.5*XM2*PHMAX                                                
 309 :       FAC3=XM2*(1.+0.5*PHMAX)                                                   
 310 :       EPSIN2=EPSINT*FAC1+DEPSK1*FAC2+DEPSK2*FAC3+DEPSK3*XM2                     
 311 :      . +DEPSK4*XM1+EPSIN5*XM1*PHMAX                                             
 312 :       DO 4105 IB=1,IBOU                                                         
 313 : 4105  SIGT(IB)=SIGINT(IB)*FAC1+DSIGK1(IB)*FAC2+DSIGK2(IB)*FAC3                  
 314 :      . +DSIGK3(IB)*XM2+DSIGK4(IB)*XM1+SIG5(IB)*XM1*PHMAX                        
 315 : C                                                                               
 316 : C  TEST DE PRECISION                                                            
 317 : C                                                                               
 318 :       ERMAX=ABS(EPSIN2-EPSIN5)/MAX(PREDEF,ABS(EPSIN2-EPSINT))                   
 319 :       DO 4106 IB=1,IBOU                                                         
 320 :       ERM=ABS(SIGT(IB)-SIG5(IB))/MAX(PRESIG,                                    
 321 :      .  ABS(SIGT(IB)-SIGINT(IB)))                                               
 322 :       IF(ERMAX.LT.ERM) ERMAX=ERM                                                
 323 : 4106  CONTINUE                                                                  
 324 :       IF(ERMAX.LE.PRERUN) GO TO 1240                                            
 325 :       BETA=BETA*0.5                                                             
 326 :       GO TO 424                                                                 
 327 : C                                                                               
 328 : C-----------------------------------------------------------------------        
 329 : C  METHODE DE TREANOR  - ESTIMATION AUTOMATIQUE DU PAS DE TEMPS                 
 330 : C-----------------------------------------------------------------------        
 331 : C                                                                               
 332 : 1240  HPADEC=HPAS2                                                              
 333 :       IF(ERMAX.LE.PREMIN) HPADEC=2.D00*HPAS2                                    
 334 :       SINT2=VNMISD(SIGT,ITYP,ALFAH,CVNMSD)                                      
 335 :  1200 CONTINUE                                                                  
 336 : C                                                                               
 337 : C   CAS DU PREMIER DECOUPAGE : ON SAUVE LA TAILLE DU 1-ER SOUS-PAS              
 338 : C                                                                               
 339 :       IF(I.EQ.1.AND.ICOMPT.EQ.1) HFIRST=HPAS2                                   
 340 :       DO 418 IB=1,IBOU                                                          
 341 : 418   SIGINT(IB)=SIGT(IB)                                                       
 342 : C                                                                               
 343 : C-----------------------------------------------------------------------        
 344 : C        SORTIE DE LA BOUCLE DES SOUS-PAS SI BETA=1.                            
 345 : C        LE DECOUPAGE EST FINI                                                  
 346 : C-----------------------------------------------------------------------        
 347 : C                                                                               
 348 :       IF(ABS(BETA-1.D00).LE.PREZER) GO TO 419                                   
 349 :       EPSINT=EPSIN2                                                             
 350 : C                                                                               
 351 : C-----------------------------------------------------------------------        
 352 : C  SI ON N'A PAS FINI,ON REGARDE SI ON PASSE LE TEST ANTI-DIVERGENCE            
 353 : C  SI CA A TENDANCE A EXPLOSER,ON RECOMMENCE AVEC UN BTAA MODIFIE               
 354 : C  SINON ON SORT EN DEMANDANT PLUS DE SOUS-PAS                                  
 355 : C-----------------------------------------------------------------------        
 356 : C                                                                               
 357 :       IF(IT.LE.2) GO TO 502                                                     
 358 :       IF(BTAA.LE.PREDEF) GO TO 502                                              
 359 : C                                                                               
 360 : C  TEST ANTI-DIVERGENCE ITERATIONS INTERNES DE 2-EME NIVEAU                     
 361 : C                                                                               
 362 :       IF(DEPS.LE.1.5*BTAA) GO TO 502                                            
 363 :       BTAA=1.1*BTAA                                                             
 364 :       BTAEPS=1./BTAA                                                            
 365 :       GO TO 499                                                                 
 366 : 502   CONTINUE                                                                  
 367 :       SINT=SINT2                                                                
 368 :       TEMINT=TEMIN2                                                             
 369 :       IF(JNTRIN.EQ.0) TRINS1=TRINS2                                             
 370 :       IF(JNTRIN.NE.0.AND.DEPS.NE.0.) TRINS1=TRINS2                              
 371 : C                                                                               
 372 : C-----------------------------------------------------------------------        
 373 : C                    FIN DE LA BOUCLE SUR LES SOUS-PAS                          
 374 : C-----------------------------------------------------------------------        
 375 : C                                                                               
 376 : 416   CONTINUE                                                                  
 377 :       KERRE=3                                                                   
 378 :       RETURN                                                                    
 379 : C                                                                               
 380 : C  FIN DU DECOUPAGE EN SOUS-PAS                                                 
 381 : C                                                                               
 382 : 419   SI=SINT2                                                                  
 383 :       DEPS=EPSIN2-EPSTAR                                                        
 384 :       IF(DEPS.GE.0.) GO TO 3170                                                 
 385 :       KERRE=4                                                                   
 386 :       DEPS=0.D00                                                                
 387 : 3170  CONTINUE                                                                  
 388 : C                                                                               
 389 : C  ON TESTE LA VALEUR DE DEPS PAR RAPPORT A L'ESTIMATION FAITE                  
 390 : C  ON CONTINUE JUSQ'A CONVERGENGE A RPREC PRES                                  
 391 : C                                                                               
 392 :       IF(IT.EQ.1) GO TO 501                                                     
 393 :       IF(IT.EQ.2) GO TO 505                                                     
 394 : C                                                                               
 395 : C  SI BTAA EST INFERIEUR A PREZER,ON NE FAIT PAS D'ITERATIONS                   
 396 : C  INTERNES DE 2-EME NIVEAU                                                     
 397 : C                                                                               
 398 :       IF(BTAA.LE.PREZER) GO TO 501                                              
 399 :       DIFFE=DEPS-BTAA                                                           
 400 :       RAPOR=ABS(DIFFE)/BTAA                                                     
 401 :       IF(RAPOR.LE.RPREC) GO TO 501                                              
 402 :       IF(ICOMPT.LT.15) GO TO 415                                                
 403 :       KERRE=5                                                                   
 404 :       GO TO 505                                                                 
 405 : 415   CONTINUE                                                                  
 406 :       ICOMPT=ICOMPT+1                                                           
 407 :       IF(ICOMPT.EQ.2) GO TO 503                                                 
 408 :       DESSU=BTAAZ*DEPS-BTAA*DEPSZ                                               
 409 :       DESSOU=DIFFE-DIFFEZ                                                       
 410 : 503   BTAAZ=BTAA                                                                
 411 :       DEPSZ=DEPS                                                                
 412 :       DIFFEZ=DIFFE                                                              
 413 :       IF(ICOMPT.EQ.2) GO TO 535                                                 
 414 :       IF(ABS(DESSOU).GT.1.D-20) GO TO 504                                       
 415 :       BTAA=(BTAA+DEPS)*0.5                                                      
 416 :       GO TO 3390                                                                
 417 : 504   BTAA=DESSU/DESSOU                                                         
 418 :       GO TO 3390                                                                
 419 : 535   BTAA=DEPS                                                                 
 420 : 3390  IF(BTAA.GT.PREZER) BTAEPS=1./BTAA                                         
 421 :       IF(BTAA.LT.0.) BTAA=0.5D00*BTAAZ                                          
 422 :       GO TO 499                                                                 
 423 : 501   CONTINUE                                                                  
 424 :       EPST=EPSIN2                                                               
 425 :       IF(JNTRIN.NE.0) TIMEXF=TRINS2                                             
 426 :       RETURN                                                                    
 427 : 505   CONTINUE                                                                  
 428 :       EPST=EPSIN2                                                               
 429 :       IF(JNTRIN.NE.0) TIMEXF=TRINS2                                             
 430 :       IF(BTAA.LE.PREZER) RETURN                                                 
 431 :       ICONV=1                                                                   
 432 :       RDEPS=DEPS/BTAA                                                           
 433 :       DO 506 IB=1,IBOU                                                          
 434 : 506   DSIGP(IB)=SIGEL(IB)+DSIGP0(IB)+(DSIGP(IB)-DSIGP0(IB))*RDEPS               
 435 :       RETURN                                                                    
 436 : C                                                                               
 437 : C-----------------------------------------------------------------------        
 438 : C                   METHODE CLASSIQUE CASTEM                                    
 439 : C-----------------------------------------------------------------------        
 440 : C                                                                               
 441 : 414   TIMO=TEMPS-HPAS                                                           
 442 :       TIMEXF=TIMEXI+HPAS                                                        
 443 :       TIMEX5=0.5*(TIMEXI+TIMEXF)                                                
 444 :       TET5=0.5*(TETI+TET)                                                       
 445 :       TIMO5=0.5*(TIMO+TEMPS)                                                    
 446 :       IF(IT.NE.1) GO TO 411                                                     
 447 : C                                                                               
 448 : C  RUSE POUR LA 1-ERE ITERATION EN CAS THERMOPLASTIQUE                          
 449 : C                                                                               
 449 :       CALL CRPLAW(VI,EPSTAR,S0,TETI,TIMEXI,HPAS,ICLFLU,NCOURB)                  
 450 :       DPSM1=VI                                                                  
 451 :       EPST=EPSTAR+HPAS*VI                                                       
 451 :       CALL CRPLAW(VF,EPST,SSTAR,TET,TIMEXF,HPAS,ICLFLU,NCOURB)                  
 452 :       DPSM2=SSTAR                                                               
 453 :       SF=SSTAR                                                                  
 454 :       ELTO=0.166666666667*HPAS                                                  
 455 :       SO5=0.5*(S0+SF)                                                           
 456 :       EPST=EPSTAR+0.25*HPAS*(VI+VF)                                             
 456 :       CALL CRPLAW(VO5,EPST,SO5,TET5,TIMEX5,HPAS,ICLFLU,NCOURB)                  
 457 :       ELTA=0                                                                    
 458 :       ELTB=0                                                                    
 459 :       ELTC=0                                                                    
 460 :       IF(S0.NE.0.) ELTA=1./S0                                                   
 461 :       IF(SF.NE.0.) ELTB=1./SF                                                   
 462 :       IF(SO5.NE.0.) ELTC=1./SO5                                                 
 463 :       ELTF=ELTO*(VF*ELTB+2.*VO5*ELTC)                                           
 464 :       ELTO=ELTO*(VI*ELTA+2.*VO5*ELTC)                                           
 465 :       DO 412 IB=1,IBOU                                                          
 466 :       ELTA=1.-E(IB)*ELTO                                                        
 467 :       ELTB=1.+E(IB)*ELTF                                                        
 468 :       SIGEL(IB)=SIGEL(IB)*ELTB/ELTA                                             
 469 :   412 DSIGP(IB)=DSIGP(IB)*ELTB                                                  
 470 :   411 VI=DPSM1                                                                  
 471 :       SF=DPSM2                                                                  
 472 :       EPST=EPSTAR+HPAS*VI                                                       
 472 :       CALL CRPLAW(VF,EPST,SF,TET,TIMEXF,HPAS,ICLFLU,NCOURB)                     
 473 :       ELTO=0.166666666667*HPAS                                                  
 474 :       SO5=0.5*(S0+SF)                                                           
 475 :       EPST=0.25*HPAS*(VI+VF)+EPSTAR                                             
 475 :       CALL CRPLAW(VO5,EPST,SO5,TET5,TIMEX5,HPAS,ICLFLU,NCOURB)                  
 476 :       ELTA=0.                                                                   
 477 :       ELTB=0.                                                                   
 478 :       ELTC=0.                                                                   
 479 :       IF(S0.NE.0.) ELTA=1./S0                                                   
 480 :       IF(SF.NE.0.) ELTB=1./SF                                                   
 481 :       IF(SO5.NE.0.) ELTC=1./SO5                                                 
 482 :       ELTF=ELTO*(VF*ELTB+2.*VO5*ELTC)                                           
 483 :       ELTO=ELTO*(VI*ELTA+2.*VO5*ELTC)                                           
 484 :       DO 410 IB=1,IBOU                                                          
 485 :       ELTA=1.-E(IB)*ELTO                                                        
 486 :       ELTB=1.+E(IB)*ELTF                                                        
 487 :       SIGT(IB)=(DSIGP(IB)+SIGEL(IB)*ELTA)/ELTB                                  
 488 :       IF(IT.GT.1) GO TO 410                                                     
 489 :       DSIGP(IB)=  SIGT(IB)*(1.+ELTB-ELTA)                                       
 490 :   410 CONTINUE                                                                  
 491 :       SI=VNMISD(SIGT,ITYP,ALFAH,CVNMSD)                                         
 492 :       DPSM2=SI                                                                  
 493 :       DEPS=0.166666666667*HPAS*(VI+VF+4.*VO5)                                   
 494 :       EPST=EPSTAR+DEPS                                                          
 495 :       IF(JNTRIN.NE.0.AND.DEPS.EQ.0.) TIMEXF=TIMEXI                              
 496 :    57 CONTINUE                                                                  
 497 :       RETURN                                                                    
 498 :       END                                                                       
 499 : 
 500 : 
 501 : 
 502 :  
 503 :  

© Cast3M 2003 - All rights reserved.
Disclaimer