Download idvari.eso

Back to the list

   1 : C IDVARI    SOURCE    BR232186  13/12/09    21:15:19     7841           
   2 : 
   3 :       SUBROUTINE IDVARI(MFR,IPMODL,IPCOMP,NBROBL,NBRFAC)
   4 : 
   5 : *--------------------------------------------------------------------*
   6 : *                                                                    *
   7 : *    RECHERCHE DES NOMS DE COMPOSANTES DES VARIABLES INTERNES        *
   8 : *    ________________________________________________________        *
   9 : *                                                                    *
  10 : *    ENTREES:                                                        *
  11 : *                                                                    *
  12 : *        MFR       NUMERO DE LA FORMULATION                          *
  13 : *        IPMODL    OBJET MODEL ELEMENTAIRE ( SEGMENT ACTIF )         *
  14 : *                                                                    *
  15 : *    SORTIES:                                                        *
  16 : *                                                                    *
  17 : *        IPCOMP    POINTEUR SUR LES LISTES DE NOMS DE COMPOSANTES    *
  18 : *                  obligatoires et facultatives                      *
  19 : *                                                                    *
  20 : *        NBROBL    nombre de composantes obligatoires                *
  21 : *                                                                    *
  22 : *        NBRFAC    nombre de composantes facultatives                *
  23 : *                                                                    *
  24 : *--------------------------------------------------------------------*
  25 : *
  26 :       IMPLICIT INTEGER(I-N)
  27 :       IMPLICIT REAL*8(A-H,O-Z)
  28 : 
  29 : -INC SMMODEL
  30 : -INC CCOPTIO
  31 : -INC CCHAMP
  32 : *
  33 :       POINTEUR NOMID1.NOMID
  34 : *
  35 :       CHARACTER*16 MOMODL(200)
  36 : *
  37 :       NBROBL=0
  38 :       NBRFAC=0
  39 :       NOMID=0
  40 :       MATEPL=0
  41 : C
  42 :       IMODEL=IPMODL
  43 : 
  44 :       IF( Lnomid(10).NE.0) THEN
  45 :          nomid=Lnomid(10)
  46 :          segini,nomid1=nomid
  47 :          nbrobl=nomid1.lesobl(/2)
  48 :          nbrfac=nomid1.lesfac(/2)
  49 :          ipcomp=nomid1
  50 :          segdes nomid,nomid1
  51 :          return
  52 :       endif
  53 : 
  54 :       NMAT=MATMOD(/2)
  55 :       MELE=NEFMOD
  56 : C
  57 : C   COQUE INTEGREE OU PAS ?
  58 : C
  59 :       IF(INFMOD(/1).NE.0)THEN
  60 :           NPINT=INFMOD(1)
  61 :       ELSE
  62 :           NPINT=0
  63 :       ENDIF
  64 : 
  65 :       IF (FORMOD(1).NE.'MECANIQUE'.AND.FORMOD(1).NE.'POREUX') GOTO 1300
  66 : C*=====================================================================*
  67 : C*= Formulation 'MECANIQUE'                                           =*
  68 : C*=====================================================================*
  68 :       CALL MODLIN(MOMODL,NMOD)
  68 :       CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
  69 :       IF (IPLAC.EQ.0) GOTO 99
  70 :       IF (IPLAC.NE.0) THEN
  71 : 
  72 :          IF (NMAT.GE.2) THEN
  72 :             CALL MODELA(MOMODL,NMOD)
  72 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(2))
  73 : *
  74 : *  TEST POUR LE CAS 'SECTION'
  75 : *
  76 :             IF (IPLAC.EQ.7) THEN
  77 :                 MATEPL=41
  78 :                 GOTO 150
  79 :             ENDIF
  80 : *
  81 :             IF (IPLAC.EQ.0) THEN
  82 :                MATEPL=0
  83 :                INMAT=2
  84 :             ELSE IF (IPLAC.EQ.9.OR.IPLAC.EQ.10) THEN
  85 :                MATEPL=10
  86 :                INMAT=3
  87 :             ELSE
  88 :                MATEPL=0
  89 :                INMAT=3
  90 :                IF (IPLAC.NE.1.AND.IPLAC.NE.6.
  91 :      &          AND.IPLAC.NE.2.AND.IPLAC.NE.11) GOTO 150
  92 :             ENDIF
  93 :          ELSE
  94 :             IF (IPLAC.EQ.1) THEN
  95 :               MATEPL=0
  96 :               GOTO 150
  97 :             ENDIF
  98 :             GOTO 99
  99 :          ENDIF
 100 : *
 101 : *        Comportement type IMPEDANCE
 102 : *        ------------------------------
 103 :          IF (NMAT.GE.INMAT) THEN
 103 :             CALL MODIMP(MOMODL,NMOD)
 103 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
 104 :             IF (IPLAC.EQ.1 ) THEN
 105 : * IMPEDANCE
 106 :                MATEPL=11
 107 :                GO TO 150
 108 :             ENDIF
 109 :          ENDIF
 110 : *
 111 : *        Comportement non lineaire
 112 : *        -------------------------
 113 :          IF (NMAT.GE.INMAT) THEN
 113 :             CALL MODNLI(MOMODL,NMOD)
 113 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
 114 :             IF (IPLAC.EQ.0) GOTO 150
 115 :             INMAT=INMAT+1
 116 : *
 117 : *           Debranchement suivant famille de modeles :
 118 : *           100 => PLASTIQUE                   200 => FLUAGE
 119 : *           300 => VISCOPLASTIQUE              400 => ENDOMMAGEMENT
 120 : *           500 => PLASTIQUE_ENDOM(MAGEMENT)   600 => NON_LINEAIRE
 121 : *           700 => VISCO_EXTERNE               800 => IMPEDANCE
 122 : *
 123 :             GOTO (100,200,300,400,500,600,700),IPLAC
 124 : *
 125 : *           Comportement plastique
 126 : *           ----------------------
 127 :  100        CONTINUE
 128 : 
 129 :             IF (NMAT.GE.INMAT) THEN
 129 :                CALL MODPLA(MOMODL,NMOD)
 129 :                CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
 130 :                IF (IPLAC.EQ.0) THEN
 131 : *     ISOTROPE
 132 :                   MATEPL=5
 133 :                ELSE IF (IPLAC.EQ.1) THEN
 134 : *     ISOTROPE
 135 :                   MATEPL=5
 136 :                   INMAT=INMAT+1
 137 :                ELSE IF (IPLAC.EQ.2) THEN
 138 : *     PARFAIT
 139 :                   MATEPL=1
 140 :                   INMAT=INMAT+1
 141 :                ELSE IF (IPLAC.EQ.3) THEN
 142 : *     CINEMATIQUE
 143 :                   MATEPL=4
 144 :                   INMAT=INMAT+1
 145 :                ELSE IF (IPLAC.EQ.4) THEN
 146 : *     DRUCKER-PRAGER
 147 :                   MATEPL=15
 148 :                   INMAT=INMAT+1
 149 :                ELSE IF (IPLAC.EQ.5) THEN
 150 : *     DRUCKER-SIMPLE
 151 :                   MATEPL=3
 152 :                   INMAT=INMAT+1
 153 :                ELSE IF (IPLAC.EQ.6) THEN
 154 : *     BETON
 155 :                   MATEPL=9
 156 :                   INMAT=INMAT+1
 157 :                ELSE IF (IPLAC.EQ.7) THEN
 158 : *     CHABOCHE1
 159 :                   MATEPL=7
 160 :                   INMAT=INMAT+1
 161 :                ELSE IF (IPLAC.EQ.8) THEN
 162 : *     CHABOCHE2
 163 :                   MATEPL=12
 164 :                   INMAT=INMAT+1
 165 :                ELSE IF (IPLAC.EQ.9) THEN
 166 : *     TUYAU-FISSURE
 167 :                    MATEPL=14
 168 :                    INMAT=INMAT+1
 169 :                ELSE IF (IPLAC.EQ.10) THEN
 170 : *    ENDOMMAGEABLE
 171 :                    MATEPL=26
 172 :                    INMAT=INMAT+1
 173 :                ELSE IF (IPLAC.EQ.11) THEN
 174 : *    GAUVAIN
 175 :                    MATEPL=16
 176 :                    INMAT=INMAT+1
 177 :                ELSE IF (IPLAC.EQ.12) THEN
 178 : *    LINESPRING
 179 :                    MATEPL=2
 180 :                    INMAT=INMAT+1
 181 :                ELSE IF (IPLAC.EQ.13) THEN
 182 : *    UBIQUITOUS
 183 :                    MATEPL=28
 184 :                    INMAT=INMAT+1
 185 :                ELSE IF (IPLAC.EQ.14) THEN
 186 : *    GLOBAL
 187 :                    MATEPL=32
 188 :                    INMAT=INMAT+1
 189 :                ELSE IF (IPLAC.EQ.15) THEN
 190 : *    CAM-CLAY
 191 :                    MATEPL=33
 192 :                    INMAT=INMAT+1
 193 :                ELSE IF (IPLAC.EQ.16) THEN
 194 : *    MOHR COULOMB
 195 :                    MATEPL=34
 196 :                    INMAT=INMAT+1
 197 :                ELSE IF (IPLAC.EQ.17) THEN
 198 : *    JOINT_DILATANT
 199 :                    MATEPL=35
 200 :                    INMAT=INMAT+1
 201 :                ELSE IF (IPLAC.EQ.18) THEN
 202 : *    BETON_AXI
 203 :                    MATEPL=36
 204 :                    INMAT=INMAT+1
 205 :                ELSE IF (IPLAC.EQ.19) THEN
 206 : *    GURSON
 207 :                    MATEPL=38
 208 :                    INMAT=INMAT+1
 209 :                ELSE IF (IPLAC.EQ.20) THEN
 210 : *    BETON_UNI
 211 :                    MATEPL=39
 212 :                    INMAT=INMAT+1
 213 :                ELSE IF (IPLAC.EQ.21) THEN
 214 : *    ACIER_UNI
 215 :                    MATEPL=40
 216 :                    INMAT=INMAT+1
 217 :                ELSE IF (IPLAC.EQ.51) THEN
 218 : *    ANCRAGE_ACIER
 219 :                    MATEPL=93
 220 :                    INMAT=INMAT+1
 221 : *
 222 : *    SECTION
 223 : *                  MATEPL=41  VOIR CI DESSUS
 224 : *
 225 :                ELSE IF (IPLAC.EQ.23) THEN
 226 : *    OTTOSEN (BETON)
 227 :                    MATEPL=42
 228 :                    INMAT=INMAT+1
 229 :                ELSE IF (IPLAC.EQ.24) THEN
 230 : *    MAZARS_FIB
 231 :                    MATEPL=46
 232 :                    INMAT=INMAT+1
 233 :                ELSE IF (IPLAC.EQ.25) THEN
 234 : *    AMADEI_SAEB
 235 :                    MATEPL=47
 236 :                    INMAT=INMAT+1
 237 :                ELSE IF (IPLAC.EQ.26) THEN
 238 : *    HUJEUX
 239 :                    MATEPL=48
 240 :                    INMAT=INMAT+1
 241 :                ELSE IF (IPLAC.EQ.27) THEN
 242 : *    STEINBERG COCHRAN GUINAN
 243 :                    MATEPL=49
 244 :                    INMAT=INMAT+1
 245 :                ELSE IF (IPLAC.EQ.28) THEN
 246 : *    ZERILLI ARMSTRONG
 247 :                    MATEPL=5
 248 :                    INMAT=INMAT+1
 249 :                ELSE IF (IPLAC.EQ.29) THEN
 250 : *    PRESTON TONKS WALLACE
 251 :                    MATEPL=52
 252 :                    INMAT=INMAT+1
 253 :                ELSE IF (IPLAC.EQ.30) THEN
 254 : *    BETOCYCL
 255 :                    MATEPL=54
 256 :                    INMAT=INMAT+1
 257 :                ELSE IF (IPLAC.EQ.31) THEN
 258 : *    ROTATING CRACK
 259 :                    MATEPL=55
 260 :                    INMAT=INMAT+1
 261 :                ELSE IF (IPLAC.EQ.32) THEN
 262 : *    JOINT_SOFT
 263 :                    MATEPL=56
 264 :                    INMAT=INMAT+1
 265 :                ELSE IF (IPLAC.EQ.49) THEN
 266 : *    ANCRAGE_ELIGEHAUSEN
 267 :                    MATEPL=91
 268 :                    INMAT=INMAT+1
 269 :                ELSE IF (IPLAC.EQ.69) THEN
 270 : *    BILI_EFFX
 271 :                    MATEPL=150
 272 :                    INMAT=INMAT+1
 273 :                ELSE IF (IPLAC.EQ.33) THEN
 274 : *    BILI_MOMY
 275 :                    MATEPL=57
 276 :                    INMAT=INMAT+1
 277 :                ELSE IF (IPLAC.EQ.34) THEN
 278 : *    BILI_EFFZ
 279 :                    MATEPL=58
 280 :                    INMAT=INMAT+1
 281 :                ELSE IF (IPLAC.EQ.35) THEN
 282 : *    TAKEMO_MOMY
 283 :                    MATEPL=59
 284 :                    INMAT=INMAT+1
 285 :                ELSE IF (IPLAC.EQ.36) THEN
 286 : *    TAKEMO_EFFZ
 287 :                    MATEPL=60
 288 :                    INMAT=INMAT+1
 289 :                ELSE IF (IPLAC.EQ.37) THEN
 290 : *    BETON_INSA
 291 :                    MATEPL=66
 292 :                    INMAT=INMAT+1
 293 :                ELSE IF (IPLAC.EQ.38) THEN
 294 : *    ECROUIS_INSA
 295 :                    MATEPL=67
 296 :                    INMAT=INMAT+1
 297 :                ELSE IF (IPLAC.EQ.39) THEN
 298 : *    PARFAIT_INSA
 299 :                    MATEPL=68
 300 :                    INMAT=INMAT+1
 301 :                ELSE IF (IPLAC.EQ.40) THEN
 302 : *    ALONSO
 303 :                    MATEPL=69
 304 :                    INMAT=INMAT+1
 305 :                ELSE IF (IPLAC.EQ.41) THEN
 306 : *    PAKZAD
 307 :                    MATEPL=71
 308 :                    INMAT=INMAT+1
 309 :                ELSE IF (IPLAC.EQ.42) THEN
 310 : *    INFILL_UNI
 311 :                    MATEPL=72
 312 :                    INMAT=INMAT+1
 313 :                ELSE IF (IPLAC.EQ.43) THEN
 314 : *    CISAIL_NL
 315 :                    MATEPL=73
 316 :                    INMAT=INMAT+1
 317 :                ELSE IF (IPLAC.EQ.44) THEN
 318 : *   FRAGILE_UNI
 319 :                    MATEPL=78
 320 :                    INMAT=INMAT+1
 321 :                ELSE IF (IPLAC.EQ.45) THEN
 322 : *   BETON_BAEL
 323 :                    MATEPL=79
 324 :                    INMAT=INMAT+1
 325 :                ELSE IF (IPLAC.EQ.46) THEN
 326 : *  PARFAIT_UNI
 327 :                    MATEPL=80
 328 :                    INMAT=INMAT+1
 329 :                ELSE IF (IPLAC.EQ.50) THEN
 330 : *  ANCRAGE_PARFAIT
 331 :                    MATEPL=92
 332 :                    INMAT=INMAT+1
 333 : *
 334 :                ELSE IF (IPLAC.EQ.47) THEN
 335 : *  STRUT_UNI
 336 :                    MATEPL=83
 337 :                    INMAT=INMAT+1
 338 :                ELSE IF (IPLAC.EQ.48) THEN
 339 : *    HINTE
 340 :                    MATEPL= 89
 341 :                    INMAT=INMAT+1                   
 342 :                ELSE IF (IPLAC.EQ.52) THEN
 343 : *    BETON_URGC
 344 :                    MATEPL= 99
 345 :                    INMAT=INMAT+1     
 346 :                ELSE IF (IPLAC.EQ.53) THEN
 347 : *    UNILATERAL
 348 :                    MATEPL=104
 349 :                    INMAT=INMAT+1            
 350 : *
 351 : * BCN
 352 :                ELSE IF (IPLAC.EQ.54) THEN
 353 : c      MRS_LADE
 354 :                    MATEPL=111
 355 :                    INMAT=INMAT+1
 356 :                ELSE IF (IPLAC.EQ.55) THEN
 357 : c      J2
 358 :                    MATEPL=112
 359 :                    INMAT=INMAT+1
 360 :                ELSE IF (IPLAC.EQ.56) THEN
 361 : c      RH_COULOMB
 362 :                    MATEPL=113
 363 :                    INMAT=INMAT+1
 364 :                ELSE IF (IPLAC.EQ.57) THEN
 365 : c      VMT_FEFP
 366 :                    MATEPL=114
 367 :                    INMAT=INMAT+1
 368 :                ELSE IF (IPLAC.EQ.58) THEN
 369 : c      RHMC_FEFP
 370 :                    MATEPL=115
 371 :                    INMAT=INMAT+1
 372 :                ELSE IF (IPLAC.EQ.59) THEN
 373 : c      POWDER_FEFP
 374 :                    MATEPL=116
 375 :                    INMAT=INMAT+1
 376 :                ELSE IF (IPLAC.EQ.60) THEN
 377 : c      POWDER_FEFP
 378 :                    MATEPL=117
 379 :                    INMAT=INMAT+1
 380 : * BCN
 381 : *
 382 :                ELSE IF (IPLAC.EQ.61) THEN
 383 : *      JOINT_COAT
 384 :                    MATEPL=119
 385 :                    INMAT=INMAT+1
 386 : 
 387 :                ELSE IF (IPLAC.EQ.62) THEN
 388 : *     CONCRETE_UNI
 389 :                    MATEPL=123
 390 :                    INMAT=INMAT+1
 391 :                ELSE IF (IPLAC.EQ.63) THEN
 392 : *  JOINT_COAT
 393 : 
 394 :                    MATEPL=126
 395 :                    INMAT=INMAT+1
 396 :                ELSE IF (IPLAC.EQ.64) THEN
 397 : *    INCO
 398 :                    MATEPL=129
 399 :                    INMAT=INMAT+1
 400 :                 ELSE IF (IPLAC.EQ.65) THEN
 401 : *    DRUCKER_PRAGER2
 402 :                    MATEPL= 140
 403 :                    INMAT=INMAT+1
 404 :                 ELSE IF (IPLAC.EQ.67) THEN 
 405 : *    INTIMP 
 406 :                    MATEPL= 145 
 407 :                    INMAT=INMAT+1 
 408 :                 ELSE IF (IPLAC.EQ.68) THEN 
 409 : *    INTJOI 
 410 :                    MATEPL= 146 
 411 :                    INMAT=INMAT+1
 412 :                 ELSE IF (IPLAC.EQ.70) THEN
 413 : *    ISS_GRANGE
 414 :                    MATEPL= 151
 415 :                    INMAT=INMAT+1  
 416 :                 ELSE IF (IPLAC.EQ.71) THEN
 417 : *    RUP_THER
 418 :                    MATEPL= 152
 419 :                    INMAT=INMAT+1   
 420 : C +BR
 421 :                 ELSE IF (IPLAC.EQ.72) THEN
 422 : *    RICBET_UNI
 423 :                    MATEPL= 160
 424 :                    INMAT=INMAT+1 
 425 :   
 426 :                 ELSE IF (IPLAC.EQ.73) THEN
 427 : *    BA1D
 428 :                    MATEPL= 147
 429 :                    INMAT=INMAT+1     
 430 : C -BR
 431 :  
 432 :                 ENDIF
 433 : 
 434 :             ELSE
 435 : *
 436 : *              Option par defaut
 437 : *
 438 :                MATEPL=5
 439 :             ENDIF
 440 :             GOTO 150
 441 : *
 442 : *           Comportement FLUAGE
 443 : *           -------------------
 444 :  200        CONTINUE
 445 :             IF (NMAT.GE.INMAT) THEN
 445 :                CALL MODFLU(MOMODL,NMOD)
 445 :                CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
 446 :                IF (IPLAC.EQ.0 ) THEN
 447 : *    NORTON
 448 :                   MATEPL=19
 449 :                ELSE IF (IPLAC.EQ.1 ) THEN
 450 : *    NORTON
 451 :                   MATEPL=19
 452 :                   INMAT=INMAT+1
 453 :                ELSE IF (IPLAC.EQ.2 ) THEN
 454 : *    BLACKBURN
 455 :                   MATEPL=20
 456 :                   INMAT=INMAT+1
 457 :                ELSE IF (IPLAC.EQ.3 ) THEN
 458 : *    RCCMR-316
 459 :                   MATEPL=22
 460 :                   INMAT=INMAT+1
 461 :                ELSE IF (IPLAC.EQ.4 ) THEN
 462 : *    RCCMR-304
 463 :                   MATEPL=23
 464 :                   INMAT=INMAT+1
 465 :                ELSE IF (IPLAC.EQ.5 ) THEN
 466 : *    LEMAITRE
 467 :                   MATEPL=24
 468 :                   INMAT=INMAT+1
 469 :                ELSE IF (IPLAC.EQ.6 ) THEN
 470 : *    POLYNOMIAL
 471 :                   MATEPL=21
 472 :                   INMAT=INMAT+1
 473 :                ELSE IF (IPLAC.EQ.7 ) THEN
 474 : *    BLACKBURN_2
 475 :                   MATEPL=61
 476 :                   INMAT=INMAT+1
 477 :                ELSE IF (IPLAC.EQ.8 ) THEN
 478 : *    CERAMIQUE
 479 :                   MATEPL=65
 480 :                   INMAT=INMAT+1
 481 :                ELSE IF (IPLAC.EQ.9) THEN
 482 : *    MAXWELL
 483 :                          MATEPL=74
 484 :                   INMAT=INMAT+1
 485 :                ELSE IF (IPLAC.EQ.10 ) THEN
 486 : *    COMETE 
 487 :                   MATEPL=84
 488 :                   INMAT=INMAT+1
 489 :                ELSE IF (IPLAC.EQ.11 ) THEN
 490 : *    X11     
 491 :                   MATEPL=85
 492 :                   INMAT=INMAT+1
 493 :                ELSE IF (IPLAC.EQ.12 ) THEN
 494 : *    CCPL    
 495 :                   MATEPL=86
 496 :                   INMAT=INMAT+1
 497 :                ELSE IF (IPLAC.EQ.13 ) THEN
 498 : *    BPEL_RELAX
 499 :                   MATEPL=95
 500 :                   INMAT=INMAT+1
 501 :                ELSE IF (IPLAC.EQ.14 ) THEN
 502 : *    BETON_URGC
 503 :                   MATEPL=101
 504 :                   INMAT=INMAT+1
 505 :                ELSE IF (IPLAC.EQ.15 ) THEN
 506 : *    SODERBERG    
 507 :                   MATEPL=102
 508 :                   INMAT=INMAT+1
 509 :               ELSE IF (IPLAC.EQ.16 ) THEN
 510 : *    MAXOTT    
 511 :                   MATEPL=106
 512 :                   INMAT=INMAT+1
 513 :               ELSE IF (IPLAC.EQ.17 ) THEN
 514 : *    FBB1
 515 :                   MATEPL=127
 516 :                   INMAT=INMAT+1
 517 :               ELSE IF (IPLAC.EQ.18 ) THEN
 518 : *    FBB2
 519 :                   MATEPL=128
 520 :                   INMAT=INMAT+1
 521 :                 ENDIF
 522 :             ELSE
 523 :                MATEPL=19
 524 :             ENDIF
 525 :             GOTO 150
 526 : *
 527 : *           Comportement VISCOPLASTIQUE
 528 : *           ---------------------------
 529 :  300        CONTINUE
 530 :             IF (NMAT.GE.INMAT) THEN
 530 :                CALL MODVIS(MOMODL,NMOD)
 530 :                CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
 531 :                IF (IPLAC.EQ.0 ) THEN
 532 : *    CHABOCHE
 533 :                   MATEPL=25
 534 :                ELSE IF (IPLAC.EQ.1 ) THEN
 535 : *    GUIONNET
 536 :                   MATEPL=17
 537 :                   INMAT=INMAT+1
 538 :                ELSE IF (IPLAC.EQ.2 ) THEN
 539 : *    CHABOCHE
 540 :                   MATEPL=25
 541 :                   INMAT=INMAT+1
 542 :                ELSE IF (IPLAC.EQ.3 ) THEN
 543 : *    VISCODOMMAGE
 544 :                   MATEPL=29
 545 :                   INMAT=INMAT+1
 546 :                ELSE IF (IPLAC.EQ.5 ) THEN
 547 : *    POUDRE_A
 548 :                   MATEPL=44
 549 :                   INMAT=INMAT+1
 550 :                ELSE IF (IPLAC.EQ.6 ) THEN
 551 : *    POUDRE_B
 552 :                   MATEPL=45
 553 :                   INMAT=INMAT+1
 554 :                ELSE IF (IPLAC.EQ.7 ) THEN
 555 : *    OHNO
 556 :                   MATEPL=25
 557 :                   INMAT=INMAT+1
 558 :                ELSE IF (IPLAC.EQ.8 ) THEN
 559 : *    DDI
 560 :                   MATEPL=63
 561 :                   INMAT=INMAT+1
 562 :                ELSE IF (IPLAC.EQ.9 ) THEN
 563 : *    KOCK
 564 :                   MATEPL=70
 565 :                   INMAT=INMAT+1
 566 :                ELSE IF (IPLAC.EQ.10 ) THEN
 567 : *    NOUAILLAS_A
 568 :                   MATEPL=76
 569 :                   INMAT=INMAT+1
 570 :                ELSE IF (IPLAC.EQ.11 ) THEN
 571 : *    NOUAILLAS_B
 572 :                   MATEPL=77
 573 :                   INMAT=INMAT+1
 574 :                ELSE IF (IPLAC.EQ.12 ) THEN                                       
 575 : *    VISK2                                                            
 576 :                   MATEPL=82                                                     
 577 :                   INMAT=INMAT+1 
 578 :                ELSE IF (IPLAC.EQ.13 ) THEN                                       
 579 : *    VISCOHINTE                                                                  
 580 :                   MATEPL=90                                                     
 581 :                   INMAT=INMAT+1
 582 :                ELSE IF (IPLAC.EQ.14 ) THEN                                       
 583 : *    MISTRAL                                                            
 584 :                   MATEPL=94                                                     
 585 :                   INMAT=INMAT+1                                                   
 586 :                ELSE IF (IPLAC.EQ.15 ) THEN
 587 : *    BETON_URGC
 588 :                   MATEPL=100
 589 :                   INMAT=INMAT+1                                                   
 590 :                ELSE IF (IPLAC.EQ.16 ) THEN
 591 : *    LEMENDO
 592 :                   MATEPL=103
 593 :                   INMAT=INMAT+1                                                   
 594 :                ELSE IF (IPLAC.EQ.17 ) THEN
 595 : *    FLUNOR2
 596 :                   MATEPL=105
 597 :                   INMAT=INMAT+1                                                   
 598 :                ELSE IF (IPLAC.EQ.18 ) THEN
 599 : *    GATT_MONERIE
 600 :                   MATEPL=107
 601 :                   INMAT=INMAT+1
 602 :                ELSE IF (IPLAC.EQ.19 ) THEN
 603 : *    UO2
 604 :                   MATEPL=108
 605 :                   INMAT=INMAT+1
 606 :                ELSE IF (IPLAC.EQ.20 ) THEN
 607 : *    BETON_URGC_ENDO
 608 :                   MATEPL=122
 609 :                   INMAT=INMAT+1
 610 :                ELSE IF (IPLAC.EQ.21 ) THEN
 611 : *    DOUBLE ENDOMMAGEMENT
 612 :                   MATEPL=130
 613 :                   INMAT=INMAT+1
 614 :                ELSE IF (IPLAC.EQ.22 ) THEN
 615 : *    CHAB_SINH_R
 616 :                   MATEPL=136
 617 :                   INMAT=INMAT+1
 618 :                ELSE IF (IPLAC.EQ.23 ) THEN
 619 : *    CHAB_SINH_X
 620 :                   MATEPL=137
 621 :                   INMAT=INMAT+1
 622 :                ELSE IF (IPLAC.EQ.24 ) THEN
 623 : *    CHAB_NOR_R
 624 :                   MATEPL=138
 625 :                   INMAT=INMAT+1
 626 :                ELSE IF (IPLAC.EQ.25 ) THEN
 627 : *    CHAB_NOR_X
 628 :                   MATEPL=139
 629 :                   INMAT=INMAT+1
 630 :                ELSE IF (IPLAC.EQ.26 ) THEN
 631 : *    PELLET
 632 :                   MATEPL=142
 633 :                   INMAT=INMAT+1
 634 :                ELSE IF (IPLAC.EQ.27 ) THEN
 635 : *    FLUTRA
 636 :                   MATEPL=143
 637 :                   INMAT=INMAT+1
 638 :                ELSE IF (IPLAC.EQ.28 ) THEN
 639 : *    SYCO1
 640 :                   MATEPL=153
 641 :                   INMAT=INMAT+1
 642 :                ELSE IF (IPLAC.EQ.29 ) THEN
 643 : *    SYCO2
 644 :                   MATEPL=154
 645 :                   INMAT=INMAT+1
 646 :                ENDIF
 647 :             ELSE
 648 :                MATEPL=25
 649 :             ENDIF
 650 :             GOTO 150
 651 : *
 652 : *           Comportement type ENDOMMAGEMENT
 653 : *           ---------------------------
 654 :  400        CONTINUE
 655 :             IF (NMAT.GE.INMAT) THEN
 655 :                CALL MODEND(MOMODL,NMOD)
 655 :                CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
 656 :                IF (IPLAC.EQ.0 ) THEN
 657 : *    MAZARS ( par défaut)
 658 :                   MATEPL=30
 659 :                ELSE IF (IPLAC.EQ.1 ) THEN
 660 : *    MAZARS
 661 :                   MATEPL=30
 662 :                   INMAT=INMAT+1
 663 :                ELSE IF (IPLAC.EQ.2 ) THEN
 664 : *    UNILATERAL
 665 :                   MATEPL=31
 666 :                   INMAT=INMAT+1
 667 :                ELSE IF (IPLAC.EQ.3 ) THEN
 668 : *    ROTATING_CRACK
 669 :                   MATEPL=37
 670 :                   INMAT=INMAT+1
 671 :                ELSE IF (IPLAC.EQ.4 ) THEN
 672 : *    SIC_SIC
 673 :                    MATEPL=88
 674 :                    INMAT=INMAT+1
 675 :                ELSE IF (IPLAC.EQ.5 ) THEN
 676 : *    MICROPLANS
 677 :                    MATEPL=96
 678 :                    INMAT=INMAT+1
 679 :                ELSE IF (IPLAC.EQ.6 ) THEN
 680 : *    VISCOUNILATERAL
 681 :                    MATEPL=97
 682 :                    INMAT=INMAT+1
 683 :                ELSE IF (IPLAC.EQ.7 ) THEN
 684 : *    MICROISO
 685 :                    MATEPL=98
 686 :                    INMAT=INMAT+1
 687 : * BCN
 688 : 
 689 :                ELSE IF (IPLAC.EQ.8 ) THEN
 690 : *    MODIFIED VON MISES
 691 :                    MATEPL=118
 692 :                    INMAT=INMAT+1
 693 : * BCN                                 
 694 :                ELSE IF (IPLAC.EQ.9) THEN
 695 : *    CRUSH-CRACK
 696 :                    MATEPL=124
 697 :                    INMAT=INMAT+1
 698 : * RDj
 699 : 
 700 :                ELSE IF (IPLAC.EQ.10) THEN
 701 : *    DAMAGE_TC - R. Faria & J. Oliver
 702 :                    MATEPL= 125
 703 :                    INMAT=INMAT+1
 704 : 
 705 :                ELSE IF (IPLAC.EQ.11) THEN
 706 : *    SICSCAL
 707 :                    MATEPL= 131
 708 :                    INMAT=INMAT+1
 709 :                ELSE IF (IPLAC.EQ.12) THEN
 710 : *    SICTENS
 711 :                    MATEPL= 132
 712 :                    INMAT=INMAT+1
 713 :                ELSE IF (IPLAC.EQ.13) THEN
 714 : *    DESMORAT
 715 :                    MATEPL=134
 716 :                    INMAT=INMAT+1 
 717 :                ELSE IF (IPLAC.EQ.14) THEN
 718 : *    Fatigue damage model (fatsin)             
 719 :                    MATEPL=141 
 720 :                    INMAT=INMAT+1                    
 721 :                ELSE IF (IPLAC.EQ.15) THEN 
 722 : *    RICRAG              
 723 :                    MATEPL=144  
 724 :                    INMAT=INMAT+1 
 725 : C +BR
 726 :                ELSE IF (IPLAC.EQ.16) THEN 
 727 : *    GLRC_DM              
 728 :                    MATEPL=157  
 729 :                    INMAT=INMAT+1   
 730 :                ELSE IF (IPLAC.EQ.17) THEN 
 731 : *    RICBET              
 732 :                    MATEPL=158  
 733 :                    INMAT=INMAT+1   
 734 :                ELSE IF (IPLAC.EQ.18) THEN 
 735 : *    RICCOQ              
 736 :                    MATEPL=159  
 737 :                    INMAT=INMAT+1   
 738 : C -BR
 739 : 
 740 :   
 741 :                ENDIF
 742 : 
 743 :             ELSE
 744 :                MATEPL=30
 745 :             ENDIF
 746 :             GOTO 150
 747 : *
 748 : *           Comportement type PLASTIQUE_ENDOM(MAGEMENT)
 749 : *           -------------------------------------------
 750 :  500        CONTINUE
 751 :             IF (NMAT.GE.INMAT) THEN
 751 :                CALL MODPLE(MOMODL,NMOD)
 751 :                CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
 752 :                IF (IPLAC.EQ.0 ) THEN
 753 : *    PSURY ( par défaut)
 754 :                   MATEPL=51
 755 :                ELSE IF (IPLAC.EQ.1 ) THEN
 756 : *    PSURY
 757 :                   MATEPL=51
 758 :                   INMAT=INMAT+1
 759 :                ELSE IF (IPLAC.EQ.2 ) THEN
 760 : *    ROUSSELIER
 761 :                   MATEPL=62
 762 :                   INMAT=INMAT+1
 763 :                ELSE IF (IPLAC.EQ.3 ) THEN
 764 : *    GURSON2
 765 :                   MATEPL=64
 766 :                   INMAT=INMAT+1
 767 :                ELSE IF (IPLAC.EQ.4 ) THEN
 768 : *    DRAGON
 769 :                   MATEPL=75
 770 :                   INMAT=INMAT+1
 771 :                ELSE IF (IPLAC.EQ.5 ) THEN
 772 : *    BETON_URGC
 773 :                   MATEPL=120
 774 :                   INMAT=INMAT+1
 775 :                ELSE IF (IPLAC.EQ.6 ) THEN
 776 : *    BETON_INSA
 777 :                   MATEPL=121
 778 :                   INMAT=INMAT+1
 779 :                ELSE IF (IPLAC.EQ.7 ) THEN
 780 : *    BETON_DYNAR_LMT
 781 :                   MATEPL=133
 782 :                   INMAT=INMAT+1
 783 :                ELSE IF (IPLAC.EQ.8) THEN
 784 : *    ENDO_PLAS
 785 :                    MATEPL = 135
 786 :                    INMAT = INMAT+1
 787 :                ELSE IF (IPLAC.EQ.9) THEN
 788 : *    GERNAY
 789 :                    MATEPL = 155
 790 :                    INMAT = INMAT+1
 791 :                ELSE IF (IPLAC.EQ.10) THEN
 792 : *    WELLS
 793 :                    MATEPL = 156
 794 :                    INMAT = INMAT+1
 795 :                ENDIF
 796 :             ELSE
 797 :                MATEPL=51
 798 :             ENDIF
 799 :             GOTO 150
 800 : *
 801 : *           Comportement type NON_LINEAIRE
 802 : *           ------------------------------
 803 :  600        CONTINUE
 804 :             IF (NMAT.GE.INMAT) THEN
 804 :                CALL MODENL(MOMODL,NMOD)
 804 :                CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
 805 :                IF (IPLAC.EQ.1 ) THEN
 806 : *  EQUIPLAS
 807 :                   MATEPL=87
 808 :                ENDIF
 809 :             ENDIF
 810 :             GO TO 150
 811 : *
 812 : *           Comportement type VISCO_EXTERNE
 813 : *           -------------------------------
 814 :  700        CONTINUE
 815 : *           Tous les modeles 'VISCO_EXTERNE' ont les 4 memes variables
 816 : *           internes pre-definies
 817 :             MATEPL = -101
 818 :             GO TO 150
 819 :          ENDIF
 820 :          GOTO 150
 821 :       ENDIF
 822 :       GOTO 99
 823 : *
 824 :  150  CONTINUE
 825 :       IF (MATEPL.EQ.19.OR.MATEPL.EQ.21) THEN
 825 :          CALL IDVAR1(MATEPL,MFR,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 826 : C
 827 :       ELSE IF (MATEPL.EQ.10.OR.MATEPL.EQ.11) THEN
 827 :          CALL IDVA13(MFR,IPMODL,IPCOMP,NBROBL,NBRFAC,MATEPL)
 828 : C
 829 :       ELSE IF (MATEPL.EQ.20.OR.MATEPL.EQ.22.OR.
 830 :      .         MATEPL.EQ.23.OR.MATEPL.EQ.61) THEN
 830 :          CALL IDVAR2(MATEPL,MFR,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 831 : C
 832 :       ELSE IF (MATEPL.EQ.84.OR.MATEPL.EQ.85.OR.
 833 :      .         MATEPL.EQ.86.OR.MATEPL.EQ.102) THEN
 833 :          CALL IDVFLO(MATEPL,MFR,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 834 : C
 835 :       ELSE IF (MATEPL.EQ.24.OR.MATEPL.EQ.74.OR.MATEPL.EQ.95) THEN
 835 :          CALL IDVAR3(MATEPL,MFR,IFOUR,IPCOMP,NBROBL,NBRFAC)
 836 : C
 837 :       ELSE IF (MATEPL.EQ.25.OR.MATEPL.EQ.63.OR.MATEPL.EQ.70.OR.
 838 :      &         MATEPL.EQ.94.OR.MATEPL.EQ.107.OR.
 839 :      &         MATEPL.EQ.108.OR.MATEPL.EQ.130.OR.
 840 :      &     MATEPL.EQ.136.OR.MATEPL.EQ.137.OR.
 841 :      &         MATEPL.EQ.138.OR.MATEPL.EQ.139.OR. 
 842 :      &         MATEPL.EQ.153.OR.MATEPL.EQ.154) THEN
 842 :          CALL IDVAR4(MATEPL,MFR,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 843 : C
 844 :       ELSE IF (MATEPL.EQ.30.OR.MATEPL.EQ.31.OR.MATEPL.EQ.37.OR.
 845 :      &         MATEPL.EQ.88.OR.
 846 :      &         MATEPL.EQ.96.OR.MATEPL.EQ.97.OR.MATEPL.EQ.98.OR.
 847 :      &         MATEPL.EQ.118.OR.MATEPL.EQ.124.OR.MATEPL.EQ.125.OR.
 848 :      &         MATEPL.EQ.131.OR.MATEPL.EQ.132.OR.MATEPL.EQ.134.OR.
 849 :      &         MATEPL.EQ.141.OR.MATEPL.EQ.144.OR.
 850 :      &         MATEPL.EQ.157.OR.MATEPL.EQ.158.OR.
 851 :      &         MATEPL.EQ.159) THEN
 851 :          CALL IDVAR5(MATEPL,MFR,IFOUR,0,IPCOMP,NBROBL,NBRFAC)
 852 : C
 853 : C     modeles ISPRA decembre 95 & BILIN_EFFX 2010 & ISS_GRANGE & RUP_THER
 854 : C
 855 :       ELSE IF ((MATEPL.GE.54.AND.MATEPL.LE.60).OR.
 856 :      &         (MATEPL.EQ.72.OR.MATEPL.EQ.73.OR.
 857 :      &          MATEPL.EQ.91.OR.MATEPL.EQ.119.OR.MATEPL.EQ.126
 858 :      &      .OR.MATEPL.EQ.129.OR.MATEPL.EQ.150.OR.MATEPL.EQ.151
 859 :      &      .OR.MATEPL.EQ.152.OR.MATEPL.EQ.155.OR.MATEPL.EQ.156
 860 :      &      .OR.MATEPL.EQ.160)) THEN
 860 :          CALL IDVAR7(MATEPL,MFR,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 861 : C
 862 : C     modeles Nouaillas
 863 : C
 864 :       ELSE IF (MATEPL.EQ.76) THEN
 864 :          CALL IDVAR8(MATEPL,MFR,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 865 :       ELSE IF (MATEPL.EQ.77) THEN
 865 :          CALL IDVAR9(MATEPL,MFR,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 866 : C  visk2
 867 :       ELSE IF (MATEPL.EQ.82) THEN
 868 :          
 868 :          CALL IDVA10(MATEPL,MFR,MELE,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 869 : C
 870 :       ELSE IF (MATEPL.EQ.89.OR.MATEPL.EQ.90) THEN
 870 :          CALL IDVA11(MATEPL,MFR,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 871 : * BCN plastic and viscoplastic models
 872 :       ELSE IF (    MATEPL.EQ.111
 873 :      .         .OR.MATEPL.EQ.112.OR.MATEPL.EQ.113
 874 :      .         .OR.MATEPL.EQ.114.OR.MATEPL.EQ.115
 875 :      .         .OR.MATEPL.EQ.116.OR.MATEPL.EQ.117) THEN
 875 :          CALL IDVA12(MATEPL,MFR,MELE,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 876 : * BCN
 877 :       ELSE
 878 : *
 879 : *    ici tous les autres modeles
 880 : *
 880 :          CALL IDVAR6(MATEPL,MFR,MELE,IFOUR,NPINT,IPCOMP,NBROBL,NBRFAC)
 881 :       ENDIF
 882 :       nomid = ipcomp
 883 :       GO TO 999
 884 : 
 885 : C*=====================================================================*
 886 : C*= Autres formulations que 'MECANIQUE'                               =*
 887 : C*=====================================================================*
 888 :  1300 CONTINUE
 889 :       IF (FORMOD(1).EQ.'LIAISON') THEN
 890 :         IF (CMATEE.EQ.'NEWMOD') THEN
 891 :           NBROBL = 1
 892 :           NBRFAC = 0
 893 :           SEGINI,NOMID
 894 :           LESOBL(1) = 'FLIA'
 895 :         ELSE
 896 :           NBROBL = 2
 897 :           NBRFAC = 3
 898 :           SEGINI,NOMID
 899 :           LESOBL(1) = 'FLIA'
 900 :           LESOBL(2) = 'SLIA'
 901 :           LESFAC(1) = 'VAEN'
 902 :           LESFAC(2) = 'VARE'
 903 :           LESFAC(3) = 'VAMA'
 904 :         ENDIF
 905 :         IPCOMP = NOMID
 906 :         SEGDES,NOMID
 907 :         GOTO 999
 908 :       ENDIF
 909 :       GOTO 99
 910 : 
 911 : C*=====================================================================*
 912 : C*= Autres cas : segment NOMID vide                                   =*
 913 : C*=====================================================================*
 914 :  99   CONTINUE
 915 :       SEGINI NOMID
 916 :       IPCOMP=NOMID
 917 :       SEGDES NOMID
 918 : 
 919 : 999   CONTINUE
 920 : *
 921 : * pour les elements xfem on utilise un MCHELM de TYPE 'ENRICHIS' avec
 922 : * pour composantes H F1 F2 ... contenant des pointeurs vers des LISTreel
 923 : * dont les valeurs sont les level set aux noeuds de l'EF enrichi
 924 : * =>  on supprime cette partie (BP, le 23.09.2009)
 925 : *      IF ( MELE.EQ.263) then
 926 : *      ENDIF
 927 : 
 928 :       RETURN
 929 :       END
 930 : 
 931 :  
 932 :  
 933 :  
 934 :  
 935 :  
 936 :  
 937 :  
 938 :  
 939 :  
 940 :  
 941 :  

© Cast3M 2003 - All rights reserved.
Disclaimer