Download idmatr.eso

Back to the list

   1 : C IDMATR    SOURCE    BP208322  13/10/02    21:15:10     7830           
   2 : 
   3 :       SUBROUTINE IDMATR(MFR,IPMODL,IPNOMC,NBROBL,NBRFAC)
   4 : 
   5 : *--------------------------------------------------------------------*
   6 : *       Noms de composantes de mat{riaux                             *
   7 : *--------------------------------------------------------------------*
   8 : *                                                                    *
   9 : *  ENTREES:                                                          *
  10 : *     MFR      Num{ro de formulation                                 *
  11 : *     IPMODL   objet mod}le {l{mentaire ( segment actif )            *
  12 : *                                                                    *
  13 : *  SORTIES:                                                          *
  14 : *     IPNOMC   pointeur sur les listes de noms de composantes        *
  15 : *              obligatoires et facultatives                          *
  16 : *                                                                    *
  17 : *     NBROBL   nombre de composantes obligatoires                    *
  18 : *                                                                    *
  19 : *     NBRFAC   nombre de composantes facultatives                    *
  20 : *                                                                    *
  21 : *--------------------------------------------------------------------*
  22 : *
  23 :       IMPLICIT INTEGER(I-N)
  24 :       IMPLICIT REAL*8(A-H,O-Z)
  25 : 
  26 : -INC CCOPTIO
  27 : -INC SMLMOTS
  28 : -INC SMMODEL
  29 :       POINTEUR NOMID1.NOMID ,nomid2.nomid
  30 : *
  31 :       LOGICAL lozut
  32 :       CHARACTER*16 MOMODL(100)
  33 : *
  34 :       IMODEL=IPMODL
  35 : * Le segment existe-t-il deja?
  36 :       IF (lnomid(6).NE.0) THEN
  37 :         nomid = lnomid(6)
  38 :         SEGACT,nomid
  39 :         nbrobl = lesobl(/2)
  40 :         nbrfac = lesfac(/2)
  41 :         SEGDES,nomid
  42 :         IF (nbrobl+nbrfac.EQ.0) GOTO 765
  43 :         SEGINI,nomid1=nomid
  44 :         SEGDES,nomid1
  45 :         ipnomc=nomid1
  46 :         RETURN
  47 :       ENDIF
  48 :  765  CONTINUE
  49 : 
  50 :       NBROBL=0
  51 :       NBRFAC=0
  52 :       NOMID=0
  53 :       MOOBL=0
  54 :       MOFAC=0
  55 :       JGN=8
  56 : *
  57 :       NMAT=MATMOD(/2)
  58 :       NFOR=FORMOD(/2)
  59 :       MELE=NEFMOD
  60 : 
  61 : *--------------------------------------------------------------------
  62 : *     CAS DE LA FORMULATION THERMOHYDRIQUE
  63 : *--------------------------------------------------------------------
  63 :       CALL PLACE(FORMOD,NFOR,ithehy,'THERMOHYDRIQUE')      
  64 :       IF( ithehy.ne.0) then
  65 :         if ( matmod(1).eq.'SCHREFLER') then
  66 :            JGM = 20
  67 :            SEGINI MLMOTS
  68 :            MOOBL=MLMOTS
  69 :            MOTS(1)='KGG'
  70 :            MOTS(2)='KGC'  
  71 :            MOTS(3)='KGT' 
  72 :            MOTS(4)='KCG' 
  73 :            MOTS(5)='KCC' 
  74 :            MOTS(6)='KCT' 
  75 :            MOTS(7)='KTG' 
  76 :            MOTS(8)='KTC'
  77 :            MOTS(9)='KTT'  
  78 :            MOTS(10)='CGG' 
  79 :            MOTS(11)='CGC' 
  80 :            MOTS(12)='CGT' 
  81 :            MOTS(13)='CCG' 
  82 :            MOTS(14)='CCC' 
  83 :            MOTS(15)='CCT'
  84 :            MOTS(16)='CTG'  
  85 :            MOTS(17)='CTC' 
  86 :            MOTS(18)='CTT' 
  87 :            MOTS(19)='KTGG'  
  88 :            MOTS(20)='KTCG' 
  89 :            GO TO 9999
  90 :         else 
  91 :            GO TO 99
  92 :         endif
  93 :       ENDIF       
  94 : *--------------------------------------------------------------------
  95 : *     CAS DE LA FORMULATION LIQUIDE ET ELEMENT DE RACCORD LITU
  96 : *--------------------------------------------------------------------
  96 :       CALL PLACE(FORMOD,NFOR,ILIQU,'LIQUIDE')
  97 :       IF (ILIQU.NE.0) THEN
  98 :         IF (MFR.NE.41.AND.MFR.NE.43) THEN
  99 :            JGM = 6
 100 :            SEGINI MLMOTS
 101 :            MOOBL=MLMOTS
 102 :            MOTS(1)='RHO '
 103 :            MOTS(2)='CSON'
 104 :            MOTS(3)='RORF'
 105 :            MOTS(4)='CREF'
 106 :            MOTS(5)='LCAR'
 107 :            MOTS(6)='G   '
 108 :            GOTO 9999
 109 :         ELSEIF (MFR.EQ.41) THEN
 110 :            JGM = 5
 111 :            SEGINI MLMOTS
 112 :            MOOBL=MLMOTS
 113 :            MOTS(1)='RHO '
 114 :            MOTS(2)='CSON'
 115 :            MOTS(3)='RORF'
 116 :            MOTS(4)='CREF'
 117 :            MOTS(5)='LCAR'
 118 :            GOTO 9999
 119 :         ELSE
 120 :            JGM = 3
 121 :            SEGINI MLMOTS
 122 :            MOOBL=MLMOTS
 123 :            MOTS(1)='RHO '
 124 :            MOTS(2)='LCAR'
 125 :            MOTS(3)='RORF'
 126 :            GOTO 9999
 127 :         ENDIF
 128 :       ENDIF
 129 : *--------------------------------------------------------------------
 130 : *     CAS DE LA FORMULATION THERMIQUE  ( I. E. CONDUCTION )
 131 : *     CAS DE LA FORMULATION DARCY
 132 : *--------------------------------------------------------------------
 132 :       CALL PLACE(FORMOD,NFOR,ITHER,'THERMIQUE')
 132 :       CALL PLACE(FORMOD,NFOR,IDARCY,'DARCY')
 133 :       ITHFL = ITHER + IDARCY
 134 :       IF (ITHFL.NE.0) THEN 
 134 :          CALL PLACE(MATMOD,NMAT,IORTH,'ORTHOTROPE')
 134 :          CALL PLACE(MATMOD,NMAT,IANIS,'ANISOTROPE')
 135 :          IF(IORTH.EQ.0.AND.IANIS.EQ.0)THEN
 136 :             JGM = 1
 137 :             SEGINI MLMOTS
 138 :             MOOBL=MLMOTS
 139 :             MOTS(1)='K   '
 140 :          ELSEIF ( IORTH.NE.0) THEN
 141 : *           ELEMENTS COQUES
 142 :             IF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
 143 :                JGM=5
 144 :                SEGINI MLMOTS
 145 :                MOOBL=MLMOTS
 146 :                MOTS(1)='K1  '
 147 :                MOTS(2)='K2  '
 148 :                MOTS(3)='K3  '
 149 :                MOTS(4)='V1X '
 150 :                MOTS(5)='V1Y '
 151 :             ELSEIF (MFR.EQ.1.OR.MFR.EQ.45) THEN
 152 : *              ELEMENTS MASSIFS
 153 :                IF (IDIM.EQ.2) THEN
 154 :                   IF (IFOMOD.EQ.1) THEN
 155 : *                    ELEMENT MASSIF DE FOURIER
 156 :                      JGM=5
 157 :                      SEGINI MLMOTS
 158 :                      MOOBL=MLMOTS
 159 :                      MOTS(1)='K1  '
 160 :                      MOTS(2)='K2  '
 161 :                      MOTS(3)='V1X '
 162 :                      MOTS(4)='V1Y '
 163 :                      MOTS(5)='K3  '
 164 :                   ELSE
 165 :                      JGM=4
 166 :                      SEGINI MLMOTS
 167 :                      MOOBL=MLMOTS
 168 :                      MOTS(1)='K1  '
 169 :                      MOTS(2)='K2  '
 170 :                      MOTS(3)='V1X '
 171 :                      MOTS(4)='V1Y '
 172 :                   ENDIF
 173 :                ELSEIF (IDIM.EQ.3) THEN
 174 :                   JGM=9
 175 :                   SEGINI MLMOTS
 176 :                   MOOBL=MLMOTS
 177 :                   MOTS(1)='K1  '
 178 :                   MOTS(2)='K2  '
 179 :                   MOTS(3)='K3  '
 180 :                   MOTS(4)='V1X '
 181 :                   MOTS(5)='V1Y '
 182 :                   MOTS(6)='V1Z '
 183 :                   MOTS(7)='V2X '
 184 :                   MOTS(8)='V2Y '
 185 :                   MOTS(9)='V2Z '
 186 :                ENDIF
 187 :             ENDIF
 188 :          ELSEIF (IANIS.NE.0) THEN
 189 :             IF( MFR.EQ.1.OR.MFR.EQ.45) THEN
 190 : *              ELEMENTS MASSIFS
 191 :                IF (IDIM.EQ.2) THEN
 192 :                   IF (IFOMOD.EQ.1) THEN
 193 : *                    ELEMENT MASSIF DE FOURIER
 194 :                      JGM=6
 195 :                      SEGINI MLMOTS
 196 :                      MOOBL=MLMOTS
 197 :                      MOTS(1)='K11 '
 198 :                      MOTS(2)='K22 '
 199 :                      MOTS(3)='K21 '
 200 :                      MOTS(4)='V1X '
 201 :                      MOTS(5)='V1Y '
 202 :                      MOTS(6)='K33 '
 203 :                   ELSE
 204 :                      JGM=5
 205 :                      SEGINI MLMOTS
 206 :                      MOOBL=MLMOTS
 207 :                      MOTS(1)='K11 '
 208 :                      MOTS(2)='K22 '
 209 :                      MOTS(3)='K21 '
 210 :                      MOTS(4)='V1X '
 211 :                      MOTS(5)='V1Y '
 212 :                   ENDIF
 213 :                ELSEIF (IDIM.EQ.3) THEN
 214 :                   JGM=12
 215 :                   SEGINI MLMOTS
 216 :                   MOOBL=MLMOTS
 217 :                   MOTS(1)='K11 '
 218 :                   MOTS(2)='K22 '
 219 :                   MOTS(3)='K33 '
 220 :                   MOTS(4)='K21 '
 221 :                   MOTS(5)='K31 '
 222 :                   MOTS(6)='K32 '
 223 :                   MOTS(7)='V1X '
 224 :                   MOTS(8)='V1Y '
 225 :                   MOTS(9)='V1Z '
 226 :                   MOTS(10)='V2X '
 227 :                   MOTS(11)='V2Y '
 228 :                   MOTS(12)='V2Z '
 229 :                ENDIF
 230 :             ENDIF
 231 :          ENDIF
 232 : *
 233 :          IF (IDARCY.EQ.0) THEN
 233 :            CALL PLACE(MATMOD,NMAT,IPHA,'PHASE')
 234 :            IF(IPHA.NE.0) THEN 
 235 : *            JGM=3
 236 : *            SEGINI MLMOTS
 237 : *            MOFAC=MLMOTS
 238 : *            MOTS(1)='RHO '
 239 : *            MOTS(2)='C   '
 240 : *            MOTS(3)='H   '
 241 : *           ELSE
 242 :              IJGI=JGM
 243 :              JGM=JGM+4
 244 :              SEGADJ MLMOTS
 245 :              MOTS(IJGI+1)='RHO '
 246 :              MOTS(IJGI+2)='C   '
 247 :              MOTS(IJGI+3)='QLAT'
 248 :              MOTS(IJGI+4)='TPHA'
 249 :              JGM=1
 250 :              SEGINI MLMOTS
 251 :              MOFAC=MLMOTS 
 252 :              MOTS(1)='H   ' 
 253 :              GOTO 9999 
 254 :            ENDIF  
 254 :            CALL PLACE(MATMOD,NMAT,ICONV,'CONVECTION') 
 255 :            if ( iconv.ne.0) then
 256 :              JGM = 1
 257 :              SEGINI MLMOTS
 258 :             MOOBL=MLMOTS
 259 :                MOTS(1)='H   '
 260 :            GOTO 9999     
 261 :            ENDIF
 261 :            call place(MATMOD,NMAT,IADVE,'ADVECTION')
 262 :            if(iadve.ne.0) then          
 262 :              call iddepl(mfr,ifour,nomid2,nob,nfa)  
 263 :              write(6,*) ' nomid2 nob nfa ' , nomid2,nob,nfa
 264 :              segact nomid2           
 265 :              mlmots=moobl
 266 :              jgm= nob+3
 267 :              segini mlmots
 268 :              mofac=mlmots
 269 :              mots(1)='RHO'
 270 :              mots(2)='C'   
 271 :              mots(3)='VITE'       
 272 :              do iyt=1,nob
 273 :                 mots(3+iyt)=nomid2.lesobl(iyt)
 274 :              enddo
 275 :              GO TO 9999
 276 :            endif
 276 :            CALL PLACE(MATMOD,NMAT,iraye,'RAYONNEMENT')
 277 :            if(iraye.ne.0)then
 277 :              call place (matmod,nmat,icave,'CAVITE')
 277 :              call place(matmod,nmat,ifacaf,'FAC_A_FAC')
 277 :              call place (matmod,nmat,iinfi,'INFINI')         
 278 :              if(icave.ne.0) then
 279 :                IF(MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
 280 :                  JGM=2
 281 :                  SEGINI MLMOTS
 282 :                  MOOBL=MLMOTS
 283 :                  MOTS(1)='EINF'
 284 :                  MOTS(2)='ESUP'
 285 :                  jgm=1
 286 :                else     
 287 :                  jgm=1
 288 :                  segini mlmots
 289 :                  moobl=mlmots
 290 :                  mots(1)='EMIS'
 291 :                endif
 292 :                jgm=2
 293 :                segini mlmots
 294 :                mots(1)='CABS'
 295 :                mots(2)='TABS'
 296 :                mofac=mlmots
 297 :              elseif(ifacaf.ne.0) then
 298 :                JGM=1
 299 :                SEGINI MLMOTS
 300 :                MOOBL=MLMOTS
 301 :                MOTS(1)='EMIS'
 302 :              elseif (iinfi.ne.0) then        
 303 :                IF(MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
 304 :                  JGM=2
 305 :                  SEGINI MLMOTS
 306 :                  MOOBL=MLMOTS
 307 :                  MOTS(1)='EINF'
 308 :                  MOTS(2)='ESUP'
 309 :                  jgm=1
 310 :                ELSE
 311 :                  JGM=1
 312 :                  SEGINI MLMOTS
 313 :                  MOOBL=MLMOTS
 314 :                  MOTS(1)='EMIS'
 315 :                ENDIF
 316 :                jgm=1
 317 :                segini mlmots
 318 :                mofac=mlmots
 319 :                mots(1)='E_IN'
 320 :              endif
 321 :              GOTO 9999     
 322 :            endif
 323 :            JGM=3
 324 :            SEGINI MLMOTS
 325 :            MOFAC=MLMOTS
 326 :            MOTS(1)='RHO '
 327 :            MOTS(2)='C   '
 328 :            MOTS(3)='H   '  
 329 :          ENDIF     
 330 :       ENDIF
 331 : *--------------------------------------------------------------------
 332 : *     CAS DE LA FORMULATION CONVECTION
 333 : *--------------------------------------------------------------------
 333 :       CALL PLACE(FORMOD,NFOR,ICONV,'CONVECTION')
 334 :       IF (ICONV.NE.0) THEN
 335 :          JGM = 1
 336 :          SEGINI MLMOTS
 337 :          MOOBL=MLMOTS
 338 :          MOTS(1)='H   '
 339 :          GOTO 9999
 340 :       ENDIF
 341 : *--------------------------------------------------------------------
 342 : *     CAS DE LA FORMULATION MECANIQUE
 343 : *--------------------------------------------------------------------
 343 :       CALL PLACE(FORMOD,NFOR,ICONV,'MECANIQUE')
 344 :       IF (ICONV.NE.0) THEN
 345 : *
 345 :       CALL MODLIN(MOMODL,NMOD)
 345 :       CALL PLACE(MOMODL,NMOD,ICONV,MATMOD(1))
 346 :       IF (ICONV.EQ.0) GOTO 99
 347 :       IF (NMAT.GE.2) THEN
 348 :  
 348 :          CALL MODELA(MOMODL,NMOD)
 348 :          CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(2))
 349 :          if ((IPLAC.EQ.9.OR.IPLAC.EQ.10).AND.NMAT.GT.2) then
 350 :            INMAT = 3
 351 :            goto 19
 352 :          endif
 353 : 
 354 :          IF (IPLAC.NE.0) THEN
 355 :             INMAT=3
 356 :             IF (IPLAC.EQ.1) THEN
 357 :                INMAT=3
 358 :                GOTO 10
 359 :             ENDIF
 360 :             IF (IPLAC.EQ.2) THEN
 361 : *
 362 : *              MATERIAU ELASTIQUE ORTHOTROPE
 363 : *
 364 :                IF (MFR.EQ.75) THEN
 365 : *
 366 : *                 JOINT UNIDIMENSIONNEL JOI1
 367 : *
 368 :                 IF(IFOUR.EQ.2)THEN
 369 :                   JGM=12
 370 :                   SEGINI MLMOTS
 371 :                   MOOBL=MLMOTS
 372 :                   MOTS(1)='V1X '
 373 :                   MOTS(2)='V1Y '
 374 :                   MOTS(3)='V1Z '
 375 :                   MOTS(4)='V2X '
 376 :                   MOTS(5)='V2Y '
 377 :                   MOTS(6)='V2Z '
 378 :                   MOTS(7)='KN '
 379 :                   MOTS(8)='KS1 '
 380 :                   MOTS(9)='KS2'
 381 :                   MOTS(10)='QN '
 382 :                   MOTS(11)='QS1 '
 383 :                   MOTS(12)='QS2 '
 384 : *
 385 :                   JGM=10
 386 :                   SEGINI MLMOTS
 387 :                   MOFAC=MLMOTS
 388 :                   MOTS(1)='MASS'
 389 :                   MOTS(2)='JX'
 390 :                   MOTS(3)='JY'
 391 :                   MOTS(4)='JZ'
 392 :                   MOTS(5)='ALPN'
 393 :                   MOTS(6)='ALP1'
 394 :                   MOTS(7)='ALP2'
 395 :                   MOTS(8)='ALQN'
 396 :                   MOTS(9)='ALQ1'
 397 :                   MOTS(10)='ALQ2'
 398 : *
 399 :                ELSEIF(IFOUR.EQ.-2.OR.IFOUR.EQ.-1)THEN
 400 :                   JGM=5
 401 :                   SEGINI MLMOTS
 402 :                   MOOBL=MLMOTS
 403 :                   MOTS(1)='V1X '
 404 :                   MOTS(2)='V1Y '
 405 :                   MOTS(3)='KN '
 406 :                   MOTS(4)='KS '
 407 :                   MOTS(5)='QS'
 408 : *
 409 :                   JGM=6
 410 :                   SEGINI MLMOTS
 411 :                   MOFAC=MLMOTS
 412 :                   MOTS(1)='MASS'
 413 :                   MOTS(2)='JZ'
 414 :                   MOTS(4)='ALPN'
 415 :                   MOTS(5)='ALPS'
 416 :                   MOTS(6)='ALQS'
 417 :                ENDIF
 418 : *
 419 :               ELSEIF (MFR.EQ.3) THEN
 420 : *
 421 : *                 COQUES MINCES
 422 : *
 423 :                   JGM=6
 424 :                   SEGINI MLMOTS
 425 :                   MOOBL=MLMOTS
 426 :                   MOTS(1)='YG1 '
 427 :                   MOTS(2)='YG2 '
 428 :                   MOTS(3)='NU12'
 429 :                   MOTS(4)='G12 '
 430 :                   MOTS(5)='V1X '
 431 :                   MOTS(6)='V1Y '
 432 : *
 433 :                   IF(IFOUR.EQ.-2) THEN
 434 :                     JGM=4
 435 :                   ELSE
 436 :                     JGM=3
 437 :                   ENDIF
 438 :                   SEGINI MLMOTS
 439 :                   MOFAC=MLMOTS
 440 :                   MOTS(1)='ALP1'
 441 :                   MOTS(2)='ALP2'
 442 :                   MOTS(3)='RHO '
 443 :                   IF(IFOUR.EQ.-2) MOTS(4)='DIM3'
 444 :                ELSEIF (MFR.EQ.9.OR.MFR.EQ.5) THEN
 445 : *
 446 : *                 COQUES    AVEC CISAILLEMENT TRANSVERSE
 447 : *
 448 :                   JGM=8
 449 :                   SEGINI MLMOTS
 450 :                   MOOBL=MLMOTS
 451 :                   MOTS(1)='YG1 '
 452 :                   MOTS(2)='YG2 '
 453 :                   MOTS(3)='NU12'
 454 :                   MOTS(4)='G12 '
 455 :                   MOTS(5)='G23 '
 456 :                   MOTS(6)='G13 '
 457 :                   MOTS(7)='V1X '
 458 :                   MOTS(8)='V1Y '
 459 : *
 460 :                   JGM=3
 461 :                   SEGINI MLMOTS
 462 :                   MOFAC=MLMOTS
 463 :                   MOTS(1)='RHO '
 464 :                   MOTS(2)='ALP1'
 465 :                   MOTS(3)='ALP2'
 466 :                ELSEIF (MFR.EQ.1.OR.MFR.EQ.31) THEN
 467 : *
 468 : *                 ELEMENTS MASSIFS
 469 : *
 470 :                   IF(IDIM.EQ.3)THEN
 471 : *                    ELEMENTS 3D
 472 :                      JGM=15
 473 :                      SEGINI MLMOTS
 474 :                      MOOBL=MLMOTS
 475 :                      MOTS(1)='YG1 '
 476 :                      MOTS(2)='YG2 '
 477 :                      MOTS(3)='YG3 '
 478 :                      MOTS(4)='NU12'
 479 :                      MOTS(5)='NU23'
 480 :                      MOTS(6)='NU13'
 481 :                      MOTS(7)='G12 '
 482 :                      MOTS(8)='G23 '
 483 :                      MOTS(9)='G13 '
 484 :                      MOTS(10)='V1X '
 485 :                      MOTS(11)='V1Y '
 486 :                      MOTS(12)='V1Z '
 487 :                      MOTS(13)='V2X '
 488 :                      MOTS(14)='V2Y '
 489 :                      MOTS(15)='V2Z '
 490 : *
 491 :                      JGM=4
 492 :                      SEGINI MLMOTS
 493 :                      MOFAC=MLMOTS
 494 :                      MOTS(1)='RHO '
 495 :                      MOTS(2)='ALP1'
 496 :                      MOTS(3)='ALP2'
 497 :                      MOTS(4)='ALP3'
 498 :                   ELSEIF (IDIM.EQ.2) THEN
 499 :                      IF(IFOUR.EQ.-2)THEN
 500 : *                       CONTRAINTE PLANE
 501 :                         JGM=9
 502 :                         SEGINI MLMOTS
 503 :                         MOOBL=MLMOTS
 504 :                         MOTS(1)='YG1 '
 505 :                         MOTS(2)='YG2 '
 506 :                         MOTS(3)='NU12'
 507 :                         MOTS(4)='G12 '
 508 :                         MOTS(5)='V1X '
 509 :                         MOTS(6)='V1Y '
 510 :                         MOTS(7)='YG3 '
 511 :                         MOTS(8)='NU23'
 512 :                         MOTS(9)='NU13'
 513 : *
 514 :                         JGM=4
 515 :                         SEGINI MLMOTS
 516 :                         MOFAC=MLMOTS
 517 :                         MOTS(1)='RHO '
 518 :                         MOTS(2)='ALP1'
 519 :                         MOTS(3)='ALP2'
 520 :                         MOTS(4)='DIM3'
 521 :          ELSEIF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN
 522 : *                       DEFORMATION PLANE ,AXISYMETRIE
 523 :                         JGM=9
 524 :                         SEGINI MLMOTS
 525 :                         MOOBL=MLMOTS
 526 :                         MOTS(1)='YG1 '
 527 :                         MOTS(2)='YG2 '
 528 :                         MOTS(3)='YG3 '
 529 :                         MOTS(4)='NU12'
 530 :                         MOTS(5)='NU23'
 531 :                         MOTS(6)='NU13'
 532 :                         MOTS(7)='G12 '
 533 :                         MOTS(8)='V1X '
 534 :                         MOTS(9)='V1Y '
 535 : *
 536 :                         JGM=4
 537 :                         SEGINI MLMOTS
 538 :                         MOFAC=MLMOTS
 539 :                         MOTS(1)='RHO '
 540 :                         MOTS(2)='ALP1'
 541 :                         MOTS(3)='ALP2'
 542 :                         MOTS(4)='ALP3'
 543 :                      ELSEIF (IFOUR.EQ.1) THEN
 544 : *                       AXISYMETRIE DE FOURIER
 545 :                         JGM=11
 546 :                         SEGINI MLMOTS
 547 :                         MOOBL=MLMOTS
 548 :                         MOTS(1)='YG1 '
 549 :                         MOTS(2)='YG2 '
 550 :                         MOTS(3)='YG3 '
 551 :                         MOTS(4)='NU12'
 552 :                         MOTS(5)='NU23'
 553 :                         MOTS(6)='NU13'
 554 :                         MOTS(7)='G12 '
 555 :                         MOTS(8)='G23 '
 556 :                         MOTS(9)='G13 '
 557 :                         MOTS(10)='V1X '
 558 :                         MOTS(11)='V1Y '
 559 : *
 560 :                         JGM=4
 561 :                         SEGINI MLMOTS
 562 :                         MOFAC=MLMOTS
 563 :                         MOTS(1)='RHO '
 564 :                         MOTS(2)='ALP1'
 565 :                         MOTS(3)='ALP2'
 566 :                         MOTS(4)='ALP3'
 567 :                      ENDIF
 568 :                   ELSEIF (IDIM.EQ.1) THEN
 569 : C= Dans le cas UNID SPHErique, on doit avoir YG2=YG3 et NU12=NU13
 570 : C= et dans le cas thermomecanique ALP2=ALP3.
 571 :                     JGM=6
 572 :                     SEGINI,MLMOTS
 573 :                     MOTS(1)='YG1 '
 574 :                     MOTS(2)='YG2 '
 575 :                     MOTS(3)='YG3 '
 576 :                     MOTS(4)='NU12'
 577 :                     MOTS(5)='NU23'
 578 :                     MOTS(6)='NU13'
 579 :                     MOOBL=MLMOTS
 580 :                     IF (IFOUR.EQ.6) THEN
 581 :                       JGM=2
 582 :                       SEGINI,MLMOTS
 583 :                     ELSEIF (IFOUR.EQ.5.OR.IFOUR.EQ.10) THEN
 584 :                       JGM=3
 585 :                       SEGINI,MLMOTS
 586 :                       MOTS(3)='ALP3'
 587 :                     ELSEIF (IFOUR.EQ.4.OR.IFOUR.EQ.8.OR.
 588 :      .                       IFOUR.EQ.13) THEN
 589 :                       JGM=3
 590 :                       SEGINI,MLMOTS
 591 :                       MOTS(3)='ALP2'
 592 :                     ELSE
 593 :                       JGM=4
 594 :                       SEGINI,MLMOTS
 595 :                       MOTS(3)='ALP2'
 596 :                       MOTS(4)='ALP3'
 597 :                     ENDIF
 598 :                     MOTS(1)='RHO '
 599 :                     MOTS(2)='ALP1'
 600 :                     MOFAC=MLMOTS
 601 :                   ENDIF
 602 :                ELSEIF (MFR.EQ.35) THEN
 603 : *                 ELEMENTS JOINTS
 604 :                   IF (IFOUR.EQ.2) THEN
 605 :                       JGM=5
 606 :                       SEGINI MLMOTS
 607 :                       MOOBL=MLMOTS
 608 :                       MOTS(1)='KS1 '
 609 :                       MOTS(2)='KS2 '
 610 :                       MOTS(3)='KN  '
 611 :                       MOTS(4)='V1X '
 612 :                       MOTS(5)='V1Y '
 613 : *
 614 :                       JGM=2
 615 :                       SEGINI MLMOTS
 616 :                       MOFAC=MLMOTS
 617 :                       MOTS(1)='RHO '
 618 :                       MOTS(2)='ALPN'
 619 :                   ENDIF
 620 :                ENDIF
 621 :             ELSEIF (IPLAC.EQ.3)THEN
 622 : *
 623 : *              MATERIAU ANISOTROPE ELASTIQUE
 624 : *
 625 :                IF(MFR.EQ.75)THEN
 626 : *
 627 : *                 JOINT UNIDIMESIONNEL JOI1
 628 : *
 629 :                   IF (IFOUR.EQ.2) THEN
 630 :                      JGM=27
 631 :                      SEGINI MLMOTS
 632 :                      MOOBL=MLMOTS
 633 :                      MOTS(1)='V1X '
 634 :                      MOTS(2)='V1Y '
 635 :                      MOTS(3)='V1Z '
 636 :                      MOTS(4)='V2X '
 637 :                      MOTS(5)='V2Y '
 638 :                      MOTS(6)='V2Z '
 639 :                      MOTS(7)='D11 '
 640 :                      MOTS(8)='D22 '
 641 :                      MOTS(9)='D33 '
 642 :                      MOTS(10)='D44 '
 643 :                      MOTS(11)='D55 '
 644 :                      MOTS(12)='D66 '
 645 :                      MOTS(13)='D21 '
 646 :                      MOTS(14)='D31 '
 647 :                      MOTS(15)='D32 '
 648 :                      MOTS(16)='D41 '
 649 :                      MOTS(17)='D42 '
 650 :                      MOTS(18)='D43 '
 651 :                      MOTS(19)='D51 '
 652 :                      MOTS(20)='D52 '
 653 :                      MOTS(21)='D53 '
 654 :                      MOTS(22)='D54 '
 655 :                      MOTS(23)='D61 '
 656 :                      MOTS(24)='D62 '
 657 :                      MOTS(25)='D63 '
 658 :                      MOTS(26)='D64 '
 659 :                      MOTS(27)='D65 '
 660 : *
 661 :                      JGM=10
 662 :                      SEGINI MLMOTS
 663 :                      MOFAC=MLMOTS
 664 : * MASS: masse totale de l'élément joint
 665 :                      MOTS(1)='MASS'
 666 :                      MOTS(2)='JX'
 667 :                      MOTS(3)='JY'
 668 :                      MOTS(4)='JZ'
 669 :                      MOTS(5)='ALP1'
 670 :                      MOTS(6)='ALP2'
 671 :                      MOTS(7)='ALP3'
 672 :                      MOTS(8)='ALQ1'
 673 :                      MOTS(9)='ALQ2'
 674 :                      MOTS(10)='ALQ3'
 675 : *
 676 :                   ELSEIF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
 677 :                      JGM=8
 678 :                      SEGINI MLMOTS
 679 :                      MOOBL=MLMOTS
 680 :                      MOTS(1)='V1X '
 681 :                      MOTS(2)='V1Y '
 682 :                      MOTS(3)='D11 '
 683 :                      MOTS(4)='D22 '
 684 :                      MOTS(5)='D33 '
 685 :                      MOTS(6)='D21 '
 686 :                      MOTS(7)='D31 '
 687 :                      MOTS(8)='D32 '
 688 : *
 689 :                      JGM=5
 690 :                      SEGINI MLMOTS
 691 :                      MOFAC=MLMOTS
 692 : * MASS: masse totale de l'élément joint
 693 :                      MOTS(1)='MASS'
 694 :                      MOTS(2)='JZ'
 695 :                      MOTS(3)='ALP1'
 696 :                      MOTS(4)='ALP2'
 697 :                      MOTS(5)='ALQ3'
 698 :                   ENDIF
 699 :                ENDIF
 700 : *
 701 : *
 702 : *                 ELEMENTS MASSIFS
 703 : *
 704 :                IF(MFR.EQ.1.OR.MFR.EQ.31)THEN
 705 :                   IF(IDIM.EQ.3)THEN
 706 : *                    ELEMENTS 3D
 707 :                      JGM=27
 708 :                      SEGINI MLMOTS
 709 :                      MOOBL=MLMOTS
 710 :                      MOTS(1)='D11 '
 711 :                      MOTS(2)='D21 '
 712 :                      MOTS(3)='D22 '
 713 :                      MOTS(4)='D31 '
 714 :                      MOTS(5)='D32 '
 715 :                      MOTS(6)='D33 '
 716 :                      MOTS(7)='D41 '
 717 :                      MOTS(8)='D42 '
 718 :                      MOTS(9)='D43 '
 719 :                      MOTS(10)='D44 '
 720 :                      MOTS(11)='D51 '
 721 :                      MOTS(12)='D52 '
 722 :                      MOTS(13)='D53 '
 723 :                      MOTS(14)='D54 '
 724 :                      MOTS(15)='D55 '
 725 :                      MOTS(16)='D61 '
 726 :                      MOTS(17)='D62 '
 727 :                      MOTS(18)='D63 '
 728 :                      MOTS(19)='D64 '
 729 :                      MOTS(20)='D65 '
 730 :                      MOTS(21)='D66 '
 731 :                      MOTS(22)='V1X '
 732 :                      MOTS(23)='V1Y '
 733 :                      MOTS(24)='V1Z '
 734 :                      MOTS(25)='V2X '
 735 :                      MOTS(26)='V2Y '
 736 :                      MOTS(27)='V2Z '
 737 : *
 738 :                      JGM=7
 739 :                      SEGINI MLMOTS
 740 :                      MOFAC=MLMOTS
 741 :                      MOTS(1)='RHO '
 742 :                      MOTS(2)='ALP1'
 743 :                      MOTS(3)='ALP2'
 744 :                      MOTS(4)='ALP3'
 745 :                      MOTS(5)='AL12'
 746 :                      MOTS(6)='AL13'
 747 :                      MOTS(7)='AL23'
 748 :                   ELSEIF (IDIM.EQ.2) THEN
 749 :                      IF (IFOUR.EQ.-2) THEN
 750 : *                       CONTRAINTE PLANE
 751 :                         JGM=12
 752 :                         SEGINI MLMOTS
 753 :                         MOOBL=MLMOTS
 754 :                         MOTS(1)='D11 '
 755 :                         MOTS(2)='D21 '
 756 :                         MOTS(3)='D22 '
 757 :                         MOTS(4)='D41 '
 758 :                         MOTS(5)='D42 '
 759 :                         MOTS(6)='D44 '
 760 :                         MOTS(7)='V1X '
 761 :                         MOTS(8)='V1Y '
 762 :                         MOTS(9)='D31 '
 763 :                         MOTS(10)='D32 '
 764 :                         MOTS(11)='D33 '
 765 :                         MOTS(12)='D43 '
 766 : *
 767 :                         JGM=5
 768 :                         SEGINI MLMOTS
 769 :                         MOFAC=MLMOTS
 770 :                         MOTS(1)='RHO '
 771 :                         MOTS(2)='ALP1'
 772 :                         MOTS(3)='ALP2'
 773 :                         MOTS(4)='AL12'
 774 :                         MOTS(5)='DIM3'
 775 :          ELSEIF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN
 776 : *                    DEFORMATION PLANE ,AXISYMETRIE
 777 :                         JGM=12
 778 :                         SEGINI MLMOTS
 779 :                         MOOBL=MLMOTS
 780 :                         MOTS(1)='D11 '
 781 :                         MOTS(2)='D21 '
 782 :                         MOTS(3)='D22 '
 783 :                         MOTS(4)='D31 '
 784 :                         MOTS(5)='D32 '
 785 :                         MOTS(6)='D33 '
 786 :                         MOTS(7)='D41 '
 787 :                         MOTS(8)='D42 '
 788 :                         MOTS(9)='D43 '
 789 :                         MOTS(10)='D44 '
 790 :                         MOTS(11)='V1X '
 791 :                         MOTS(12)='V1Y '
 792 : *
 793 :                         JGM=5
 794 :                         SEGINI MLMOTS
 795 :                         MOFAC=MLMOTS
 796 :                         MOTS(1)='RHO '
 797 :                         MOTS(2)='ALP1'
 798 :                         MOTS(3)='ALP2'
 799 :                         MOTS(4)='AL12'
 800 :                         MOTS(5)='ALP3'
 801 :                      ELSEIF (IFOUR.EQ.1) THEN
 802 : *                       AXISYMETRIE DE FOURIER
 803 :                         JGM=15
 804 :                         SEGINI MLMOTS
 805 :                         MOOBL=MLMOTS
 806 :                         MOTS(1)='D11 '
 807 :                         MOTS(2)='D21 '
 808 :                         MOTS(3)='D22 '
 809 :                         MOTS(4)='D31 '
 810 :                         MOTS(5)='D32 '
 811 :                         MOTS(6)='D33 '
 812 :                         MOTS(7)='D41 '
 813 :                         MOTS(8)='D42 '
 814 :                         MOTS(9)='D43 '
 815 :                         MOTS(10)='D44 '
 816 :                         MOTS(11)='D55 '
 817 :                         MOTS(12)='D65 '
 818 :                         MOTS(13)='D66 '
 819 :                         MOTS(14)='V1X '
 820 :                         MOTS(15)='V1Y '
 821 : *
 822 :                         JGM=5
 823 :                         SEGINI MLMOTS
 824 :                         MOFAC=MLMOTS
 825 :                         MOTS(1)='RHO '
 826 :                         MOTS(2)='ALP1'
 827 :                         MOTS(3)='ALP2'
 828 :                         MOTS(4)='AL12'
 829 :                         MOTS(5)='ALP3'
 830 :                      ENDIF
 831 :                   ENDIF
 832 :                ENDIF
 833 :             ELSEIF (IPLAC.EQ.4) THEN
 834 :                IF (MFR.EQ.33) THEN
 835 : *
 836 : *                 MILIEU POREUX ISOTROPE
 837 : *
 838 :                   JGM=12
 839 :                   SEGINI MLMOTS
 840 :                   MOOBL=MLMOTS
 841 :                   MOTS(1) ='YOUN'
 842 :                   MOTS(2) ='NU  '
 843 :                   MOTS(3) ='RHO '
 844 :                   MOTS(4) ='ALPH'
 845 :                   MOTS(5) ='COB '
 846 :                   MOTS(6) ='MOB '
 847 :                   MOTS(7) ='ALPM'
 848 :                   MOTS(8) ='PERM'
 849 :                   MOTS(9) ='VISC'
 850 :                   MOTS(10)='KF  '
 851 :                   MOTS(11)='RHOF'
 852 :                   MOTS(12)='ALPF'
 853 : *
 854 :                   IF (IFOUR.EQ.-2) THEN
 855 :                     JGM=1
 856 :                     SEGINI MLMOTS
 857 :                     MOFAC=MLMOTS
 858 :                     MOTS(1)='DIM3'
 859 :                   ENDIF
 860 : 
 861 :                ENDIF
 862 :             ELSEIF (IPLAC.EQ.5) THEN
 863 :                IF (MFR.EQ.37) THEN
 864 : *
 865 : *                 MILIEU HOMOGENEISE
 866 : *
 867 :                   JGM=16
 868 :                   SEGINI MLMOTS
 869 :                   MOOBL=MLMOTS
 870 :                   MOTS( 1)='B11 '
 871 :                   MOTS( 2)='B22 '
 872 :                   MOTS( 3)='B12 '
 873 :                   MOTS( 4)='ROF '
 874 :                   MOTS( 5)='ROS '
 875 :                   MOTS( 6)='YOUN'
 876 :                   MOTS( 7)='CSON'
 877 :                   MOTS( 8)='RORF'
 878 :                   MOTS( 9)='CREF'
 879 :                   MOTS(10)='LCAR'
 880 :                   MOTS(11)='E111'
 881 :                   MOTS(12)='E112'
 882 :                   MOTS(13)='E121'
 883 :                   MOTS(14)='E122'
 884 :                   MOTS(15)='E221'
 885 :                   MOTS(16)='E222'
 886 :                ENDIF
 887 :             ELSEIF (IPLAC.EQ.6) THEN
 888 : C
 889 : C         MATERIAU ELASTIQUE UNIDIRECTIONNEL
 890 : C
 891 :              IF ((MFR.EQ.1.OR.MFR.EQ.31).AND.IDIM.EQ.3) THEN
 892 :               JGM=7
 893 :               SEGINI MLMOTS
 894 :               MOOBL=MLMOTS
 895 :               MOTS(1)='YOUN'
 896 :               MOTS(2)='V1X '
 897 :               MOTS(3)='V1Y '
 898 :               MOTS(4)='V1Z '
 899 :               MOTS(5)='V2X '
 900 :               MOTS(6)='V2Y '
 901 :               MOTS(7)='V2Z '
 902 :              ELSE
 903 :               JGM=3
 904 :               SEGINI MLMOTS
 905 :               MOOBL=MLMOTS
 906 :               MOTS(1)='YOUN'
 907 :               MOTS(2)='V1X '
 908 :               MOTS(3)='V1Y '
 909 :              ENDIF
 910 : *
 911 :               IF((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31).AND.
 912 :      .                   IFOUR.EQ.-2) THEN
 913 :                 JGM=3
 914 :               ELSE
 915 :                 JGM=2
 916 :               ENDIF
 917 :               SEGINI MLMOTS
 918 :               MOFAC=MLMOTS
 919 :               MOTS(1)='RHO '
 920 :               MOTS(2)='ALPH'
 921 :               IF((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31).AND
 922 :      +            .IFOUR.EQ.-2)        MOTS(3)='DIM3'
 923 : 
 924 :             ELSEIF (IPLAC.EQ.7) THEN
 925 : C
 926 : C      MODELE ET MATERIAU DE LA SECTION DU MODELE A FIBRE
 927 : C
 928 :              JGM=2
 929 :              SEGINI MLMOTS
 930 :              MOOBL=MLMOTS
 931 :              MOTS(1)='MODS'
 932 :              MOTS(2)='MATS'
 933 :              JGM=1
 934 :              SEGINI MLMOTS
 935 :              MOFAC=MLMOTS
 936 :              MOTS(1)='MANO'
 937 : C ---- IPLAC 8: Ajout� par Jiang, 22/08/1995 et fleuret 28/05/96
 938 :             ELSEIF (IPLAC.EQ.8) THEN
 939 : C
 940 : C      MODELE ET MATERIAU POUR LE CABLE PRECONTRAINT
 941 : C
 942 :              JGM=1
 943 :              SEGINI MLMOTS
 944 :              MOOBL=MLMOTS
 945 :              MOTS(1)='YOUN'
 946 :              JGM=8
 947 :              SEGINI MLMOTS
 948 :              MOFAC=MLMOTS
 949 :              MOTS(1)='FF'
 950 :              MOTS(2)='PHIF'
 951 :              MOTS(3)='GANC'
 952 :              MOTS(4)='RMU0'
 953 :              MOTS(5)='FPRG'
 954 :              MOTS(6)='RH10'
 955 :              MOTS(7)='ALPH'
 956 :              MOTS(8)='RHO '             
 957 :              
 958 : C --- Fin de modification 08/1995
 959 :             ELSEIF (IPLAC.EQ.9) THEN
 960 : C
 961 : C MODAL
 962 : C
 963 :              JGM=3
 964 :              SEGINI MLMOTS
 965 :              MOOBL=MLMOTS
 966 :              MOTS(1)='FREQ'
 967 :              MOTS(2)='MASS'
 968 :              MOTS(3)='DEFO'
 969 :              JGM = 9
 970 :              SEGINI MLMOTS
 971 :              MOFAC = MLMOTS
 972 :              MOTS(1) = 'AMOR'
 973 :              MOTS(2) = 'CGRA'
 974 :              MOTS(3) = 'MADE'
 975 :              MOTS(4) = 'RICR'
 976 :              MOTS(5) = 'MAIB'
 977 :              MOTS(6) = 'MACR'
 978 :              MOTS(7) = 'AMCR'
 979 :              MOTS(8) = 'ALP0'
 980 :              MOTS(9) = 'ECRO'
 981 : 
 982 :             ELSEIF (IPLAC.EQ.10) THEN
 983 : C
 984 : C STATIQUE
 985 : C
 986 :              JGM=3
 987 :              SEGINI MLMOTS
 988 :              MOOBL=MLMOTS
 989 :              MOTS(1)='DEFO'
 990 :              MOTS(2)='RIDE'
 991 :              MOTS(3)='MADE'
 992 :              JGM = 8
 993 :              SEGINI MLMOTS
 994 :              MOFAC = MLMOTS
 995 :              MOTS(1) = 'AMOR'
 996 :              MOTS(2) = 'RICR'
 997 :              MOTS(3) = 'MAIA'
 998 :              MOTS(4) = 'MAIB'
 999 :              MOTS(5) = 'MACR'
1000 :              MOTS(6) = 'AMCR'
1001 :              MOTS(7) = 'BET0'
1002 :              MOTS(8) = 'ECRO'
1003 : 
1004 :             ELSEIF (IPLAC.EQ.11) THEN
1005 : C
1006 : C ZONE_COHESIVE
1007 : C
1008 :              JGM=2
1009 :              SEGINI MLMOTS
1010 :              MOOBL=MLMOTS
1011 :              MOTS(1)='KS'
1012 :              MOTS(2)='KN'
1013 : 
1014 :             ENDIF
1015 :             INMAT=3
1016 :             GOTO 20
1017 : 
1018 :          ELSE
1019 :             INMAT=2
1020 :             GOTO 10
1021 :          ENDIF
1022 :       ENDIF
1023 :       INMAT=0
1024 :  10   CONTINUE
1025 : *
1026 : *     MATERIAU ELASTIQUE ISOTROPE
1027 : *
1028 :       IF (MFR.EQ.35) THEN
1029 : *        VALABLE EN 2D COMME EN 3D
1030 :        JGM=2
1031 :        SEGINI MLMOTS
1032 :        MOOBL=MLMOTS
1033 :        MOTS(1)='KS  '
1034 :        MOTS(2)='KN  '
1035 : *
1036 : *
1037 :        JGM=2
1038 :        SEGINI MLMOTS
1039 :        MOFAC=MLMOTS
1040 :        MOTS(1)='RHO '
1041 :        MOTS(2)='ALPN'
1042 : * 
1043 : *
1044 : *  JOINT CISAILLEMENT (2D)
1045 : *
1046 :       ELSEIF (MFR.EQ.53) THEN
1047 : *        VALABLE EN 2D "COMME EN 3D"
1048 : 
1049 :        JGM=1
1050 :        SEGINI MLMOTS
1051 :        MOOBL=MLMOTS
1052 :        MOTS(1)='KS  '
1053 : *
1054 :        JGM=2
1055 :        SEGINI MLMOTS
1056 :        MOFAC=MLMOTS
1057 :        MOTS(1)='RHO '
1058 :        MOTS(2)='ALPN'
1059 : * 
1060 : * TOUS LES AUTRES CAS
1061 : *
1062 :       ELSE
1063 :        JGM=2
1064 :        SEGINI MLMOTS
1065 :        MOOBL=MLMOTS
1066 :        
1067 :        MOTS(1)='YOUN'
1068 :        MOTS(2)='NU  '
1069 : *
1070 :        IF((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.63).AND.
1071 :      .     IFOUR.EQ.-2) THEN
1072 :           JGM=4
1073 :         ELSE
1074 :           JGM=3
1075 :         ENDIF
1076 : C
1077 : C          JGM = JGM + 1
1078 : C 
1079 : *
1080 :        SEGINI MLMOTS
1081 :        MOFAC=MLMOTS
1082 :        MOTS(1)='RHO '
1083 :        MOTS(2)='ALPH'
1084 :       IF((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.63).AND.
1085 :      .         IFOUR.EQ.-2)  THEN
1086 :           MOTS(3)='DIM3'
1087 :           MOTS(4)='VISQ'
1088 :        ELSE
1089 :           MOTS(3)='VISQ'
1090 :        ENDIF
1091 :       ENDIF
1092 : *
1093 :       IF (INMAT.EQ.0) GOTO 9999
1094 : *
1095 :  19   CONTINUE
1096 :  20   CONTINUE
1097 :       DO jm = 1,matmod(/2)
1098 :         IF (matmod(jm).eq.'IMPEDANCE') THEN
1099 :           imate = imatee
1100 : *         if (imate.eq.0) goto 99
1101 :           JGM = 0
1102 :           SEGINI MLMOTS
1103 :           MOOBL = MLMOTS
1104 :           JGM = 0
1105 :           SEGINI MLMOTS
1106 :           MOFAC = MLMOTS
1107 :           IF (imate.eq.31) THEN
1108 : *IMPE_ELAS
1109 :             MLMOTS = MOOBL
1110 :             JGM0 = MOTS(/2)
1111 :             JGM = JGM0+1
1112 :             SEGADJ MLMOTS
1113 :             MOTS(JGM0 + 1) ='RAID'
1114 :             MLMOTS = MOFAC
1115 :             JGM0 = MOTS(/2)
1116 :             JGM = JGM0+2
1117 :             SEGADJ MLMOTS
1118 :             MOTS(JGM0+1) = 'MASS'
1119 :             MOTS(JGM0+2) = 'AMOR'
1120 :             GOTO 22
1121 :           ELSEIF (imate.eq.32.or.imate.eq.33) THEN
1122 : *IMPE_VOIGT ou IMPE_MAXW
1123 :             MLMOTS = MOOBL
1124 :             JGM0 = MOTS(/2)
1125 :             JGM = JGM0+2
1126 :             SEGADJ MLMOTS
1127 :             MOTS(JGM0 + 1) ='RAID'
1128 :             MOTS(JGM0 + 2) ='VISC'
1129 :             MLMOTS = MOFAC
1130 :             JGM0 = MOTS(/2)
1131 :             JGM = JGM0+2
1132 :             SEGADJ MLMOTS
1133 :             MOTS(JGM0+1) = 'MASS'
1134 :             MOTS(JGM0+2) = 'AMOR'
1135 :             GOTO 22
1136 :           ELSEIF (imate.eq.34) then
1137 : *IMPE_COMPLEXE
1138 :            MLMOTS = MOOBL
1139 :            JGM0 = MOTS(/2)
1140 :            JGM = MOTS(/2)+1
1141 :            SEGADJ MLMOTS
1142 :            MOTS(JGM0 + 1) ='MOCO'
1143 :            MLMOTS = MOFAC
1144 :            JGM0 = MOTS(/2)
1145 :            JGM = MOTS(/2)+3
1146 :            SEGADJ MLMOTS
1147 :            MOTS(JGM0+1) = 'RAID'
1148 :            MOTS(JGM0+2) = 'AMOR'
1149 :            MOTS(JGM0+3) = 'MASS'
1150 :            GOTO 22
1151 :           ELSE
1152 :           ENDIF
1153 :  22       CONTINUE
1154 :         if (mele.eq.29) then 
1155 :            MLMOTS = MOOBL
1156 :            JGM0 = MOTS(/2)
1157 :            JGM = MOTS(/2)+1
1158 :            SEGADJ MLMOTS
1159 :            MOTS(JGM0+1) = 'CPLE'
1160 :            MLMOTS = MOFAC
1161 :            JGM0 = MOTS(/2)
1162 :            JGM = MOTS(/2)+2
1163 :            SEGADJ MLMOTS
1164 :            MOTS(JGM0+1) = 'INER'
1165 :            MOTS(JGM0+2) = 'AROT'
1166 :         endif
1167 :             GOTO 9999
1168 :         ENDIF
1169 :       ENDDO
1170 : *
1171 :       IF (NMAT.GE.INMAT) THEN
1171 :          CALL MODNLI(MOMODL,NMOD)
1171 :          CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1172 :          IF (IPLAC.EQ.1) THEN
1173 :             INMAT=INMAT+1
1173 :             CALL MODPLA(MOMODL,NMOD)
1173 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1174 :             IF (IPLAC.EQ.0) THEN
1175 : *              ISOTROPE
1176 :                IPLAC=1
1177 : *           ELSE
1178 : *              INMAT=INMAT+1
1179 :             ENDIF
1179 :             CALL IDPLAS(MFR,MOOBL,MOFAC,IPLAC,IRET)
1180 :          ELSEIF (IPLAC.EQ.2) THEN
1181 :             INMAT=INMAT+1
1181 :             CALL MODFLU(MOMODL,NMOD)
1181 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1182 :             IF (IPLAC.EQ.0) THEN
1183 : *              NORTON
1184 :                IPLAC=1
1185 : *           ELSE
1186 : *              INMAT=INMAT+1
1187 :             ENDIF
1187 :             CALL IDFLUA(MFR,MOOBL,MOFAC,IPLAC,IRET)
1188 :          ELSEIF (IPLAC.EQ.3) THEN
1189 :             INMAT=INMAT+1
1189 :             CALL MODVIS(MOMODL,NMOD)
1189 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1190 :             IF (IPLAC.EQ.0) THEN
1191 : *              CHABOCHE
1192 :                IPLAC=2
1193 : *           ELSE
1194 : *              INMAT=INMAT+1
1195 :             ENDIF
1196 : C
1197 : C Cas particulier des modeles GATT_MONERIE et UO2
1198 : C   'RHO ' et 'ALPH' sont obligatoires 
1199 : C
1200 : C
1201 :             IF (IPLAC.EQ.18.OR.IPLAC.EQ.19) THEN
1202 :               MLMOTS=MOOBL 
1203 :               JGA=MOTS(/2)              
1204 :               JGM=JGA+2              
1205 :               SEGADJ MLMOTS 
1206 :               MOTS(JGA+1)='RHO '
1207 :               MOTS(JGA+2)='ALPH'
1208 :               MLMOTS=MOFAC
1209 :               JGA=MOTS(/2)
1210 :               JGM=JGA-2             
1211 :               IF (JGM.GT.0) THEN
1212 :                 DO 200 I=1,JGM
1213 :                   MOTS(I)=MOTS(I+2) 
1214 :  200            CONTINUE 
1215 :               ENDIF
1216 :               SEGADJ MLMOTS 
1217 : C ===
1218 : C   Modeles SYMONDS & COWPER SYCO1 et SYCO2
1219 : C ===
1220 :       ELSEIF (IPLAC.EQ.28) THEN
1221 :          MLMOTS=MOOBL 
1222 :          JGA=MOTS(/2)              
1223 :          JGM=JGA+1              
1224 :          SEGADJ MLMOTS 
1225 :          MOTS(JGA+1)='TRAC'
1226 :               SEGADJ MLMOTS 
1227 : 
1228 :       ELSEIF (IPLAC.EQ.29) THEN
1229 :          MLMOTS=MOOBL 
1230 :          JGA=MOTS(/2)              
1231 :          JGM=JGA+1              
1232 :          SEGADJ MLMOTS 
1233 :          MOTS(JGA+1)='TRAC'
1234 :               SEGADJ MLMOTS 
1235 :             ENDIF
1235 :             CALL IDVISC(MFR,MOOBL,MOFAC,IPLAC,IRET)
1236 : C
1237 :          ELSEIF (IPLAC.EQ.4) THEN
1238 :             INMAT=INMAT+1
1238 :             CALL MODEND(MOMODL,NMOD)
1238 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1239 :             IF (IPLAC.EQ.0) THEN
1240 : *              MAZARS
1241 :                IPLAC=1
1242 : *           ELSE
1243 : *              INMAT=INMAT+1
1244 :             ENDIF
1244 :             CALL IDENDO(MFR,MOOBL,MOFAC,IPLAC,IRET)
1245 :          ELSEIF (IPLAC.EQ.5) THEN
1246 :             INMAT=INMAT+1
1246 :             CALL MODPLE(MOMODL,NMOD)
1246 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1247 :             IF (IPLAC.EQ.0) THEN
1248 : *              TRIAXIAL P/Y
1249 :                IPLAC=1
1250 : *           ELSE
1251 : *              INMAT=INMAT+1
1252 :             ENDIF
1252 :             CALL IDPLEN(MFR,MOOBL,MOFAC,IPLAC,IRET)
1253 :          ELSEIF (IPLAC.EQ.6) THEN
1254 :             INMAT=INMAT+1
1254 :             CALL MODENL(MOMODL,NMOD)
1254 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1255 :             IF (IPLAC.EQ.0) THEN
1256 : *              ISOTROPE
1257 :                IPLAC=1
1258 : *           ELSE
1259 : *              INMAT=INMAT+1
1260 :             ENDIF
1260 :             CALL IDELNL(MFR,MOOBL,MOFAC,IPLAC,IRET)
1261 :          ELSEIF (IPLAC.EQ.7) THEN
1262 : C        Pas de composantes supplementaires pour une loi 'VISCO_EXTERNE'
1263 :             IRET = 1
1264 :          ELSE
1265 :             GOTO 99
1266 :          ENDIF
1267 : C        IRET code retour de IDPLAS,IDFLUA,IDVISC,IDENDO,IDPLEN,IDELNL
1268 : C
1269 :          IF (IRET.EQ.0) GOTO 99
1270 : *
1271 : *         En cas de creation de materiaux combinant plusieurs materiaux
1272 : *         deja existant Ex ELASTIQUE ISOTROPE PLASTIQUE PARFAIT FLUAGE N
1273 : *         GOTO 20
1274 : *
1275 :          GOTO 9999
1276 :       ENDIF
1277 :       GOTO 9999
1278 :       ENDIF
1279 : *--------------------------------------------------------------------
1280 : *     CAS DE LA FORMULATION POREUX
1281 : *--------------------------------------------------------------------
1281 :       CALL PLACE(FORMOD,NFOR,ICONV,'POREUX')
1282 :       IF (ICONV.NE.0) THEN
1283 : *
1283 :       CALL MODLIN(MOMODL,NMOD)
1283 :       CALL PLACE(MOMODL,NMOD,ICONV,MATMOD(1))
1284 :       IF (ICONV.EQ.0) GOTO 99
1285 : *
1286 : *     D'ABORD :  CAS NON ISOTROPE
1287 : *
1288 :       IF (NMAT.GE.2) THEN
1288 :          CALL MODELA(MOMODL,NMOD)
1288 :          CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(2))
1289 :          IF (IPLAC.NE.0) THEN
1290 :             INMAT=3
1291 :             IF (IPLAC.EQ.1) THEN
1292 :                INMAT=3
1293 :                GOTO 30
1294 :             ENDIF
1295 :             IF (IPLAC.EQ.2) THEN
1296 : *
1297 : *              MATERIAU ELASTIQUE ORTHOTROPE
1298 : *
1299 :                IF (MFR.EQ.33) THEN
1300 : *
1301 : *                 ELEMENTS MASSIFS
1302 : *
1303 :                   IF(IDIM.EQ.3)THEN
1304 : *                    ELEMENTS 3D
1305 :                      JGM=19
1306 :                      SEGINI MLMOTS
1307 :                      MOOBL=MLMOTS
1308 :                      MOTS(1)='YG1 '
1309 :                      MOTS(2)='YG2 '
1310 :                      MOTS(3)='YG3 '
1311 :                      MOTS(4)='NU12'
1312 :                      MOTS(5)='NU23'
1313 :                      MOTS(6)='NU13'
1314 :                      MOTS(7)='G12 '
1315 :                      MOTS(8)='G23 '
1316 :                      MOTS(9)='G13 '
1317 :                      MOTS(10)='V1X '
1318 :                      MOTS(11)='V1Y '
1319 :                      MOTS(12)='V1Z '
1320 :                      MOTS(13)='V2X '
1321 :                      MOTS(14)='V2Y '
1322 :                      MOTS(15)='V2Z '
1323 :                      MOTS(16)='COB1'
1324 :                      MOTS(17)='COB2'
1325 :                      MOTS(18)='COB3'
1326 :                      MOTS(19)='MOB '
1327 : *
1328 :                      JGM=12
1329 :                      SEGINI MLMOTS
1330 :                      MOFAC=MLMOTS
1331 :                      MOTS(1)='RHO '
1332 :                      MOTS(2)='ALP1'
1333 :                      MOTS(3)='ALP2'
1334 :                      MOTS(4)='ALP3'
1335 :                      MOTS(5)='ALPM'
1336 :                      MOTS(6)='PER1'
1337 :                      MOTS(7)='PER2'
1338 :                      MOTS(8)='PER3'
1339 :                      MOTS(9)='VISC'
1340 :                      MOTS(10)='KF  '
1341 :                      MOTS(11)='RHOF'
1342 :                      MOTS(12)='ALPF'
1343 :                   ELSEIF (IDIM.EQ.2) THEN
1344 :                      IF(IFOUR.EQ.-2)THEN
1345 : *                       CONTRAINTE PLANE
1346 :                         JGM=12
1347 :                         SEGINI MLMOTS
1348 :                         MOOBL=MLMOTS
1349 :                         MOTS(1)='YG1 '
1350 :                         MOTS(2)='YG2 '
1351 :                         MOTS(3)='NU12'
1352 :                         MOTS(4)='G12 '
1353 :                         MOTS(5)='V1X '
1354 :                         MOTS(6)='V1Y '
1355 :                         MOTS(7)='COB1'
1356 :                         MOTS(8)='COB2'
1357 :                         MOTS(9)='MOB '
1358 :                         MOTS(10)='YG3 '
1359 :                         MOTS(11)='NU23'
1360 :                         MOTS(12)='NU13'
1361 : *
1362 :                         JGM=11
1363 :                         SEGINI MLMOTS
1364 :                         MOFAC=MLMOTS
1365 :                         MOTS(1)='RHO '
1366 :                         MOTS(2)='ALP1'
1367 :                         MOTS(3)='ALP2'
1368 :                         MOTS(4)='ALPM'
1369 :                         MOTS(5)='PER1'
1370 :                         MOTS(6)='PER2'
1371 :                         MOTS(7)='VISC'
1372 :                         MOTS(8)='KF  '
1373 :                         MOTS(9)='RHOF'
1374 :                         MOTS(10)='ALPF'
1375 :                         MOTS(11)='DIM3'
1376 :          ELSEIF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN
1377 : *                       DEFORMATION PLANE ,AXISYMETRIE
1378 :                         JGM=13
1379 :                         SEGINI MLMOTS
1380 :                         MOOBL=MLMOTS
1381 :                         MOTS(1)='YG1 '
1382 :                         MOTS(2)='YG2 '
1383 :                         MOTS(3)='YG3 '
1384 :                         MOTS(4)='NU12'
1385 :                         MOTS(5)='NU23'
1386 :                         MOTS(6)='NU13'
1387 :                         MOTS(7)='G12 '
1388 :                         MOTS(8)='V1X '
1389 :                         MOTS(9)='V1Y '
1390 :                         MOTS(10)='COB1'
1391 :                         MOTS(11)='COB2'
1392 :                         MOTS(12)='COB3'
1393 :                         MOTS(13)='MOB '
1394 : *
1395 :                         JGM=11
1396 :                         SEGINI MLMOTS
1397 :                         MOFAC=MLMOTS
1398 :                         MOTS(1)='RHO '
1399 :                         MOTS(2)='ALP1'
1400 :                         MOTS(3)='ALP2'
1401 :                         MOTS(4)='ALP3'
1402 :                         MOTS(5)='ALPM'
1403 :                         MOTS(6)='PER1'
1404 :                         MOTS(7)='PER2'
1405 :                         MOTS(8)='VISC'
1406 :                         MOTS(9)='KF  '
1407 :                         MOTS(10)='RHOF'
1408 :                         MOTS(11)='ALPF'
1409 : *
1410 :                      ELSEIF (IFOUR.EQ.1) THEN
1411 : *                       AXISYMETRIE DE FOURIER
1412 :                         JGM=15
1413 :                         SEGINI MLMOTS
1414 :                         MOOBL=MLMOTS
1415 :                         MOTS(1)='YG1 '
1416 :                         MOTS(2)='YG2 '
1417 :                         MOTS(3)='YG3 '
1418 :                         MOTS(4)='NU12'
1419 :                         MOTS(5)='NU23'
1420 :                         MOTS(6)='NU13'
1421 :                         MOTS(7)='G12 '
1422 :                         MOTS(8)='G23 '
1423 :                         MOTS(9)='G13 '
1424 :                         MOTS(10)='V1X '
1425 :                         MOTS(11)='V1Y '
1426 :                         MOTS(12)='COB1'
1427 :                         MOTS(13)='COB2'
1428 :                         MOTS(14)='COB3'
1429 :                         MOTS(15)='MOB '
1430 : *
1431 :                         JGM=12
1432 :                         SEGINI MLMOTS
1433 :                         MOFAC=MLMOTS
1434 :                         MOTS(1)='RHO '
1435 :                         MOTS(2)='ALP1'
1436 :                         MOTS(3)='ALP2'
1437 :                         MOTS(4)='ALP3'
1438 :                         MOTS(5)='ALPM'
1439 :                         MOTS(6)='PER1'
1440 :                         MOTS(7)='PER2'
1441 :                         MOTS(8)='PER3'
1442 :                         MOTS(9)='VISC'
1443 :                         MOTS(10)='KF  '
1444 :                         MOTS(11)='RHOF'
1445 :                         MOTS(12)='ALPF'
1446 :                      ENDIF
1447 :                   ENDIF
1448 :                ELSE
1449 : *
1450 : *                CAS NON PREVU
1451 : *
1452 :                  IRET=0
1453 :                  GO TO 99
1454 :                ENDIF
1455 :             ELSEIF (IPLAC.EQ.3)THEN
1456 : *
1457 : *              MATERIAU ANISOTROPE ELASTIQUE
1458 : *
1459 :                IF(MFR.EQ.33)THEN
1460 : *
1461 : *                 ELEMENTS MASSIFS
1462 : *
1463 :                   IF(IDIM.EQ.3)THEN
1464 : *                    ELEMENTS 3D
1465 :                      JGM=34
1466 :                      SEGINI MLMOTS
1467 :                      MOOBL=MLMOTS
1468 :                      MOTS(1)='D11 '
1469 :                      MOTS(2)='D21 '
1470 :                      MOTS(3)='D22 '
1471 :                      MOTS(4)='D31 '
1472 :                      MOTS(5)='D32 '
1473 :                      MOTS(6)='D33 '
1474 :                      MOTS(7)='D41 '
1475 :                      MOTS(8)='D42 '
1476 :                      MOTS(9)='D43 '
1477 :                      MOTS(10)='D44 '
1478 :                      MOTS(11)='D51 '
1479 :                      MOTS(12)='D52 '
1480 :                      MOTS(13)='D53 '
1481 :                      MOTS(14)='D54 '
1482 :                      MOTS(15)='D55 '
1483 :                      MOTS(16)='D61 '
1484 :                      MOTS(17)='D62 '
1485 :                      MOTS(18)='D63 '
1486 :                      MOTS(19)='D64 '
1487 :                      MOTS(20)='D65 '
1488 :                      MOTS(21)='D66 '
1489 :                      MOTS(22)='V1X '
1490 :                      MOTS(23)='V1Y '
1491 :                      MOTS(24)='V1Z '
1492 :                      MOTS(25)='V2X '
1493 :                      MOTS(26)='V2Y '
1494 :                      MOTS(27)='V2Z '
1495 :                      MOTS(28)='COB1'
1496 :                      MOTS(29)='COB2'
1497 :                      MOTS(30)='COB3'
1498 :                      MOTS(31)='CO12'
1499 :                      MOTS(32)='CO13'
1500 :                      MOTS(33)='CO23'
1501 :                      MOTS(34)='MOB '
1502 : *
1503 :                      JGM=18
1504 :                      SEGINI MLMOTS
1505 :                      MOFAC=MLMOTS
1506 :                      MOTS(1)='RHO '
1507 :                      MOTS(2)='ALP1'
1508 :                      MOTS(3)='ALP2'
1509 :                      MOTS(4)='ALP3'
1510 :                      MOTS(5)='AL12'
1511 :                      MOTS(6)='AL13'
1512 :                      MOTS(7)='AL23'
1513 :                      MOTS(8)='ALPM'
1514 :                      MOTS(9 )='PER1'
1515 :                      MOTS(10)='PER2'
1516 :                      MOTS(11)='PER3'
1517 :                      MOTS(12)='PE12'
1518 :                      MOTS(13)='PE13'
1519 :                      MOTS(14)='PE23'
1520 :                      MOTS(15)='VISC'
1521 :                      MOTS(16)='KF  '
1522 :                      MOTS(17)='RHOF'
1523 :                      MOTS(18)='ALPF'
1524 :                   ELSEIF (IDIM.EQ.2) THEN
1525 :                      IF (IFOUR.EQ.-2) THEN
1526 : *                       CONTRAINTE PLANE
1527 :                         JGM=16
1528 :                         SEGINI MLMOTS
1529 :                         MOOBL=MLMOTS
1530 :                         MOTS(1)='D11 '
1531 :                         MOTS(2)='D21 '
1532 :                         MOTS(3)='D22 '
1533 :                         MOTS(4)='D41 '
1534 :                         MOTS(5)='D42 '
1535 :                         MOTS(6)='D44 '
1536 :                         MOTS(7)='V1X '
1537 :                         MOTS(8)='V1Y '
1538 :                         MOTS(9 )='COB1'
1539 :                         MOTS(10)='COB2'
1540 :                         MOTS(11)='CO12'
1541 :                         MOTS(12)='MOB '
1542 :                         MOTS(13)='D31 '
1543 :                         MOTS(14)='D32 '
1544 :                         MOTS(15)='D33 '
1545 :                         MOTS(16)='D43 '
1546 : 
1547 : *
1548 :                         JGM=13
1549 :                         SEGINI MLMOTS
1550 :                         MOFAC=MLMOTS
1551 :                         MOTS(1)='RHO '
1552 :                         MOTS(2)='ALP1'
1553 :                         MOTS(3)='ALP2'
1554 :                         MOTS(4)='AL12'
1555 :                         MOTS(5)='ALPM'
1556 :                         MOTS(6)='PER1'
1557 :                         MOTS(7)='PER2'
1558 :                         MOTS(8)='PE12'
1559 :                         MOTS(9)='VISC'
1560 :                         MOTS(10)='KF  '
1561 :                         MOTS(11)='RHOF'
1562 :                         MOTS(12)='ALPF'
1563 :                         MOTS(13)='DIM3'
1564 : *
1565 :          ELSEIF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN
1566 : *                       DEFORMATION PLANE ,AXISYMETRIE
1567 :                         JGM=17
1568 :                         SEGINI MLMOTS
1569 :                         MOOBL=MLMOTS
1570 :                         MOTS(1)='D11 '
1571 :                         MOTS(2)='D21 '
1572 :                         MOTS(3)='D22 '
1573 :                         MOTS(4)='D31 '
1574 :                         MOTS(5)='D32 '
1575 :                         MOTS(6)='D33 '
1576 :                         MOTS(7)='D41 '
1577 :                         MOTS(8)='D42 '
1578 :                         MOTS(9)='D43 '
1579 :                         MOTS(10)='D44 '
1580 :                         MOTS(11)='V1X '
1581 :                         MOTS(12)='V1Y '
1582 :                         MOTS(13)='COB1'
1583 :                         MOTS(14)='COB2'
1584 :                         MOTS(15)='CO12'
1585 :                         MOTS(16)='COB3'
1586 :                         MOTS(17)='MOB '
1587 : *
1588 :                         JGM=13
1589 :                         SEGINI MLMOTS
1590 :                         MOFAC=MLMOTS
1591 :                         MOTS(1)='RHO '
1592 :                         MOTS(2)='ALP1'
1593 :                         MOTS(3)='ALP2'
1594 :                         MOTS(4)='AL12'
1595 :                         MOTS(5)='ALP3'
1596 :                         MOTS(6)='ALPM'
1597 :                         MOTS(7)='PER1'
1598 :                         MOTS(8)='PER2'
1599 :                         MOTS(9)='PE12'
1600 :                         MOTS(10)='VISC'
1601 :                         MOTS(11)='KF  '
1602 :                         MOTS(12)='RHOF'
1603 :                         MOTS(13)='ALPF'
1604 : *
1605 :                      ELSEIF (IFOUR.EQ.1) THEN
1606 : *                       AXISYMETRIE DE FOURIER
1607 :                         JGM=20
1608 :                         SEGINI MLMOTS
1609 :                         MOOBL=MLMOTS
1610 :                         MOTS(1)='D11 '
1611 :                         MOTS(2)='D21 '
1612 :                         MOTS(3)='D22 '
1613 :                         MOTS(4)='D31 '
1614 :                         MOTS(5)='D32 '
1615 :                         MOTS(6)='D33 '
1616 :                         MOTS(7)='D41 '
1617 :                         MOTS(8)='D42 '
1618 :                         MOTS(9)='D43 '
1619 :                         MOTS(10)='D44 '
1620 :                         MOTS(11)='D55 '
1621 :                         MOTS(12)='D65 '
1622 :                         MOTS(13)='D66 '
1623 :                         MOTS(14)='V1X '
1624 :                         MOTS(15)='V1Y '
1625 :                         MOTS(16)='COB1'
1626 :                         MOTS(17)='COB2'
1627 :                         MOTS(18)='CO12'
1628 :                         MOTS(19)='COB3'
1629 :                         MOTS(20)='MOB '
1630 : *
1631 :                         JGM=14
1632 :                         SEGINI MLMOTS
1633 :                         MOFAC=MLMOTS
1634 :                         MOTS(1)='RHO '
1635 :                         MOTS(2)='ALP1'
1636 :                         MOTS(3)='ALP2'
1637 :                         MOTS(4)='AL12'
1638 :                         MOTS(5)='ALP3'
1639 :                         MOTS(6)='ALPM'
1640 :                         MOTS(7)='PER1'
1641 :                         MOTS(8)='PER2'
1642 :                         MOTS(9)='PE12'
1643 :                         MOTS(10)='PER3'
1644 :                         MOTS(11)='VISC'
1645 :                         MOTS(12)='KF  '
1646 :                         MOTS(13)='RHOF'
1647 :                         MOTS(14)='ALPF'
1648 :                      ENDIF
1649 :                   ENDIF
1650 :                ELSE
1651 : *
1652 : *                CAS NON PREVU
1653 : *
1654 :                  IRET=0
1655 :                  GO TO 99
1656 :                ENDIF
1657 :             ELSEIF (IPLAC.EQ.6) THEN
1658 : C
1659 : C         MATERIAU ELASTIQUE UNIDIRECTIONNEL
1660 : C
1661 :                IF(MFR.EQ.33)THEN
1662 :                  IF (IDIM.EQ.3) THEN
1663 :                    JGM=9
1664 :                    SEGINI MLMOTS
1665 :                    MOOBL=MLMOTS
1666 :                    MOTS(1)='YOUN'
1667 :                    MOTS(2)='V1X '
1668 :                    MOTS(3)='V1Y '
1669 :                    MOTS(4)='V1Z '
1670 :                    MOTS(5)='V2X '
1671 :                    MOTS(6)='V2Y '
1672 :                    MOTS(7)='V2Z '
1673 :                    MOTS(8)='COB '
1674 :                    MOTS(9)='MOB '
1675 :                  ELSE
1676 :                    JGM=5
1677 :                    SEGINI MLMOTS
1678 :                    MOOBL=MLMOTS
1679 :                    MOTS(1)='YOUN'
1680 :                    MOTS(2)='V1X '
1681 :                    MOTS(3)='V1Y '
1682 :                    MOTS(4)='COB '
1683 :                    MOTS(5)='MOB '
1684 :                  ENDIF
1685 : *
1686 :                  IF(IFOUR.EQ.-2) THEN
1687 :                     JGM=9
1688 :                  ELSE
1689 :                    JGM=8
1690 :                  ENDIF
1691 :                  SEGINI MLMOTS
1692 :                  MOFAC=MLMOTS
1693 :                  MOTS(1)='RHO '
1694 :                  MOTS(2)='ALPH'
1695 :                  MOTS(3)='ALPM'
1696 :                  MOTS(4)='PERM'
1697 :                  MOTS(5)='VISC'
1698 :                  MOTS(6)='KF  '
1699 :                  MOTS(7)='RHOF'
1700 :                  MOTS(8)='ALPF'
1701 :                  IF(IFOUR.EQ.-2)   MOTS(9)='DIM3'
1702 :                ELSE
1703 : *
1704 : *                CAS NON PREVU
1705 : *
1706 :                  IRET=0
1707 :                  GO TO 99
1708 :                ENDIF
1709 : *
1710 :             ENDIF
1711 :             INMAT=3
1712 :             GOTO 40
1713 :          ELSE
1714 :             INMAT=2
1715 :             GOTO 30
1716 :          ENDIF
1717 :       ENDIF
1718 :       INMAT=0      
1719 :  30   CONTINUE
1720 : *
1721 : *     CAS MATERIAU POREUX ELASTIQUE ISOTROPE
1722 : *
1723 :       IF(MELE.GE.79.AND.MELE.LE.83)THEN
1724 : *
1725 :       JGM=4
1726 :       SEGINI MLMOTS
1727 :       MOOBL=MLMOTS
1728 :       MOTS(1) ='YOUN'
1729 :       MOTS(2) ='NU  '
1730 :       MOTS(3) ='COB '
1731 :       MOTS(4) ='MOB '
1732 : *
1733 :         IF(IFOUR.EQ.-2) THEN
1734 :             JGM=9
1735 :         ELSE
1736 :             JGM=8
1737 :         ENDIF
1738 :       SEGINI MLMOTS
1739 :       MOFAC=MLMOTS
1740 :       MOTS(1)='RHOF'
1741 :       MOTS(2)='ALPF'
1742 :       MOTS(3)='ALPM'
1743 :       MOTS(4)='PERM'
1744 :       MOTS(5)='VISC'
1745 :       MOTS(6)='KF  '
1746 :       MOTS(7)='RHO '
1747 :       MOTS(8)='ALPH'
1748 :       IF(IFOUR.EQ.-2)   MOTS(9)='DIM3'
1749 : *
1750 :       ELSEIF(MELE.GE.108.AND.MELE.LE.110)THEN
1751 : *
1752 : *     CAS DES JOINTS POREUX ISOTROPES (VALABLE EN 2D COMME EN 3D)
1753 : *
1754 :       JGM=4
1755 :       SEGINI MLMOTS
1756 :       MOOBL=MLMOTS
1757 :       MOTS(1)='KS  '
1758 :       MOTS(2)='KN  '
1759 :       MOTS(3)='COB '
1760 :       MOTS(4)='MOB '
1761 : *
1762 :       JGM=4
1763 :       SEGINI MLMOTS
1764 :       MOFAC=MLMOTS
1765 :       MOTS(1)='PERT'
1766 :       MOTS(2)='PERH'
1767 :       MOTS(3)='PERB'
1768 :       MOTS(4)='VISC'
1769 : *
1770 :       ELSEIF(MELE.GE.173.AND.MELE.LE.177)THEN
1771 : *
1772 :       JGM=10
1773 :       SEGINI MLMOTS
1774 :       MOOBL=MLMOTS
1775 :       MOTS(1) ='YOUN'
1776 :       MOTS(2) ='NU  '
1777 :       MOTS(3) ='COP1'
1778 :       MOTS(4) ='COP2'
1779 :       MOTS(5) ='CPP1'
1780 :       MOTS(6) ='CPP2'
1781 :       MOTS(7) ='KK11'
1782 :       MOTS(8) ='KK12'
1783 :       MOTS(9) ='KK21'
1784 :       MOTS(10)='KK22'
1785 : *
1786 :         IF(IFOUR.EQ.-2) THEN
1787 :             JGM=9
1788 :         ELSE
1789 :             JGM=8
1790 :         ENDIF
1791 :       SEGINI MLMOTS
1792 :       MOFAC=MLMOTS
1793 :       MOTS(1)='RHOF'
1794 :       MOTS(2)='ALPF'
1795 :       MOTS(3)='ALPM'
1796 :       MOTS(4)='PK11'
1797 :       MOTS(5)='PK12'
1798 :       MOTS(6)='PK21'
1799 :       MOTS(7)='PK22'
1800 :       MOTS(8)='ALPH'
1801 :       IF(IFOUR.EQ.-2)   MOTS(9)='DIM3'
1802 : *
1803 :       ELSEIF(MELE.GE.185.AND.MELE.LE.187)THEN
1804 : *
1805 : *     CAS DES JOINTS POREUX ISOTROPES (VALABLE EN 2D COMME EN 3D)
1806 : *
1807 :       JGM=4
1808 :       SEGINI MLMOTS
1809 :       MOOBL=MLMOTS
1810 :       MOTS(1)='KS  '
1811 :       MOTS(2)='KN  '
1812 :       MOTS(3)='COB '
1813 :       MOTS(4)='MOB '
1814 : *
1815 :       JGM=4
1816 :       SEGINI MLMOTS
1817 :       MOFAC=MLMOTS
1818 :       MOTS(1)='PERT'
1819 :       MOTS(2)='PERH'
1820 :       MOTS(3)='PERB'
1821 :       MOTS(4)='VISC'
1822 : *
1823 :       ELSEIF(MELE.GE.178.AND.MELE.LE.182)THEN
1824 : *
1825 :       JGM=17
1826 :       SEGINI MLMOTS
1827 :       MOOBL=MLMOTS
1828 :       MOTS(1)='YOUN'
1829 :       MOTS(2)='NU  '
1830 :       MOTS(3)='COP1'
1831 :       MOTS(4)='COP2'
1832 :       MOTS(5)='COP3'
1833 :       MOTS(6)='CPP1'
1834 :       MOTS(7)='CPP2'
1835 :       MOTS(8)='CPP3'
1836 :       MOTS(9)='KK11'
1837 :       MOTS(10)='KK12'
1838 :       MOTS(11)='KK13'
1839 :       MOTS(12)='KK21'
1840 :       MOTS(13)='KK22'
1841 :       MOTS(14)='KK23'
1842 :       MOTS(15)='KK31'
1843 :       MOTS(16)='KK32'
1844 :       MOTS(17)='KK33'
1845 : *
1846 :         IF(IFOUR.EQ.-2) THEN
1847 :             JGM=15
1848 :         ELSE
1849 :             JGM=14
1850 :         ENDIF
1851 :       SEGINI MLMOTS
1852 :       MOFAC=MLMOTS
1853 :       MOTS(1)='RHOF'
1854 :       MOTS(2)='ALPF'
1855 :       MOTS(3)='ALPM'
1856 :       MOTS(4)='PK11'
1857 :       MOTS(5)='PK12'
1858 :       MOTS(6)='PK13'
1859 :       MOTS(7)='PK21'
1860 :       MOTS(8)='PK22'
1861 :       MOTS(9)='PK23'
1862 :       MOTS(10)='PK31'
1863 :       MOTS(11)='PK32'
1864 :       MOTS(12)='PK33'
1865 :       MOTS(13)='RHO '
1866 :       MOTS(14)='ALPH'
1867 :       IF(IFOUR.EQ.-2)   MOTS(15)='DIM3'
1868 : *
1869 :       ELSEIF(MELE.GE.188.AND.MELE.LE.190)THEN
1870 : *
1871 : *     CAS DES JOINTS POREUX ISOTROPES (VALABLE EN 2D COMME EN 3D)
1872 : *
1873 :       JGM=4
1874 :       SEGINI MLMOTS
1875 :       MOOBL=MLMOTS
1876 :       MOTS(1)='KS  '
1877 :       MOTS(2)='KN  '
1878 :       MOTS(3)='COB '
1879 :       MOTS(4)='MOB '
1880 : *
1881 :       JGM=4
1882 :       SEGINI MLMOTS
1883 :       MOFAC=MLMOTS
1884 :       MOTS(1)='PERT'
1885 :       MOTS(2)='PERH'
1886 :       MOTS(3)='PERB'
1887 :       MOTS(4)='VISC'
1888 : *
1889 : *
1890 :       ENDIF
1891 : *
1892 :       IF (INMAT.EQ.0) GOTO 9999
1893 : *
1894 :  40   CONTINUE
1895 :       IF (NMAT.GE.INMAT) THEN
1895 :          CALL MODNLI(MOMODL,NMOD)
1895 :          CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1896 :          IF (IPLAC.EQ.1) THEN
1897 :             INMAT=INMAT+1
1897 :             CALL MODPLA(MOMODL,NMOD)
1897 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1898 :             IF (IPLAC.EQ.0) THEN
1899 : *              ISOTROPE
1900 :                IPLAC=1
1901 : *           ELSE
1902 : *              INMAT=INMAT+1
1903 :             ENDIF
1903 :             CALL IDPLAS(MFR,MOOBL,MOFAC,IPLAC,IRET)
1904 :             IF (IRET.EQ.0) GOTO 99
1905 :          ELSEIF (IPLAC.EQ.2) THEN
1906 :             INMAT=INMAT+1
1906 :             CALL MODFLU(MOMODL,NMOD)
1906 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1907 :             IF (IPLAC.EQ.0) THEN
1908 : *              NORTON
1909 :                IPLAC=1
1910 : *           ELSE
1911 : *              INMAT=INMAT+1
1912 :             ENDIF
1912 :             CALL IDFLUA(MFR,MOOBL,MOFAC,IPLAC,IRET)
1913 :             IF (IRET.EQ.0) GOTO 99
1914 :          ELSEIF (IPLAC.EQ.3) THEN
1915 :             INMAT=INMAT+1
1915 :             CALL MODVIS(MOMODL,NMOD)
1915 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1916 :             IF (IPLAC.EQ.0) THEN
1917 : *              CHABOCHE
1918 :                IPLAC=2
1919 : *           ELSE
1920 : *              INMAT=INMAT+1
1921 :             ENDIF
1921 :             CALL IDVISC(MFR,MOOBL,MOFAC,IPLAC,IRET)
1922 :             IF (IRET.EQ.0) GOTO 99
1923 :          ELSEIF (IPLAC.EQ.4) THEN
1924 :             INMAT=INMAT+1
1924 :             CALL MODEND(MOMODL,NMOD)
1924 :             CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
1925 :             IF (IPLAC.EQ.0) THEN
1926 : *              MAZARS
1927 :                IPLAC=1
1928 : *           ELSE
1929 : *              INMAT=INMAT+1
1930 :             ENDIF
1930 :             CALL IDENDO(MFR,MOOBL,MOFAC,IPLAC,IRET)
1931 :             IF (IRET.EQ.0) GOTO 99
1932 :          ELSE
1933 :             GOTO 99
1934 :          ENDIF
1935 : *
1936 : *         En cas de creation de materiaux combinant plusieurs materiaux
1937 : *         deja existant Ex ELASTIQUE ISOTROPE PLASTIQUE PARFAIT FLUAGE N
1938 : *         GOTO 40
1939 : *
1940 :          GOTO 9999
1941 :       ENDIF
1942 :       GOTO 9999
1943 :       ENDIF
1944 : *--------------------------------------------------------------------
1945 : *     CAS DE LA FORMULATION FROTTEMENT
1946 : *--------------------------------------------------------------------
1946 :       CALL PLACE(FORMOD,NFOR,ICONV,'CONTACT')
1947 :       IF (ICONV.NE.0) THEN
1948 : *
1949 :         INMAT=0
1950 :         iplla=0
1950 :         CALL MODFRO(MOMODL,NMOD)
1951 :         do iou=1,matmod(/2)
1951 :           CALL PLACE(MOMODL(4),2,IPLAC,MATMOD(iou))
1952 :           iplla=max( iplac,iplla)
1953 :         enddo
1954 :         IF(IPlla.EQ.0) GO TO 99 
1954 :         CALL IDFRO(MOOBL,MOFAC,IPlla,IRET)
1955 :         IF (IRET.EQ.0) GOTO 99
1956 : *
1957 :         GOTO 9999
1958 :       ENDIF
1959 : *--------------------------------------------------------------------
1960 : *     CAS DE LA FORMULATION RAYONNEMENT
1961 : *--------------------------------------------------------------------
1961 :       CALL PLACE(FORMOD,NFOR,ICONV,'RAYONNEMENT')
1962 :       IF (ICONV.NE.0) THEN
1963 : *
1964 :         IF(MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
1965 :           JGM=2
1966 :           SEGINI MLMOTS
1967 :           MOOBL=MLMOTS
1968 :           MOTS(1)='EINF'
1969 :           MOTS(2)='ESUP'
1970 :         ELSE
1971 : *
1972 :           JGM=1
1973 :           SEGINI MLMOTS
1974 :           MOOBL=MLMOTS
1975 :           MOTS(1)='EMIS'
1976 :         ENDIF
1977 : *
1978 :         GOTO 9999
1979 :       ENDIF
1980 : *--------------------------------------------------------------------
1981 : *     CAS DE LA FORMULATION MAGNETODYNAMIQUE
1982 : *--------------------------------------------------------------------
1982 :       CALL PLACE(FORMOD,NFOR,ICONV,'MAGNETODYNAMIQUE')
1983 :       IF (ICONV.NE.0) THEN
1984 : *
1985 : *       FORMULATION EN COQUES
1986 :         IF(MFR.EQ.3) THEN
1986 :           CALL PLACE(MATMOD,NMAT,ISOT,'ISOTROPE')
1987 :           IF(ISOT.NE.0) THEN
1988 :             JGM=3
1989 :             SEGINI MLMOTS
1990 :             MOOBL=MLMOTS
1991 :             MOTS(1)='ETA'
1992 :             MOTS(2)='PERM'
1993 :             MOTS(3)='EPAI'
1994 :           ELSE
1994 :             CALL PLACE(MATMOD,NMAT,IORTH,'ORTHOTROPE')
1995 :             IF(IORTH.NE.0) THEN
1996 :               JGM=4
1997 :               SEGINI MLMOTS
1998 :               MOOBL=MLMOTS
1999 :               MOTS(1)='ETA1'
2000 :               MOTS(2)='ETA2'
2001 :               MOTS(3)='PERM'
2002 :               MOTS(4)='EPAI'
2003 :             ENDIF
2004 :           ENDIF
2005 :         ENDIF
2006 : *
2007 :         GOTO 9999
2008 :       ENDIF
2009 : *--------------------------------------------------------------------
2010 : *     CAS DE LA FORMULATION FISSURE
2011 : *--------------------------------------------------------------------
2011 :       CALL PLACE(FORMOD,NFOR,ICONV,'FISSURE')
2012 :       IF (ICONV.NE.0) THEN
2013 : *
2014 : * si POISEU_BLASIUS ou POISEU_COLEBROOK ou par defaut
2015 :             JGM=1
2016 :             SEGINI MLMOTS
2017 :             MOOBL=MLMOTS
2018 :             MOTS(1)='RUGO'
2019 : * si FROTTEMENT1 ou FROTTEMENT2
2019 :             CALL PLACE(MATMOD,NMAT,IFT1,'FROTTEMENT1')
2019 :             CALL PLACE(MATMOD,NMAT,IFT2,'FROTTEMENT2')
2020 :             IF(IFT1.NE.0.OR.IFT2.NE.0) THEN
2021 :               JGM=7
2022 :               SEGINI MLMOTS
2023 :               MOOBL=MLMOTS
2024 :               MOTS(1)='RUGO'
2025 :               MOTS(2)='REC'
2026 :               MOTS(3)='FK'
2027 :               MOTS(4)='FA'
2028 :               MOTS(5)='FB'
2029 :               MOTS(6)='FC'
2030 :               MOTS(7)='FD'
2031 :             ELSE
2032 : * si FROTTEMENT3 ou FROTTEMENT4
2032 :               CALL PLACE(MATMOD,NMAT,IFT1,'FROTTEMENT3')
2032 :               CALL PLACE(MATMOD,NMAT,IFT2,'FROTTEMENT4')
2033 :               IF(IFT1.NE.0.OR.IFT2.NE.0) THEN
2034 :                 JGM=2
2035 :                 SEGINI MLMOTS
2036 :                 MOOBL=MLMOTS
2037 :                 MOTS(1)='RUGO'
2038 :                 MOTS(2)='FK'
2039 :               ENDIF
2040 :             ENDIF
2041 : *
2042 :         GOTO 9999
2043 :       ENDIF
2044 : *--------------------------------------------------------------------
2045 : *     CAS DE LA FORMULATION MELANGE
2046 : *--------------------------------------------------------------------
2046 :       CALL PLACE(FORMOD,NFOR,ICONV,'MELANGE')
2047 :       IF (ICONV.NE.0) THEN
2047 :          CALL MODMEL(MOMODL,NMOD)
2047 :          CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
2048 : *         write(6,*) ' iplac' , iplac
2049 :          if (iplac.eq.0) goto 99
2050 :          INMAT=1
2051 : *
2052 : * a priori elements massifs ou coques : pas de verif 
2053 : *
2054 :         JGM = 0
2055 :         SEGINI MLMOTS
2056 :         MOOBL = MLMOTS
2057 :         SEGINI MLMOTS
2058 :         MOFAC = MLMOTS
2059 :         IF (IPLAC.NE.3.AND.IPLAC.NE.4) THEN
2059 :           CALL IDMETA(MFR,MOOBL,MOFAC,IPLAC,IRET)
2060 :           IF (IRET.EQ.0) GOTO 99  
2061 : * construit les noms de composante en PARALLELE ou en SERIE
2062 :         ELSEIF (iplac.eq.3.or.iplac.eq.4) THEN
2063 :           mlmots = moobl
2064 :           segsup mlmots
2065 :           jgm = ivamod(/1)
2066 : *          write(6,*) ' jgm ', jgm
2067 :           segini mlmots  
2068 :           kc1 = 0
2069 :           do ic1 = 1,jgm
2070 :            if (tymode(ic1).eq.'IMODEL') then
2071 :              imode2 = ivamod(ic1)
2072 :              segact imode2
2073 :              lozut = .false.
2074 : *             write(6,*) ' imode2.phamod(1:4) ',imode2.phamod(1:4)  
2075 :              if (kc1.ge.1) then
2076 :               do kkc1 = 1, kc1
2077 :        if (imode2.conmod(17:20).eq.mots(kkc1)) lozut = .true.
2078 :               enddo
2079 :              endif
2080 :              if (.not.lozut) then 
2081 :                kc1 = kc1 + 1
2082 :                mots(kc1) = imode2.conmod(17:20)
2083 :              endif
2084 :              segdes imode2
2085 :            endif 
2086 :           enddo
2087 :           jgm = kc1
2088 :           segadj mlmots
2089 :           moobl = mlmots
2090 :         ENDIF
2091 : *
2092 :         GOTO 9999
2093 :       ENDIF
2094 : *--------------------------------------------------------------------
2095 : *     CAS DE LA FORMULATION LIAISON
2096 : *--------------------------------------------------------------------
2096 :       CALL PLACE(FORMOD,NFOR,ICONV,'LIAISON')
2097 :       IF (ICONV.NE.0) THEN
2098 :         iplac = imatee
2099 :          if (iplac.eq.0) goto 99
2100 : *
2101 :         JGM = 0
2102 :         SEGINI MLMOTS
2103 :         MOOBL = MLMOTS
2104 :         SEGINI MLMOTS
2105 :         MOFAC = MLMOTS
2106 : * 'SORT' facultatif dans tous les cas
2107 : *
2108 :         IF (iplac.EQ.1) THEN
2109 : *PO_PL_FL
2110 :          MLMOTS = MOOBL
2111 :          JGM0 = MOTS(/2)
2112 :          JGM = MOTS(/2)+7
2113 :          SEGADJ MLMOTS
2114 :          MOTS(JGM0 + 1) ='NORM'
2115 :          MOTS(JGM0 + 2) ='INER'
2116 :          MOTS(JGM0 + 3) ='CONV'
2117 :          MOTS(JGM0 + 4) ='VISC'
2118 :          MOTS(JGM0 + 5) ='PELO'
2119 :          MOTS(JGM0 + 6) ='PRAP'
2120 :          MOTS(JGM0 + 7) ='JFLU'
2121 :         ELSEIF (iplac.eq.2) then
2122 : *PO_PL_FR
2123 :          MLMOTS = MOOBL
2124 :          JGM0 = MOTS(/2)
2125 :          JGM = MOTS(/2)+7
2126 :          SEGADJ MLMOTS
2127 :          MOTS(JGM0 + 1) ='NORM'
2128 :          MOTS(JGM0 + 2) ='RAID'
2129 :          MOTS(JGM0 + 3) ='JEU'
2130 :          MOTS(JGM0 + 4) ='GLIS'
2131 :          MOTS(JGM0 + 5) ='ADHE'
2132 :          MOTS(JGM0 + 6) ='RTAN'
2133 :          MOTS(JGM0 + 7) ='ATAN'
2134 :          MLMOTS = MOFAC
2135 :          JGM0 = MOTS(/2)
2136 :          JGM = MOTS(/2)+2
2137 :          SEGADJ MLMOTS
2138 :          MOTS(JGM0+1) = 'AMOR'
2139 :          MOTS(JGM0+2) = 'LOIC'
2140 : 
2141 :         ELSEIF (iplac.eq.3) then
2142 : *PO_PL
2143 :          MLMOTS = MOOBL
2144 :          JGM0 = MOTS(/2)
2145 :          JGM = MOTS(/2)+3
2146 :          SEGADJ MLMOTS
2147 :          MOTS(JGM0 + 1) ='NORM'
2148 :          MOTS(JGM0 + 2) ='RAID'
2149 :          MOTS(JGM0 + 3) ='JEU'
2150 :          MLMOTS = MOFAC
2151 :          JGM0 = MOTS(/2)
2152 :          JGM = MOTS(/2)+4
2153 :          SEGADJ MLMOTS
2154 :          MOTS(JGM0+1) = 'LOIC'
2155 :          MOTS(JGM0+2) = 'PERM'
2156 :          MOTS(JGM0 + 3) ='SPLA'
2157 :          MOTS(JGM0 + 4) ='AMOR'
2158 :  
2159 :        ELSEIF (iplac.eq.4) then
2160 : *PO_PO_FR
2161 :          MLMOTS = MOOBL
2162 :          JGM0 = MOTS(/2)
2163 :          JGM = MOTS(/2)+8
2164 :          SEGADJ MLMOTS
2165 :          MOTS(JGM0 + 1) ='NORM'
2166 :          MOTS(JGM0 + 2) ='RAID'
2167 :          MOTS(JGM0 + 3) ='JEU'
2168 :          MOTS(JGM0 + 4) ='POIB'
2169 :          MOTS(JGM0 + 5) ='ADHE'
2170 :          MOTS(JGM0 + 6) ='RTAN'
2171 :          MOTS(JGM0 + 7) ='ATAN'
2172 :          MOTS(JGM0 + 8) ='GLIS'
2173 :          MLMOTS = MOFAC
2174 :          JGM0 = MOTS(/2)
2175 :          JGM = MOTS(/2)+3
2176 :          SEGADJ MLMOTS
2177 :          MOTS(JGM0+1) = 'AMOR'
2178 :          MOTS(JGM0+2) = 'LOIC'
2179 :          MOTS(JGM0+3) = 'MODE'
2180 : 
2181 :         ELSEIF (iplac.eq.5) then
2182 : *PO_PO_DP
2183 :          MLMOTS = MOOBL
2184 :          JGM0 = MOTS(/2)
2185 :          JGM = MOTS(/2)+6
2186 :          SEGADJ MLMOTS
2187 :          MOTS(JGM0 + 1) ='NORM'
2188 :          MOTS(JGM0 + 2) ='ECRO'
2189 :          MOTS(JGM0 + 3) ='JEU'
2190 :          MOTS(JGM0 + 4) ='POIB'
2191 :          MOTS(JGM0 + 5) ='PERM'
2192 :          MOTS(JGM0 + 6) = 'LOIC'
2193 :          MLMOTS = MOFAC
2194 :          JGM0 = MOTS(/2)
2195 :          JGM = MOTS(/2)+1
2196 :          SEGADJ MLMOTS
2197 :          MOTS(JGM0+1) = 'AMOR'
2198 : 
2199 :         ELSEIF (iplac.eq.6) then
2200 : *PO_PO_RP
2201 :          MLMOTS = MOOBL
2202 :          JGM0 = MOTS(/2)
2203 :          JGM = MOTS(/2)+6
2204 :          SEGADJ MLMOTS
2205 :          MOTS(JGM0 + 1) ='AXRO'
2206 :          MOTS(JGM0 + 2) ='ECRO'
2207 :          MOTS(JGM0 + 3) ='JEU'
2208 :          MOTS(JGM0 + 4) ='POIB'
2209 :          MOTS(JGM0 + 5) ='PERM'
2210 :          MOTS(JGM0 + 6) = 'LOIC'
2211 :          MLMOTS = MOFAC
2212 :          JGM0 = MOTS(/2)
2213 :          JGM = MOTS(/2)+2
2214 :          SEGADJ MLMOTS
2215 :          MOTS(JGM0+1) = 'AMOR'
2216 :          MOTS(JGM0+2) = 'ELAS'
2217 : 
2218 :         ELSEIF (iplac.eq.7) then
2219 : *PO_PO
2220 :          MLMOTS = MOOBL
2221 :          JGM0 = MOTS(/2)
2222 :          JGM = MOTS(/2)+5
2223 :          SEGADJ MLMOTS
2224 :          MOTS(JGM0 + 1) ='NORM'
2225 :          MOTS(JGM0 + 2) ='RAID'
2226 :          MOTS(JGM0 + 3) ='JEU'
2227 :          MOTS(JGM0 + 4) ='POIB'
2228 :          MOTS(JGM0 + 5) ='PERM'
2229 :          MLMOTS = MOFAC
2230 :          JGM0 = MOTS(/2)
2231 :          JGM = MOTS(/2)+2
2232 :          SEGADJ MLMOTS
2233 :          MOTS(JGM0+1) = 'AMOR'
2234 :          MOTS(JGM0+2) = 'LOIC'
2235 : 
2236 :         ELSEIF (iplac.eq.8) then
2237 : *PO_CE_MO
2238 :          MLMOTS = MOOBL
2239 :          JGM0 = MOTS(/2)
2240 :          JGM = MOTS(/2)+8
2241 :          SEGADJ MLMOTS
2242 :          MOTS(JGM0 + 1) ='NORM'
2243 :          MOTS(JGM0 + 2) ='RAID'
2244 :          MOTS(JGM0 + 3) ='PCER'
2245 :          MOTS(JGM0 + 4) ='RAYO'
2246 :          MOTS(JGM0 + 5) ='GLIS'
2247 :          MOTS(JGM0 + 6) ='ADHE'
2248 :          MOTS(JGM0 + 7) ='RTAN'
2249 :          MOTS(JGM0 + 8) ='ATAN'
2250 :          MLMOTS = MOFAC
2251 :          JGM0 = MOTS(/2)
2252 :          JGM = MOTS(/2)+2
2253 :          SEGADJ MLMOTS
2254 :          MOTS(JGM0+1) = 'CINT'
2255 :          MOTS(JGM0+2) = 'AMOR'
2256 : 
2257 :         ELSEIF (iplac.eq.9) then
2258 : *PO_CE_FR
2259 :          MLMOTS = MOOBL
2260 :          JGM0 = MOTS(/2)
2261 :          JGM = MOTS(/2)+8
2262 :          SEGADJ MLMOTS
2263 :          MOTS(JGM0 + 1) ='NORM'
2264 :          MOTS(JGM0 + 2) ='RAID'
2265 :          MOTS(JGM0 + 3) ='EXCE'
2266 :          MOTS(JGM0 + 4) ='RAYO'
2267 :          MOTS(JGM0 + 5) ='GLIS'
2268 :          MOTS(JGM0 + 6) ='ADHE'
2269 :          MOTS(JGM0 + 7) ='RTAN'
2270 :          MOTS(JGM0 + 8) ='ATAN'
2271 :          MLMOTS = MOFAC
2272 :          JGM0 = MOTS(/2)
2273 :          JGM = MOTS(/2)+2
2274 :          SEGADJ MLMOTS
2275 :          MOTS(JGM0+1) = 'CINT'
2276 :          MOTS(JGM0+2) = 'AMOR'
2277 : 
2278 :         ELSEIF (iplac.eq.10) then
2279 : *PO_CE
2280 :          MLMOTS = MOOBL
2281 :          JGM0 = MOTS(/2)
2282 :          JGM = MOTS(/2)+4
2283 :          SEGADJ MLMOTS
2284 :          MOTS(JGM0 + 1) ='NORM'
2285 :          MOTS(JGM0 + 2) ='RAID'
2286 :          MOTS(JGM0 + 3) ='EXCE'
2287 :          MOTS(JGM0 + 4) ='RAYO'
2288 :          MLMOTS = MOFAC
2289 :          JGM0 = MOTS(/2)
2290 :          JGM = MOTS(/2)+1
2291 :          SEGADJ MLMOTS
2292 :          MOTS(JGM0+1) = 'AMOR'
2293 : 
2294 :         ELSEIF (iplac.eq.11) then
2295 : *CE_PL_FR
2296 :          MLMOTS = MOOBL
2297 :          JGM0 = MOTS(/2)
2298 :          JGM = MOTS(/2)+8
2299 :          SEGADJ MLMOTS
2300 :          MOTS(JGM0 + 1) ='NORM'
2301 :          MOTS(JGM0 + 2) ='RAID'
2302 :          MOTS(JGM0 + 3) ='JEU'
2303 :          MOTS(JGM0 + 4) ='RAYS'
2304 :          MOTS(JGM0 + 5) ='GLIS'
2305 :          MOTS(JGM0 + 6) ='ADHE'
2306 :          MOTS(JGM0 + 7) ='RTAN'
2307 :          MOTS(JGM0 + 8) ='ATAN'
2308 :          MLMOTS = MOFAC
2309 :          JGM0 = MOTS(/2)
2310 :          JGM = MOTS(/2)+1
2311 :          SEGADJ MLMOTS
2312 :          MOTS(JGM0+1) = 'AMOR'
2313 : 
2314 :         ELSEIF (iplac.eq.12) then
2315 : *CE_CE_FR
2316 :          MLMOTS = MOOBL
2317 :          JGM0 = MOTS(/2)
2318 :          JGM = MOTS(/2)+9
2319 :          SEGADJ MLMOTS
2320 :          MOTS(JGM0 + 1) ='NORM'
2321 :          MOTS(JGM0 + 2) ='RAID'
2322 :          MOTS(JGM0 + 3) ='EXCE'
2323 :          MOTS(JGM0 + 4) ='RAYS'
2324 :          MOTS(JGM0 + 5) ='GLIS'
2325 :          MOTS(JGM0 + 6) ='ADHE'
2326 :          MOTS(JGM0 + 7) ='RTAN'
2327 :          MOTS(JGM0 + 8) ='ATAN'
2328 :          MOTS(JGM0 + 9) ='RAYB'
2329 :          MLMOTS = MOFAC
2330 :          JGM0 = MOTS(/2)
2331 :          JGM = MOTS(/2)+2
2332 :          SEGADJ MLMOTS
2333 :          MOTS(JGM0+1) = 'AMOR'
2334 :          MOTS(JGM0+2) = 'CINT'
2335 : 
2336 :         ELSEIF (iplac.eq.13.or.iplac.eq.14) then
2337 : *PR_PR_IN ou PR_PR_EX
2338 :          MLMOTS = MOOBL
2339 :          JGM0 = MOTS(/2)
2340 :          JGM = MOTS(/2)+5
2341 :          SEGADJ MLMOTS
2342 :          MOTS(JGM0 + 1) ='NORM'
2343 :          MOTS(JGM0 + 2) ='RAID'
2344 :          MOTS(JGM0 + 3) ='PFIX'
2345 :          MOTS(JGM0 + 4) ='PMOB'
2346 :          MOTS(JGM0 + 5) ='ERAI'
2347 : 
2348 :         ELSEIF (iplac.eq.15) then
2349 : *LI_LI_FR
2350 :          MLMOTS = MOOBL
2351 :          JGM0 = MOTS(/2)
2352 :          JGM = MOTS(/2)+9
2353 :          SEGADJ MLMOTS
2354 :          MOTS(JGM0 + 1) ='NORM'
2355 :          MOTS(JGM0 + 2) ='LIMA'
2356 :          MOTS(JGM0 + 3) ='LIES'
2357 :          MOTS(JGM0 + 4) ='RAID'
2358 :          MOTS(JGM0 + 5) ='GLIS'
2359 :          MOTS(JGM0 + 6) ='ADHE'
2360 :          MOTS(JGM0 + 7) ='RTAN'
2361 :          MOTS(JGM0 + 8) ='ATAN'
2362 :          MOTS(JGM0 + 9) ='JEU'
2363 :          MLMOTS = MOFAC
2364 :          JGM0 = MOTS(/2)
2365 :          JGM = MOTS(/2)+3
2366 :          SEGADJ MLMOTS
2367 :          MOTS(JGM0+1) = 'AMOR'
2368 :          MOTS(JGM0+2) = 'RECH'
2369 :          MOTS(JGM0+3) = 'SYME'
2370 : 
2371 :         ELSEIF (iplac.eq.16) then
2372 : *LI_CE_FR
2373 :          MLMOTS = MOOBL
2374 :          JGM0 = MOTS(/2)
2375 :          JGM = MOTS(/2)+8
2376 :          SEGADJ MLMOTS
2377 :          MOTS(JGM0 + 1) ='NORM'
2378 :          MOTS(JGM0 + 2) ='LIMA'
2379 :          MOTS(JGM0 + 3) ='LIES'
2380 :          MOTS(JGM0 + 4) ='RAID'
2381 :          MOTS(JGM0 + 5) ='GLIS'
2382 :          MOTS(JGM0 + 6) ='ADHE'
2383 :          MOTS(JGM0 + 7) ='RTAN'
2384 :          MOTS(JGM0 + 8) ='ATAN'
2385 :          MLMOTS = MOFAC
2386 :          JGM0 = MOTS(/2)
2387 :          JGM = MOTS(/2)+5
2388 :          SEGADJ MLMOTS
2389 :          MOTS(JGM0+1) = 'AMOR'
2390 :          MOTS(JGM0+2) = 'RECH'
2391 :          MOTS(JGM0+3) = 'RAYO'
2392 :          MOTS(JGM0+4) = 'ACTN'
2393 :          MOTS(JGM0+5) = 'INVE'
2394 : 
2395 :         ELSEIF (iplac.eq.17) then
2396 : *PA_FL_RO
2397 :          MLMOTS = MOOBL
2398 :          JGM0 = MOTS(/2)
2399 :          JGM = MOTS(/2)+10
2400 :          SEGADJ MLMOTS
2401 :          MOTS(JGM0 + 1) ='LONG'
2402 :          MOTS(JGM0 + 2) ='RAYO'
2403 :          MOTS(JGM0 + 3) ='VISC'
2404 :          MOTS(JGM0 + 4) ='RHOF'
2405 :          MOTS(JGM0 + 5) ='PADM'
2406 :          MOTS(JGM0 + 6) ='VROT'
2407 :          MOTS(JGM0 + 7) ='EPSI'
2408 :          MOTS(JGM0 + 8) ='PHII'
2409 :          MOTS(JGM0 + 9) ='AFFI'
2410 :          MOTS(JGM0 + 10) ='TLOB'
2411 :          MLMOTS = MOFAC
2412 :          JGM0 = MOTS(/2)
2413 :          JGM = MOTS(/2)+1
2414 :          SEGADJ MLMOTS
2415 :          MOTS(JGM0+1) = 'AMOR'
2416 : 
2417 :         ELSEIF (iplac.eq.23) then
2418 : *NEWMARK MODAL
2419 :          MLMOTS = MOOBL
2420 :          JGM0 = MOTS(/2)
2421 :          JGM = MOTS(/2)+1
2422 :          SEGADJ MLMOTS
2423 :          MOTS(JGM0 + 1) ='JEU'
2424 :          MLMOTS = MOFAC
2425 :          JGM0 = MOTS(/2)
2426 :          JGM = MOTS(/2)+3
2427 :          SEGADJ MLMOTS
2428 :          MOTS(JGM0+1) = 'EXCE'
2429 :          MOTS(JGM0+2) = 'FROT'
2430 :          MOTS(JGM0+3) = 'MOFR'
2431 :         ENDIF
2432 : *
2433 : * 'SORT' facultatif dans tous les cas
2434 :         MLMOTS = MOFAC
2435 :         JGM0 = MOTS(/2)
2436 :         JGM = JGM0+1
2437 :         SEGADJ MLMOTS
2438 :         MOTS(JGM0+1) = 'SORT'
2439 : *
2440 :         GOTO 9999
2441 :       ENDIF
2442 : 
2443 : *--------------------------------------------------------------------
2444 : *     CAS DE LA FORMULATION ELECTROSTATIQUE
2445 : *--------------------------------------------------------------------
2445 :       CALL PLACE(FORMOD,NFOR,IELEC,'ELECTROSTATIQUE')
2446 :       IF (IELEC.NE.0) THEN
2447 : C -- Permittivite isotrope
2448 :         IF (IMATEE.EQ.1) THEN
2449 : C*      IF (CMATEE.EQ.'ISOTROPE') THEN
2450 : C*      IF (MATMOD(1).EQ.'ISOTROPE        ') THEN
2451 :           JGM = 1
2452 :           SEGINI,MLMOTS
2453 :           MOOBL = MLMOTS
2454 :           MOTS(1)='PEL     '
2455 : C -- Permittivite orthotrope
2456 :         ELSEIF (IMATEE.EQ.2) THEN
2457 : C*      ELSEIF (CMATEE.EQ.'ORTHOTRO') THEN
2458 : C*      ELSEIF (MATMOD(1).EQ.'ORTHOTROPE      ') THEN
2459 : C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE
2460 :           IF (IDIM.EQ.2) THEN
2461 :             IF (IFOMOD.NE.1) THEN
2462 :               JGM = 4
2463 :               SEGINI,MLMOTS
2464 :               MOOBL = MLMOTS
2465 :               MOTS(1) = 'PE1     '
2466 :               MOTS(2) = 'PE2     '
2467 :               MOTS(3) = 'V1X     '
2468 :               MOTS(4) = 'V1Y     '
2469 : C ---- Elements massifs bidimensionnels FOURIER
2470 :             ELSE
2471 :               JGM = 5
2472 :               SEGINI,MLMOTS
2473 :               MOOBL = MLMOTS
2474 :               MOTS(1) = 'PE1     '
2475 :               MOTS(2) = 'PE2     '
2476 :               MOTS(3) = 'PE3     '
2477 :               MOTS(4) = 'V1X     '
2478 :               MOTS(5) = 'V1Y     '
2479 :             ENDIF
2480 : C ---- Elements massifs TRIDimensionnels
2481 :           ELSEIF (IDIM.EQ.3) THEN
2482 :             JGM = 9
2483 :             SEGINI,MLMOTS
2484 :             MOOBL = MLMOTS
2485 :             MOTS(1) = 'PE1     '
2486 :             MOTS(2) = 'PE2     '
2487 :             MOTS(3) = 'PE3     '
2488 :             MOTS(4) = 'V1X     '
2489 :             MOTS(5) = 'V1Y     '
2490 :             MOTS(6) = 'V1Z     '
2491 :             MOTS(7) = 'V2X     '
2492 :             MOTS(8) = 'V2Y     '
2493 :             MOTS(9) = 'V2Z     '
2494 :           ENDIF
2495 : C -- Permittivite anisotrope
2496 :         ELSEIF (IMATEE.EQ.3) THEN
2497 : C*      ELSEIF (CMATEE.EQ.'ANISOTRO') THEN
2498 : C*      ELSEIF (MATMOD(1).EQ.'ANISOTROPE      ') THEN
2499 : C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE
2500 :           IF (IDIM.EQ.2) THEN
2501 :             IF (IFOMOD.NE.1) THEN
2502 :               JGM = 5
2503 :               SEGINI,MLMOTS
2504 :               MOOBL = MLMOTS
2505 :               MOTS(1) = 'PE11    '
2506 :               MOTS(2) = 'PE22    '
2507 :               MOTS(3) = 'PE21    '
2508 :               MOTS(4) = 'V1X     '
2509 :               MOTS(5) = 'V1Y     '
2510 : C ---- Elements massifs bidimensionnels FOURIER
2511 :             ELSE
2512 :               JGM = 6
2513 :               SEGINI,MLMOTS
2514 :               MOOBL=MLMOTS
2515 :               MOTS(1) = 'PE11    '
2516 :               MOTS(2) = 'PE22    '
2517 :               MOTS(3) = 'PE21    '
2518 :               MOTS(4) = 'PE33    '
2519 :               MOTS(5) = 'V1X     '
2520 :               MOTS(6) = 'V1Y     '
2521 :             ENDIF
2522 : C ---- Elements massifs TRIDimensionnels
2523 :           ELSEIF (IDIM.EQ.3) THEN
2524 :             JGM = 12
2525 :             SEGINI,MLMOTS
2526 :             MOOBL = MLMOTS
2527 :             MOTS( 1) = 'PE11    '
2528 :             MOTS( 2) = 'PE22    '
2529 :             MOTS( 3) = 'PE33    '
2530 :             MOTS( 4) = 'PE21    '
2531 :             MOTS( 5) = 'PE31    '
2532 :             MOTS( 6) = 'PE32    '
2533 :             MOTS( 7) = 'V1X     '
2534 :             MOTS( 8) = 'V1Y     '
2535 :             MOTS( 9) = 'V1Z     '
2536 :             MOTS(10) = 'V2X     '
2537 :             MOTS(11) = 'V2Y     '
2538 :             MOTS(12) = 'V2Z     '
2539 :           ENDIF
2540 :         ELSE
2540 :           CALL ERREUR(5)
2541 :           RETURN
2542 :         ENDIF
2543 :       ENDIF
2544 : *
2545 : *-----------------------------------------------------------------------
2546 : *     CAS DE LA FORMULATION 'DIFFUSION'
2547 : *-----------------------------------------------------------------------
2547 :       CALL PLACE(FORMOD,NFOR,IDIFF,'DIFFUSION')
2548 :       IF (IDIFF.NE.0) THEN
2549 :         IMATE = IMATEE
2550 :         IPLAC = INATUU
2551 : C -- Diffusion lineaire (composantes obligatoires)
2551 :         CALL IDDILI(IMATE,0, MOOBL,NBROBL,NBRFAC)
2552 :         IF (MOOBL.EQ.0) GOTO 99
2553 : C -- "Capacite" si necessaire
2554 :         JGM = 1
2555 :         SEGINI,MLMOTS
2556 :         MOFAC = MLMOTS
2557 : C*8     MOTS(1) = 'CDIFF   '
2558 :         MOTS(1) = 'CDIF    '
2559 : C -- Modeles non lineaires de diffusion
2559 :         CALL IDDIFF(IMATE,MOOBL,MOFAC,IPLAC,IRET)
2560 :         IF (IRET.EQ.0) GOTO 99
2561 :         GOTO 9999
2562 :       ENDIF
2563 : *
2564 : *--------------------------------------------------------------------
2565 :  9999 CONTINUE
2566 : C
2567 :       IF (MOOBL.NE.0) THEN
2568 :         MLMOTS=MOOBL
2569 :         NBROBL=MOTS(/2)
2570 : C*?     if (nbrobl.lt.0) goto 99
2571 :       ENDIF
2572 :       IF (MOFAC.NE.0) THEN
2573 :         MLMOTS=MOFAC
2574 :         NBRFAC=MOTS(/2)
2575 : C*?     if (nbrfac.lt.0) goto 99
2576 :       ENDIF
2577 :       SEGINI,NOMID
2578 :       MLMOTS=MOOBL
2579 :       DO 100 IO=1,NBROBL
2580 :         LESOBL(IO)=MOTS(IO)
2581 :  100  CONTINUE
2582 :       SEGSUP,MLMOTS
2583 :       MLMOTS=MOFAC
2584 :       DO 110 IO=1,NBRFAC
2585 :         LESFAC(IO)=MOTS(IO)
2586 : 110   CONTINUE    
2587 :       SEGSUP,MLMOTS
2588 :       IPNOMC=NOMID
2589 :       SEGDES,NOMID
2590 :       RETURN
2591 : *
2592 : *     SI PROBLEME , ON SORT AVEC IPNOMC A 0
2593 : *
2594 :  99   IPNOMC=0
2595 :       RETURN
2596 :       END
2597 : 
2598 :  
2599 :  
2600 :  
2601 :  
2602 :  
2603 :  
2604 :  
2605 :  
2606 :  
2607 :  
2608 :  
2609 :  
2610 :  

© Cast3M 2003 - All rights reserved.
Disclaimer