Download c2dp.eso

Back to the list

   1 : C C2DP      SOURCE    CHAT      05/01/12    21:44:59     5004           
   2 :       SUBROUTINE C2DP(SIG,DSIG,YOUN,ANU,RT1,RT2,RDP,ADP,HDP,                    
   3 :      1 XLAM1,XLAM2,XLAM3,IDAM,ANG,EPPLDP,ALPHA,KERRE)                           
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   6 : -INC CCOPTIO                                                                    
   7 :       DIMENSION SIG(3),DSIG(3),SGG(3),DSGG(3),SFG(3),DSFG(3),                   
   8 :      1 A(3),B(3),IDAM(3),EPC(3),SSI(3),SI(3),EPC1(3),                           
   9 :      1 EPDP(3),EC(3),EPPLDP(3),SG(3),AT(4),BT(2),TENS(3)                        
  10 :       ITER=0                                                                    
  11 :       Y=YOUN/(1.D0-ANU*ANU)                                                     
  12 :       SIREF=1.E-6*YOUN                                                          
  13 :       DO 10 ITYP=1,3                                                            
  14 :       EPDP(ITYP)=0.D0                                                           
  15 :    10 EPPLDP(ITYP)=0.D0                                                         
  16 :       DL3=0.D0                                                                  
  17 :       XT=0.D0                                                                   
  18 :       IF(IIMPI.EQ.9) WRITE(IOIMP,9999)                                          
  19 : 9999  FORMAT(1X,'C2DP COUPLAGE COMP 2 DRUCKER',/)                               
  20 :  9998 FORMAT(1X,'C2DP ',I4,'ITERATIONS INTERNES',/)                             
  21 : C                                                                               
  22 : C------------------------------------------------                               
  23 : C     COUPLAGE COMPRESSION 2 DRUCKER                                            
  24 : C------------------------------------------------                               
  25 : C----------------------------------------------                                 
  26 : C     DEFINITION D UNE CONTRAINTE DE REFERENCE                                  
  27 : C     SI RMAX DU DRUCKER INFERIEURE A CETTE VALEUR                              
  28 : C     ALORS SIGMA=0                                                             
  29 : C----------------------------------------------                                 
  30 : C                                                                               
  31 :       RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))                                
  32 :       IF(SIREF.GT.RMAX) THEN                                                    
  33 :       DO 20 ITYP=1,3                                                            
  34 :   20  SIG(ITYP)=SIG(ITYP)+DSIG(ITYP)                                            
  35 :       RDP=0.D0                                                                  
  36 :       HDP=0.D0                                                                  
  37 :       ADP=0.D0                                                                  
  37 :       CALL CPHOIN(SIG,EPPLDP,YOUN,ANU)                                          
  37 :       CALL NORME(SIG,DL3)                                                       
  38 :       DL3=DL3/YOUN*10.D0                                                        
  39 :       XLAM3=XLAM3+DL3                                                           
  40 :       DO 30 ITYP=1,3                                                            
  41 :       IDAM(ITYP)=0                                                              
  42 :       DSIG(ITYP)=0.D0                                                           
  43 :   30  SIG(ITYP)=0.D0                                                            
  44 :       IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER                                     
  45 :       RETURN                                                                    
  46 :       ENDIF                                                                     
  47 : C-----------------------------------------------                                
  48 : C     ON SEPLACE DANS LE REPERE DE FISSURATION                                  
  49 : C-----------------------------------------------                                
  50 : C                                                                               
  50 :       CALL CHREP(SIG,SFG,ANG)                                                   
  50 :       CALL CHREP(DSIG,DSFG,ANG)                                                 
  51 : C                                                                               
  52 : C-----------------------------------------------------                          
  53 : C     ESTIMATION DU PAS D'INCREMENT DE CONTRAINTES                              
  54 : C-----------------------------------------------------                          
  55 : C                                                                               
  55 :       CALL SIJ(SFG,SI,SIETOI)                                                   
  55 :       CALL EPSDP(SI,SIETOI,ADP,EPC)                                             
  55 :       CALL CPHOMO(EPC,SSI,YOUN,ANU,ALPHA)                                       
  55 :       CALL SCAL2(EPC,SSI,VAL)                                                   
  56 :       VAL=VAL-HDP                                                               
  57 :       IF(VAL.LT.0.D0) THEN                                                      
  58 :       KERRE=459                                                                 
  59 :       RETURN                                                                    
  60 :       ENDIF                                                                     
  60 :       CALL SCAL(SSI,DSFG,VAL)                                                   
  60 :       CALL NORME(DSFG,VA1)                                                      
  60 :       CALL NORME(SSI,VA2)                                                       
  61 :       IF(VA1.EQ.0.D0) THEN                                                      
  62 :       IDAM(1)=0                                                                 
  63 :       IDAM(2)=0                                                                 
  64 :       IDAM(3)=0                                                                 
  65 :       RETURN                                                                    
  66 :       ENDIF                                                                     
  67 :       RMIN=MIN((RDP/1.73),(RDP/(1.D0+2.D0*ADP)))                                
  68 :       X=VAL/VA1/VA2                                                             
  69 :       IF(X.GE.1.D0) THEN                                                        
  70 :       X=1.D0                                                                    
  71 :       GOTO 41                                                                   
  72 :       ENDIF                                                                     
  73 :       X=1.D0/SQRT(1.0001D0-X*X)*RMIN/VA1/8.D0                                   
  74 :       IF(X.GE.1.D0) X=1.D0                                                      
  75 : C                                                                               
  76 : C----------------------------------------------------------                     
  77 : C     ON ECOULE ET ON REGARDE LA VARIATION DE NORMALE                           
  78 : C----------------------------------------------------------                     
  79 : C                                                                               
  80 : C                                                                               
  81 : C---------------------------------------                                        
  82 : C     RESOLUTION DU SYSTEME EN DL3                                              
  83 : C---------------------------------------                                        
  84 :    41 X=X/2.D0                                                                  
  85 :       EC(1)=0.D0                                                                
  86 :       EC(2)=1.D0                                                                
  87 :       EC(3)=0.D0                                                                
  87 :       CALL CPHOOB(EC,SG,YOUN,ANU)                                               
  88 :   100 X=X*2.D0                                                                  
  88 :       CALL SIJ(SFG,SI,SIETOI)                                                   
  88 :       CALL EPSDP(SI,SIETOI,ADP,EPC)                                             
  88 :       CALL CPHOMO(EPC,SSI,YOUN,ANU,ALPHA)                                       
  88 :       CALL SCAL2(EPC,SSI,VAL)                                                   
  89 :       VAL=VAL-HDP                                                               
  90 :       IF(VAL.LT.0.D0) THEN                                                      
  91 :       KERRE=459                                                                 
  92 :       RETURN                                                                    
  93 :       ENDIF                                                                     
  94 :       IF((XT+X).GT.1.D0) X=1.D0-XT                                              
  95 :   110 RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))                                
  96 : C                                                                               
  97 : C --------------------------------------------------                            
  98 : C     CAS OU LE RAYON MAXIMAL DU DRUCKER-PRAGER                                 
  99 : C     INFERIEUR A LA CONTRAINTE DE REFERENCE                                    
 100 : C --------------------------------------------------                            
 101 : C                                                                               
 102 :       IF(SIREF.LT.RMAX) GOTO 131                                                
 103 :       DO 120 ITYP=1,3                                                           
 104 :   120 SFG(ITYP)=SFG(ITYP)+(1.D0-XT)*DSFG(ITYP)                                  
 105 :       RDP=0.D0                                                                  
 106 :       ADP=0.D0                                                                  
 107 :       HDP=0.D0                                                                  
 107 :       CALL NORME(SFG,DL3)                                                       
 108 :       DL3=DL3/YOUN*10.D0                                                        
 109 :       XLAM3=XLAM3+DL3                                                           
 109 :       CALL CPHOIN(SFG,EPPLDP,YOUN,ANU)                                          
 110 :       DO 130 ITYP=1,3                                                           
 111 :       IDAM(ITYP)=0                                                              
 112 :       EPDP(ITYP)=EPDP(ITYP)+EPPLDP(ITYP)                                        
 113 :       DSIG(ITYP)=0.D0                                                           
 114 :   130 SIG(ITYP)=0.D0                                                            
 114 :       CALL CHREP(EPDP,EPPLDP,-ANG)                                              
 115 :       IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER                                     
 116 :       RETURN                                                                    
 117 :   131 ITER=ITER+1                                                               
 118 :       IF(ITER.GT.200) THEN                                                      
 119 :       KERRE=460                                                                 
 120 :       RETURN                                                                    
 121 :       ENDIF                                                                     
 122 : C                                                                               
 123 : C---------------------------------                                              
 124 : C     ON REALISE LE COUPLAGE                                                    
 125 : C---------------------------------                                              
 126 : C                                                                               
 127 :       E=-(SFG(2)+X*DSFG(2))/SG(2)                                               
 128 :       F=SSI(2)/SG(2)                                                            
 129 :       DO 140 ITYP=1,3                                                           
 130 :       DSGG(ITYP)=X*DSFG(ITYP)                                                   
 131 :       A(ITYP)=SFG(ITYP)+DSGG(ITYP)+E*SG(ITYP)                                   
 132 :   140 B(ITYP)=-SSI(ITYP)+F*SG(ITYP)                                             
 132 :       CALL DLAMDP(A,B,DL3,RDP,ADP,HDP,ITEST)                                    
 133 :       IF(ITEST.EQ.1) THEN                                                       
 134 :       X=X/2.D0                                                                  
 135 :       GOTO 131                                                                  
 136 :       ENDIF                                                                     
 137 :       DL2=-E-F*DL3                                                              
 138 :       DO 145 ITYP=1,3                                                           
 139 :   145 SGG(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-DL2*SG(ITYP)-DL3*SSI(ITYP)               
 140 : C                                                                               
 141 : C----------------------------------------------                                 
 142 : C     SI UN DES DLAMDA < 0  FAUX COUPLAGE                                       
 143 : C----------------------------------------------                                 
 144 : C                                                                               
 145 :       IF(DL2.GT.0.D0) IDAM(2)=0                                                 
 146 :       IF(DL3.LT.0.D0) IDAM(3)=0                                                 
 147 :       IF(IDAM(2).EQ.0.OR.IDAM(3).EQ.0) THEN                                     
 148 :       DL2=0.D0                                                                  
 149 :       DL3=0.D0                                                                  
 150 :       X=0.D0                                                                    
 151 :       GOTO 3000                                                                 
 152 :       ENDIF                                                                     
 153 : C                                                                               
 154 : C-----------------------------------------------------                          
 155 : C     ON VERIFIE QUE LA NORMALE SUIVANT LE DRUCKER                              
 156 : C     PRAGER TOURNE PEU                                                         
 157 : C-----------------------------------------------------                          
 158 : C                                                                               
 158 :       CALL SIJ(SGG,SI,SIETOI)                                                   
 158 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 158 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 158 :       CALL NORME(EPC,VA1)                                                       
 158 :       CALL NORME(EPC1,VA2)                                                      
 159 :       CO=VAL/VA1/VA2                                                            
 160 :       IF(CO.LT.0.99) THEN                                                       
 161 :       X=X/2.D0                                                                  
 162 :       GOTO 131                                                                  
 163 :       ENDIF                                                                     
 164 :       IF((DL2+XLAM2).GE.0.D0) GOTO 200                                          
 165 : C                                                                               
 166 : C------------------------------------------------                               
 167 : C     CAS OU LA FISSURE EST COMPLETEMENT FERMEE                                 
 168 : C------------------------------------------------                               
 169 : C                                                                               
 170 :       IDAM(2)=0                                                                 
 171 :       DL2=-XLAM2                                                                
 172 :       IF(DSFG(2).EQ.0.D0) GOTO 160                                              
 173 :       E=(DL2*SG(2)-SFG(2))/DSFG(2)                                              
 174 :       F=SSI(2)/DSFG(2)                                                          
 175 :       DO 150 ITYP=1,3                                                           
 176 :       A(ITYP)=SFG(ITYP)-DL2*SG(ITYP)+E*DSFG(ITYP)                               
 177 :   150 B(ITYP)=F*DSFG(ITYP)-SSI(ITYP)                                            
 177 :       CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)                               
 178 :       DO 151 ITYP=1,3                                                           
 179 :       SGG(ITYP)=A(ITYP)+DL31*B(ITYP)                                            
 180 :   151 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)                                           
 180 :       CALL SIJ(SGG,SI,SIETOI)                                                   
 180 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 180 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 180 :       CALL NORME(EPC,VA1)                                                       
 180 :       CALL NORME(EPC1,VA2)                                                      
 181 :       CO1=VAL/VA1/VA2                                                           
 181 :       CALL SIJ(DSGG,SI,SIETOI)                                                  
 181 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 181 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 181 :       CALL NORME(EPC,VA1)                                                       
 181 :       CALL NORME(EPC1,VA2)                                                      
 182 :       CO2=VAL/VA1/VA2                                                           
 183 :       XIN1=E+F*DL31                                                             
 184 :       XIN2=E+F*DL32                                                             
 185 :       IF(XIN1.GT.-1.D-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN                     
 186 :       DL3=DL31                                                                  
 187 :       X=XIN1                                                                    
 188 :       GOTO 200                                                                  
 189 :       ENDIF                                                                     
 190 :       IF(XIN2.GT.-1.D-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN                     
 191 :       DL3=DL32                                                                  
 192 :       X=XIN2                                                                    
 193 :       GOTO 200                                                                  
 194 :       ENDIF                                                                     
 195 :       IF(IIMPI.EQ.9) WRITE(IOIMP,10101)                                         
 196 : 10101 FORMAT(1X,'ERREUR DANS C2DP FERM ',/)                                     
 197 :       DL3=DL31                                                                  
 198 :       X=XIN1                                                                    
 199 :       GOTO 200                                                                  
 200 :   160 DL3=(SFG(2)-DL2*SG(2))/SSI(2)                                             
 201 :       RD=RDP-HDP*DL3                                                            
 202 :       IF(RD.LT.0.D0) THEN                                                       
 203 :       RDP=0.D0                                                                  
 204 :       GOTO 110                                                                  
 205 :       ENDIF                                                                     
 206 :       DO 170 ITYP=1,3                                                           
 207 :       A(ITYP)=SFG(ITYP)-DL2*SG(ITYP)-DL3*SSI(ITYP)                              
 208 :   170 B(ITYP)=DSFG(ITYP)                                                        
 208 :       CALL XDP(A,B,RD,ADP,X,ITEST)                                              
 209 :   200 CONTINUE                                                                  
 210 :       DO 205 ITYP=1,3                                                           
 211 :       DSGG(ITYP)=X*DSFG(ITYP)                                                   
 212 :   205 SGG(ITYP)=SFG(ITYP)+DSGG(ITYP)-DL2*SG(ITYP)-DL3*SSI(ITYP)                 
 213 : C                                                                               
 214 : C-----------------------------------------------                                
 215 : C     ON REGARDE SI ON ENDOMMAGE PAS LES AUTRES                                 
 216 : C     CRITERES                                                                  
 217 : C-----------------------------------------------                                
 218 : C-------------------------------------                                          
 219 : C     ON ENDOMMAGE LA TRACTION 1                                                
 220 : C-------------------------------------                                          
 221 : C                                                                               
 221 :       CALL CTRAF(SGG(1),RT1,VCTR)                                               
 222 :       IF(VCTR.LE.0.D0) GOTO 1000                                                
 223 :       IDAM(1)=1                                                                 
 224 :       IDAM(2)=-1                                                                
 225 :       IDAM(3)=1                                                                 
 226 :       AT(1)=-DSFG(1)                                                            
 227 :       AT(4)=Y                                                                   
 228 :       AT(2)=Y*ANU                                                               
 229 :       AT(3)=-DSFG(2)                                                            
 230 :       BT(1)=SFG(1)-RT1                                                          
 231 :       BT(2)=SFG(2)                                                              
 231 :       CALL SYLIN2(AT,BT,X1,DL21)                                                
 232 :       BT(1)=-SSI(1)                                                             
 233 :       BT(2)=-SSI(2)                                                             
 233 :       CALL SYLIN2(AT,BT,X2,DL22)                                                
 234 :       DO 230 ITYP=1,3                                                           
 235 :       A(ITYP)=SFG(ITYP)-DL21*SG(ITYP)+X1*DSFG(ITYP)                             
 236 :   230 B(ITYP)=-DL22*SG(ITYP)+X2*DSFG(ITYP)-SSI(ITYP)                            
 236 :       CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)                               
 237 :       DO 231 ITYP=1,3                                                           
 238 :       SGG(ITYP)=A(ITYP)+DL31*B(ITYP)                                            
 239 :   231 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)                                           
 239 :       CALL SIJ(SGG,SI,SIETOI)                                                   
 239 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 239 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 239 :       CALL NORME(EPC,VA1)                                                       
 239 :       CALL NORME(EPC1,VA2)                                                      
 240 :       CO1=VAL/VA1/VA2                                                           
 240 :       CALL SIJ(DSGG,SI,SIETOI)                                                  
 240 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 240 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 240 :       CALL NORME(EPC,VA1)                                                       
 240 :       CALL NORME(EPC1,VA2)                                                      
 241 :       CO2=VAL/VA1/VA2                                                           
 242 :       DLIN1=DL21+DL31*DL22                                                      
 243 :       DLIN2=DL21+DL32*DL22                                                      
 244 :       XIN1=X1+DL31*X2                                                           
 245 :       XIN2=X1+DL32*X2                                                           
 246 :       IF(XIN1.GT.-1.D-10.AND.DLIN1.LT.1.E-10.AND.XIN1.LE.X                      
 247 :      1 .AND.CO1.GT.0.9) THEN                                                    
 248 :       DL3=DL31                                                                  
 249 :       X=XIN1                                                                    
 250 :       DL2=DLIN1                                                                 
 251 :       GOTO 3000                                                                 
 252 :       ENDIF                                                                     
 253 :       IF(XIN2.GT.-1.D-10.AND.DLIN2.LT.1.E-10.AND.XIN2.LE.X                      
 254 :      1 .AND.CO2.GT.0.9) THEN                                                    
 255 :       DL3=DL32                                                                  
 256 :       X=XIN2                                                                    
 257 :       DL2=DLIN2                                                                 
 258 :       GOTO 3000                                                                 
 259 :       ENDIF                                                                     
 260 :       IF(IIMPI.EQ.9) WRITE(IOIMP,20202)                                         
 261 : 20202 FORMAT(1X,'ERREUR DANS C2DP TRAC ',/)                                     
 262 :       DL3=DL31                                                                  
 263 :       DL2=DLIN1                                                                 
 264 :       X=XIN1                                                                    
 265 :       GOTO 3000                                                                 
 266 : C                                                                               
 267 : C-------------------------------------                                          
 268 : C     ON ENDOMMAGE LA COMPRESSION 1                                             
 269 : C-------------------------------------                                          
 270 : C                                                                               
 270 :  1000 CALL CCOAF(SGG(1),XLAM1,VCCO1)                                            
 271 :       IF(VCCO1.LE.0.D0) GOTO 2000                                               
 272 :       IDAM(1)=-1                                                                
 273 :       IDAM(3)=1                                                                 
 274 :       IDAM(2)=-1                                                                
 275 :       AT(1)=-DSFG(1)                                                            
 276 :       AT(4)=Y                                                                   
 277 :       AT(2)=Y*ANU                                                               
 278 :       AT(3)=-DSFG(2)                                                            
 279 :       BT(1)=SFG(1)                                                              
 280 :       BT(2)=SFG(2)                                                              
 280 :       CALL SYLIN2(AT,BT,X1,DL21)                                                
 281 :       BT(1)=-SSI(1)                                                             
 282 :       BT(2)=-SSI(2)                                                             
 282 :       CALL SYLIN2(AT,BT,X2,DL22)                                                
 283 :       DO 1010 ITYP=1,3                                                          
 284 :       A(ITYP)=SFG(ITYP)-DL21*SG(ITYP)+X1*DSFG(ITYP)                             
 285 :  1010 B(ITYP)=-DL22*SG(ITYP)+X2*DSFG(ITYP)-SSI(ITYP)                            
 285 :       CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)                               
 286 :       DO 1011 ITYP=1,3                                                          
 287 :       SGG(ITYP)=A(ITYP)+DL31*B(ITYP)                                            
 288 :  1011 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)                                           
 288 :       CALL SIJ(SGG,SI,SIETOI)                                                   
 288 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 288 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 288 :       CALL NORME(EPC,VA1)                                                       
 288 :       CALL NORME(EPC1,VA2)                                                      
 289 :       CO1=VAL/VA1/VA2                                                           
 289 :       CALL SIJ(DSGG,SI,SIETOI)                                                  
 289 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 289 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 289 :       CALL NORME(EPC,VA1)                                                       
 289 :       CALL NORME(EPC1,VA2)                                                      
 290 :       CO2=VAL/VA1/VA2                                                           
 291 : *     DLIN1=DL11+DL31*DL12   CORRECTION PV ???                                  
 292 : *     DLIN2=DL11+DL32*DL12   SUITE ERREUR APPOLO                                
 293 :       DLIN1=DL21+DL31*DL22                                                      
 294 :       DLIN2=DL21+DL32*DL22                                                      
 295 :       XIN1=X1+DL31*X2                                                           
 296 :       XIN2=X1+DL32*X2                                                           
 297 :       IF(XIN1.GT.-1.D-10.AND.DLIN1.LT.1.E-10.AND.XIN1.LE.X                      
 298 :      1 .AND.CO1.GT.0.9) THEN                                                    
 299 :       DL3=DL31                                                                  
 300 :       X=XIN1                                                                    
 301 :       DL2=DLIN1                                                                 
 302 :       GOTO 3000                                                                 
 303 :       ENDIF                                                                     
 304 :       IF(XIN2.GT.-1.D-10.AND.DLIN2.LT.1.E-10.AND.XIN2.LE.X                      
 305 :      1 .AND.CO2.GT.0.9) THEN                                                    
 306 :       DL3=DL32                                                                  
 307 :       X=XIN2                                                                    
 308 :       DL2=DLIN2                                                                 
 309 :       GOTO 3000                                                                 
 310 :       ENDIF                                                                     
 311 :       IF(IIMPI.EQ.9) WRITE(IOIMP,30303)                                         
 312 : 30303 FORMAT(1X,'ERREUR DANS C2DP COMP ',/)                                     
 313 :       DL3=DL31                                                                  
 314 :       DL2=DLIN1                                                                 
 315 :       X=XIN1                                                                    
 316 :       GOTO 3000                                                                 
 317 :  2000 CONTINUE                                                                  
 318 : C                                                                               
 319 : C------------------------------------------------                               
 320 : C     CAS OU AUCUN AUTRE CRITERE EST ENDOMMAGE                                  
 321 : C------------------------------------------------                               
 322 : C-----------------------------------                                            
 323 : C     REMISE A JOUR DES VARIABLES                                               
 324 : C     PUIS NOUVEAU PAS SI TOUT                                                  
 325 : C     L INCREMENT N EST PAS ECOULE                                              
 326 : C-----------------------------------                                            
 327 : C                                                                               
 328 :       XT=XT+X                                                                   
 329 :       RDP=RDP-DL3*HDP                                                           
 330 :       RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))                                
 331 :       IF(SIREF.GT.RMAX) THEN                                                    
 332 :       RDP=0.D0                                                                  
 333 :       GOTO 110                                                                  
 334 :       ENDIF                                                                     
 335 :       DO 2010 ITYP=1,3                                                          
 336 :       SFG(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-DL2*SG(ITYP)-DL3*SSI(ITYP)               
 337 :  2010 EPDP(ITYP)=DL3*EPC(ITYP)+EPDP(ITYP)                                       
 338 :       XLAM2=XLAM2+DL2                                                           
 339 :       XLAM3=XLAM3+DL3                                                           
 340 :       IF(XLAM2.LT.1.E-10) XLAM2=0.D0                                            
 341 :       IF(XLAM2.LT.1.E-10) IDAM(2)=0                                             
 342 :       C=1.D0-1.D-10                                                             
 343 :       IF(XT.LT.C) GOTO 2020                                                     
 344 :       DO 2015 ITYP=1,3                                                          
 345 :       IDAM(ITYP)=0                                                              
 346 :  2015 DSIG(ITYP)=0.D0                                                           
 346 :       CALL CHREP(SFG,SIG,-ANG)                                                  
 346 :       CALL CHREP(EPDP,EPPLDP,-ANG)                                              
 347 :       IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER                                     
 348 :       RETURN                                                                    
 349 :  2020 IF(IDAM(2).EQ.-1) GOTO 100                                                
 350 :       XLAM2=0.D0                                                                
 351 :       GAMDP=10.D0                                                               
 352 :       GAMTR1=10.D0                                                              
 353 :       GAMTR2=10.D0                                                              
 354 :       GAMCO1=10.D0                                                              
 355 :       DO 2030 ITYP=1,3                                                          
 356 :       DSFG(ITYP)=DSFG(ITYP)*(1.D0-XT)                                           
 357 :  2030 TENS(ITYP)=SFG(ITYP)+DSFG(ITYP)                                           
 357 :       CALL CTRAF(TENS(1),RT1,VCTR1)                                             
 357 :       CALL CTRAF(TENS(2),RT2,VCTR2)                                             
 357 :       CALL CCOAF(TENS(1),XLAM1,VCCO1)                                           
 357 :       CALL CDP(TENS,ADP,RDP,VCDP)                                               
 357 :       IF(VCTR1.GT.0.D0) CALL GAMTAF(SFG(1),DSFG(1),RT1,GAMTR1)                  
 357 :       IF(VCTR2.GT.0.D0) CALL GAMTAF(SFG(2),DSFG(2),RT2,GAMTR2)                  
 357 :       IF(VCCO1.GT.0.D0) CALL GAMCAF(SFG(1),DSFG(1),GAMCO1)                      
 357 :       IF(VCDP.GT.0.D0) CALL GDP(SFG,DSFG,RDP,ADP,GAMDP)                         
 358 :       IDAM(1)=0                                                                 
 359 :       IDAM(2)=0                                                                 
 360 :       IDAM(3)=0                                                                 
 361 :       GAM=MIN(GAMTR1,GAMTR2,GAMCO1,GAMDP)                                       
 362 :       IF(GAM.GE.1.D0) THEN                                                      
 363 :       DO 2040 ITYP=1,3                                                          
 364 :       SFG(ITYP)=SFG(ITYP)+DSFG(ITYP)                                            
 365 :  2040 DSIG(ITYP)=0.D0                                                           
 365 :       CALL CHREP(SFG,SIG,-ANG)                                                  
 366 :       RETURN                                                                    
 367 :       ENDIF                                                                     
 368 :       IF(ABS(GAM-GAMTR1).LE.1.E-10) IDAM(1)=1                                   
 369 :       IF(ABS(GAM-GAMTR2).LE.1.E-10) IDAM(2)=1                                   
 370 :       IF(ABS(GAM-GAMCO1).LE.1.E-10) IDAM(1)=-1                                  
 371 :       IF(ABS(GAM-GAMDP).LE.1.E-10) IDAM(3)=1                                    
 372 :       DO 2050 ITYP=1,3                                                          
 373 :       SFG(ITYP)=SFG(ITYP)-GAM*DSFG(ITYP)                                        
 374 :  2050 DSFG(ITYP)=(1.D0-GAM)*DSFG(ITYP)                                          
 374 :       CALL CHREP(SFG,SIG,-ANG)                                                  
 374 :       CALL CHREP(DSFG,DSIG,-ANG)                                                
 374 :       CALL CHREP(EPDP,EPPLDP,-ANG)                                              
 375 :       RETURN                                                                    
 376 :  3000 RDP=RDP-DL3*HDP                                                           
 377 :       RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))                                
 378 :       IF(SIREF.GT.RMAX) THEN                                                    
 379 :       RDP=0.D0                                                                  
 380 :       GOTO 110                                                                  
 381 :       ENDIF                                                                     
 382 :       XT=XT+X                                                                   
 383 :       DO 3010 ITYP=1,3                                                          
 384 :       SFG(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-DL2*SG(ITYP)-DL3*SSI(ITYP)               
 385 :       DSFG(ITYP)=(1.D0-XT)*DSFG(ITYP)                                           
 386 :  3010 EPDP(ITYP)=DL3*EPC(ITYP)+EPDP(ITYP)                                       
 386 :       CALL CHREP(SFG,SIG,-ANG)                                                  
 386 :       CALL CHREP(DSFG,DSIG,-ANG)                                                
 386 :       CALL CHREP(EPDP,EPPLDP,-ANG)                                              
 387 :       XLAM2=XLAM2+DL2                                                           
 388 :       XLAM3=XLAM3+DL3                                                           
 389 :       IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER                                     
 390 :       RETURN                                                                    
 391 :       END                                                                       
 392 :  

© Cast3M 2003 - All rights reserved.
Disclaimer