Download invaca.eso

Back to the list

   1 : C INVACA    SOURCE    FANDEUR   12/07/18    21:15:48     7433           
   2 : 
   3 :       SUBROUTINE INVACA(IPMODL,IPCHE1,IPCHE2,IPCHE3,IPCHE4,IPCHE5,
   4 :      &                  IMIL,IRET)
   5 : 
   6 : *---------------------------------------------------------------------
   7 : *
   8 : *      CALCUL DES 3 INVARIANTS D'UN TENSEUR D'ORDRE 2
   9 : *                 (APPELE PAR INVARI)
  10 : *
  11 : *   ENTREES:
  12 : *   --------
  13 : *
  14 : *     IPMODL   POINTEUR SUR UN MMODEL
  15 : *     IPCHE1   POINTEUR SUR UN CHAMELEM DE CONTRAINTES OU DEFORMATIONS
  16 : *              (TYPE MCHAML)
  17 : *     IPCHE5   POINTEUR SUR UN CHAMELEM DE CARACTERISTIQUES
  18 : *              (TYPE MCHAML)
  19 : *     IMIL     INDICATEUR OU ON CALCULE LES CONTRAINTES POUR
  20 : *              LES COQUES
  21 : *
  22 : *  SORTIES :
  23 : *  ---------
  24 : *
  25 : *     IPCHE2   POINTEUR SUR UN CHAMELEM STRESSES ( I1)
  26 : *     IPCHE3   POINTEUR SUR UN CHAMELEM STRESSES ( I2 )
  27 : *     IPCHE4   POINTEUR SUR UN CHAMELEM STRESSES ( I3 )
  28 : *     IRET     =1  OU  0   SUIVANT SUCCES OU PAS
  29 : *
  30 : *  PASSAGE AUX NOUVEAUX CHAMELEM PAR JM CAMPENON LE 12/90
  31 : *
  32 : *---------------------------------------------------------------------
  33 : *
  34 :       IMPLICIT INTEGER(I-N)
  35 :       IMPLICIT REAL*8(A-H,O-Z)
  36 : 
  37 : -INC CCOPTIO
  38 : -INC CCHAMP
  39 : 
  40 : -INC SMCHAML
  41 : -INC SMMODEL
  42 : 
  43 :       SEGMENT NOTYPE
  44 :         CHARACTER*16 TYPE(NBTYPE)
  45 :       ENDSEGMENT
  46 : *
  47 :       SEGMENT MPTVAL
  48 :         INTEGER IPOS(NS)    ,NSOF(NS)
  49 :         INTEGER      IVAL(NCOSOU)
  50 :         CHARACTER*16 TYVAL(NCOSOU)
  51 :       ENDSEGMENT
  52 : *
  53 :       PARAMETER ( NINF=3 )
  54 :       INTEGER INFOS(NINF)
  55 :       CHARACTER*(NCONCH) CONM
  56 :       LOGICAL lsupno
  57 : *
  58 :       DIMENSION SIG(9)
  59 : 
  60 : *------ Fin des déclarations ------------------------------------
  61 : 
  62 :       IRET = 0
  63 :       IPCHE2 = 0
  64 :       IPCHE3 = 0
  65 :       IPCHE4 = 0
  66 : *
  67 : * Reduction des MCHAMLs sur le MODELE
  68 : *
  69 :       kerre = 0
  70 : *
  70 :       CALL REDUAF(IPCHE1,IPMODL,ipch,0,ir,kerre)
  70 :       IF (ir.NE.1) CALL ERREUR(kerre)
  71 :       IF (IERR.NE.0) RETURN
  72 :       IPCHE1 = ipch
  73 : *
  74 :       IF (IPCHE5.NE.0) THEN
  74 :         CALL REDUAF(IPCHE5,IPMODL,ipch,0,ir,kerre)
  74 :         IF (ir.NE.1) CALL ERREUR(kerre)
  75 :         IF (IERR.NE.0) RETURN
  76 :         IPCHE5 = ipch
  77 :       ENDIF
  78 : *
  79 : * Verification du type de IPCHE1 !
  80 : *
  81 :       MCHELM = IPCHE1
  82 :       SEGACT,MCHELM
  83 :       IF (TITCHE.EQ.'CONTRAINTES') THEN
  84 :         ICONTR = 1
  85 :         W1 = 2.D0
  86 :         W2 = 1.D0
  87 :         W3 = 2.D0
  88 :       ELSE IF (TITCHE.EQ.'DEFORMATIONS') THEN
  89 :         ICONTR = 0
  90 :         W1 = 0.5D0
  91 :         W2 = 0.25D0
  92 :         W3 = 0.25D0
  93 :       ELSE
  94 :         MOTERR(1:8)='CONTRAIN'
  95 :         MOTERR(9:16)='DEFORMAT'
  95 :         CALL ERREUR(109)
  96 :         GOTO 666
  97 :       ENDIF
  98 : *
  99 : *  Verification du lieu support des mchamls
 100 : *
 100 :       CALL QUESUP(IPMODL,IPCHE1,0,0,iret1,ISUP1)
 101 :       IF (IERR.NE.0) GOTO 666
 102 : *
 103 :       IPCH5O = IPCHE5
 104 :       IF (IPCHE5.NE.0) THEN
 104 :         CALL QUESUP(IPMODL,IPCH5O,ISUP1,0,ISUP5,iret5)
 105 :         IF (ISUP5.GT.1) GOTO 666
 106 :         IF (IERR.NE.0) GOTO 666
 107 : C Le support des caractéristiques est différent de celui de IPCHE1
 108 :         IF (ISUP5.NE.0) THEN
 108 :           CALL CHASUP(IPMODL,IPCH5O,IPCHE5,irecar,ISUP1)
 109 :           IF (irecar.NE.0) GOTO 666
 110 :         ENDIF
 111 :       ENDIF
 112 : *
 113 : *  Activation et verification du modele
 114 : *
 115 :       MMODEL = IPMODL
 116 :       SEGACT,MMODEL
 117 :       NSOUS = KMODEL(/1)
 118 :       KEL22 = 0
 119 :       DO ISOUS = 1, NSOUS
 120 :         IMODEL=KMODEL(ISOUS)
 121 :         SEGACT,IMODEL
 122 :         IF (FORMOD(1).NE.'MECANIQUE' .AND.
 123 :      &      FORMOD(1).NE.'POREUX') THEN
 124 :           MOTERR(1:8) = FORMOD(1)
 124 :           CALL ERREUR(193)
 125 :           GOTO 666
 126 :         ENDIF
 127 :         IF (NEFMOD.EQ.22) KEL22 = KEL22 + 1
 128 :       ENDDO
 129 : *
 130 : C ... Initialisation des trois nouveaux MCHELM - resultats ...
 131 :       N1 = NSOUS - KEL22
 132 :       L1 = 8
 133 :       N3 = 6
 134 : *
 135 :       SEGINI MCHEL1
 136 :       MCHEL1.IFOCHE=IFOUR
 137 :       MCHEL1.TITCHE='SCALAIRE'
 138 : *
 139 :       SEGINI MCHEL2
 140 :       MCHEL2.IFOCHE=IFOUR
 141 :       MCHEL2.TITCHE='SCALAIRE'
 142 : *
 143 :       SEGINI MCHEL3
 144 :       MCHEL3.IFOCHE=IFOUR
 145 :       MCHEL3.TITCHE='SCALAIRE'
 146 : *
 147 : * Petit segment utile
 148 :       nbtype = 1
 149 :       SEGINI,notype
 150 :       type(1)='REAL*8'
 151 :       MOTYPE = notype
 152 : *
 153 :       ISOUS = 0
 154 : *
 155 : * ... BOUCLE SUR LES SOUS ZONES DU MODELE ...
 156 : *
 157 :       DO 200 JSOUS = 1, NSOUS
 158 : *
 159 :         IMODEL = KMODEL(JSOUS)
 160 :         SEGACT,IMODEL
 161 : *
 162 :         IPMAIL= IMAMOD
 163 :         CONM  = CONMOD
 164 :         MELE  = NEFMOD
 165 : *
 166 :         iOK = 1
 167 :         IF (MELE.EQ.22) GOTO 210
 168 : *
 169 :         iOK = 0
 170 : *
 171 : C    ... COQUE INTEGREE OU NON ? ...
 172 :         IF (INFMOD(/1).NE.0) THEN
 173 :           NPINT = INFMOD(1)
 174 :           IF (NPINT.NE.0)THEN
 174 :             CALL ERREUR(615)
 175 :             GOTO 210
 176 :           ENDIF
 177 :         ELSE
 178 :           NPINT = 0
 179 :         ENDIF
 180 : *
 181 : *    ... INITIALISATION ...
 182 : *
 183 :         ISOUS = ISOUS + 1
 184 : *
 185 :         IVACAR = 0
 186 :         IVACOM = 0
 187 :         MOCOMP = 0
 188 :         MOCARA = 0
 189 :         lsupno = .false.
 190 : *
 191 : *  ... INFORMATION SUR L'ELEMENT FINI ...
 192 : *
 193 :         MFR   = INFELE(13)
 194 :         MINTE = INFMOD(2+ISUP1)
 195 :         NSTRS = INFELE(16)
 196 : *
 197 : *  ... Verification de compatibilité des MCHAML du point de vue des
 198 : *      tableaux INFCHE et remplissage du tableau INFOS pour KOMCHA ...
 199 : *
 199 :         CALL IDENT(IPMAIL,CONM,IPCHE1,IPCHE5,INFOS,IRTD)
 200 :         IF (IRTD.EQ.0) GOTO 210
 201 : *
 202 : *  ... RECHERCHE DES NOMS de COMPOSANTES de CONTRAINTES/DEFORMATIONS...
 203 : *
 204 :         IF (ICONTR.EQ.1) THEN
 205 :           IF (lnomid(4).NE.0) THEN
 206 :             MOCOMP = lnomid(4)
 207 :           ELSE
 208 :             lsupno = .true.
 208 :             CALL IDCONT(IMODEL,IFOUR,MOCOMP,NCOMP,NFAC)
 209 :           ENDIF
 210 :         ELSE
 211 :           IF (lnomid(5).NE.0) THEN
 212 :             MOCOMP = lnomid(5)
 213 :           ELSE
 214 :             lsupno = .true.
 214 :             CALL IDDEFO(IMODEL,IFOUR,MOCOMP,NCOMP,NFAC)
 215 :           ENDIF
 216 :         ENDIF
 217 :         nomid = MOCOMP
 218 :         SEGACT,nomid
 219 :         NCOMP = lesobl(/2)
 220 :         NFAC  = lesfac(/2)
 221 : *
 222 : *    ... VERIFICATION DE LEUR PRESENCE ...
 223 : *
 223 :         CALL KOMCHA(IPCHE1,IPMAIL,CONM,MOCOMP,MOTYPE,1,INFOS,3,IVACOM)
 224 :         IF (IERR.NE.0) GOTO 220
 225 : *
 226 : *    ... TRAITEMENT DES CHAMPS DE CARACTERISTIQUES ...
 227 : *
 228 :         nbrobl = 0
 229 :         nbrfac = 0
 230 :         nomid  = 0
 231 : *    ... EPAISSEUR DANS LE CAS DES COQUES MINCES ...
 232 :         IF (MFR.EQ.3 .OR. MFR.EQ.9) THEN
 233 :           nbrobl = 1
 234 :           nbrfac = 0
 235 :           SEGINI,nomid
 236 :           lesobl(1) = 'EPAI'
 237 :         ENDIF
 238 : *
 239 :         MOCARA = nomid
 240 :         NCARA = nbrobl
 241 :         NCARF = nbrfac
 242 :         NCARR = NCARA+NCARF
 243 : *
 244 :         IF (MOCARA.NE.0 .AND. NCARA.GE.1)  THEN
 245 :           IF (IPCHE5.NE.0)  THEN
 246 : C          ... On vérifie si elle est présente dans le champ de
 247 : C              caractéristiques qui a été fourni ...
 247 :             CALL KOMCHA(IPCHE5,IPMAIL,CONM,MOCARA,MOTYPE,1,
 248 :      &                                     INFOS,3,IVACAR)
 249 :           ELSE
 250 : C          ... S'il n'y a pas de champ de caractéristiques, on râle ...
 251 :             MOTERR(1:8)='CARACTER'
 252 :             MOTERR(9:12)=NOMTP(MELE)
 253 :             MOTERR(13:20)='INVA'
 253 :             CALL ERREUR(145)
 254 :           ENDIF
 255 :           IF (IERR.NE.0) GOTO 230
 256 :         ENDIF
 257 : *
 258 : C  Creation des MELVAL de la zone élémentaire
 259 : *
 260 : *  ... RECHERCHE DE LA TAILLE DES MELVAL A ALLOUER ...
 261 : *
 262 :         MPTVAL = IVACOM
 263 :         N1PTEL= 0
 264 :         N1EL  = 0
 265 :         DO 110 ICOMP = 1, NCOMP
 266 :           MELVAL = IVAL(ICOMP)
 267 :           N1PTEL = MAX(N1PTEL,VELCHE(/1))
 268 :           N1EL   = MAX(N1EL  ,VELCHE(/2))
 269 :  110    CONTINUE
 270 :         N2PTEL=0
 271 :         N2EL  =0
 272 : *
 273 :         SEGINI,MELVA1,MELVA2,MELVA3
 274 : *
 275 : *  Création des MCHAML ...
 276 : *
 277 :         N2 = 1
 278 :         SEGINI,MCHAM1
 279 :         SEGINI,MCHAM2
 280 :         SEGINI,MCHAM3
 281 : *
 282 :         MCHAM1.NOMCHE(1)='SCAL'
 283 :         MCHAM1.TYPCHE(1)='REAL*8'
 284 :         MCHAM1.IELVAL(1)=MELVA1
 285 : *
 286 :         MCHAM2.NOMCHE(1)='SCAL'
 287 :         MCHAM2.TYPCHE(1)='REAL*8'
 288 :         MCHAM2.IELVAL(1)=MELVA2
 289 : *
 290 :         MCHAM3.NOMCHE(1)='SCAL'
 291 :         MCHAM3.TYPCHE(1)='REAL*8'
 292 :         MCHAM3.IELVAL(1)=MELVA3
 293 : *
 294 : * Remplissage des attributs de la sous-zone ...
 295 : *
 296 :         MCHEL1.INFCHE(ISOUS,1)=0
 297 :         MCHEL1.INFCHE(ISOUS,2)=0
 298 :         MCHEL1.INFCHE(ISOUS,3)=NIFOUR
 299 :         MCHEL1.INFCHE(ISOUS,4)=MINTE
 300 :         MCHEL1.INFCHE(ISOUS,5)=0
 301 :         MCHEL1.INFCHE(ISOUS,6)=ISUP1
 302 :         MCHEL1.IMACHE(ISOUS)=IPMAIL
 303 :         MCHEL1.CONCHE(ISOUS)=CONMOD
 304 :         MCHEL1.ICHAML(ISOUS)=MCHAM1
 305 : *
 306 :         MCHEL2.INFCHE(ISOUS,1)=0
 307 :         MCHEL2.INFCHE(ISOUS,2)=0
 308 :         MCHEL2.INFCHE(ISOUS,3)=NIFOUR
 309 :         MCHEL2.INFCHE(ISOUS,4)=MINTE
 310 :         MCHEL2.INFCHE(ISOUS,5)=0
 311 :         MCHEL2.INFCHE(ISOUS,6)=ISUP1
 312 :         MCHEL2.IMACHE(ISOUS)=IPMAIL
 313 :         MCHEL2.CONCHE(ISOUS)=CONMOD
 314 :         MCHEL2.ICHAML(ISOUS)=MCHAM2
 315 : *
 316 :         MCHEL3.INFCHE(ISOUS,1)=0
 317 :         MCHEL3.INFCHE(ISOUS,2)=0
 318 :         MCHEL3.INFCHE(ISOUS,3)=NIFOUR
 319 :         MCHEL3.INFCHE(ISOUS,4)=MINTE
 320 :         MCHEL3.INFCHE(ISOUS,5)=0
 321 :         MCHEL3.INFCHE(ISOUS,6)=ISUP1
 322 :         MCHEL3.IMACHE(ISOUS)=IPMAIL
 323 :         MCHEL3.CONCHE(ISOUS)=CONMOD
 324 :         MCHEL3.ICHAML(ISOUS)=MCHAM3
 325 : *
 326 : **********************************************************************
 327 : *                                                                    *
 328 : *               BRANCHEMENT SUIVANT LA FORMULATION                   *
 329 : *                                                                    *
 330 : **********************************************************************
 331 : *            MASSI   COQUE    COQEP          CIST 
 332 :         GOTO ( 30, 99, 60, 99, 80, 99, 99, 99,120, 99,
 333 :      &         99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
 334 :      &         99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
 335 : *             INCO    PORE
 336 :      &         30, 99, 30, 99, 99, 99, 99, 99, 99, 99), MFR
 337 : C       XFEM : idem massif
 338 :         IF (MFR.EQ.63) GOTO 30
 339 : C
 340 :  99     CONTINUE
 341 :         MOTERR(1:8) = NOMFR(MFR/2+1)
 341 :         CALL ERREUR(193)
 342 :         GOTO 240
 343 : *_______________________________________________________________________
 344 : *
 345 : *    FORMULATION MASSIVE / INCOMPRESSIBLE / POREUX / XFEM
 346 : *_______________________________________________________________________
 347 : *
 348 :    30   CONTINUE
 349 :         DO 31 IB=1,N1EL
 350 :           DO 31 IGAU=1,N1PTEL
 351 : *
 352 : C       ... Recherche des composantes du champ des contraintes ...
 353 :             MPTVAL=IVACOM
 354 :             DO 35 ICOMP=1,NCOMP
 355 :                MELVAL=IVAL(ICOMP)
 356 :                IGMN=MIN(IGAU,VELCHE(/1))
 357 :                IBMN=MIN(IB  ,VELCHE(/2))
 358 :                SIG(ICOMP)=VELCHE(IGMN,IBMN)
 359 :    35       CONTINUE
 360 : 
 361 : C       ... Calcul des invariants ...
 362 : 
 363 :             XI1=SIG(1)+SIG(2)+SIG(3)
 364 :             IF (IFOUR.LT.1.AND.IFOUR.GT.-3) THEN
 365 :                XI2=SIG(1)*SIG(1)+SIG(2)*SIG(2)+SIG(3)*SIG(3)+
 366 :      .             W1*SIG(4)*SIG(4)
 367 :                XI3=SIG(3)*(SIG(1)*SIG(2)-W2*SIG(4)*SIG(4))
 368 :             ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15) THEN
 369 :                XI2=SIG(1)*SIG(1)+SIG(2)*SIG(2)+SIG(3)*SIG(3)
 370 :                XI3=SIG(1)*SIG(2)*SIG(3)
 371 :             ELSE
 372 :                XI2=SIG(1)*SIG(1)+SIG(2)*SIG(2)+SIG(3)*SIG(3)+
 373 :      .             W1*(SIG(4)*SIG(4)+SIG(5)*SIG(5)+SIG(6)*SIG(6))
 374 :                XI3=SIG(1)*SIG(2)*SIG(3)-
 375 :      .             W2*(SIG(1)*SIG(6)*SIG(6)+SIG(2)*SIG(5)*SIG(5)+
 376 :      .             SIG(3)*SIG(4)*SIG(4))+W3*SIG(4)*SIG(5)*SIG(6)
 377 :             ENDIF
 378 : 
 379 : C       ... et leur stockage ...
 380 : 
 381 :             MELVA1.VELCHE(IGAU,IB)=XI1
 382 :             MELVA2.VELCHE(IGAU,IB)=XI2
 383 :             MELVA3.VELCHE(IGAU,IB)=XI3
 384 : 
 385 :    31   CONTINUE
 386 :         GOTO 250
 387 : *_______________________________________________________________________
 388 : *
 389 : *    FORMULATION COQUE MINCE
 390 : *_______________________________________________________________________
 391 : *
 392 :    60 CONTINUE
 393 :       DO 61 IB=1,N1EL
 394 :       DO 61 IGAU=1,N1PTEL
 395 : C       ... Recherche des composantes du champ des contraintes généralisées ...
 396 :             MPTVAL=IVACOM
 397 :             DO 62 ICOMP=1,NCOMP
 398 :                MELVAL=IVAL(ICOMP)
 399 :                IGMN=MIN(IGAU,VELCHE(/1))
 400 :                IBMN=MIN(IB  ,VELCHE(/2))
 401 :                SIG(ICOMP)=VELCHE(IGMN,IBMN)
 402 :    62       CONTINUE
 403 : *
 404 : C       ... Recherche de l'épaisseur de la coque ...
 405 :             MPTVAL=IVACAR
 406 :             MELVAL=IVAL(1)
 407 :             IGMN=MIN(IGAU,VELCHE(/1))
 408 :             IBMN=MIN(IB  ,VELCHE(/2))
 409 :             EPAIST=VELCHE(IGMN,IBMN)
 410 : *
 411 : *       ... CALCUL DES CONTRAINTES ...
 412 : *
 412 :             CALL EFCONT(EPAIST,0.D0,NSTRS,SIG)
 413 :             IF(IFOUR.GT.0) THEN
 414 :                SIG(1)=SIG(1)+SIG(4)*IMIL
 415 :                SIG(2)=SIG(2)+SIG(5)*IMIL
 416 :                SIG(3)=SIG(3)+SIG(6)*IMIL
 417 :             ELSE IF(IFOUR.LE.0) THEN
 418 :                SIG(1)=SIG(1)+SIG(3)*IMIL
 419 :                SIG(2)=SIG(2)+SIG(4)*IMIL
 420 :                SIG(3)=0.D0
 421 :             ENDIF
 422 : *
 423 : C       ... Calcul des invariants ...
 424 : 
 425 :             XI1=SIG(1)+SIG(2)
 426 :             XI2=SIG(1)*SIG(1)+SIG(2)*SIG(2)+W1*SIG(3)*SIG(3)
 427 :             XI3=0.D0
 428 : *
 429 : C       ... et leur stockage ...
 430 :             MELVA1.VELCHE(IGAU,IB)=XI1
 431 :             MELVA2.VELCHE(IGAU,IB)=XI2
 432 :             MELVA3.VELCHE(IGAU,IB)=XI3
 433 : *
 434 :    61   CONTINUE
 435 :         GOTO 250
 436 : *_______________________________________________________________________
 437 : *
 438 : *    FORMULATION COQUE EPAISSE
 439 : *_______________________________________________________________________
 440 : *
 441 :    80   CONTINUE
 442 :         DO 81 IB=1,N1EL
 443 :           DO 81 IGAU=1,N1PTEL
 444 : C       ... Recherche des composantes du champ des contraintes ...
 445 :             MPTVAL=IVACOM
 446 :             DO 85 ICOMP=1,NCOMP
 447 :                MELVAL=IVAL(ICOMP)
 448 :                IGMN=MIN(IGAU,VELCHE(/1))
 449 :                IBMN=MIN(IB  ,VELCHE(/2))
 450 :                SIG(ICOMP)=VELCHE(IGMN,IBMN)
 451 :    85       CONTINUE
 452 : *
 453 : C       ... Calcul des invariants ...
 454 : 
 455 :             XI1=SIG(1)+SIG(2)
 456 :             XI2=SIG(1)*SIG(1)+SIG(2)*SIG(2)+
 457 :      &          W1*(SIG(3)*SIG(3)+SIG(4)*SIG(4)+SIG(5)*SIG(5))
 458 :             XI3=-W2*(SIG(1)*SIG(5)*SIG(5)+SIG(2)*SIG(4)*SIG(4))
 459 :      &          +W3*SIG(3)*SIG(4)*SIG(5)
 460 : *
 461 : C       ... et leur stockage ...
 462 : 
 463 :             MELVA1.VELCHE(IGAU,IB)=XI1
 464 :             MELVA2.VELCHE(IGAU,IB)=XI2
 465 :             MELVA3.VELCHE(IGAU,IB)=XI3
 466 : *
 467 :    81   CONTINUE
 468 :         GOTO 250
 469 : *_______________________________________________________________________
 470 : *
 471 : *    FORMULATION COQUE AVEC CISAILLEMENT
 472 : *_______________________________________________________________________
 473 : *
 474 :   120   CONTINUE
 475 :         DO 121 IB=1,N1EL
 476 :           DO 121 IGAU=1,N1PTEL
 477 : C       ... Recherche des composantes du champ des contraintes ...
 478 :             MPTVAL=IVACOM
 479 :             DO 122 ICOMP=1,NCOMP
 480 :                MELVAL=IVAL(ICOMP)
 481 :                IGMN=MIN(IGAU,VELCHE(/1))
 482 :                IBMN=MIN(IB  ,VELCHE(/2))
 483 :                SIG(ICOMP)=VELCHE(IGMN,IBMN)
 484 :   122       CONTINUE
 485 : *
 486 : C       ... Recherche de l'épaisseur de la coque ...
 487 :             MPTVAL=IVACAR
 488 :             MELVAL=IVAL(1)
 489 :             IGMN=MIN(IGAU,VELCHE(/1))
 490 :             IBMN=MIN(IB  ,VELCHE(/2))
 491 :             EPAIST=VELCHE(IGMN,IBMN)
 492 : *
 493 : *       ... CALCUL DES CONTRAINTES ...
 494 : *
 494 :             CALL EFCONT(EPAIST,0.D0,NSTRS,SIG)
 495 :             SIG(1)=SIG(1)+SIG(4)*IMIL
 496 :             SIG(2)=SIG(2)+SIG(5)*IMIL
 497 :             SIG(4)=SIG(3)+SIG(6)*IMIL
 498 :             SIG(3)=0.D0
 499 :             SIG(5)=SIG(7)
 500 :             SIG(6)=SIG(8)
 501 : 
 502 : C       ... Calcul des invariants ...
 503 : 
 504 :             XI1=SIG(1)+SIG(2)+SIG(3)
 505 :             XI2=SIG(1)*SIG(1)+SIG(2)*SIG(2)+SIG(3)*SIG(3)+
 506 :      &          W1*(SIG(4)*SIG(4)+SIG(5)*SIG(5)+SIG(6)*SIG(6))
 507 :             XI3=SIG(1)*SIG(2)*SIG(3)-
 508 :      &          W2*(SIG(1)*SIG(6)*SIG(6)+SIG(2)*SIG(5)*SIG(5)+
 509 :      &          SIG(3)*SIG(4)*SIG(4))+W3*SIG(4)*SIG(5)*SIG(6)
 510 : *
 511 : C       ... et leur stockage ...
 512 :             MELVA1.VELCHE(IGAU,IB)=XI1
 513 :             MELVA2.VELCHE(IGAU,IB)=XI2
 514 :             MELVA3.VELCHE(IGAU,IB)=XI3
 515 : *
 516 :   121 CONTINUE
 517 :         GOTO 250
 518 : *
 519 : **********************************************************************
 520 : *                                                                    *
 521 : *           FIN DU BRANCHEMENT SUIVANT LA FORMULATION                *
 522 : *                                                                    *
 523 : **********************************************************************
 524 : *
 525 : *    ... DESACTIVATION DES SEGMENTS PROPRES A LA GEOMETRIE ISOUS ...
 526 : *
 527 :   250    CONTINUE
 528 :          iOK = 1
 529 : 
 530 :   240    CONTINUE
 531 :          SEGDES,MELVA1,MELVA2,MELVA3
 532 :          SEGDES,MCHAM1,MCHAM2,MCHAM3
 533 : *
 534 :  230    CONTINUE
 535 :         IF (MOCARA.NE.0) THEN
 536 :           nomid = MOCARA
 537 :           SEGSUP,nomid
 538 :         ENDIF
 539 : *
 539 :         CALL DTMVAL(IVACOM,1)
 540 : *
 541 :  220    CONTINUE
 542 :         nomid = MOCOMP
 543 :         SEGDES,nomid
 544 :         IF (lsupno) SEGSUP,nomid
 545 : *
 546 :  210    CONTINUE
 547 :         SEGDES,IMODEL
 548 : *
 549 : * ... ERREUR DANS UNE SOUS ZONE : DESACTIVATION ET RETOUR ...
 550 :         IF (iOK.EQ.0) GOTO 990
 551 : *
 552 :   200 CONTINUE
 553 : 
 554 : C ... FIN DE LA GRANDE BOUCLE SUR LES ZONES ÉLÉMENTAIRES ...
 555 : 
 556 :       IRET = 1
 557 : 
 558 :  990  CONTINUE
 559 :       SEGDES,MMODEL
 560 : 
 561 :       IF (IRET.EQ.1) THEN
 562 :         SEGDES,MCHEL1,MCHEL2,MCHEL3
 563 :         IPCHE2 = MCHEL1
 564 :         IPCHE3 = MCHEL2
 565 :         IPCHE4 = MCHEL3
 566 :       ELSE
 567 :         SEGSUP,MCHEL1,MCHEL2,MCHEL3
 568 :         IPCHE2 = 0
 569 :         IPCHE3 = 0
 570 :         IPCHE4 = 0
 571 :       ENDIF
 572 : *
 573 :       SEGSUP,notype
 574 :       IF (IPCH5O.NE.IPCHE5) THEN
 574 :         CALL DTCHAM(IPCHE5)
 575 :         IPCHE5 = IPCH5O
 576 :       ENDIF
 577 : *
 578 :   666 CONTINUE
 579 :       SEGDES,MCHELM
 580 : 
 581 :       RETURN
 582 :       END
 583 : 
 584 :  

© Cast3M 2003 - All rights reserved.
Disclaimer