Download ecou60.eso

Back to the list

   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