Télécharger idmatr.eso

Retour à la liste

Numérotation des lignes :

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

© Cast3M 2003 - Tous droits réservés.
Mentions légales