1 : C ECOU60 SOURCE CHAT 11/03/16 21:20:11 6902 2 : SUBROUTINE ECOU60(MATE,INPLAS,MELE,IPMAIL,NBPTEL,IMAT,ICAR, 3 : 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 4 : 1 IVADS,IVAMAT,IVACAR, 5 : 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVARI,NMATT,NCARR, 6 : 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, 7 : 4 N2EL,N2PTEL,NBNO,NBPGAU,LW,IVASTF,IVARIF,IVADEP,KERRE) 8 : *********************************************************************** 9 : * ecoulement inelastique appele par ecoul1 10 : c ppu modif pour les materiaux unidirectionels en plastique 11 : * MATERIAUX: -PLASTIQUES NON INTEGRES PAR ECOINC 12 : *********************************************************************** 13 : * entrees : 14 : * 15 : * mate = numero de materiau elastique 16 : * inplas = numero de materiau inelastique 17 : * mele = numero element fini 18 : * ipmail = pointeur du maillage 19 : * nbptel = nombre de points par element 20 : * imat = pointeur sur un segment mptval de materiau (utilise par calsig) 21 : * icar = pointeur sur un segment mptval de caracteristiques 22 : * geometriques (utilise par calsig) 23 : * numat = nb de composantes du melval de imat 24 : * nucar = nb de composantes du melval de icar 25 : * ivastr =pointeur sur un segment mptval de contraintes 26 : * ivari =pointeur sur un segment mptval de variables internes 27 : * ivadef =pointeur sur un segment mptval de deformations 28 : * ivads =pointeur sur un segment mptval de contraintes (increments) 29 : * ivamat =pointeur sur un segment mptval de materiau 30 : * ivacar =pointeur sur un segment mptval de cacarteristiques geometrique 31 : * iph1 = pointeur sur un mchaml de temperatures au debut du pas 32 : * iph2 = pointeur sur un mchaml de temperatures a la fin du pas 33 : * iph3 = pointeur sur un mchaml de temperatures de reference 34 : * ithher = 0 si pas de chargement thermique 35 : * = 1 si chargement thermique mais materiau constant 36 : * = 2 si chargement thermique et mat. dependant de la temperature 37 : * ipch1,ipch2,ipch3,ithher ne servent que pour les materiaux 38 : * endommageables de lemaitre quand ils dependent de la temperature 39 : * lhook =taille de la matrice de hooke 40 : * nstrs =nombre de composantes de contraintes 41 : * nvari =nombre de composantes de variables internes 42 : * nmatt =nombre de composnates de proprietes de materiau 43 : * ncarr =nombre de composnates de caracteristiques geometriques 44 : * cmate =nom du materiau 45 : * precis =precision dans les iterations internes 46 : * jecher =0 ou 1 pour action dans ecoule 47 : * jnoid =0 ou 1 pour action dans ecoule 48 : * ipotab =pointeur sur segment table 49 : * istep =indicateur d'action pour calcul nonlocal 50 : * =0 dans le cas d'un calcul local (normal) 51 : * =1 ou 2 dans le cas d'un calcul nonlocal 52 : * =1 pour calcul des fonctions seuil uniquement 53 : * =2 pour calcul des variables dissipatives a partir 54 : * des fonctions seuil moyennees prealablement par nloc 55 : * 56 : * sorties : 57 : * ivastf =pointeur sur un segment mptval de contraintes 58 : * ivarif =pointeur sur un segment mptval de variables internes 59 : * ivadep =pointeur sur un segment mptval de deformations inelastiques 60 : * kerre =indicateur d'erreur 61 : * 62 : * p dowlatyari fev. 1992 63 : * 64 : * c. la borderie fev 92 restructuration et reecriture de certains 65 : * passages pour une meilleure lisibilite 66 : * 67 : * avril 92 ajout istep pour le non local 68 : * dec 92 modif pour poutres timoschenko 69 : * 70 : ************************************************************************ 71 : IMPLICIT INTEGER(I-N) 72 : IMPLICIT REAL*8(A-H,O-Z) 73 : * 74 : -INC CCOPTIO 75 : -INC SMCHAML 76 : -INC SMELEME 77 : -INC SMCOORD 78 : -INC SMMODEL 79 : -INC SMINTE 80 : -INC CCHAMP 81 : c======================================================================= 82 : c la variable kerre regit les impressions d erreurs dans plast 83 : c toutes erreurs de ecoule gerees dans ce sous programme 84 : c kerre=0 tout ok 85 : c de 1 a 6 s aligner sur valeurs donnees par ecoinc 86 : c = 7 un element tuyau a une epaisseur nulle 87 : c = 21 on ne trouve pas d intersection avec la surface de charge 88 : c = 22 sig0 a l exterieur de la surface de charge 89 : c 90 : c anomalies avec la courbe de traction 91 : c = 30 limite elastique nulle 92 : c = 31 trop de points 93 : c = 32 pas assez de points 94 : c = 33 pente incorrecte 95 : c = 34 module d'young nul 96 : c = 35 manque l'origine 97 : c = 36 pente a l'origine non egale a e 98 : c = 37 manque la courbe de traction 99 : c = 38 nu devrait etre nul 100 : c 101 : c = 48 donnees erronnees pour drucker-prager 102 : c = 49 matrice singuliere dans iter internes drucker-prager 103 : c = 51 pb dans drucker prager option non disponible 104 : c = 52 pb dans drucker prager donnees incompatibles 105 : c = 53 pb dans drucker prager solution impossible 106 : c = 54 les valeurs admissibles pour istep sont 0 1 ou 2 107 : c = 55 modele non implante en non local 108 : c = 56 probleme dans l'integration du modele mazars 109 : c = 57 .... 110 : c = 58 .... 111 : c = 59 .... 112 : c = 60 pb donnees du cam-clay 113 : c 114 : c = 99 cas non encore disponible 115 : c======================================================================= 116 : * 117 : SEGMENT MPTVAL 118 : INTEGER IPOS(NS) ,NSOF(NS) 119 : INTEGER IVAL(NCOSOU) 120 : CHARACTER*16 TYVAL(NCOSOU) 121 : ENDSEGMENT 122 : * 123 : SEGMENT WRK0 124 : REAL*8 XMAT(NCXMAT) 125 : ENDSEGMENT 126 : * 127 : SEGMENT WR00 128 : CHARACTER*16 TYMAT(NCXMAT) 129 : REAL*8 XMAT1(NCXMAT),XMAT2(NCXMAT) 130 : ENDSEGMENT 131 : * 132 : SEGMENT WRK1 133 : REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS) 134 : REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI) 135 : REAL*8 DEFP(NSTRS),XCAR(ICARA) 136 : ENDSEGMENT 137 : * 138 : SEGMENT WRK2 139 : REAL*8 TRAC(LTRAC) 140 : ENDSEGMENT 141 : * 142 : SEGMENT WRK22 143 : REAL*8 XXE(3,NBNN) 144 : ENDSEGMENT 145 : * 146 : SEGMENT WRK3 147 : REAL*8 WORK(LW),WORK2(LW2) 148 : ENDSEGMENT 149 : * 150 : SEGMENT WRK4 151 : REAL*8 XE(3,NBBB) 152 : ENDSEGMENT 153 : * 154 : SEGMENT WRK5 155 : REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS) 156 : ENDSEGMENT 157 : * 158 : SEGMENT WRK6 159 : REAL*8 BB(NSTRS,NNVARI),R(NSTRS),XMU(NSTRS) 160 : REAL*8 S(NNVARI),QSI(NNVARI),DDR(NSTRS),BBS(NSTRS) 161 : REAL*8 SIGMA(NSTRS),SIGGD(NSTRS),XMULT(NSTRS),PROD(NSTRS) 162 : ENDSEGMENT 163 : * 164 : SEGMENT WRK7 165 : REAL*8 F(NCOURB,2),W(NCOURB),TRUC(NCOURB) 166 : ENDSEGMENT 167 : * 168 : SEGMENT WRK8 169 : REAL*8 DD(NSTRS,NSTRS),DDV(NSTRS,NSTRS),DDINV(NSTRS,NSTRS) 170 : ENDSEGMENT 171 : * 172 : SEGMENT WRK9 173 : REAL*8 YOG(NYOG),YNU(NYNU),YALFA(NYALFA),YSMAX(NYSMAX) 174 : REAL*8 YN(NYN),YM(NYM),YKK(NYKK),YALFA1(NYALF1) 175 : REAL*8 YBETA1(NYBET1),YR(NYR),YA(NYA),YKX(NYKX),YRHO(NYRHO) 176 : REAL*8 SIGY(NSIGY) 177 : INTEGER NKX(NNKX) 178 : ENDSEGMENT 179 : * 180 : SEGMENT WR10 181 : INTEGER IABLO1(NTABO1) 182 : REAL*8 TABLO2(NTABO2) 183 : ENDSEGMENT 184 : * 185 : SEGMENT WR11 186 : INTEGER IABLO3(NTABO3) 187 : REAL*8 TABLO4(NTABO4) 188 : ENDSEGMENT 189 : * 190 : SEGMENT WTRAV 191 : REAL*8 DDAUX(LHOOK,LHOOK),VALMAT(NUMAT) 192 : REAL*8 VALCAR(NUCAR),DSIGT(NSTRS) 193 : REAL*8 TXR(IDIM,IDIM),DDHOMU(LHOOK,LHOOK) 194 : REAL*8 XLOC(IDIM,IDIM),XGLOB(IDIM,IDIM) 195 : REAL*8 D1HOOK(LHOOK,LHOOK),ROTHOO(LHOOK,LHOOK) 196 : ENDSEGMENT 197 : * 198 : SEGMENT WPOUT 199 : REAL*8 X(2),Y(2),Z(2) 200 : ENDSEGMENT 201 : * 202 : * Commun NECOU utilisé dans ECOINC 203 : * 204 : COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO, 205 : . ITYP,IFOURB,IFLUAG, 206 : . ICINE,ITHER,IFLUPL,ICYCL,IBI, 207 : . JFLUAG,KFLUAG,LFLUAG, 208 : . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF 209 : * 210 : * Commun IECOU: sert de fourre-tout pour les initialisations 211 : * d'entiers 212 : * 213 : COMMON/IECOU/NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK, 214 : . NYALF1,NYBET1,NYR,NYA,NYRHO,NSIGY,NNKX,NYKX,IND, 215 : . NSOM,NINV,NINCMA,NCOMP,JELEM,LEGAUS,INAT,NCXMAT, 216 : . LTRAC,MFR,IELE,NHRM,NBNN,NBELEM,ICARA, 217 : . LW2,NDEF,NSTRSS,MFR1,NBGMAT,NELMAT,MSOUPA, 218 : . NUMAT1,LENDO,NBBB,NNVARI,KERR1,MELEME, 219 : . icou45,icou46,icou47,icou48,icou49,icou50, 220 : . icou51,icou52,icou53,icou54,icou55,icou56 221 : . icou57,icou58 222 : * 223 : * Commun XECOU: sert de fourre-tout pour les initialisations 224 : * de réels 225 : * 226 : COMMON/XECOU/DTOPTI,TSOM,TCAR,DTT,DT,TREFA,TEMP0 227 : * 228 : LOGICAL LOGVIS,LOGIN,LOGRE,LOGSUC 229 : LOGICAL LUNI1,LUNI2 230 : DIMENSION BID(6),BID2(6),CRIGI(12),CMASS(12) 231 : * 232 : CHARACTER*72 CHARRE 233 : CHARACTER*8 CMATE 234 : c 235 : * 236 : * mise à disposition des temperatures tini tfin tref 237 : * aux points de gauss 238 : * 239 : TETA1=-1.E35 240 : TETA2=-1.E35 241 : TETREF=-1.E35 242 : TREFA=-1.E35 243 : IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN 244 : MCHAM3=IPH1 245 : MCHAM4=IPH2 246 : MCHAM5=IPH3 247 : SEGACT MCHAM3 248 : SEGACT MCHAM4 249 : SEGACT MCHAM5 250 : MELVA3=MCHAM3.IELVAL(1) 251 : MELVA4=MCHAM4.IELVAL(1) 252 : MELVA5=MCHAM5.IELVAL(1) 253 : SEGACT MELVA3 254 : SEGACT MELVA4 255 : SEGACT MELVA5 256 : ENDIF 257 : c 258 : c Initialisations de variables 259 : c--------------------------------- 260 : c - mise à zéro des variables du commun NECOU si besoin 261 : c - modèles viscoplastiques: 262 : c . on récupère le pas de temps 263 : c . on récupère le nombre maximal de sous-pas 264 : c . on met IND=1 265 : c - initialisation des dimensions des tableaux des segments 266 : c Sorties: en plus du commun NECOU, on range les autres données 267 : c initialisées dans les COMMON IECOU et XECOU 268 : c Sauf pour KERRE,LW,LOGVIS,LUNI1 et LUNI2 qui sont sortis comme 269 : c argument de DEFINI 270 : c 270 : CALL DEFINI(MELE,NCARR,NSTRS,NMATT,CMATE,MATE, 271 : . ISTEP,INPLAS,NPINT,IPOTAB,IVADEF, 272 : . IPMAIL,IVAMAT, 273 : . ITHHER,NUMAT,NUCAR,LOGVIS, 274 : . LUNI1,LUNI2,LW,KERRE) 275 : IF (KERRE.EQ.999) RETURN 276 : c 277 : c Initialisations des segments de travail 278 : c 279 : c 280 : IF ((CMATE.EQ.'ORTHOTRO'.OR.CMATE.EQ.'ANISOTRO'.OR. 281 : 1 CMATE.EQ.'UNIDIREC').AND.(MFR.EQ.1.OR.MFR.EQ.31 282 : 1 .OR.MFR.EQ.33)) THEN 282 : CALL RESHPT(1,NBNO,IELE,MELE,NPINT,IPTR1,IRT1) 283 : MINTE2=IPTR1 284 : SEGACT MINTE2 285 : SEGINI WRK22 286 : ENDIF 287 : c 288 : IF (LOGVIS) SEGINI WRK8 289 : SEGINI WRK0,WR00,WRK1,WRK2,WRK3,WRK5 290 : IF(MFR.EQ.7.OR.MFR.EQ.13)THEN 291 : NBBB=NBNN 292 : SEGINI WRK4 293 : ENDIF 294 : c 295 : SEGINI WTRAV 296 : * 297 : * 298 : * boucle sur les elements 299 : * 300 : DO 1000 IB=1,NBELEM 301 : * 302 : * Matériaux orthotropes, anisotropes et unidirectionnels 303 : * en formulation massive: 304 : * - on cherche les coordonnees des noeuds de l element ib 305 : * - calcul des axes locaux 306 : * Cas particulier de l'ACIER_UNI 307 : * 307 : CALL DEFROT(CMATE,MFR,NBNN,IB,MELE,LUNI1,IPTR1, 308 : . MELEME,WRK4,WRK22,WTRAV) 309 : * 310 : * 311 : * boucle sur les points de gauss 312 : * 313 : DO 1100 IGAU=1,NBPTEL 314 : * 315 : * -recuperation de valmat et de valcar 316 : * -on recupere les contraintes initiales 317 : * -on recupere les variables internes 318 : * -on recupere les deformations inelastiques initiales si besoin 319 : * -on recupere les increments de deformations totales 320 : * -on cherche la section de l'element ib 321 : * -prise en compte de l'epaisseur et de l'excentrement 322 : * dans le cas des coques minces avec ou sans cisaillement 323 : * transverse 324 : * 324 : CALL DEFVAL(NUMAT1,NBPTEL,NDEF, 325 : . IMAT,IVACAR,ICAR,IVASTR,IVARI,IVADEF,IVADET, 326 : . IVADS,MFR,CMATE,INPLAS,IB,IGAU,IND, 327 : . WTRAV,WRK1,WRK5,SECT,EPAIST) 328 : * 329 : * on recupere les constantes du materiau 330 : * calcul des contraintes effectives en milieu poreux 331 : * 331 : CALL DEFMAT(NMATT,NSTRS,MFR,MELE,INPLAS, 332 : . IVAMAT,IB,IGAU,CMATE,MATE,LUNI1,LUNI2, 333 : . WRK1,WRK5,WRK0,WR00,WTRAV,CMASS,CRIGI,COB,XMOB, 334 : . BID,BID2,KERR0) 335 : IF (KERR0.EQ.99) THEN 336 : KERRE=99 337 : GOTO 1000 338 : ELSE IF (KERR0.EQ.10) THEN 339 : GOTO 1000 340 : ENDIF 341 : * 342 : * >>>>>>>>>> fin du traitement du materiau 343 : * 344 : * on recupere les caracteristiques geometriques 345 : * 345 : CALL DEFCAR(NCARR,IB,IGAU,MFR,MELE,IVACAR, 346 : . WRK1) 347 : * 348 : * 349 : * quelques impressions si iimpi = 99 350 : * 351 : * IF(IIMPI.EQ.99) THEN 352 : * WRITE(IOIMP,66770) IB,IGAU 353 : *66770 format(////////2x,'element ',i6,2x,'point ',i3//) 354 : * WRITE(IOIMP,66771) MATE,INPLAS 355 : *66771 format('0 mate=',i4,2x,'inplas=',i4/) 356 : * WRITE(IOIMP,66772) (SIG0(I),I=1,NSTRS) 357 : *66772 format(2x,' sig0 '/(6(1x,1pe12.5))) 358 : * WRITE(IOIMP,66773) (VAR0(I),I=1,NVARI) 359 : *66773 format(2x,' var0 '/(6(1x,1pe12.5))) 360 : * WRITE(IOIMP,66774) (DEPST(I),I=1,NSTRS) 361 : *66774 format(2x,' depst '/(6(1x,1pe12.5))) 362 : * WRITE(IOIMP,66775) (XMAT(I),I=1,NMATT) 363 : *66775 format(2x,' xmat '/(6(1x,1pe12.5))) 364 : * IF(IVACAR.NE.0)THEN 365 : * WRITE(IOIMP,66776) (XCAR(I),I=1,ICARA) 366 : *66776 format(2x,' xcar '/(6(1x,1pe12.5))) 367 : * ENDIF 368 : * ENDIF 369 : * 370 : * mise à disposition des temperatures tini tfin tref 371 : * aux points de gauss 372 : * 373 : IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN 374 : IBMN=MIN(IB,MELVA3.VELCHE(/2)) 375 : IGMN=MIN(IGAU,MELVA3.VELCHE(/1)) 376 : TETA1=MELVA3.VELCHE(IGMN,IBMN) 377 : IBMN=MIN(IB,MELVA4.VELCHE(/2)) 378 : IGMN=MIN(IGAU,MELVA4.VELCHE(/1)) 379 : TETA2=MELVA4.VELCHE(IGMN,IBMN) 380 : IBMN=MIN(IB,MELVA5.VELCHE(/2)) 381 : IGMN=MIN(IGAU,MELVA5.VELCHE(/1)) 382 : TETREF=MELVA5.VELCHE(IGMN,IBMN) 383 : ENDIF 384 : * 385 : * 386 : *--------------------------------------------------------------------- 387 : * 388 : * ecoulement selon les modeles 389 : * 390 : *--------------------------------------------------------------------- 391 : * 392 : c 393 : c 394 : c modele linespring 395 : c 396 : IF (INPLAS.EQ.2.OR.INPLAS.EQ.27) THEN 396 : CALL LISPP0(WRK1,WRK0,WRK2,WTRAV,INPLAS,PRECIS,KERRE, 397 : 1 NSTRSS,CMATE,N2EL,N2PTEL,MFR,IFOUR,IB,IGAU,EPAIST, 398 : 2 MELE,NPINT,NBGMAT,NBPGAU,NELMAT,SECT,LHOOK,CRIGI) 399 : c 400 : c modele beton 401 : c 402 : ELSE IF (INPLAS.EQ.9) THEN 403 : MPTVAL=IVAMAT 404 : iecou=0 405 : inecou=0 406 : iiecou=0 406 : ** CALL BETON(SIG0 ,DEPST,VAR0,XMAT,IVAL,NMATT,XCAR, 407 : ** 1 DDAUX,CMATE,VALMAT,VALCAR,N2EL,N2PTEL,IFOURB,IB,IGAU,EPAIST, 408 : ** 2 MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC,XGLOB,D1HOOK, 409 : ** 3 ROTHOO,DDHOMU,CRIGI,DSIGT,SIGF,VARF,DEFP,MFR1,NBPGAU,KERRE, 410 : ** 4 iecou,inecou,iiecou) 411 : IF(KERRE.GT.200) THEN 412 : KERR1=1 413 : END IF 414 : c 415 : c tuyau fissure 416 : c 417 : ELSE IF (INPLAS.EQ.14.OR.INPLAS.EQ.18) THEN 417 : CALL TUFPLA(WRK1,WRK0,WRK2,WTRAV,INPLAS,PRECIS, 418 : 1 NSTRSS,CMATE,N2EL,N2PTEL,MFR1,IFOURB, 419 : 2 IB,IGAU,EPAIST,MELE,NPINT,NBGMAT, 420 : 3 NELMAT,NBPGAU,SECT,LHOOK,CRIGI,KERRE) 421 : c 422 : c modele gauvain 423 : c 424 : ELSE IF (INPLAS.EQ.16) THEN 425 : c 426 : c on recupere les courbes moment-courbure 427 : c 427 : CALL COTRA2(WRK0,WRK2,NCOURB,KERRE) 428 : IF(KERRE.EQ.0) THEN 428 : CALL GAUV1(DDAUX,CMATE,VALMAT,VALCAR,N2EL,N2PTEL, 429 : 1 MFR1,IFOURB,IB,IGAU,EPAIST,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK, 430 : 2 TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,SIG0,NSTRS,DEPST,VAR0, 431 : 3 XMAT,NCOMAT,XCAR,TRAC,NCOURB,NBPGAU,DSIGT,SIGF,VARF,DEFP,KERRE) 432 : IF(KERRE.GT.200) THEN 433 : KERR1=1 434 : END IF 435 : END IF 436 : c 437 : c modele ubiquitous 438 : c 439 : ELSE IF (INPLAS .EQ.28) THEN 440 : iecou=0 441 : inecou=0 442 : iiecou=0 442 : ** CALL UBIQUI(DDAUX,CMATE,VALMAT,VALCAR,N2EL,N2PTEL, 443 : ** 1 IFOURB,IB,IGAU,EPAIST,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR, 444 : ** 2 XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,SIG0,NSTRSS,DEPST,VAR0, 445 : ** 3 XMAT,NBPGAU,NMATT,XCAR,DSIGT,SIGF,VARF,DEFP,MFR1,KERRE, 446 : ** 4 iecou,inecou,iiecou) 447 : IF(KERRE.GT.200) THEN 448 : KERR1=1 449 : END IF 450 : c 451 : c modele global 452 : c 453 : ELSE IF(INPLAS.EQ.32)THEN 453 : CALL COTRA3(KERRE,NSTRSS,CMATE,WTRAV,N2EL,N2PTEL, 454 : 1 MFR1,IFOURB,IB,IGAU,EPAIST,MELE,NPINT,NBGMAT, 455 : 2 NBPGAU,NELMAT,SECT,LHOOK,CRIGI,NMATT,WRK0,WRK1) 456 : IF(KERRE.LT.0) THEN 457 : INTERR(1)=IB 458 : INTERR(2)=IGAU 459 : IF(KERRE.LE.(-4)) THEN 460 : MOTERR(5:16) = 'CISAILLEMENT' 460 : CALL ERREUR(-283) 461 : KERRE = KERRE + 4 462 : END IF 463 : IF(KERRE.LE.(-2)) THEN 464 : MOTERR(5:16) = 'FLEXION' 464 : CALL ERREUR(-283) 465 : KERRE = KERRE + 2 466 : END IF 467 : IF(KERRE.LT.0) THEN 468 : MOTERR(5:16) = 'COMPRESSION' 468 : CALL ERREUR(-283) 469 : KERRE = 0 470 : END IF 471 : END IF 472 : c 473 : c modele cam-clay 474 : c 475 : ELSE IF (INPLAS.EQ.33) THEN 475 : CALL CAMCLA(SIG0,NSTRSS,DEPST,VAR0,NVARI,XMAT,NCOMAT,XCAR, 476 : . SIGF,VARF,DEFP,PRECIS,MFR1,KERRE) 477 : c 478 : ELSE IF (INPLAS .EQ. 34) THEN 479 : c 480 : c modele de mohr coulomb pour les joints 481 : c 482 : MPTVAL=IVAMAT 483 : IF (IFOUR.EQ.2) THEN 484 : c 485 : c --------------------joints 3d 486 : c 486 : CALL COUL3(IB,IGAU,NSTRSS,SIG0,EPIN0,VAR0,NVARI, 487 : & DEPST,IFOURB,XMAT,NMATT,IVAL,DD,SIGF,DEFP,VARF,KERRE) 488 : ELSE 489 : c 490 : c --------------------joints 2d 491 : c 491 : CALL COUL2(IB,IGAU,NSTRSS,SIG0,EPIN0,VAR0,NVARI, 492 : & DEPST,IFOURB,XMAT,NMATT,IVAL,DD,SIGF,DEFP,VARF,KERRE) 493 : ENDIF 494 : c 495 : ELSE IF (INPLAS .EQ. 35) THEN 496 : c 497 : c modele de coulomb_dilatant pour les joints 2d 498 : c 499 : IF (IFOUR.NE.2) THEN 499 : CALL DJONL2(SIG0,DEPST,VAR0,XMAT,SIGF,VARF, 500 : & DEFP,KERRE) 501 : ENDIF 502 : c 503 : c modele de gurson 504 : c 505 : ELSE IF (INPLAS .EQ. 38) THEN 506 : iwrgur=0 506 : CALL PRGURS(SIG0,NSTRSS,DEPST,VAR0,XMAT,NMATT,XCAR, 507 : & ICARA,NVARI,SIGF,VARF,DEFP,MFR1,KERRE,iwrgur) 508 : c 509 : ELSE IF (INPLAS .EQ. 36) THEN 510 : c 511 : c modele beton_axi 512 : c 513 : MPTVAL=IVAMAT 514 : iecou=0 515 : inecou=0 515 : CALL BETAXI(SIG0,NSTRSS,DSIGT,VAR0,XMAT,IVAL,NMATT,XCAR, 516 : & SIGF,VARF,DEFP,MFR1,KERRE,iecou,inecou) 517 : IF(KERRE.GT.200) THEN 518 : KERR1=1 519 : END IF 520 : c 521 : ELSE IF ((INPLAS .EQ. 39) .AND. (MFR .EQ. 27)) THEN 522 : c 523 : c modele beton_uni pour les elements unidirectionels (barre ..) 524 : c 525 : KERR1=0 525 : CALL BARBET(XMAT,XCAR,DEPST,SIG0,VAR0,SIGF,VARF,DEFP) 526 : c 527 : ELSE IF ((INPLAS .EQ. 40) .AND. (MFR .EQ. 27)) THEN 528 : c 529 : c modele acier_uni pour les elements unidirectionels (barre ..) 530 : c 531 : KERR1=0 531 : CALL BARSTE(XMAT,XCAR,DEPST,SIG0,VAR0,SIGF,VARF,DEFP) 532 : * 533 : c 534 : ELSE IF ((INPLAS .EQ. 93) .AND. (MFR .EQ. 27)) THEN 535 : c 536 : c 537 : c modele ancrage_acier pour les elements unidirectionels (barre ..) 538 : c 539 : KERR1=0 539 : CALL BARSTA(XMAT,XCAR,DEPST,SIG0,VAR0,SIGF,VARF,DEFP) 540 : * 541 : ELSE IF ((INPLAS .EQ. 78) .AND. (MFR .EQ. 27)) THEN 542 : c 543 : c modele fragile_uni pour les elements unidirectionels (barre ..) 544 : c 545 : KERR1=0 545 : CALL BARFRA(XMAT,XCAR,DEPST,VAR0,SIGF,VARF,DEFP) 546 : * 547 : ELSE IF ((INPLAS .EQ. 79) .AND. (MFR .EQ. 27)) THEN 548 : c 549 : c modele beton_bael pour les elements unidirectionels (barre ..) 550 : c 551 : KERR1=0 551 : CALL BABAEL(XMAT,XCAR,DEPST,VAR0,SIGF,VARF,DEFP) 552 : c 553 : ELSE IF ((INPLAS .EQ. 92) .AND. (MFR .EQ. 27)) THEN 554 : c 555 : c 556 : c modele ancrage_parfait pour les elements unidirectionels (barre ..) 557 : c 558 : KERR1=0 558 : CALL BARPAA(XMAT,XCAR,DEPST,SIG0,VAR0,SIGF,VARF,DEFP) 559 : * 560 : * 561 : ELSE IF ((INPLAS .EQ. 80) .AND. (MFR .EQ. 27)) THEN 562 : c 563 : c modele parfait_uni pour les elements unidirectionels (barre ..) 564 : c 565 : KERR1=0 565 : CALL BARPAR(XMAT,XCAR,DEPST,SIG0,VAR0,SIGF,VARF,DEFP) 566 : * 567 : IF(KERRE.NE.0) THEN 568 : GOTO 1990 569 : ENDIF 570 : c 571 : c modele acier_uni pour les materiau unidirectionel 572 : c 573 : ELSE IF (INPLAS .EQ. 40 .AND. MATE.EQ.4) THEN 573 : CALL UNIACI(WRK0,WRK1,NSTRSS,MFR1,KERRE) 574 : c 575 : c 576 : c modele poutre en formulation section 577 : c 578 : ELSE IF (INPLAS.EQ.41.AND.MFR.EQ.7) THEN 579 : * 579 : CALL BIFLEX(WRK0,WRK1,NSTRSS,NVARI,NMATT, 580 : 1 ICARA,CMATE,KERRE) 581 : c 582 : ELSE IF ( INPLAS .EQ. 50 ) THEN 583 : c 584 : c cas du modele de zerilli armstrong 585 : c 586 : c on recupere le pas de temps 587 : c 587 : CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN, 588 : 1 'DT',LOGIN,IOBIN, 589 : 2 'FLOTTANT',IVALRE,DT,CHARRE,LOGRE,IOBRE) 590 : c 591 : IF (KERRE .EQ. 0) THEN 592 : DO 1114 IC=1,ICARA 593 : WORK(IC)=XCAR(IC) 594 : 1114 continue 595 : BID(1)=0.D00 596 : BID(2)=0.D00 597 : BID(3)=0.D00 597 : CALL ZERILI(SIG0,DEPST,DDAUX,CMATE,VALMAT,VALCAR,N2EL, 598 : 1 N2PTEL,VAR0,BID,BID,XMAT,PRECIS,WORK2,WORK,TRAC, 599 : 2 SIGF,VARF,DEFP,KERRE,MFR1,IB,IGAU,NSTRSS,EPAIST,MELE, 600 : 3 NPINT,NBPGAU,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC, 601 : 4 XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,DT) 602 : END IF 603 : c 604 : c modele de steinberg cochran guinan 605 : c 606 : ELSE IF (INPLAS.EQ.49) THEN 606 : CALL STEINB(DEPST,NSTRSS, 607 : 1 MFR1,IB,IGAU, 608 : 4 DSIGT,NMATT,SIG0,VAR0,XMAT,XCAR,NVARI, 609 : 5 ICARA,SIGF,VARF,DEFP,TETA1,TETA2,KERRE) 610 : IF((KERRE.NE.0).AND.(KERRE.NE.99)) THEN 611 : KERR1=1 612 : END IF 613 : c 614 : c modele hujeux 615 : c 616 : ELSE IF (INPLAS.EQ.48) THEN 616 : CALL HUJEUX(SIG0,NSTRSS,DEPST,VAR0,NVARI,XMAT,NCOMAT,XCAR, 617 : . SIGF,VARF,DEFP,PRECIS,MFR1,KERRE) 618 : c 619 : c modele ottosen 620 : c 621 : ELSE IF (INPLAS.EQ.42) THEN 622 : MPTVAL=IVAMAT 622 : CALL OTTOSE(INPLAS,SIG0,NSTRSS,DEPST,VAR0,XMAT,IVAL, 623 : & NMATT,XCAR,ICARA,NVARI,SIGF,VARF,DEFP,MFR1,KERRE, 624 : & IB,IGAU) 625 : c 626 : ELSE IF (INPLAS.EQ.47) THEN 627 : c 628 : c modele de amadei-saeb pour les joints 629 : c 630 : C# MC 03/11/97 : MPTVAL doit etre initialise ici aussi 631 : MPTVAL=IVAMAT 632 : IF (IFOUR.EQ.2) THEN 633 : c 634 : c --------------------joints 3d 635 : c 635 : CALL AMADE3(IB,IGAU,NSTRSS,SIG0,EPIN0,VAR0,NVARI, 636 : & DEPST,IFOURB,XMAT,NMATT,IVAL,SIGF,DEFP,VARF,KERRE) 637 : ELSE 638 : c 639 : c --------------------joints 2d 640 : c 640 : CALL AMADE2(IB,IGAU,NSTRSS,SIG0,EPIN0,VAR0,NVARI, 641 : & DEPST,IFOURB,XMAT,NMATT,IVAL,SIGF,DEFP,VARF,KERRE) 642 : ENDIF 643 : c 644 : ELSE IF (INPLAS.EQ.52) THEN 645 : c 646 : c modèle Preston-Tonks-Wallace 647 : c 648 : c on recupere le pas de temps 649 : c 649 : CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN, 650 : 1 'DT',LOGIN,IOBIN, 651 : 2 'FLOTTANT',IVALRE,DT,CHARRE,LOGRE,IOBRE) 652 : c 652 : CALL PRESTO(DEPST,NSTRSS, 653 : 1 MFR1,IB,IGAU, 654 : 4 DSIGT,NMATT,SIG0,VAR0,XMAT,XCAR,NVARI, 655 : 5 ICARA,SIGF,VARF,DEFP,TETA1,TETA2,KERRE,DT) 656 : IF(KERRE.NE.0) THEN 657 : KERR1=1 658 : END IF 659 : c 660 : ELSE IF (INPLAS.EQ.54) THEN 661 : c 662 : c modele BETOCYCL 663 : c 664 : C 665 : C ON VERIFIE LES CONTRAINTES PLANES 666 : C 667 : IF (IFOUR.EQ.-2)THEN 668 : C 669 : C ON RECUPERE LES COURBES DE TRACTION ET DE COMPRESSION 670 : C 671 : IPOS1=1 671 : CALL COTRAI(WRK0,WRK2,12,IPOS1,0, NPOINT,KERRE) 672 : NTRAT=NPOINT/2 673 : IPOS2=IPOS1+NPOINT 673 : CALL COTRAI(WRK0,WRK2,13,IPOS2,0, NPOINT,KERRE) 674 : NTRAC=NPOINT/2 675 : IF(KERRE.EQ.0) THEN 675 : CALL BETOCY(WRK0,WRK1,WRK2,NTRAT,NTRAC,KERRE) 676 : END IF 677 : ELSE 678 : KERRE = 99 679 : ENDIF 680 : * 681 : ELSE IF (INPLAS.EQ.55) THEN 682 : C 683 : C MODELE ROTATING CRACK 684 : C 685 : C ON VERIFIE LES CONTRAINTES PLANES 686 : C 687 : IF (IFOUR.EQ.-2)THEN 688 : IF(KERRE.EQ.0) THEN 688 : CALL ROTATJ (WRK0,WRK1,KERRE) 689 : END IF 690 : ELSE 691 : KERRE = 99 692 : ENDIF 693 : c 694 : ELSE IF (INPLAS.EQ.56)THEN 695 : C 696 : C MODELE JOINT_SOFT 697 : C 698 : 699 : C ON RECUPERE LES COURBES DE TRACTION ET DE SHEAR 700 : C 701 : C Note: Les courbes ont maintenant les indices 8, 9 et 10 alors que c'est 702 : C 6, 7 et 8 dans ecoul1.eso. C'est parce que l'on a incere 'RHO' et 703 : C 'ALFA' a la place 3 et 4 dans defmat.eso 704 : C 705 : IPOS1=1 705 : CALL COTRAI(WRK0,WRK2,8,IPOS1,1, NPOINT,KERRE) 706 : NTRAC=NPOINT/2 707 : IPOS2=IPOS1+NPOINT 707 : CALL COTRAI(WRK0,WRK2,9,IPOS2,1, NPOINT,KERRE) 708 : NTRAS=NPOINT/2 709 : IPOS3=IPOS2+NPOINT 709 : CALL COTRAI(WRK0,WRK2,10,IPOS3,1, NPOINT,KERRE) 710 : NTRAT=NPOINT/2 711 : C 712 : IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1)THEN 713 : IF(KERRE.EQ.0) THEN 714 : C 714 : CALL SJONL2(SIG0,DEPST,VAR0,XMAT, 715 : . TRAC(IPOS1),NTRAC,TRAC(IPOS2),NTRAS, 716 : . TRAC(IPOS3),NTRAT, 717 : . SIGF,VARF,DEFP,KERRE) 718 : END IF 719 : ELSEIF(IFOUR.EQ.2)THEN 720 : IF(KERRE.EQ.0) THEN 721 : C 721 : CALL SJONL3(SIG0,DEPST,VAR0,XMAT, 722 : . TRAC(IPOS1),NTRAS,TRAC(IPOS2),NTRAT, 723 : . TRAC(IPOS3),NTRAC, 724 : . SIGF,VARF,DEFP,KERRE) 725 : END IF 726 : C 727 : END IF 728 : C 729 : c 730 : ELSE IF (INPLAS.EQ.119)THEN 731 : C 732 : C MODELE JOINT_COAT 733 : C 734 : C ON RECUPERE LA COURBE DE SHEAR 735 : C 736 : C Note: La courbe a maintenant l'indices 4 alors que c'est 737 : C 2 dans ecoul1.eso. C'est parce que l'on a incere 'RHO' et 738 : C 'ALFA' a la place 2 et 3 dans defmat.eso (a verifier...) 739 : C 740 : IPOS1=1 740 : CALL COTRAI(WRK0,WRK2,4,IPOS1,1, NPOINT,KERRE) 741 : NTRAS=NPOINT/2 742 : C 743 : IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1)THEN 744 : IF(KERRE.EQ.0) THEN 745 : C 745 : CALL SJONC2(SIG0,DEPST,VAR0,XMAT,TRAC(IPOS1),NTRAS, 746 : . SIGF,VARF,DEFP,KERRE) 747 : END IF 748 : ELSEIF(IFOUR.EQ.2)THEN 749 : IF(KERRE.EQ.0) THEN 750 : END IF 751 : C 752 : END IF 753 : 754 : C+PPm 755 : c 756 : ELSE IF (INPLAS.EQ.126)THEN 757 : C 758 : C MODELE MUR_SHEAR 759 : C pour le moment, element de poutre 760 : C 761 : IF(MFR.EQ.7)THEN 762 : C 763 : C ON RECUPERE LES COURBES 764 : C 765 : C Note: Les courbes ont maintenant les indices 5 a 10 alors que 766 : C c'etait 3 a 8 dans ecoul1.eso. C'est parce que l'on a 767 : C incere 'RHO' et 'ALFA' a la place 2 et 3 dans defmat.eso 768 : C 769 : IPOS1=1 769 : CALL COTRAI(WRK0,WRK2, 5,IPOS1,0, NPOINT,KERRE) 770 : NCURFP=NPOINT/2 771 : IPOS2=IPOS1+NPOINT 771 : CALL COTRAI(WRK0,WRK2, 6,IPOS2,0, NPOINT,KERRE) 772 : NCURKP=NPOINT/2 773 : IPOS3=IPOS2+NPOINT 773 : CALL COTRAI(WRK0,WRK2, 7,IPOS3,0, NPOINT,KERRE) 774 : NCURLP=NPOINT/2 775 : IPOS4=IPOS3+NPOINT 775 : CALL COTRAI(WRK0,WRK2, 8,IPOS4,0, NPOINT,KERRE) 776 : NCURFM=NPOINT/2 777 : IPOS5=IPOS4+NPOINT 777 : CALL COTRAI(WRK0,WRK2, 9,IPOS5,0, NPOINT,KERRE) 778 : NCURKM=NPOINT/2 779 : IPOS6=IPOS5+NPOINT 779 : CALL COTRAI(WRK0,WRK2,10,IPOS6,0, NPOINT,KERRE) 780 : NCURLM=NPOINT/2 781 : C 782 : IF(KERRE.EQ.0) THEN 782 : CALL MSHETI(WRK0,WRK1,WRK2, 783 : > NCURFP,NCURKP,NCURLP,NCURFM,NCURKM,NCURLM, 784 : > IPOS1 ,IPOS2 ,IPOS3 ,IPOS4 ,IPOS5 ,IPOS6 , 785 : > KERRE) 786 : END IF 787 : 788 : C 789 : END IF 790 : C+PPm 791 : 792 : C 793 : C 794 : ELSE IF (INPLAS.EQ.91)THEN 795 : C 796 : C MODELE ANCRAGE_ELIGEHAUSEN 797 : C 798 : IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1)THEN 799 : C 799 : CALL ANCREL(SIG0,DEPST,VAR0,XMAT, 800 : . SIGF,VARF,DEFP,KERRE) 801 : END IF 802 : c 803 : ELSE IF (INPLAS.EQ.57)THEN 804 : C 805 : C MODELE BILI_MOMY 806 : C 807 : KERRE=0 807 : CALL BILIPO(SIG0,DEPST,VAR0,XMAT,XCAR,SIGF,VARF,DEFP) 808 : c 809 : ELSE IF (INPLAS.EQ.58)THEN 810 : C 811 : C MODELE BILI_EFFZ 812 : C 813 : KERRE=0 813 : CALL BILIFO(SIG0,DEPST,VAR0,XMAT,XCAR,SIGF,VARF,DEFP) 814 : c 815 : ELSE IF (INPLAS.EQ.59)THEN 816 : C 817 : C MODELE TAKEMO_MOMY 818 : C 819 : C ON RECUPERE LES COURBES MOMENT-COURBURE 820 : C 820 : CALL COTRAD(WRK0,WRK2,NCOURB,KERRE) 821 : IF(KERRE.EQ.0) THEN 822 : C 823 : IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN 823 : CALL TAKEP2(SIG0,NSTRS,DEPST,VAR0,XMAT,NMATT,XCAR, 824 : & TRAC,NCOURB,SIGF,VARF,DEFP,KERRE) 825 : ELSE 825 : CALL TAKEPO(SIG0,NSTRS,DEPST,VAR0,XMAT,NMATT,XCAR, 826 : & TRAC,NCOURB,SIGF,VARF,DEFP,KERRE) 827 : ENDIF 828 : END IF 829 : c 830 : ELSE IF (INPLAS.EQ.60)THEN 831 : C 832 : C MODELE TAKEMO_EFFZ 833 : C 834 : C 835 : C ON RECUPERE LES COURBES MOMENT-COURBURE 836 : C 836 : CALL COTRAD(WRK0,WRK2,NCOURB,KERRE) 837 : IF(KERRE.EQ.0) THEN 838 : C 839 : IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN 839 : CALL TAKEF2(SIG0,NSTRS,DEPST,VAR0,XMAT,NMATT,XCAR, 840 : & TRAC,NCOURB,SIGF,VARF,DEFP,KERRE) 841 : ELSE 841 : CALL TAKEFO(SIG0,NSTRS,DEPST,VAR0,XMAT,NMATT,XCAR, 842 : & TRAC,NCOURB,SIGF,VARF,DEFP,KERRE) 843 : ENDIF 844 : C 845 : END IF 846 : c 847 : ELSE 848 : KERRE=99 849 : ENDIF 850 : * 851 : * Erreurs 852 : * - problèmes de convergence 853 : * 853 : CALL DEFER1(JNOID,KERR1,KERRE,LOGSUC) 854 : * 855 : * - autres problèmes 856 : * 856 : 1990 CALL DEFER2(INPLAS,MFR,MELE,IB,IGAU, 857 : . KERR1,KERRE) 858 : 1998 IF (KERRE.NE.0) THEN 859 : IF (LOGVIS) SEGSUP WRK8 860 : SEGSUP WRK0,WR00,WRK1,WRK2,WRK3,WRK5,WTRAV 861 : IF(MFR.EQ.7.OR.MFR.EQ.13) THEN 862 : SEGSUP WRK4 863 : ENDIF 864 : IF ((CMATE.EQ.'ORTHOTRO'.OR.CMATE.EQ.'ANISOTRO'.OR. 865 : 1 CMATE.EQ.'UNIDIREC').AND.(MFR.EQ.1.OR.MFR.EQ.31 866 : 1 .OR.MFR.EQ.33)) THEN 867 : SEGDES MINTE2 868 : SEGSUP WRK22 869 : ENDIF 870 : IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN 871 : SEGDES MELVA3 872 : SEGDES MELVA4 873 : SEGDES MELVA5 874 : SEGDES MCHAM3 875 : SEGDES MCHAM4 876 : SEGDES MCHAM5 877 : ENDIF 878 : RETURN 879 : ENDIF 880 : c 881 : c remplissage du segment contenant les contraintes a la fin 882 : * ( rearrangement pour milieu poreux ), 883 : c les variables internes finales 884 : c et les increments de deformations plastiques 885 : c 885 : CALL DEFSIG(MFR,NDEF, 886 : . INPLAS,IND,WRK1,WRK5,WTRAV, 887 : . IVASTF,IVARIF,IVADEP,COB,XMOB,IB,IGAU, 888 : . CMATE,MATE,MELE,KERRER) 889 : IF (KERRER.NE.0) GOTO 1000 890 : c 891 : c fin de la boucle sur les points de gauss 892 : c 893 : 1100 continue 894 : c 895 : c special poutres et tuyaux sauf timoschenko 896 : c 896 : CALL DEFPOU(MFR,MELE,MELEME,IB,WRK4,IVASTF) 897 : c 898 : c fin de la boucle sur les elements 899 : c 900 : 1000 continue 901 : * 902 : * FIN: modèles visqueux, on stocke le pas de temps 903 : * optimal en indice 'dtopti' 904 : * 904 : CALL DEFFIN(INPLAS,TSOM,NSOM,NCOMP,NINV,NINCMA, 905 : . TCAR,DTOPTI,IPOTAB,KERRE) 906 : IF (LOGVIS) SEGSUP WRK8 907 : * 908 : SEGSUP WRK0,WR00,WRK1,WRK2,WRK3,WRK5,WTRAV 909 : IF(MFR.EQ.7.OR.MFR.EQ.13) THEN 910 : SEGSUP WRK4 911 : END IF 912 : IF ((CMATE.EQ.'ORTHOTRO'.OR.CMATE.EQ.'ANISOTRO'.OR. 913 : 1 CMATE.EQ.'UNIDIREC').AND.(MFR.EQ.1.OR.MFR.EQ.31 914 : 1 .OR.MFR.EQ.33)) THEN 915 : SEGDES MINTE2 916 : SEGSUP WRK22 917 : ENDIF 918 : * 919 : IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN 920 : SEGDES MELVA3 921 : SEGDES MELVA4 922 : SEGDES MELVA5 923 : SEGDES MCHAM3 924 : SEGDES MCHAM4 925 : SEGDES MCHAM5 926 : ENDIF 927 : * 928 : RETURN 929 : END 930 : 931 : 932 : 933 : 934 : 935 : 936 : 937 : 938 : 939 : 940 : 941 : 942 : 943 : 944 : 945 : 946 : 947 : 948 : 949 : 950 : 951 : 952 : 953 : 954 : 955 : 956 : 957 : 958 : 959 : 960 : 961 : 962 : 963 : 964 : 965 : 966 : 967 :
© Cast3M 2003 - All rights reserved.
Disclaimer