Download ecoule.eso

Back to the list

   1 : C ECOULE    SOURCE    PV        09/03/12    21:20:34     6325           
   2 :       SUBROUTINE ECOULE
   3 : *---------------------------------------------------------------------          
   4 : *                    ECOULEMENT  INELASTIQUE                                    
   5 : *---------------------------------------------------------------------          
   6 : *                                                                               
   7 : *    SYNTAXE  POUR LES LOIS VISCO (IND=1) :
   8 : *                                                                               
   9 : *    SIGF VARF DEPIN = 'ECOU' MODL SIG0 VAR0  DEPST
  10 : *                      CARAC  ( PRECIS ) LATAB ( MOALIR )       ;               
  11 : *                                                                               
  12 : *    SYNTAXE POUR LES LOIS PLASTIQUES (IND=2):
  13 : *                                                                               
  14 : *    SIGF VARF DEPIN = 'ECOU'  MODL SIG0 VAR0 DEPST   CARAC
  15 : *                                   ( PRECIS ) ( ISTEP )     ;
  16 : *  MMODEL     |    MODL    OBJET MODELE                                         
  17 : *                                                                               
  18 : *             |    SIG0    CONTRAINTES AU DEBUT DU PAS                          
  19 : *             |    VAR0    VARIABLES INTERNES AU DEBUT DU PAS                   
  20 : *  MCHAML     |    DEPST   INCREMENT DE DEFORMATIONS TOTALES
  21 : *             |    CARAC   CONSTANTES DU MATERIAU  ET CARACTERISTIQUES          
  22 : *             |            GEOMETRIQUES ( SELON LES ELEMENTS )                  
  23 : *  FLOTTANT   |    PRECIS  PRECISION POUR ITERATIONS INTERNES                   
  24 : *  TABLE      |    LATAB   TABLE CONTENANT D'AUTRES INFOS
  25 : *  MOT        |    MOALIR  MOT A LIRE
  26 : *  ISTEP      |    INDICATEUR D'ACTION POUR CALCUL NONLOCAL
  27 : *             |    =0 DANS LE CAS D'UN CALCUL LOCAL (NORMAL)
  28 : *             |    =1 OU 2 DANS LE CAS D'UN CALCUL NONLOCAL
  29 : *             |    =1 POUR CALCUL DES FONCTIONS SEUIL UNIQUEMENT
  30 : *             |    =2 POUR CALCUL DES VARIABLES DISSIPATIVES A PARTIR
  31 : *             |       DES FONCTIONS SEUIL MOYENNEES PREALABLEMENT PAR NLOC                                            
  32 : *                                                                               
  33 : *                                          
  34 : *                                                                               
  35 : *             |    SIGF    CONTRAINTES A LA FIN DU PAS                          
  36 : *  MCHAML     |    VARF    VARIABLES INTERNES A LA FIN DU PAS
  37 : *             |    DEPIN   INCREMENT DE DEFORMATIONS INELASTIQUES               
  38 : *                                                                               
  39 : *    Passage aux nouveaux CHAMELEM par P DOWLATYARI DEC 91                      
  40 : *---------------------------------------------------------------------          
  41 :       IMPLICIT INTEGER(I-N)
  42 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
  43 : -INC CCOPTIO                                                                    
  44 : -INC SMCHAML
  45 : -INC SMCHPOI                                                                    
  46 : *                                                                               
  47 :        CHARACTER*10 MOALIR                                                      
  48 :        CHARACTER*8  TYPOBJ
  49 :        CHARACTER*4  MOTSUC
  50 :        CHARACTER*72 CHARRE
  51 :        LOGICAL LOGIN,LOGRE,LOGSUC
  52 :        REAL*8  XVALIN,XVALRE
  53 :        ICONV=0                                                                  
  54 :        IPCHE1=0                                                                 
  55 :        IPCHE2=0                                                                 
  56 :        IPCHE3=0                                                                 
  57 :        IPCHE4=0
  58 :        IPCHE6=0
  59 :        IPCH1=0                                                                 
  60 :        IPCH2=0                                                                 
  61 :        IPCH3=0
  62 : c mistral :
  63 :        IPCH4=0
  64 :        IPCH5=0
  65 : c mistral.
  66 :        ITHHER=0
  67 :        IPOI1=0
  68 :        IPOI2=0
  69 :        IPOI3=0                                                                 
  70 : c mistral :
  71 :        IPOI4=0
  72 :        IPOI5=0
  73 : c mistral.
  74 :        IPCAR=0                                                                  
  75 :        IPTAB=0                                                               
  76 :        IPCAR2=0                                                                 
  77 :        TYPOBJ='        '
  78 :        LOGSUC=.TRUE.
  79 : *                                                                               
  80 : *     LECTURE D'UN MODEL                                                        
  81 : *                                                                               
  81 :       CALL LIROBJ('MMODEL',IPMODL,1,IRT1)
  82 :       IF(IERR.NE.0)RETURN                                                       
  83 : *
  84 : *  CHAMPS DE CONTRAINTES
  85 : *
  85 :           CALL LIROBJ('MCHAML',IPCHE1,1,IRT)                                    
  86 :           IF(IERR.NE.0)RETURN                                                   
  87 :           MCHELM=IPCHE1                                                         
  88 :           SEGACT MCHELM                                                         
  89 :           IF(TITCHE.NE.'CONTRAINTES')THEN                                       
  90 :             MOTERR(1:8)='CONTRAIN'                                              
  90 :             CALL ERREUR(109)                                                    
  91 :             SEGDES MCHELM                                                       
  92 :             RETURN                                                              
  93 :           ENDIF                                                                 
  94 :           SEGDES MCHELM                                                         
  95 : *                                                                               
  96 : *  CHAMPS DE VARIABLES INTERNES
  97 : *
  97 :           CALL LIROBJ('MCHAML',IPCHE2,1,IRT)                                    
  98 :           IF(IERR.NE.0)RETURN                                                   
  99 :           MCHELM=IPCHE2                                                         
 100 :           SEGACT MCHELM                                                         
 101 :           IF(TITCHE.NE.'VARIABLES INTERNES')THEN                                
 102 :             MOTERR(1:8)='VARINTER'                                              
 102 :             CALL ERREUR(109)                                                    
 103 :             SEGDES MCHELM                                                       
 104 :             RETURN                                                              
 105 :           ENDIF                                                                 
 106 :           SEGDES MCHELM                                                         
 107 : *                                                                               
 108 : *  CHAMPS D'INCREMENTS DE DEFORMATIONS
 109 : *
 109 :           CALL LIROBJ('MCHAML',IPCHE4,1,IRT)                                    
 110 :           IF(IERR.NE.0)RETURN                                                   
 111 :           MCHELM=IPCHE4                                                         
 112 :           SEGACT MCHELM                                                         
 113 :           IF(TITCHE.NE.'DEFORMATIONS')THEN                                       
 114 :             MOTERR(1:8)='DEFORMAT'                                              
 114 :             CALL ERREUR(109)                                                    
 115 :             SEGDES MCHELM                                                       
 116 :             RETURN                                                              
 117 :           ENDIF                                                                 
 118 :           SEGDES MCHELM                                                         
 119 : *                                                                               
 120 : *  CHAMPS DE CARACTERISTIQUES (MATERIELLES ET GEOMETRIQUES)
 121 : *
 121 :           CALL LIROBJ('MCHAML',IPCAR,1,IRT)                                     
 122 :           IF(IERR.NE.0)RETURN                                                   
 123 :           MCHELM=IPCAR                                                          
 124 :           SEGACT MCHELM                                                         
 125 :           IF(TITCHE.NE.'CARACTERISTIQUES')THEN                                  
 126 :              MOTERR(1:8)='CARACTER'                                              
 126 :              CALL ERREUR(109)                                                    
 127 :              SEGDES MCHELM                                                       
 128 :              RETURN                                                              
 129 :           ENDIF                                                                 
 130 :           SEGDES MCHELM                                                         
 131 : *
 132 : *         LECTURE D'UNE TABLE DE DONNEES SUPPLEMENTAIRE
 133 : *                                                                               
 133 :           CALL LIROBJ('TABLE   ',IPTAB,0,IRETOU)
 134 :           IF(IERR.NE.0) RETURN
 135 :           IF(IRETOU.EQ.1)THEN
 136 : *
 137 : *     RECHERCHE DU CHAMPS DE DEFORMATIONS INELASTIQUES INITIALES
 138 : *
 138 :            CALL ACCTAB(IPTAB,'MOT     ',IVALIN,XVALIN,'DEFI',
 139 :      .     LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
 140 :      .     IPCHE3)
 141 :            IF(TYPOBJ.EQ.'MCHAML  ') THEN
 142 :              MCHELM=IPCHE3                                                        
 143 :              SEGACT MCHELM                                                        
 144 :              IF(TITCHE.NE.'DEFORMATIONS INELASTIQUES')THEN                                     
 145 :                 MOTERR(1:8)='DEFINELA'                                              
 145 :                 CALL ERREUR(109)                                                    
 146 :                 SEGDES MCHELM                                                       
 147 :                 RETURN                                                              
 148 :              ENDIF                                                                
 149 :              SEGDES MCHELM                                                         
 150 :            ENDIF
 151 : 
 152 : *
 153 : *     RECHERCHE DU CHAMPS DE DEFORMATIONS TOTALES INITIALES
 154 : *
 154 :            CALL ACCTAB(IPTAB,'MOT     ',IVALIN,XVALIN,'DEFT',
 155 :      .     LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
 156 :      .     IPCHE6)
 157 :            IF(TYPOBJ.EQ.'MCHAML  ') THEN
 158 :              MCHELM=IPCHE6
 159 :              SEGACT MCHELM                                                        
 160 :              IF(TITCHE.NE.'DEFORMATIONS')THEN
 161 :                 MOTERR(1:8)='DEFORMAT'
 161 :                 CALL ERREUR(109)                                                    
 162 :                 SEGDES MCHELM                                                       
 163 :                 RETURN                                                              
 164 :              ENDIF                                                                
 165 :              SEGDES MCHELM                                                         
 166 :            ENDIF
 167 : 
 168 :           ENDIF
 169 : C                                                                               
 170 : C  LECTURE EVENTUELLE DE LA PRECISION DES ITERATION INTERNES                    
 171 : C                                                                               
 171 :       CALL LIRREE(PRECIS,0,IRETPR)                                              
 172 :       IF(IRETPR.EQ.0) PRECIS=1.D-3                                              
 173 : *                                                                               
 174 : *  LECTURE EVENTUELLE D'UN MOT SOIT  POUR ACTION DANS ECOULE
 175 : *                              SOIT  POUR NE PAS AVOIR DE
 176 : *                                    MESSAGE D'ERREUR (NOID)
 177 : *                                                                               
 178 :       JECHER=0                                                                  
 179 :       JNOID=0
 179 :       CALL LIRCHA(MOALIR,0,IRETOU)                                              
 180 :       IF(IRETOU.NE.0) THEN                                                      
 181 :          IF(MOALIR.EQ.'AVANCER') THEN                                              
 182 :            JECHER = 0
 183 :       ELSE IF (MOALIR.EQ.'RECHERCHER') THEN                                     
 184 :            JECHER=1
 185 :       ELSE IF (MOALIR(1:4).EQ.'NOID') THEN
 186 :            JNOID=1
 187 :       ELSE                                                                      
 187 :            CALL REFUS
 188 :       ENDIF                                                                     
 189 :       ENDIF
 190 : C
 191 : C     LECTURE EVENTUELLE DU STEP D'EXCUTION POUR LE NON LOCAL
 192 : C
 192 :       CALL LIRENT(ISTEP,0,IRETOU)
 193 :       IF (IRETOU .EQ. 0) THEN
 194 :          ISTEP=0
 195 :       END IF
 196 : C
 197 : C  LECTURE EVENTUELLE D'UN MOT QUI INDIQUE QUE LE MATERIAU VA DEPENDRE
 198 : C  DE LA TEMPERATURE POUR LES MODELES ENDOMMAGES DE LEMAITRE
 199 : C  ON LIT DANS LA TABLE LES CHAMPS (MCHAML OU CHPOINT) DE TEMPERATURE
 200 : C  AU DEBUT ET A LA FIN DU PAS ET DE REFERENCE. ILS SONT CONVERTIS EN
 201 : C  MCHAML AUX POINTS DE GAUSS POUR LES CONTRAINTES
 202 : C
 203 :       IFI=0
 203 :       CALL LIRCHA(MOALIR,0,IRETOU)
 204 :       IF(IRETOU.NE.0) THEN
 205 :          IF (MOALIR.EQ.'CELSIUS') THEN
 206 :                                            ITHHER = 2
 207 :          ELSE IF (MOALIR.EQ.'KELVIN') THEN
 208 :                                            ITHHER = 1
 209 :          ELSE IF (MOALIR.EQ.'SUCCION') THEN
 210 :                                            ITHHER = 3
 211 : c mistral :
 212 :          ELSE IF (MOALIR.EQ.'MISTRAL') THEN
 213 :                                            ITHHER = 2
 214 :                                            IFI = 1
 215 : c mistral.
 216 :          ELSE
 216 :                                            CALL REFUS
 217 :          ENDIF
 218 : *
 219 :          IF(ITHHER.NE.0) THEN
 220 : *
 221 :            TYPOBJ='        '
 222 :            MOTSUC='TET1'
 223 :            IF(ITHHER.EQ.3) THEN
 224 :              TYPOBJ='CHPOINT '
 225 :              MOTSUC='SUC1'
 226 :            ENDIF
 226 :            CALL ACCTAB(IPTAB,'MOT     ',IVALIN,XVALIN,MOTSUC,
 227 :      .     LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
 228 :      .     IPOI1)
 229 :            IF(TYPOBJ.EQ.'CHPOINT ') THEN
 229 :                          CALL CHAME1(0,IPMODL,IPOI1,' ',IPCH1,5)
 230 :                          IF (IERR.NE.0) RETURN
 231 :            ELSE
 231 :                          CALL CHASUP(IPMODL,IPOI1,IPCH1,IRT2,5)
 232 :                          IF(IRT2.NE.0) THEN                                                        
 232 :                                            CALL ERREUR(IRT2)         
 233 :                                            RETURN                   
 234 :                          ENDIF  
 235 :            ENDIF
 236 : C
 237 :            TYPOBJ='        '
 238 :            MOTSUC='TET2'
 239 :            IF(ITHHER.EQ.3) THEN
 240 :              TYPOBJ='CHPOINT '
 241 :              MOTSUC='SUC2'
 242 :            ENDIF
 242 :            CALL ACCTAB(IPTAB,'MOT     ',IVALIN,XVALIN,MOTSUC,
 243 :      .     LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
 244 :      .     IPOI2)
 245 :            IF(TYPOBJ.EQ.'CHPOINT ') THEN
 245 :                          CALL CHAME1(0,IPMODL,IPOI2,' ',IPCH2,5)
 246 :                          IF (IERR.NE.0) RETURN
 247 :            ELSE
 247 :                          CALL CHASUP(IPMODL,IPOI2,IPCH2,IRT2,5)
 248 :                          IF(IRT2.NE.0) THEN                                                        
 248 :                                            CALL ERREUR(IRT2)         
 249 :                                            RETURN                   
 250 :                          ENDIF  
 251 :            ENDIF
 252 : C
 253 :            IF(ITHHER.LT.3) THEN
 254 :              TYPOBJ='        '
 254 :              CALL ACCTAB(IPTAB,'MOT     ',IVALIN,XVALIN,
 255 :      .       'TEMPERATURE_REFERENCE',LOGIN,IOBIN,TYPOBJ,IVALRE,
 256 :      .       XVALRE,CHARRE,LOGRE,IPOI3)
 257 :              IF(TYPOBJ.EQ.'CHPOINT ') THEN
 257 :                          CALL CHAME1(0,IPMODL,IPOI3,' ',IPCH3,5)
 258 :                          IF (IERR.NE.0) RETURN
 259 :              ELSE
 259 :                          CALL CHASUP(IPMODL,IPOI3,IPCH3,IRT2,5)
 260 :                          IF(IRT2.NE.0) THEN                                                        
 260 :                                            CALL ERREUR(IRT2)         
 261 :                                            RETURN                   
 262 :                          ENDIF  
 263 :              ENDIF
 264 :            ENDIF
 265 :          ENDIF
 266 :       ENDIF                                                                     
 267 : *
 268 : c mistral :
 269 :       IF(IFI.EQ.1) THEN
 270 : *     -----------------
 271 :            TYPOBJ='        '
 272 :            MOTSUC='PHI1'
 272 :            CALL ACCTAB(IPTAB,'MOT     ',IVALIN,XVALIN,MOTSUC,
 273 :      .     LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
 274 :      .     IPOI4)
 275 :            IF(TYPOBJ.EQ.'CHPOINT ') THEN
 275 :                          CALL CHAME1(0,IPMODL,IPOI4,' ',IPCH4,5)
 276 :                          IF (IERR.NE.0) RETURN
 277 :            ELSE
 277 :                          CALL CHASUP(IPMODL,IPOI4,IPCH4,IRT2,5)
 278 :                          IF(IRT2.NE.0) THEN                                                        
 278 :                                            CALL ERREUR(IRT2)         
 279 :                                            RETURN                   
 280 :                          ENDIF  
 281 :            ENDIF
 282 : *
 283 :            TYPOBJ='        '
 284 :            MOTSUC='PHI2'
 284 :            CALL ACCTAB(IPTAB,'MOT     ',IVALIN,XVALIN,MOTSUC,
 285 :      .     LOGIN,IOBIN,TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,
 286 :      .     IPOI5)
 287 :            IF(TYPOBJ.EQ.'CHPOINT ') THEN
 287 :                          CALL CHAME1(0,IPMODL,IPOI5,' ',IPCH5,5)
 288 :                          IF (IERR.NE.0) RETURN
 289 :            ELSE
 289 :                          CALL CHASUP(IPMODL,IPOI5,IPCH5,IRT2,5)
 290 :                          IF(IRT2.NE.0) THEN                                                        
 290 :                                            CALL ERREUR(IRT2)         
 291 :                                            RETURN                   
 292 :                          ENDIF  
 293 :            ENDIF
 294 :       ENDIF
 295 : *     -----
 296 : c mistral.
 297 : *
 298 : *
 298 :       CALL ECOUL1(IPMODL,IPCHE1,IPCHE2,IPCHE3,IPCHE4,IPCHE6,IPCAR,
 299 :      &      IPCH1,IPCH2,IPCH3,IPCH4,IPCH5,ITHHER,IFI,PRECIS,IPTAB,
 300 :      &      JECHER,ISTEP,JNOID,LOGSUC,IPCHE7,IPCHE8,IPCHE9)
 301 : *                                                                               
 302 :       IF(IERR.EQ.0)THEN                                                         
 302 :           CALL ECROBJ('MCHAML',IPCHE9)                                          
 302 :           CALL ECROBJ('MCHAML',IPCHE8)                                          
 302 :           CALL ECROBJ('MCHAML',IPCHE7)                                          
 303 : *
 304 : *   SI JNOID = 1 : ON RENSEIGNE L'INDICE 'SUCCES' DANS LA TABLE
 305 : *
 306 :           IF(JNOID.EQ.1.AND.IPTAB.NE.0) THEN
 306 :             CALL ECCTAB(IPTAB,'MOT     ',IVALIN,XVALIN,'SUCCES',
 307 :      .             LOGIN,IOBIN,'LOGIQUE ',IVALRE,XVALRE,CHARRE,
 308 :      .             LOGSUC,IOBRE)
 309 :           ENDIF
 310 :       ENDIF                                                                     
 311 : *                                                                               
 312 :       RETURN
 313 :       END
 314 :  
 315 :  
 316 :  
 317 :  
 318 :  
 319 :  
 320 :  
 321 :  
 322 :  

© Cast3M 2003 - All rights reserved.
Disclaimer