Download castet.eso

Back to the list

   1 : C CASTET    SOURCE    CHAT      05/01/12    21:49:32     5004           
   2 :       SUBROUTINE CASTET(SIGPA,SIGPB,SIGNA,SIGNB,SIGTO,SIGCO,EPSPA,EPSPB,        
   3 :      . EPSNA,EPSNB,SIGSUP,SIGINF,EPSUP,EPINF,EPSO,RMOD,SIGO,DSIG,               
   4 :      . NUMETA,EPSEQ,IECRAS,SIGND,EPSND,SIGNC,EPSNC,SIGPC,EPSPC,SIGPD,           
   5 :      . EPSPD,SIGBET,EPSBET,IPRECI,IIMPI,KERRE)                                  
   6 : C                                                                               
   7 : C S.P. APPELE PAR BETON      MODELE DE CYCLAGE POUR POUTRE BETON ARME           
   8 : C ENTREE : DSIG=DSIG ELAS ----- SORTIE : DSIG=SIG. FINAL                        
   9 : C                                                                               
  10 : C  COURBE DEMI-SQUELETTE :                                                      
  11 : C            O-A    PARTIE  1    CHARGE ET DECHARGE ELASTIQUE                   
  12 : C            A-B    PARTIE  2    PLASTIQUE  DECHARGE PASSANT PAR ORIGINE        
  13 : C            B-C-D  PARTIE  3    PLASTIQUE  DECHARGE AVEC MODULE FINAL          
  14 : C                                                                               
  15 : C L ETAT DE L ELEMENT EST DEFINI PAR L INDICE MULTIPLE  NUMETA(I) :             
  16 : C LE 1ER  CHIFFRE INDIQUE LA PARTIE MAXI ATTEINTE SUR LA COURBE POSITIVE        
  17 : C LE 2EME CHIFFRE INDIQUE LA PARTIE MINI ATTEINTE SUR LA COURBE NEGATIVE        
  18 : C LE 3EME CHIFFRE INDIQUE LA POSITION DE SIGO(I) DANS LE DIAGRAMME :            
  19 : C       1 : SIGO EST SUR LA COURBE POSITIVE                                     
  20 : C       2 : SIGO EST DANS LA ZONE POSITIVE MAIS HORS DE LA COURBE               
  21 : C       3 : SIGO EST SUR LA COURBE NEGATIVE                                     
  22 : C       4 : SIGO EST DANS LA ZONE NEGATIVE MAIS HORS DE LA COURBE               
  23 : C LE 4EME CHIFFRE INDIQUE LA PARTIE DE LA COURBE OU EST SIGO(I)                 
  24 : C                                                                               
  25 : C COURBE EN 4 POINTS (CAS ORDINAIRE) :                                          
  26 : C   -   SIGNB,SIGNA,0,SIGPA,SIGPB   +                                           
  27 : C COURBE EN 8 POINTS (CAS ECRASEMENT) :                                         
  28 : C   -  SIGND,SIGNC,SIGNB,SIGNA,0,SIGPA,SIGPB,SIGPC,SIGPD   +                    
  29 : C COURBE EN 16 POINTS (CAS PRECISION) :                                         
  30 : C   -  SIGND,SIGNC,SIGBET(,1),SIGBET(,2),SIGNB,SIGBET(,3),SIGBET(,4)            
  31 : C      SIGNA,0,SIGPA,                                                           
  32 : C      SIGBET(,5),SIGBET(,6),SIGPB,SIGBET(,7),SIGBET(,8),SIGPC,SIGPD  +         
  33 : C                                                                               
  34 : C       EPSO,SIGO     : ETAT INITIAL                                            
  35 : C       EPINF,SIGINF  : ETAT EXTREME ATTEINT SUR LA COURBE NEGATIVE             
  36 : C       EPSUP,SIGSUP  : ETAT EXTREME ATTEINT SUR LA COURBE POSITIVE             
  37 : C       EPSEQ : DEFORMATION PLASTIQUE EQUIVALENTE                               
  38 : C                                                                               
  39 :       IMPLICIT INTEGER(I-N)
  40 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
  41 : *                                                                               
  42 :       DIMENSION RMOD(4),SIGO(4),DSIG(4),EPSO(2),NUMETA(2),EPSPLA(4)             
  43 :      1,SIGPA(2),SIGPB(2),SIGNA(2),SIGNB(2),SIGSUP(2),SIGINF(2)                  
  44 :      2,EPSPA(2),EPSPB(2),EPSNA(2),EPSNB(2),EPSUP(2),EPINF(2)                    
  45 :      3,SIGND(2),SIGNC(2),SIGPC(2),SIGPD(2),EPSND(2),EPSNC(2),EPSPC(2)           
  46 :      4,EPSPD(2),SIGBET(2,8),EPSBET(2,8)                                         
  47 : C                                                                               
  48 :       DEPSEQ=0.                                                                 
  49 :       DO 950 I=1,4                                                              
  50 :       IF(DSIG(I).NE.0.) GO TO 5                                                 
  51 :       DSIG(I)=SIGO(I)                                                           
  52 :       GO TO 950                                                                 
  53 :     5 EPSTOT=0.                                                                 
  54 :       EPSIN=0.                                                                  
  55 :       DEPS=DSIG(I)/RMOD(I)                                                      
  56 :       SIGEL=SIGO(I)+DSIG(I)                                                     
  57 :       IF(IIMPI.EQ.16)THEN                                                       
  58 :       WRITE(6,*) 'RMOD(',I,') =',RMOD(I)                                        
  59 :       WRITE(6,*) 'SIGO(',I,') =',SIGO(I)                                        
  60 :       WRITE(6,*) 'DSIG(',I,') =',DSIG(I)                                        
  61 :       WRITE(6,*) 'SIGEL =',SIGEL                                                
  62 :       WRITE(6,*) 'EPSO(',I,') =',EPSO(I)                                        
  63 :       WRITE(6,*) 'DEPS  =',DEPS                                                 
  64 :       ENDIF                                                                     
  65 :       GO TO(40,40,10,20),I                                                      
  66 : C                                                                               
  67 : C TORSION : PLASTIQUE PARFAIT                                                   
  68 : C                                                                               
  69 :    10 SIGF=SIGO(I)+DSIG(I)                                                      
  70 :       IF(IIMPI.EQ.16) WRITE(6,*) 'SIGF =',SIGF,'SIGTO =',SIGTO                  
  71 :       IF(SIGF.GT.SIGTO) DSIG(I)=SIGTO-SIGO(I)                                   
  72 :       IF(SIGF.LT.(-SIGTO)) DSIG(I)=-SIGTO-SIGO(I)                               
  73 :       GO TO 900                                                                 
  74 : C                                                                               
  75 : C COMPRESSION : PLASTIQUE PARFAIT                                               
  76 : C                                                                               
  77 :    20 SIGF=SIGO(I)+DSIG(I)                                                      
  78 :       IF(IIMPI.EQ.16) WRITE(6,*) 'SIGF =',SIGF,'SIGCO =',SIGCO                  
  79 :       IF(SIGF.GT.SIGCO) DSIG(I)=SIGCO-SIGO(I)                                   
  80 :       IF(SIGF.LT.(-SIGCO)) DSIG(I)=-SIGCO-SIGO(I)                               
  81 :       GO TO 900                                                                 
  82 : C                                                                               
  83 :    40 EPSIN=EPSO(I)                                                             
  84 :       IF(IIMPI.EQ.16) WRITE(6,*) 'NUMETA(',I,') =',NUMETA(I)                    
  85 :       IEP=NUMETA(I)/1000                                                        
  86 :       IEM=NUMETA(I)/100                                                         
  87 :       IF(IIMPI.EQ.16) WRITE(6,*) 'IEP =',IEP                                    
  88 :       NUMETA(I)=NUMETA(I)-100*IEM                                               
  89 :       IF(IIMPI.EQ.16) WRITE(6,*) 'NUMETA(',I,') =',NUMETA(I)                    
  90 :       IEM=IEM-10*IEP                                                            
  91 :       IF(IIMPI.EQ.16) WRITE(6,*) 'IEM =',IEM                                    
  92 :       EPSTOT=EPSIN+DEPS                                                         
  93 :       IF(IIMPI.EQ.16)THEN                                                       
  94 :       WRITE(6,*) 'SIGPA(',I,') =',SIGPA(I)                                      
  95 :       WRITE(6,*) 'EPSPA(',I,') =',EPSPA(I)                                      
  96 :       WRITE(6,*) 'SIGPB(',I,') =',SIGPB(I)                                      
  97 :       WRITE(6,*) 'EPSPB(',I,') =',EPSPB(I)                                      
  98 :       WRITE(6,*) 'SIGPC(',I,') =',SIGPC(I)                                      
  99 :       WRITE(6,*) 'EPSPC(',I,') =',EPSPC(I)                                      
 100 :       WRITE(6,*) 'SIGPD(',I,') =',SIGPD(I)                                      
 101 :       WRITE(6,*) 'EPSPD(',I,') =',EPSPD(I)                                      
 102 :       WRITE(6,*) 'SIGNA(',I,') =',SIGNA(I)                                      
 103 :       WRITE(6,*) 'EPSNA(',I,') =',EPSNA(I)                                      
 104 :       WRITE(6,*) 'SIGNB(',I,') =',SIGNB(I)                                      
 105 :       WRITE(6,*) 'EPSNB(',I,') =',EPSNB(I)                                      
 106 :       WRITE(6,*) 'SIGNC(',I,') =',SIGNC(I)                                      
 107 :       WRITE(6,*) 'EPSNC(',I,') =',EPSNC(I)                                      
 108 :       WRITE(6,*) 'SIGND(',I,') =',SIGND(I)                                      
 109 :       WRITE(6,*) 'EPSND(',I,') =',EPSND(I)                                      
 110 :       WRITE(6,*) 'EPSTOT =',EPSTOT                                              
 111 :       WRITE(6,*) 'SIGSUP(',I,') =',SIGSUP(I)                                    
 112 :       WRITE(6,*) 'EPSUP(',I,') =',EPSUP(I)                                      
 113 :       WRITE(6,*) 'SIGINF(',I,') =',SIGINF(I)                                    
 114 :       WRITE(6,*) 'EPINF(',I,') =',EPINF(I)                                      
 115 :       ENDIF                                                                     
 116 :       IF(SIGO(I)*DSIG(I)) 450,45,50                                             
 117 :    45 IF(NUMETA(I).NE.0) GO TO 50                                               
 118 :       NUMETA(I)=11                                                              
 119 :       IF(DSIG(I).LT.0) NUMETA(I)=31                                             
 120 : C                                                                               
 121 : C CHARGE                                                                        
 122 : C                                                                               
 123 :    50 ICAS=NUMETA(I)/10                                                         
 124 :       IF(IIMPI.EQ.16) WRITE(6,*) 'ICAS=',ICAS                                   
 125 :       GO TO(100,200,300,400),ICAS                                               
 126 : C                                                                               
 127 : C (SIGO,EPSO) SUR LA COURBE  COTE POSITIF                                       
 128 :   100 IF(EPSUP(I).LT.EPSTOT) EPSUP(I)=EPSTOT                                    
 129 :       IF(IIMPI.EQ.16) WRITE(6,*) 'EPSUP(',I,') =',EPSUP(I)                      
 130 :       JCAS=NUMETA(I)-10                                                         
 131 :       IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS                                   
 132 :       GO TO(110,120,125),JCAS                                                   
 133 :   110 IF(EPSTOT.GT.EPSPA(I)) GO TO 115                                          
 134 :       IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I)              
 135 :       NUMETA(I)=11                                                              
 136 :       GO TO 900                                                                 
 137 :   115 IF(EPSTOT.GT.EPSPB(I)) GO TO 125                                          
 138 :       IF(IPRECI.EQ.1) GO TO 1151                                                
 139 :       DSIG(I)=SIGPA(I)-SIGO(I)+(EPSTOT-EPSPA(I))*(SIGPB(I)-SIGPA(I))            
 140 :      1/(EPSPB(I)-EPSPA(I))                                                      
 141 :       GO TO 1156                                                                
 142 :  1151 IF(EPSTOT.GT.EPSBET(I,5)) GO TO 1152                                      
 143 :       DSIG(I)=SIGPA(I)-SIGO(I)+(EPSTOT-EPSPA(I))                                
 144 :      1 *(SIGBET(I,5)-SIGPA(I))/(EPSBET(I,5)-EPSPA(I))                           
 145 :       GO TO 1156                                                                
 146 :  1152 IF(EPSTOT.GT.EPSBET(I,6)) GO TO 1154                                      
 147 :       DSIG(I)=SIGBET(I,5)-SIGO(I)+(EPSTOT-EPSBET(I,5))                          
 148 :      1 *(SIGBET(I,6)-SIGBET(I,5))/(EPSBET(I,6)-EPSBET(I,5))                     
 149 :       GO TO 1156                                                                
 150 :  1154 DSIG(I)=SIGBET(I,6)-SIGO(I)+(EPSTOT-EPSBET(I,6))                          
 151 :      1 *(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6))                           
 152 :  1156 CONTINUE                                                                  
 153 :       IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I)              
 154 :       NUMETA(I)=12                                                              
 155 :       IEP=2                                                                     
 156 :       GO TO 900                                                                 
 157 :   120 IF(EPSTOT.GT.EPSPB(I)) GO TO 125                                          
 158 :       IF(IPRECI.EQ.1) GO TO 1211                                                
 159 :       DSIG(I)=DEPS*(SIGPB(I)-SIGPA(I))/(EPSPB(I)-EPSPA(I))                      
 160 :       GO TO 1240                                                                
 161 :  1211 IF(EPSO(I).GT.EPSBET(I,5)) GO TO 1220                                     
 162 :       IF(EPSTOT.GT.EPSBET(I,5)) GO TO 1212                                      
 163 :       DSIG(I)=DEPS*(SIGBET(I,5)-SIGPA(I))/(EPSBET(I,5)-EPSPA(I))                
 164 :       GO TO 1240                                                                
 165 :  1212 IF(EPSTOT.GT.EPSBET(I,6)) GO TO 1214                                      
 166 :       DSIG(I)=SIGBET(I,5)-SIGO(I)+(EPSTOT-EPSBET(I,5))                          
 167 :      1 *(SIGBET(I,6)-SIGBET(I,5))/(EPSBET(I,6)-EPSBET(I,5))                     
 168 :       GO TO 1240                                                                
 169 :  1214 DSIG(I)=SIGBET(I,6)-SIGO(I)+(EPSTOT-EPSBET(I,6))                          
 170 :      1 *(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6))                           
 171 :       GO TO 1240                                                                
 172 :  1220 IF(EPSO(I).GT.EPSBET(I,6)) GO TO 1230                                     
 173 :       IF(EPSTOT.GT.EPSBET(I,6)) GO TO 1224                                      
 174 :       DSIG(I)=DEPS*(SIGBET(I,6)-SIGBET(I,5))/(EPSBET(I,6)-EPSBET(I,5))          
 175 :       GO TO 1240                                                                
 176 :  1224 DSIG(I)=SIGBET(I,6)-SIGO(I)+(EPSTOT-EPSBET(I,6))                          
 177 :      1 *(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6))                           
 178 :       GO TO 1240                                                                
 179 :  1230 DSIG(I)=DEPS*(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6))                
 180 :  1240 CONTINUE                                                                  
 181 :       IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I)              
 182 :       GO TO 900                                                                 
 183 :   125 CONTINUE                                                                  
 184 :       IF(IECRAS.EQ.0) GO TO 130                                                 
 185 :       IF(EPSTOT.GT.EPSPC(I)) GO TO 135                                          
 186 :       IF(IPRECI.EQ.1) GO TO 1261                                                
 187 :       DSIG(I)=SIGPB(I)-SIGO(I)+(EPSTOT-EPSPB(I))*(SIGPC(I)-SIGPB(I))            
 188 :      1/(EPSPC(I)-EPSPB(I))                                                      
 189 :       GO TO 1290                                                                
 190 :  1261 IF(EPSO(I).GT.EPSBET(I,7)) GO TO 1270                                     
 191 :       IF(EPSTOT.GT.EPSBET(I,7)) GO TO 1262                                      
 192 :       DSIG(I)=DEPS*(SIGBET(I,7)-SIGPB(I))/(EPSBET(I,7)-EPSPB(I))                
 193 :       GO TO 1290                                                                
 194 :  1262 IF(EPSTOT.GT.EPSBET(I,8)) GO TO 1264                                      
 195 :       DSIG(I)=SIGBET(I,7)-SIGO(I)+(EPSTOT-EPSBET(I,7))                          
 196 :      1 *(SIGBET(I,8)-SIGBET(I,7))/(EPSBET(I,8)-EPSBET(I,7))                     
 197 :       GO TO 1290                                                                
 198 :  1264 DSIG(I)=SIGBET(I,8)-SIGO(I)+(EPSTOT-EPSBET(I,8))                          
 199 :      1 *(SIGPC(I)-SIGBET(I,8))/(EPSPC(I)-EPSBET(I,8))                           
 200 :       GO TO 1290                                                                
 201 :  1270 IF(EPSO(I).GT.EPSBET(I,8)) GO TO 1280                                     
 202 :       IF(EPSTOT.GT.EPSBET(I,8)) GO TO 1274                                      
 203 :       DSIG(I)=DEPS*(SIGBET(I,8)-SIGBET(I,7))/(EPSBET(I,8)-EPSBET(I,7))          
 204 :       GOTO 1290                                                                 
 205 :  1274 DSIG(I)=SIGBET(I,8)-SIGO(I)+(EPSTOT-EPSBET(I,8))                          
 206 :      1 *(SIGPC(I)-SIGBET(I,8))/(EPSPC(I)-EPSBET(I,8))                           
 207 :       GO TO 1290                                                                
 208 :  1280 DSIG(I)=DEPS*(SIGPC(I)-SIGBET(I,8))/(EPSPC(I)-EPSBET(I,8))                
 209 :  1290 CONTINUE                                                                  
 210 :       GO TO 180                                                                 
 211 :   130 DSIG(I)=SIGPB(I)-SIGO(I)                                                  
 212 :       GO TO 180                                                                 
 213 :   135 IF(EPSTOT.GT.EPSPD(I)) GO TO 145                                          
 214 :       DSIG(I)=SIGPC(I)-SIGO(I)+(EPSTOT-EPSPC(I))*(SIGPD(I)-SIGPC(I))            
 215 :      1/(EPSPD(I)-EPSPC(I))                                                      
 216 :       GO TO 180                                                                 
 217 :   145 DSIG(I)=SIGPD(I)-SIGO(I)                                                  
 218 :   180 IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I)              
 219 :       NUMETA(I)=13                                                              
 220 :       IEP=3                                                                     
 221 :       GO TO 900                                                                 
 222 : C                                                                               
 223 : C (SIGO,EPSO) HORS DE LA COURBE COTE POSITIF                                    
 224 :   200 DFSUP=EPSUP(I)                                                            
 225 :       CONSUP=SIGSUP(I)                                                          
 226 :       IF(SIGSUP(I).LT.SIGPA(I)) CONSUP=SIGPA(I)                                 
 227 :       IF(EPSUP(I).LT.EPSPA(I)) DFSUP=EPSPA(I)                                   
 228 :       IF(EPSTOT.GE.DFSUP) GO TO 205                                             
 229 :       DSIG(I)=DEPS*(CONSUP-SIGO(I))/(DFSUP-EPSIN+1.D-20)                        
 230 :       IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)                        
 231 :       GO TO 900                                                                 
 232 :   205 JCAS=NUMETA(I)-20                                                         
 233 :       IF(EPSUP(I).LT.EPSTOT) EPSUP(I)=EPSTOT                                    
 234 :       GO TO(210,115,125),JCAS                                                   
 235 :   210 IF(EPSTOT.GT.EPSPA(I)) GO TO 115                                          
 236 :       DSIG(I)=DEPS*(CONSUP-SIGO(I))/(DFSUP-EPSIN+1.D-20)                        
 237 :       IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I)              
 238 :       NUMETA(I)=11                                                              
 239 :       GO TO 900                                                                 
 240 : C                                                                               
 241 : C (SIGO,EPSO) SUR LA COURBE  COTE NEGATIF                                       
 242 :   300 IF(EPINF(I).GT.EPSTOT) EPINF(I)=EPSTOT                                    
 243 :       JCAS=NUMETA(I)-30                                                         
 244 :       IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS                                   
 245 :       GO TO(310,320,325),JCAS                                                   
 246 :   310 IF(EPSTOT.LT.EPSNA(I)) GO TO 315                                          
 247 :       IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I)              
 248 :       NUMETA(I)=31                                                              
 249 :       GO TO 900                                                                 
 250 :   315 IF(EPSTOT.LT.EPSNB(I)) GO TO 325                                          
 251 :       IF(IPRECI.EQ.1) GO TO 3151                                                
 252 :       DSIG(I)=SIGNA(I)-SIGO(I)+(EPSTOT-EPSNA(I))*(SIGNB(I)-SIGNA(I))            
 253 :      1/(EPSNB(I)-EPSNA(I))                                                      
 254 :       GO TO 3156                                                                
 255 :  3151 IF(EPSTOT.LT.EPSBET(I,4)) GO TO 3152                                      
 256 :       DSIG(I)=SIGNA(I)-SIGO(I)+(EPSTOT-EPSNA(I))                                
 257 :      1 *(SIGBET(I,4)-SIGNA(I))/(EPSBET(I,4)-EPSNA(I))                           
 258 :       GO TO 3156                                                                
 259 :  3152 IF(EPSTOT.LT.EPSBET(I,3)) GO TO 3154                                      
 260 :       DSIG(I)=SIGBET(I,4)-SIGO(I)+(EPSTOT-EPSBET(I,4))                          
 261 :      1 *(SIGBET(I,3)-SIGBET(I,4))/(EPSBET(I,3)-EPSBET(I,4))                     
 262 :       GO TO 3156                                                                
 263 :  3154 DSIG(I)=SIGBET(I,3)-SIGO(I)+(EPSTOT-EPSBET(I,3))                          
 264 :      1 *(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3))                           
 265 :  3156 CONTINUE                                                                  
 266 :       IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I)              
 267 :       NUMETA(I)=32                                                              
 268 :       IEM=2                                                                     
 269 :       GO TO 900                                                                 
 270 :   320 IF(EPSTOT.LT.EPSNB(I)) GO TO 325                                          
 271 :       IF(IPRECI.EQ.1) GO TO 3211                                                
 272 :       DSIG(I)=DEPS*(SIGNB(I)-SIGNA(I))/(EPSNB(I)-EPSNA(I))                      
 273 :       GO TO 3240                                                                
 274 :  3211 IF(EPSO(I).LT.EPSBET(I,4)) GO TO 3220                                     
 275 :       IF(EPSTOT.LT.EPSBET(I,4)) GO TO 3212                                      
 276 :       DSIG(I)=DEPS*(SIGBET(I,4)-SIGNA(I))/(EPSBET(I,4)-EPSNA(I))                
 277 :       GO TO 3240                                                                
 278 :  3212 IF(EPSTOT.LT.EPSBET(I,3)) GO TO 3214                                      
 279 :       DSIG(I)=SIGBET(I,4)-SIGO(I)+(EPSTOT-EPSBET(I,4))                          
 280 :      1 *(SIGBET(I,3)-SIGBET(I,4))/(EPSBET(I,3)-EPSBET(I,4))                     
 281 :       GO TO 3240                                                                
 282 :  3214 DSIG(I)=SIGBET(I,3)-SIGO(I)+(EPSTOT-EPSBET(I,3))                          
 283 :      1 *(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3))                           
 284 :       GO TO 3240                                                                
 285 :  3220 IF(EPSO(I).LT.EPSBET(I,3)) GO TO 3230                                     
 286 :       IF(EPSTOT.LT.EPSBET(I,3)) GO TO 3224                                      
 287 :       DSIG(I)=DEPS*(SIGBET(I,3)-SIGBET(I,4))/(EPSBET(I,3)-EPSBET(I,4))          
 288 :       GO TO 3240                                                                
 289 :  3224 DSIG(I)=SIGBET(I,3)-SIGO(I)+(EPSTOT-EPSBET(I,3))                          
 290 :      1 *(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3))                           
 291 :       GO TO 3240                                                                
 292 :  3230 DSIG(I)=DEPS*(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3))                
 293 :  3240 CONTINUE                                                                  
 294 :       IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I)              
 295 :       GO TO 900                                                                 
 296 :   325 CONTINUE                                                                  
 297 :       IF(IECRAS.EQ.0) GO TO 330                                                 
 298 :       IF(EPSTOT.LT.EPSNC(I)) GO TO 335                                          
 299 :       IF(IPRECI.EQ.1) GO TO 3261                                                
 300 :       DSIG(I)=SIGNB(I)-SIGO(I)+(EPSTOT-EPSNB(I))*(SIGNC(I)-SIGNB(I))            
 301 :      1/(EPSNC(I)-EPSNB(I))                                                      
 302 :       GO TO 3290                                                                
 303 :  3261 IF(EPSO(I).LT.EPSBET(I,2)) GO TO 3270                                     
 304 :       IF(EPSTOT.LT.EPSBET(I,2)) GO TO 3262                                      
 305 :       DSIG(I)=DEPS*(SIGBET(I,2)-SIGNB(I))/(EPSBET(I,2)-EPSNB(I))                
 306 :       GO TO 3290                                                                
 307 :  3262 IF(EPSTOT.LT.EPSBET(I,1)) GO TO 3264                                      
 308 :       DSIG(I)=SIGBET(I,2)-SIGO(I)+(EPSTOT-EPSBET(I,2))                          
 309 :      1 *(SIGBET(I,1)-SIGBET(I,2))/(EPSBET(I,1)-EPSBET(I,2))                     
 310 :       GO TO 3290                                                                
 311 :  3264 DSIG(I)=SIGBET(I,1)-SIGO(I)+(EPSTOT-EPSBET(I,1))                          
 312 :      1 *(SIGNC(I)-SIGBET(I,1))/(EPSNC(I)-EPSBET(I,1))                           
 313 :       GO TO 3290                                                                
 314 :  3270 IF(EPSO(I).LT.EPSBET(I,1)) GO TO 3280                                     
 315 :       IF(EPSTOT.LT.EPSBET(I,1)) GO TO 3274                                      
 316 :       DSIG(I)=DEPS*(SIGBET(I,1)-SIGBET(I,2))/(EPSBET(I,1)-EPSBET(I,2))          
 317 :       GOTO 3290                                                                 
 318 :  3274 DSIG(I)=SIGBET(I,1)-SIGO(I)+(EPSTOT-EPSBET(I,1))                          
 319 :      1 *(SIGNC(I)-SIGBET(I,1))/(EPSNC(I)-EPSBET(I,1))                           
 320 :       GO TO 3290                                                                
 321 :  3280 DSIG(I)=DEPS*(SIGNC(I)-SIGBET(I,1))/(EPSNC(I)-EPSBET(I,1))                
 322 :  3290 CONTINUE                                                                  
 323 :       GO TO 380                                                                 
 324 :   330 DSIG(I)=SIGNB(I)-SIGO(I)                                                  
 325 :       GO TO 380                                                                 
 326 :   335 IF(EPSTOT.LT.EPSND(I)) GO TO 345                                          
 327 :       DSIG(I)=SIGNC(I)-SIGO(I)+(EPSTOT-EPSNC(I))*(SIGND(I)-SIGNC(I))            
 328 :      1/(EPSND(I)-EPSNC(I))                                                      
 329 :       GO TO 380                                                                 
 330 :   345 DSIG(I)=SIGND(I)-SIGO(I)                                                  
 331 :   380 IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I)              
 332 :       NUMETA(I)=33                                                              
 333 :       IEM=3                                                                     
 334 :       GO TO 900                                                                 
 335 : C                                                                               
 336 : C (SIGO,EPSO) HORS DE LA COURBE COTE NEGATIF                                    
 337 :   400 DFINF=EPINF(I)                                                            
 338 :       CONINF=SIGINF(I)                                                          
 339 :       IF(SIGINF(I).GT.SIGNA(I)) CONINF=SIGNA(I)                                 
 340 :       IF(EPINF(I).GT.EPSNA(I)) DFINF=EPSNA(I)                                   
 341 :       IF(EPSTOT.LE.DFINF) GO TO 405                                             
 342 :       DSIG(I)=DEPS*(CONINF-SIGO(I))/(DFINF-EPSIN+1.D-20)                        
 343 :       IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)                        
 344 :       GO TO 900                                                                 
 345 :   405 JCAS=NUMETA(I)-40                                                         
 346 :       IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS                                   
 347 :       IF(EPINF(I).GT.EPSTOT) EPINF(I)=EPSTOT                                    
 348 :       GO TO(410,315,325),JCAS                                                   
 349 :   410 IF(EPSTOT.LT.EPSNA(I)) GO TO 315                                          
 350 :       DSIG(I)=DEPS*(CONINF-SIGO(I))/(DFINF-EPSIN+1.D-20)                        
 351 :       IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I)              
 352 :       NUMETA(I)=31                                                              
 353 :       GO TO 900                                                                 
 354 : C                                                                               
 355 : C DECHARGE                                                                      
 356 : C                                                                               
 357 :   450 ICAS=NUMETA(I)/10                                                         
 358 :       IF(IIMPI.EQ.16) WRITE(6,*) 'ICAS=',ICAS                                   
 359 :       GO TO(500,500,700,700),ICAS                                               
 360 : C                                                                               
 361 : C (SIGO,EPSO) COTE POSITIF                                                      
 362 :   500 JCAS=MOD(NUMETA(I),10)                                                    
 363 :       IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS                                   
 364 :       GO TO(510,520,530),JCAS                                                   
 365 :   510 PENTE=RMOD(I)                                                             
 366 :       IF(IIMPI.EQ.16) WRITE(6,*) '510 PENTE=',PENTE                             
 367 :       NUMETA(I)=21                                                              
 368 :       IF(ICAS.EQ.1) NUMETA(I)=11                                                
 369 :       GO TO 560                                                                 
 370 :   520 PENTE=SIGSUP(I)/EPSUP(I)                                                  
 371 :       IF(IIMPI.EQ.16) WRITE(6,*) '520 PENTE=',PENTE                             
 372 :       NUMETA(I)=22                                                              
 373 :       GO TO 550                                                                 
 374 :   530 PENTE=SIGPB(I)/EPSPB(I)                                                   
 375 :       IF(IIMPI.EQ.16) WRITE(6,*) '530 PENTE=',PENTE                             
 376 :       NUMETA(I)=23                                                              
 377 :   550 CONTINUE                                                                  
 378 :   560 SIGF=SIGO(I)+DEPS*PENTE                                                   
 379 :       IF(IIMPI.EQ.16) WRITE(6,*) '560 SIGF =',SIGF                              
 380 :       IF((SIGO(I)*SIGF).LE.0.) GO TO 600                                        
 381 :       DSIG(I)=SIGF-SIGO(I)                                                      
 382 :       GO TO 900                                                                 
 383 : C----------                                                                     
 384 :   600 CONINF=SIGINF(I)                                                          
 385 :       DFINF=EPINF(I)                                                            
 386 :       IF(SIGINF(I).GT.SIGNA(I)) CONINF=SIGNA(I)                                 
 387 :       IF(EPINF(I).GT.EPSNA(I)) DFINF=EPSNA(I)                                   
 388 : C----------                                                                     
 389 :       IF(EPSTOT.LE.DFINF) GO TO 610                                             
 390 :       EPZE=EPSIN-SIGO(I)*DEPS/(SIGF-SIGO(I))                                    
 391 :       IF(IIMPI.EQ.16) WRITE(6,*) '600 EPZE =',EPZE                              
 392 :       DSIG(I)=(EPSTOT-EPZE)*CONINF/(DFINF-EPZE+1.D-20)                          
 393 :       IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)                        
 394 :       DSIG(I)=DSIG(I)-SIGO(I)                                                   
 395 :       IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)                        
 396 :       IF(IEM.EQ.1.AND.EPSTOT.LE.EPSNA(I)) GO TO 605                             
 397 :       NUMETA(I)=40+IEM                                                          
 398 :       GO TO 900                                                                 
 399 :   605 NUMETA(I)=31                                                              
 400 :       GO TO 900                                                                 
 401 :   610 IF(EPINF(I).GT.EPSTOT) EPINF(I)=EPSTOT                                    
 402 :       GO TO(410,315,325),IEM                                                    
 403 :       GO TO 410                                                                 
 404 : C                                                                               
 405 : C (SIGO,EPSO) COTE NEGATIF                                                      
 406 :   700 JCAS=MOD(NUMETA(I),10)                                                    
 407 :       IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS                                   
 408 :       GO TO(710,720,730),JCAS                                                   
 409 :   710 PENTE=RMOD(I)                                                             
 410 :       IF(IIMPI.EQ.16) WRITE(6,*) '710 PENTE=',PENTE                             
 411 :       NUMETA(I)=41                                                              
 412 :       IF(ICAS.EQ.3) NUMETA(I)=31                                                
 413 :       GO TO 760                                                                 
 414 :   720 PENTE=SIGINF(I)/EPINF(I)                                                  
 415 :       IF(IIMPI.EQ.16) WRITE(6,*) '720 PENTE=',PENTE                             
 416 :       NUMETA(I)=42                                                              
 417 :       GO TO 750                                                                 
 418 :   730 PENTE=SIGNB(I)/EPSNB(I)                                                   
 419 :       IF(IIMPI.EQ.16) WRITE(6,*) '730 PENTE=',PENTE                             
 420 :       NUMETA(I)=43                                                              
 421 :   750 CONTINUE                                                                  
 422 :   760 SIGF=SIGO(I)+DEPS*PENTE                                                   
 423 :       IF(IIMPI.EQ.16) WRITE(6,*) '760 SIGF =',SIGF                              
 424 :       IF((SIGO(I)*SIGF).LE.0.) GO TO 800                                        
 425 :       DSIG(I)=SIGF-SIGO(I)                                                      
 426 :       GO TO 900                                                                 
 427 : C----------                                                                     
 428 :   800 CONSUP=SIGSUP(I)                                                          
 429 :       DFSUP=EPSUP(I)                                                            
 430 :       IF(SIGSUP(I).LT.SIGPA(I)) CONSUP=SIGPA(I)                                 
 431 :       IF(EPSUP(I).LT.EPSPA(I)) DFSUP=EPSPA(I)                                   
 432 : C----------                                                                     
 433 :       IF(EPSTOT.GE.DFSUP) GO TO 810                                             
 434 :       EPZE=EPSIN-SIGO(I)*DEPS/(SIGF-SIGO(I))                                    
 435 :       IF(IIMPI.EQ.16) WRITE(6,*) '800 EPZE =',EPZE                              
 436 :       DSIG(I)=(EPSTOT-EPZE)*CONSUP/(DFSUP-EPZE+1.D-20)                          
 437 :       IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)                        
 438 :       DSIG(I)=DSIG(I)-SIGO(I)                                                   
 439 :       IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)                        
 440 :       IF(IEP.EQ.1.AND.EPSTOT.GE.EPSPA(I)) GO TO 805                             
 441 :       NUMETA(I)=20+IEP                                                          
 442 :       GO TO 900                                                                 
 443 :   805 NUMETA(I)=11                                                              
 444 :       GO TO 900                                                                 
 445 :   810 IF(EPSUP(I).LT.EPSTOT) EPSUP(I)=EPSTOT                                    
 446 :       GO TO(210,115,125),IEP                                                    
 447 :       GO TO 210                                                                 
 448 : C                                                                               
 449 :   900 DSIG(I)=DSIG(I)+SIGO(I)                                                   
 450 :       EPSPLA(I)=(SIGEL-DSIG(I))/RMOD(I)                                         
 451 :       DEPSEQ=DEPSEQ+ABS(EPSPLA(I))                                              
 452 : *                                                                               
 453 :       IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)                        
 454 :       IF(IIMPI.EQ.16) WRITE(6,*) 'EPSPLA(',I,') =',EPSPLA(I)                    
 455 :       IF(IIMPI.EQ.16) WRITE(6,*) 'DEPSEQ =',DEPSEQ                              
 456 :       IF(I.GT.2) GO TO 950                                                      
 457 :       NUMETA(I)=NUMETA(I)+1000*IEP+100*IEM                                      
 458 :       IF(IIMPI.EQ.16) WRITE(6,*) 'NUMETA(',I,') =',NUMETA(I)                    
 459 :       EPSO(I)=EPSTOT                                                            
 460 : *                                                                               
 461 :   950 CONTINUE                                                                  
 462 :       EPSEQ=DEPSEQ+EPSEQ                                                        
 463 :       IF(IIMPI.EQ.16) WRITE(6,*) 'EPSEQ =',EPSEQ                                
 464 :       RETURN                                                                    
 465 :       END                                                                       
 466 :  

© Cast3M 2003 - All rights reserved.
Disclaimer