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