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