Télécharger idmatr.eso

Retour à la liste

Numérotation des lignes :

  1. C IDMATR SOURCE PASCAL 19/02/20 21:15:17 10116
  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. * ONERA
  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. do jma=1,matmod(/2)
  1301. if(matmod(jma).eq.'CRIP') then
  1302. JGOBL = JGOBL + 1
  1303. TABOBL(JGOBL) = 'LIMP'
  1304. endif
  1305. enddo
  1306. *
  1307. GOTO 9999
  1308. ENDIF
  1309.  
  1310. *--------------------------------------------------------------------
  1311. * CAS DE LA FORMULATION POREUX
  1312. *--------------------------------------------------------------------
  1313. CALL PLACE(FORMOD,NFOR,IPORE,'POREUX')
  1314. IF (IPORE.NE.0) THEN
  1315. *
  1316. CALL MODLIN(MOMODL,NMOD)
  1317. CALL PLACE(MOMODL,NMOD,IRET,MATMOD(1))
  1318. IF (IRET.EQ.0) GOTO 9999
  1319. *
  1320. * D'ABORD : CAS NON ISOTROPE
  1321. *
  1322. IF (NMAT.GE.2) THEN
  1323. CALL MODELA(MOMODL,NMOD)
  1324. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(2))
  1325. IF (IPLAC.NE.0) THEN
  1326. INMAT=3
  1327. IF (IPLAC.EQ.1) THEN
  1328. INMAT=3
  1329. GOTO 30
  1330. ENDIF
  1331. IF (IPLAC.EQ.2) THEN
  1332. *
  1333. * MATERIAU ELASTIQUE ORTHOTROPE
  1334. *
  1335. IF (MFR.EQ.33) THEN
  1336. *
  1337. * ELEMENTS MASSIFS
  1338. *
  1339. IF(IDIM.EQ.3)THEN
  1340. * ELEMENTS 3D
  1341. JGOBL=19
  1342. TABOBL(1)='YG1 '
  1343. TABOBL(2)='YG2 '
  1344. TABOBL(3)='YG3 '
  1345. TABOBL(4)='NU12'
  1346. TABOBL(5)='NU23'
  1347. TABOBL(6)='NU13'
  1348. TABOBL(7)='G12 '
  1349. TABOBL(8)='G23 '
  1350. TABOBL(9)='G13 '
  1351. TABOBL(10)='V1X '
  1352. TABOBL(11)='V1Y '
  1353. TABOBL(12)='V1Z '
  1354. TABOBL(13)='V2X '
  1355. TABOBL(14)='V2Y '
  1356. TABOBL(15)='V2Z '
  1357. TABOBL(16)='COB1'
  1358. TABOBL(17)='COB2'
  1359. TABOBL(18)='COB3'
  1360. TABOBL(19)='MOB '
  1361. *
  1362. JGFAC=12
  1363. TABFAC(1)='RHO '
  1364. TABFAC(2)='ALP1'
  1365. TABFAC(3)='ALP2'
  1366. TABFAC(4)='ALP3'
  1367. TABFAC(5)='ALPM'
  1368. TABFAC(6)='PER1'
  1369. TABFAC(7)='PER2'
  1370. TABFAC(8)='PER3'
  1371. TABFAC(9)='VISC'
  1372. TABFAC(10)='KF '
  1373. TABFAC(11)='RHOF'
  1374. TABFAC(12)='ALPF'
  1375. ELSEIF (IDIM.EQ.2) THEN
  1376. IF(IFOUR.EQ.-2)THEN
  1377. * CONTRAINTE PLANE
  1378. JGOBL=12
  1379. TABOBL(1)='YG1 '
  1380. TABOBL(2)='YG2 '
  1381. TABOBL(3)='NU12'
  1382. TABOBL(4)='G12 '
  1383. TABOBL(5)='V1X '
  1384. TABOBL(6)='V1Y '
  1385. TABOBL(7)='COB1'
  1386. TABOBL(8)='COB2'
  1387. TABOBL(9)='MOB '
  1388. TABOBL(10)='YG3 '
  1389. TABOBL(11)='NU23'
  1390. TABOBL(12)='NU13'
  1391. *
  1392. JGFAC=11
  1393. TABFAC(1)='RHO '
  1394. TABFAC(2)='ALP1'
  1395. TABFAC(3)='ALP2'
  1396. TABFAC(4)='ALPM'
  1397. TABFAC(5)='PER1'
  1398. TABFAC(6)='PER2'
  1399. TABFAC(7)='VISC'
  1400. TABFAC(8)='KF '
  1401. TABFAC(9)='RHOF'
  1402. TABFAC(10)='ALPF'
  1403. TABFAC(11)='DIM3'
  1404. ELSEIF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN
  1405. * DEFORMATION PLANE ,AXISYMETRIE
  1406. JGOBL=13
  1407. TABOBL(1)='YG1 '
  1408. TABOBL(2)='YG2 '
  1409. TABOBL(3)='YG3 '
  1410. TABOBL(4)='NU12'
  1411. TABOBL(5)='NU23'
  1412. TABOBL(6)='NU13'
  1413. TABOBL(7)='G12 '
  1414. TABOBL(8)='V1X '
  1415. TABOBL(9)='V1Y '
  1416. TABOBL(10)='COB1'
  1417. TABOBL(11)='COB2'
  1418. TABOBL(12)='COB3'
  1419. TABOBL(13)='MOB '
  1420. *
  1421. JGFAC=11
  1422. TABFAC(1)='RHO '
  1423. TABFAC(2)='ALP1'
  1424. TABFAC(3)='ALP2'
  1425. TABFAC(4)='ALP3'
  1426. TABFAC(5)='ALPM'
  1427. TABFAC(6)='PER1'
  1428. TABFAC(7)='PER2'
  1429. TABFAC(8)='VISC'
  1430. TABFAC(9)='KF '
  1431. TABFAC(10)='RHOF'
  1432. TABFAC(11)='ALPF'
  1433. *
  1434. ELSEIF (IFOUR.EQ.1) THEN
  1435. * AXISYMETRIE DE FOURIER
  1436. JGOBL=15
  1437. TABOBL(1)='YG1 '
  1438. TABOBL(2)='YG2 '
  1439. TABOBL(3)='YG3 '
  1440. TABOBL(4)='NU12'
  1441. TABOBL(5)='NU23'
  1442. TABOBL(6)='NU13'
  1443. TABOBL(7)='G12 '
  1444. TABOBL(8)='G23 '
  1445. TABOBL(9)='G13 '
  1446. TABOBL(10)='V1X '
  1447. TABOBL(11)='V1Y '
  1448. TABOBL(12)='COB1'
  1449. TABOBL(13)='COB2'
  1450. TABOBL(14)='COB3'
  1451. TABOBL(15)='MOB '
  1452. *
  1453. JGFAC=12
  1454. TABFAC(1)='RHO '
  1455. TABFAC(2)='ALP1'
  1456. TABFAC(3)='ALP2'
  1457. TABFAC(4)='ALP3'
  1458. TABFAC(5)='ALPM'
  1459. TABFAC(6)='PER1'
  1460. TABFAC(7)='PER2'
  1461. TABFAC(8)='PER3'
  1462. TABFAC(9)='VISC'
  1463. TABFAC(10)='KF '
  1464. TABFAC(11)='RHOF'
  1465. TABFAC(12)='ALPF'
  1466. ENDIF
  1467. ENDIF
  1468. ELSE
  1469. *
  1470. * CAS NON PREVU
  1471. *
  1472. IRET = 0
  1473. GOTO 9999
  1474. ENDIF
  1475. ELSEIF (IPLAC.EQ.3)THEN
  1476. *
  1477. * MATERIAU ANISOTROPE ELASTIQUE
  1478. *
  1479. IF(MFR.EQ.33)THEN
  1480. *
  1481. * ELEMENTS MASSIFS
  1482. *
  1483. IF(IDIM.EQ.3)THEN
  1484. * ELEMENTS 3D
  1485. JGOBL=34
  1486. TABOBL(1)='D11 '
  1487. TABOBL(2)='D21 '
  1488. TABOBL(3)='D22 '
  1489. TABOBL(4)='D31 '
  1490. TABOBL(5)='D32 '
  1491. TABOBL(6)='D33 '
  1492. TABOBL(7)='D41 '
  1493. TABOBL(8)='D42 '
  1494. TABOBL(9)='D43 '
  1495. TABOBL(10)='D44 '
  1496. TABOBL(11)='D51 '
  1497. TABOBL(12)='D52 '
  1498. TABOBL(13)='D53 '
  1499. TABOBL(14)='D54 '
  1500. TABOBL(15)='D55 '
  1501. TABOBL(16)='D61 '
  1502. TABOBL(17)='D62 '
  1503. TABOBL(18)='D63 '
  1504. TABOBL(19)='D64 '
  1505. TABOBL(20)='D65 '
  1506. TABOBL(21)='D66 '
  1507. TABOBL(22)='V1X '
  1508. TABOBL(23)='V1Y '
  1509. TABOBL(24)='V1Z '
  1510. TABOBL(25)='V2X '
  1511. TABOBL(26)='V2Y '
  1512. TABOBL(27)='V2Z '
  1513. TABOBL(28)='COB1'
  1514. TABOBL(29)='COB2'
  1515. TABOBL(30)='COB3'
  1516. TABOBL(31)='CO12'
  1517. TABOBL(32)='CO13'
  1518. TABOBL(33)='CO23'
  1519. TABOBL(34)='MOB '
  1520. *
  1521. JGFAC=18
  1522. TABFAC(1)='RHO '
  1523. TABFAC(2)='ALP1'
  1524. TABFAC(3)='ALP2'
  1525. TABFAC(4)='ALP3'
  1526. TABFAC(5)='AL12'
  1527. TABFAC(6)='AL13'
  1528. TABFAC(7)='AL23'
  1529. TABFAC(8)='ALPM'
  1530. TABFAC(9 )='PER1'
  1531. TABFAC(10)='PER2'
  1532. TABFAC(11)='PER3'
  1533. TABFAC(12)='PE12'
  1534. TABFAC(13)='PE13'
  1535. TABFAC(14)='PE23'
  1536. TABFAC(15)='VISC'
  1537. TABFAC(16)='KF '
  1538. TABFAC(17)='RHOF'
  1539. TABFAC(18)='ALPF'
  1540. ELSEIF (IDIM.EQ.2) THEN
  1541. IF (IFOUR.EQ.-2) THEN
  1542. * CONTRAINTE PLANE
  1543. JGOBL=16
  1544. TABOBL(1)='D11 '
  1545. TABOBL(2)='D21 '
  1546. TABOBL(3)='D22 '
  1547. TABOBL(4)='D41 '
  1548. TABOBL(5)='D42 '
  1549. TABOBL(6)='D44 '
  1550. TABOBL(7)='V1X '
  1551. TABOBL(8)='V1Y '
  1552. TABOBL(9 )='COB1'
  1553. TABOBL(10)='COB2'
  1554. TABOBL(11)='CO12'
  1555. TABOBL(12)='MOB '
  1556. TABOBL(13)='D31 '
  1557. TABOBL(14)='D32 '
  1558. TABOBL(15)='D33 '
  1559. TABOBL(16)='D43 '
  1560. *
  1561. JGFAC=13
  1562. TABFAC(1)='RHO '
  1563. TABFAC(2)='ALP1'
  1564. TABFAC(3)='ALP2'
  1565. TABFAC(4)='AL12'
  1566. TABFAC(5)='ALPM'
  1567. TABFAC(6)='PER1'
  1568. TABFAC(7)='PER2'
  1569. TABFAC(8)='PE12'
  1570. TABFAC(9)='VISC'
  1571. TABFAC(10)='KF '
  1572. TABFAC(11)='RHOF'
  1573. TABFAC(12)='ALPF'
  1574. TABFAC(13)='DIM3'
  1575. *
  1576. ELSEIF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN
  1577. * DEFORMATION PLANE ,AXISYMETRIE
  1578. JGOBL=17
  1579. TABOBL(1)='D11 '
  1580. TABOBL(2)='D21 '
  1581. TABOBL(3)='D22 '
  1582. TABOBL(4)='D31 '
  1583. TABOBL(5)='D32 '
  1584. TABOBL(6)='D33 '
  1585. TABOBL(7)='D41 '
  1586. TABOBL(8)='D42 '
  1587. TABOBL(9)='D43 '
  1588. TABOBL(10)='D44 '
  1589. TABOBL(11)='V1X '
  1590. TABOBL(12)='V1Y '
  1591. TABOBL(13)='COB1'
  1592. TABOBL(14)='COB2'
  1593. TABOBL(15)='CO12'
  1594. TABOBL(16)='COB3'
  1595. TABOBL(17)='MOB '
  1596. *
  1597. JGFAC=13
  1598. TABFAC(1)='RHO '
  1599. TABFAC(2)='ALP1'
  1600. TABFAC(3)='ALP2'
  1601. TABFAC(4)='AL12'
  1602. TABFAC(5)='ALP3'
  1603. TABFAC(6)='ALPM'
  1604. TABFAC(7)='PER1'
  1605. TABFAC(8)='PER2'
  1606. TABFAC(9)='PE12'
  1607. TABFAC(10)='VISC'
  1608. TABFAC(11)='KF '
  1609. TABFAC(12)='RHOF'
  1610. TABFAC(13)='ALPF'
  1611. *
  1612. ELSEIF (IFOUR.EQ.1) THEN
  1613. * AXISYMETRIE DE FOURIER
  1614. JGOBL=20
  1615. TABOBL(1)='D11 '
  1616. TABOBL(2)='D21 '
  1617. TABOBL(3)='D22 '
  1618. TABOBL(4)='D31 '
  1619. TABOBL(5)='D32 '
  1620. TABOBL(6)='D33 '
  1621. TABOBL(7)='D41 '
  1622. TABOBL(8)='D42 '
  1623. TABOBL(9)='D43 '
  1624. TABOBL(10)='D44 '
  1625. TABOBL(11)='D55 '
  1626. TABOBL(12)='D65 '
  1627. TABOBL(13)='D66 '
  1628. TABOBL(14)='V1X '
  1629. TABOBL(15)='V1Y '
  1630. TABOBL(16)='COB1'
  1631. TABOBL(17)='COB2'
  1632. TABOBL(18)='CO12'
  1633. TABOBL(19)='COB3'
  1634. TABOBL(20)='MOB '
  1635. *
  1636. JGFAC=14
  1637. TABFAC(1)='RHO '
  1638. TABFAC(2)='ALP1'
  1639. TABFAC(3)='ALP2'
  1640. TABFAC(4)='AL12'
  1641. TABFAC(5)='ALP3'
  1642. TABFAC(6)='ALPM'
  1643. TABFAC(7)='PER1'
  1644. TABFAC(8)='PER2'
  1645. TABFAC(9)='PE12'
  1646. TABFAC(10)='PER3'
  1647. TABFAC(11)='VISC'
  1648. TABFAC(12)='KF '
  1649. TABFAC(13)='RHOF'
  1650. TABFAC(14)='ALPF'
  1651. ENDIF
  1652. ENDIF
  1653. ELSE
  1654. *
  1655. * CAS NON PREVU
  1656. *
  1657. IRET = 0
  1658. GOTO 9999
  1659. ENDIF
  1660.  
  1661. ELSEIF (IPLAC.EQ.6) THEN
  1662. C
  1663. C MATERIAU ELASTIQUE UNIDIRECTIONNEL
  1664. C
  1665. IF(MFR.EQ.33)THEN
  1666. IF (IDIM.EQ.3) THEN
  1667. JGOBL=9
  1668. TABOBL(1)='YOUN'
  1669. TABOBL(2)='V1X '
  1670. TABOBL(3)='V1Y '
  1671. TABOBL(4)='V1Z '
  1672. TABOBL(5)='V2X '
  1673. TABOBL(6)='V2Y '
  1674. TABOBL(7)='V2Z '
  1675. TABOBL(8)='COB '
  1676. TABOBL(9)='MOB '
  1677. ELSE
  1678. JGOBL=5
  1679. TABOBL(1)='YOUN'
  1680. TABOBL(2)='V1X '
  1681. TABOBL(3)='V1Y '
  1682. TABOBL(4)='COB '
  1683. TABOBL(5)='MOB '
  1684. ENDIF
  1685. *
  1686. IF(IFOUR.EQ.-2) THEN
  1687. JGFAC=9
  1688. TABFAC(9)='DIM3'
  1689. ELSE
  1690. JGFAC=8
  1691. ENDIF
  1692. TABFAC(1)='RHO '
  1693. TABFAC(2)='ALPH'
  1694. TABFAC(3)='ALPM'
  1695. TABFAC(4)='PERM'
  1696. TABFAC(5)='VISC'
  1697. TABFAC(6)='KF '
  1698. TABFAC(7)='RHOF'
  1699. TABFAC(8)='ALPF'
  1700. ELSE
  1701. *
  1702. * CAS NON PREVU
  1703. *
  1704. IRET = 0
  1705. GO TO 9999
  1706. ENDIF
  1707. *
  1708. ENDIF
  1709. INMAT=3
  1710. GOTO 40
  1711. ELSE
  1712. INMAT=2
  1713. GOTO 30
  1714. ENDIF
  1715. ENDIF
  1716. INMAT=0
  1717. 30 CONTINUE
  1718. *
  1719. * CAS MATERIAU POREUX ELASTIQUE ISOTROPE
  1720. *
  1721. IF(MELE.GE.79.AND.MELE.LE.83)THEN
  1722. *
  1723. JGOBL=4
  1724. TABOBL(1) ='YOUN'
  1725. TABOBL(2) ='NU '
  1726. TABOBL(3) ='COB '
  1727. TABOBL(4) ='MOB '
  1728. *
  1729. IF(IFOUR.EQ.-2) THEN
  1730. JGFAC=9
  1731. TABFAC(9)='DIM3'
  1732. ELSE
  1733. JGFAC=8
  1734. ENDIF
  1735. TABFAC(1)='RHOF'
  1736. TABFAC(2)='ALPF'
  1737. TABFAC(3)='ALPM'
  1738. TABFAC(4)='PERM'
  1739. TABFAC(5)='VISC'
  1740. TABFAC(6)='KF '
  1741. TABFAC(7)='RHO '
  1742. TABFAC(8)='ALPH'
  1743. *
  1744. ELSEIF(MELE.GE.108.AND.MELE.LE.110)THEN
  1745. *
  1746. * CAS DES JOINTS POREUX ISOTROPES (VALABLE EN 2D COMME EN 3D)
  1747. *
  1748. JGOBL=4
  1749. TABOBL(1)='KS '
  1750. TABOBL(2)='KN '
  1751. TABOBL(3)='COB '
  1752. TABOBL(4)='MOB '
  1753. *
  1754. JGFAC=4
  1755. TABFAC(1)='PERT'
  1756. TABFAC(2)='PERH'
  1757. TABFAC(3)='PERB'
  1758. TABFAC(4)='VISC'
  1759. *
  1760. ELSEIF(MELE.GE.173.AND.MELE.LE.177)THEN
  1761. *
  1762. JGOBL=10
  1763. TABOBL(1) ='YOUN'
  1764. TABOBL(2) ='NU '
  1765. TABOBL(3) ='COP1'
  1766. TABOBL(4) ='COP2'
  1767. TABOBL(5) ='CPP1'
  1768. TABOBL(6) ='CPP2'
  1769. TABOBL(7) ='KK11'
  1770. TABOBL(8) ='KK12'
  1771. TABOBL(9) ='KK21'
  1772. TABOBL(10)='KK22'
  1773. *
  1774. IF(IFOUR.EQ.-2) THEN
  1775. JGFAC=9
  1776. TABFAC(9)='DIM3'
  1777. ELSE
  1778. JGFAC=8
  1779. ENDIF
  1780. TABFAC(1)='RHOF'
  1781. TABFAC(2)='ALPF'
  1782. TABFAC(3)='ALPM'
  1783. TABFAC(4)='PK11'
  1784. TABFAC(5)='PK12'
  1785. TABFAC(6)='PK21'
  1786. TABFAC(7)='PK22'
  1787. TABFAC(8)='ALPH'
  1788. *
  1789. ELSEIF(MELE.GE.185.AND.MELE.LE.187)THEN
  1790. *
  1791. * CAS DES JOINTS POREUX ISOTROPES (VALABLE EN 2D COMME EN 3D)
  1792. *
  1793. JGOBL=10
  1794. TABOBL(1)='KS '
  1795. TABOBL(2)='KN '
  1796. TABOBL(3)='COP1'
  1797. TABOBL(4)='COP2'
  1798. TABOBL(5)='CPP1'
  1799. TABOBL(6)='CPP2'
  1800. TABOBL(7)='KK11'
  1801. TABOBL(8)='KK12'
  1802. TABOBL(9)='KK21'
  1803. TABOBL(10)='KK22'
  1804. *
  1805. IF(IFOUR.EQ.-2) THEN
  1806. JGFAC=18
  1807. TABFAC(18)='DIM3'
  1808. ELSE
  1809. JGFAC=17
  1810. ENDIF
  1811. TABFAC(1)='RHOF'
  1812. TABFAC(2)='ALPF'
  1813. TABFAC(3)='ALPM'
  1814. TABFAC(4)='PT11'
  1815. TABFAC(5)='PH11'
  1816. TABFAC(6)='PB11'
  1817. TABFAC(7)='PT12'
  1818. TABFAC(8)='PH12'
  1819. TABFAC(9)='PB12'
  1820. TABFAC(10)='PT21'
  1821. TABFAC(11)='PH21'
  1822. TABFAC(12)='PB21'
  1823. TABFAC(13)='PT22'
  1824. TABFAC(14)='PH22'
  1825. TABFAC(15)='PB22'
  1826. TABFAC(16)='RHO '
  1827. TABFAC(17)='ALPH'
  1828.  
  1829. ELSEIF(MELE.GE.178.AND.MELE.LE.182)THEN
  1830. *
  1831. JGOBL=17
  1832. TABOBL(1)='YOUN'
  1833. TABOBL(2)='NU '
  1834. TABOBL(3)='COP1'
  1835. TABOBL(4)='COP2'
  1836. TABOBL(5)='COP3'
  1837. TABOBL(6)='CPP1'
  1838. TABOBL(7)='CPP2'
  1839. TABOBL(8)='CPP3'
  1840. TABOBL(9)='KK11'
  1841. TABOBL(10)='KK12'
  1842. TABOBL(11)='KK13'
  1843. TABOBL(12)='KK21'
  1844. TABOBL(13)='KK22'
  1845. TABOBL(14)='KK23'
  1846. TABOBL(15)='KK31'
  1847. TABOBL(16)='KK32'
  1848. TABOBL(17)='KK33'
  1849. *
  1850. IF(IFOUR.EQ.-2) THEN
  1851. JGFAC=15
  1852. TABFAC(15)='DIM3'
  1853. ELSE
  1854. JGFAC=14
  1855. ENDIF
  1856. TABFAC(1)='RHOF'
  1857. TABFAC(2)='ALPF'
  1858. TABFAC(3)='ALPM'
  1859. TABFAC(4)='PK11'
  1860. TABFAC(5)='PK12'
  1861. TABFAC(6)='PK13'
  1862. TABFAC(7)='PK21'
  1863. TABFAC(8)='PK22'
  1864. TABFAC(9)='PK23'
  1865. TABFAC(10)='PK31'
  1866. TABFAC(11)='PK32'
  1867. TABFAC(12)='PK33'
  1868. TABFAC(13)='RHO '
  1869. TABFAC(14)='ALPH'
  1870.  
  1871. ELSEIF(MELE.GE.188.AND.MELE.LE.190)THEN
  1872. *
  1873. * CAS DES JOINTS POREUX ISOTROPES (VALABLE EN 2D COMME EN 3D)
  1874. *
  1875. JGOBL=17
  1876. TABOBL(1)='KS '
  1877. TABOBL(2)='KN '
  1878. TABOBL(3)='COP1'
  1879. TABOBL(4)='COP2'
  1880. TABOBL(5)='COP3'
  1881. TABOBL(6)='CPP1'
  1882. TABOBL(7)='CPP2'
  1883. TABOBL(8)='CPP3'
  1884. TABOBL(9)='KK11'
  1885. TABOBL(10)='KK12'
  1886. TABOBL(11)='KK13'
  1887. TABOBL(12)='KK21'
  1888. TABOBL(13)='KK22'
  1889. TABOBL(14)='KK23'
  1890. TABOBL(15)='KK31'
  1891. TABOBL(16)='KK32'
  1892. TABOBL(17)='KK33'
  1893. *
  1894. IF(IFOUR.EQ.-2) THEN
  1895. JGFAC=33
  1896. TABFAC(33)='DIM3'
  1897. ELSE
  1898. JGFAC=32
  1899. ENDIF
  1900. TABFAC(1)='RHOF'
  1901. TABFAC(2)='ALPF'
  1902. TABFAC(3)='ALPM'
  1903. TABFAC(4)='PT11'
  1904. TABFAC(5)='PH11'
  1905. TABFAC(6)='PB11'
  1906. TABFAC(7)='PT12'
  1907. TABFAC(8)='PH12'
  1908. TABFAC(9)='PB12'
  1909. TABFAC(10)='PT13'
  1910. TABFAC(11)='PH13'
  1911. TABFAC(12)='PB13'
  1912. TABFAC(13)='PT21'
  1913. TABFAC(14)='PH21'
  1914. TABFAC(15)='PB21'
  1915. TABFAC(16)='PT22'
  1916. TABFAC(17)='PH22'
  1917. TABFAC(18)='PB22'
  1918. TABFAC(19)='PT23'
  1919. TABFAC(20)='PH23'
  1920. TABFAC(21)='PB23'
  1921. TABFAC(22)='PT31'
  1922. TABFAC(23)='PH31'
  1923. TABFAC(24)='PB31'
  1924. TABFAC(25)='PT32'
  1925. TABFAC(26)='PH32'
  1926. TABFAC(27)='PB32'
  1927. TABFAC(28)='PT33'
  1928. TABFAC(29)='PH33'
  1929. TABFAC(30)='PB33'
  1930. TABFAC(31)='RHO '
  1931. TABFAC(32)='ALPH'
  1932.  
  1933. ENDIF
  1934. *
  1935. IF (INMAT.EQ.0) THEN
  1936. ** IRET = 0
  1937. GOTO 9999
  1938. ENDIF
  1939. *
  1940. 40 CONTINUE
  1941. IF (NMAT.GE.INMAT) THEN
  1942. CALL MODNLI(MOMODL,NMOD)
  1943. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  1944. IF (IPLAC.EQ.1) THEN
  1945. INMAT=INMAT+1
  1946. CALL MODPLA(MOMODL,NMOD)
  1947. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  1948. IF (IPLAC.EQ.0) THEN
  1949. * ISOTROPE
  1950. IPLAC=1
  1951. * ELSE
  1952. * INMAT=INMAT+1
  1953. ENDIF
  1954. CALL IDPLAS(MFR,TABOBL,TABFAC,JGOBL,JGFAC,ITA,IPLAC,IRET)
  1955. IF (IRET.EQ.0) GOTO 9999
  1956. ELSEIF (IPLAC.EQ.2) THEN
  1957. INMAT=INMAT+1
  1958. CALL MODFLU(MOMODL,NMOD)
  1959. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  1960. IF (IPLAC.EQ.0) THEN
  1961. * NORTON
  1962. IPLAC=1
  1963. * ELSE
  1964. * INMAT=INMAT+1
  1965. ENDIF
  1966. CALL IDFLUA(MFR,TABOBL,TABFAC,JGOBL,JGFAC,ITA,IPLAC,IRET)
  1967. IF (IRET.EQ.0) GOTO 9999
  1968. ELSEIF (IPLAC.EQ.3) THEN
  1969. INMAT=INMAT+1
  1970. CALL MODVIS(MOMODL,NMOD)
  1971. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  1972. IF (IPLAC.EQ.0) THEN
  1973. * ONERA
  1974. IPLAC=2
  1975. * ELSE
  1976. * INMAT=INMAT+1
  1977. ENDIF
  1978. CALL IDVISC(MFR,TABOBL,TABFAC,JGOBL,JGFAC,ITA,IPLAC,IRET)
  1979. IF (IRET.EQ.0) GOTO 9999
  1980. ELSEIF (IPLAC.EQ.4) THEN
  1981. INMAT=INMAT+1
  1982. CALL MODEND(MOMODL,NMOD)
  1983. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  1984. IF (IPLAC.EQ.0) THEN
  1985. * MAZARS
  1986. IPLAC=1
  1987. * ELSE
  1988. * INMAT=INMAT+1
  1989. ENDIF
  1990. CALL IDENDO(MFR,TABOBL,TABFAC,JGOBL,JGFAC,ITA,IPLAC,IRET)
  1991. IF (IRET.EQ.0) GOTO 9999
  1992. ELSE
  1993. * GOTO 9999
  1994. ENDIF
  1995. *
  1996. * En cas de creation de materiaux combinant plusieurs materiaux
  1997. * deja existant Ex ELASTIQUE ISOTROPE PLASTIQUE PARFAIT FLUAGE N
  1998. * GOTO 40
  1999. *
  2000. * GOTO 9999
  2001. ENDIF
  2002. GOTO 9999
  2003. ENDIF
  2004.  
  2005. *--------------------------------------------------------------------
  2006. * CAS DE LA FORMULATION CONTACT
  2007. *--------------------------------------------------------------------
  2008. CALL PLACE(FORMOD,NFOR,ICONT,'CONTACT')
  2009. IF (ICONT.NE.0) THEN
  2010. CALL MODFRO(MOMODL,NMOD)
  2011. iplla =0
  2012. do iou = 1,NMAT
  2013. CALL PLACE(MOMODL(1),5,IPLAC,MATMOD(iou))
  2014. iplla = max(iplac,iplla)
  2015. enddo
  2016. IF (iplla.EQ.0) THEN
  2017. IRET = 0
  2018. GOTO 9999
  2019. ENDIF
  2020.  
  2021. IF ((IPLLA.EQ.1) .OR. (IPLLA.EQ.2) .OR. (IPLLA.EQ.3)) THEN
  2022. * CONTACT SIMPLE
  2023. * --------------
  2024. INMAT=1
  2025. JGOBL=0
  2026.  
  2027. JGFAC=2
  2028. TABFAC(1)='JEU'
  2029. TABFAC(2)='ADHE'
  2030.  
  2031. ELSE IF (IPLLA .EQ. 4) THEN
  2032. * FROTTEMENT DE COULOMB
  2033. * ---------------------
  2034. INMAT=1
  2035. JGOBL=1
  2036. TABOBL(1)='MU '
  2037.  
  2038. JGFAC=3
  2039. TABFAC(1)='COHE'
  2040. TABFAC(2)='ADHE'
  2041. TABFAC(3)='JEU'
  2042.  
  2043. ELSE IF (IPLLA .EQ. 5) THEN
  2044. * FROTTEMENTS DE CABLES
  2045. * ---------------------
  2046. INMAT=1
  2047. JGOBL=2
  2048. TABOBL(1)='FF '
  2049. TABOBL(2)='PHIF'
  2050.  
  2051. JGFAC=0
  2052.  
  2053. ELSE
  2054. IRET=0
  2055. CALL ERREUR (261)
  2056. RETURN
  2057. ENDIF
  2058.  
  2059. GOTO 9999
  2060. ENDIF
  2061.  
  2062. *--------------------------------------------------------------------
  2063. * CAS DE LA FORMULATION MAGNETODYNAMIQUE
  2064. *--------------------------------------------------------------------
  2065. CALL PLACE(FORMOD,NFOR,ICONV,'MAGNETODYNAMIQUE')
  2066. IF (ICONV.NE.0) THEN
  2067. *
  2068. * FORMULATION EN COQUES
  2069. IF(MFR.EQ.3) THEN
  2070. CALL PLACE(MATMOD,NMAT,ISOT,'ISOTROPE')
  2071. IF(ISOT.NE.0) THEN
  2072. JGOBL=3
  2073.  
  2074. TABOBL(1)='ETA'
  2075. TABOBL(2)='PERM'
  2076. TABOBL(3)='EPAI'
  2077. ELSE
  2078. CALL PLACE(MATMOD,NMAT,IORTH,'ORTHOTROPE')
  2079. IF(IORTH.NE.0) THEN
  2080. JGOBL=4
  2081.  
  2082. TABOBL(1)='ETA1'
  2083. TABOBL(2)='ETA2'
  2084. TABOBL(3)='PERM'
  2085. TABOBL(4)='EPAI'
  2086. ENDIF
  2087. ENDIF
  2088. ENDIF
  2089. *
  2090. GOTO 9999
  2091. ENDIF
  2092.  
  2093. *--------------------------------------------------------------------
  2094. * CAS DE LA FORMULATION FISSURE
  2095. *--------------------------------------------------------------------
  2096. CALL PLACE(FORMOD,NFOR,ICONV,'FISSURE')
  2097. IF (ICONV.NE.0) THEN
  2098. *
  2099. * si POISEU_BLASIUS ou POISEU_COLEBROOK ou par defaut
  2100. JGOBL=1
  2101.  
  2102. TABOBL(1)='RUGO'
  2103. * si FROTTEMENT1 ou FROTTEMENT2
  2104. CALL PLACE(MATMOD,NMAT,IFT1,'FROTTEMENT1')
  2105. CALL PLACE(MATMOD,NMAT,IFT2,'FROTTEMENT2')
  2106. IF(IFT1.NE.0.OR.IFT2.NE.0) THEN
  2107. JGOBL=7
  2108.  
  2109. TABOBL(2)='REC'
  2110. TABOBL(3)='FK'
  2111. TABOBL(4)='FA'
  2112. TABOBL(5)='FB'
  2113. TABOBL(6)='FC'
  2114. TABOBL(7)='FD'
  2115. ELSE
  2116. * si FROTTEMENT3 ou FROTTEMENT4
  2117. CALL PLACE(MATMOD,NMAT,IFT1,'FROTTEMENT3')
  2118. CALL PLACE(MATMOD,NMAT,IFT2,'FROTTEMENT4')
  2119. IF(IFT1.NE.0.OR.IFT2.NE.0) THEN
  2120. JGOBL=2
  2121.  
  2122. TABOBL(2)='FK'
  2123. ENDIF
  2124. ENDIF
  2125. GOTO 9999
  2126. ENDIF
  2127.  
  2128. *--------------------------------------------------------------------
  2129. * CAS DE LA FORMULATION MELANGE
  2130. *--------------------------------------------------------------------
  2131. CALL PLACE(FORMOD,NFOR,ICONV,'MELANGE')
  2132. IF (ICONV.NE.0) THEN
  2133. CALL MODMEL(MOMODL,NMOD)
  2134. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
  2135. if (iplac.eq.0) then
  2136. iret = 0
  2137. goto 9999
  2138. endif
  2139. INMAT=1
  2140. *
  2141. * a priori elements massifs ou coques : pas de verif
  2142. *
  2143. IF (IPLAC.NE.3.AND.IPLAC.NE.4) THEN
  2144. JGOBL = 0
  2145. JGFAC = 0
  2146. CALL IDMETA(MFR,TABOBL,TABFAC,JGOBL,JGFAC,ITA,IPLAC,IRET)
  2147. IF (IRET.EQ.0) GOTO 9999
  2148. * construit les noms de composante en PARALLELE ou en SERIE
  2149. c* ELSEIF (iplac.eq.3.or.iplac.eq.4) THEN
  2150. ELSE
  2151. JGOBL = imodel.ivamod(/1)
  2152.  
  2153. kc1 = 0
  2154. do ic1 = 1,JGOBL
  2155. if (tymode(ic1).eq.'IMODEL') then
  2156. imode2 = ivamod(ic1)
  2157. segact imode2
  2158. lozut = .false.
  2159. if (kc1.ge.1) then
  2160. do kkc1 = 1, kc1
  2161. if (imode2.conmod(17:20).eq.TABOBL(kkc1)) then
  2162. lozut = .true.
  2163. endif
  2164. enddo
  2165. endif
  2166. if (.not.lozut) then
  2167. kc1 = kc1 + 1
  2168. TABOBL(kc1) = imode2.conmod(17:20)
  2169. endif
  2170. segdes imode2
  2171. endif
  2172. enddo
  2173. JGOBL = kc1
  2174.  
  2175. ENDIF
  2176. GOTO 9999
  2177. ENDIF
  2178.  
  2179. *--------------------------------------------------------------------
  2180. * CAS DE LA FORMULATION LIAISON
  2181. *--------------------------------------------------------------------
  2182. CALL PLACE(FORMOD,NFOR,ICONV,'LIAISON')
  2183. IF (ICONV.NE.0) THEN
  2184. iplac = imatee
  2185. if (iplac.eq.0) then
  2186. iret = 0
  2187. goto 9999
  2188. endif
  2189. *
  2190. JGOBL = 0
  2191. JGFAC = 0
  2192.  
  2193. * 'SORT' facultatif dans tous les cas
  2194. IF (iplac.EQ.1) THEN
  2195. *PO_PL_FL
  2196. JGM0 = JGOBL
  2197. JGOBL = JGM0+7
  2198. TABOBL(JGM0 + 1) ='NORM'
  2199. TABOBL(JGM0 + 2) ='INER'
  2200. TABOBL(JGM0 + 3) ='CONV'
  2201. TABOBL(JGM0 + 4) ='VISC'
  2202. TABOBL(JGM0 + 5) ='PELO'
  2203. TABOBL(JGM0 + 6) ='PRAP'
  2204. TABOBL(JGM0 + 7) ='JFLU'
  2205.  
  2206. ELSEIF (iplac.eq.2) then
  2207. *PO_PL_FR
  2208. JGM0 = JGOBL
  2209. JGOBL = JGM0+7
  2210. TABOBL(JGM0 + 1) ='NORM'
  2211. TABOBL(JGM0 + 2) ='RAID'
  2212. TABOBL(JGM0 + 3) ='JEU'
  2213. TABOBL(JGM0 + 4) ='GLIS'
  2214. TABOBL(JGM0 + 5) ='ADHE'
  2215. TABOBL(JGM0 + 6) ='RTAN'
  2216. TABOBL(JGM0 + 7) ='ATAN'
  2217.  
  2218. JGM0 = JGFAC
  2219. JGFAC = JGM0 +2
  2220. TABFAC(JGM0+1) = 'AMOR'
  2221. TABFAC(JGM0+2) = 'LOIC'
  2222.  
  2223. ELSEIF (iplac.eq.3) then
  2224. *PO_PL
  2225. JGM0 = JGOBL
  2226. JGOBL= JGM0+3
  2227. TABOBL(JGM0 + 1) ='NORM'
  2228. TABOBL(JGM0 + 2) ='RAID'
  2229. TABOBL(JGM0 + 3) ='JEU'
  2230.  
  2231. JGM0 = JGFAC
  2232. JGFAC = JGM0+4
  2233. TABFAC(JGM0+1) = 'LOIC'
  2234. TABFAC(JGM0+2) = 'PERM'
  2235. TABFAC(JGM0 + 3) ='SPLA'
  2236. TABFAC(JGM0 + 4) ='AMOR'
  2237.  
  2238. ELSEIF (iplac.eq.4) then
  2239. *PO_PO_FR
  2240. JGM0 = JGOBL
  2241. JGOBL= JGM0 + 8
  2242. TABOBL(JGM0 + 1) ='NORM'
  2243. TABOBL(JGM0 + 2) ='RAID'
  2244. TABOBL(JGM0 + 3) ='JEU'
  2245. TABOBL(JGM0 + 4) ='POIB'
  2246. TABOBL(JGM0 + 5) ='ADHE'
  2247. TABOBL(JGM0 + 6) ='RTAN'
  2248. TABOBL(JGM0 + 7) ='ATAN'
  2249. TABOBL(JGM0 + 8) ='GLIS'
  2250.  
  2251. JGM0 = JGFAC
  2252. JGFAC = JGM0 + 3
  2253. TABFAC(JGM0+1) = 'AMOR'
  2254. TABFAC(JGM0+2) = 'LOIC'
  2255. TABFAC(JGM0+3) = 'MODE'
  2256.  
  2257. ELSEIF (iplac.eq.5) then
  2258. *PO_PO_DP
  2259. JGM0 = JGOBL
  2260. JGOBL= JGM0 + 6
  2261. TABOBL(JGM0 + 1) ='NORM'
  2262. TABOBL(JGM0 + 2) ='ECRO'
  2263. TABOBL(JGM0 + 3) ='JEU'
  2264. TABOBL(JGM0 + 4) ='POIB'
  2265. TABOBL(JGM0 + 5) ='PERM'
  2266. TABOBL(JGM0 + 6) ='LOIC'
  2267.  
  2268. JGM0 = JGFAC
  2269. JGFAC = JGM0 + 1
  2270. TABFAC(JGM0+1) = 'AMOR'
  2271.  
  2272. ELSEIF (iplac.eq.6) then
  2273. *PO_PO_RP
  2274. JGM0 = JGOBL
  2275. JGOBL= JGM0 + 6
  2276. TABOBL(JGM0 + 1) ='AXRO'
  2277. TABOBL(JGM0 + 2) ='ECRO'
  2278. TABOBL(JGM0 + 3) ='JEU'
  2279. TABOBL(JGM0 + 4) ='POIB'
  2280. TABOBL(JGM0 + 5) ='PERM'
  2281. TABOBL(JGM0 + 6) ='LOIC'
  2282.  
  2283. JGM0 = JGFAC
  2284. JGFAC = JGM0 + 2
  2285. TABFAC(JGM0+1) = 'AMOR'
  2286. TABFAC(JGM0+2) = 'ELAS'
  2287.  
  2288. ELSEIF (iplac.eq.7) then
  2289. *PO_PO
  2290. JGM0 = JGOBL
  2291. JGOBL= JGM0 + 5
  2292. TABOBL(JGM0 + 1) ='NORM'
  2293. TABOBL(JGM0 + 2) ='RAID'
  2294. TABOBL(JGM0 + 3) ='JEU'
  2295. TABOBL(JGM0 + 4) ='POIB'
  2296. TABOBL(JGM0 + 5) ='PERM'
  2297.  
  2298. JGM0 = JGFAC
  2299. JGFAC = JGM0 + 2
  2300. TABFAC(JGM0+1) = 'AMOR'
  2301. TABFAC(JGM0+2) = 'LOIC'
  2302.  
  2303. ELSEIF (iplac.eq.8) then
  2304. *PO_CE_MO
  2305. JGM0 = JGOBL
  2306. JGOBL= JGM0 + 8
  2307. TABOBL(JGM0 + 1) ='NORM'
  2308. TABOBL(JGM0 + 2) ='RAID'
  2309. TABOBL(JGM0 + 3) ='PCER'
  2310. TABOBL(JGM0 + 4) ='RAYO'
  2311. TABOBL(JGM0 + 5) ='GLIS'
  2312. TABOBL(JGM0 + 6) ='ADHE'
  2313. TABOBL(JGM0 + 7) ='RTAN'
  2314. TABOBL(JGM0 + 8) ='ATAN'
  2315.  
  2316. JGM0 = JGFAC
  2317. JGFAC= JGM0 + 2
  2318. TABFAC(JGM0+1) = 'CINT'
  2319. TABFAC(JGM0+2) = 'AMOR'
  2320.  
  2321. ELSEIF (iplac.eq.9) then
  2322. *PO_CE_FR
  2323. JGM0 = JGOBL
  2324. JGOBL= JGM0 + 8
  2325. TABOBL(JGM0 + 1) ='NORM'
  2326. TABOBL(JGM0 + 2) ='RAID'
  2327. TABOBL(JGM0 + 3) ='EXCE'
  2328. TABOBL(JGM0 + 4) ='RAYO'
  2329. TABOBL(JGM0 + 5) ='GLIS'
  2330. TABOBL(JGM0 + 6) ='ADHE'
  2331. TABOBL(JGM0 + 7) ='RTAN'
  2332. TABOBL(JGM0 + 8) ='ATAN'
  2333.  
  2334. JGM0 = JGFAC
  2335. JGFAC = JGM0 + 2
  2336. TABFAC(JGM0+1) = 'CINT'
  2337. TABFAC(JGM0+2) = 'AMOR'
  2338.  
  2339. ELSEIF (iplac.eq.10) then
  2340. *PO_CE
  2341. JGM0 = JGOBL
  2342. JGOBL= JGM0 + 4
  2343. TABOBL(JGM0 + 1) ='NORM'
  2344. TABOBL(JGM0 + 2) ='RAID'
  2345. TABOBL(JGM0 + 3) ='EXCE'
  2346. TABOBL(JGM0 + 4) ='RAYO'
  2347.  
  2348. JGM0 = JGFAC
  2349. JGFAC = JGM0 + 1
  2350. TABFAC(JGM0+1) = 'AMOR'
  2351.  
  2352. ELSEIF (iplac.eq.11) then
  2353. *CE_PL_FR
  2354. JGM0 = JGOBL
  2355. JGOBL= JGM0 + 8
  2356. TABOBL(JGM0 + 1) ='NORM'
  2357. TABOBL(JGM0 + 2) ='RAID'
  2358. TABOBL(JGM0 + 3) ='JEU'
  2359. TABOBL(JGM0 + 4) ='RAYS'
  2360. TABOBL(JGM0 + 5) ='GLIS'
  2361. TABOBL(JGM0 + 6) ='ADHE'
  2362. TABOBL(JGM0 + 7) ='RTAN'
  2363. TABOBL(JGM0 + 8) ='ATAN'
  2364.  
  2365. JGM0 = JGFAC
  2366. JGFAC = JGM0+1
  2367. TABFAC(JGM0+1) = 'AMOR'
  2368.  
  2369. ELSEIF (iplac.eq.12) then
  2370. *CE_CE_FR
  2371. JGM0 = JGOBL
  2372. JGOBL= JGM0 + 9
  2373. TABOBL(JGM0 + 1) ='NORM'
  2374. TABOBL(JGM0 + 2) ='RAID'
  2375. TABOBL(JGM0 + 3) ='EXCE'
  2376. TABOBL(JGM0 + 4) ='RAYS'
  2377. TABOBL(JGM0 + 5) ='GLIS'
  2378. TABOBL(JGM0 + 6) ='ADHE'
  2379. TABOBL(JGM0 + 7) ='RTAN'
  2380. TABOBL(JGM0 + 8) ='ATAN'
  2381. TABOBL(JGM0 + 9) ='RAYB'
  2382.  
  2383. JGM0 = JGFAC
  2384. JGFAC = JGM0 + 2
  2385. TABFAC(JGM0+1) = 'AMOR'
  2386. TABFAC(JGM0+2) = 'CINT'
  2387.  
  2388. ELSEIF (iplac.eq.13.or.iplac.eq.14) then
  2389. *PR_PR_IN ou PR_PR_EX
  2390. JGM0 = JGOBL
  2391. JGOBL= JGM0 + 5
  2392. TABOBL(JGM0 + 1) ='NORM'
  2393. TABOBL(JGM0 + 2) ='RAID'
  2394. TABOBL(JGM0 + 3) ='PFIX'
  2395. TABOBL(JGM0 + 4) ='PMOB'
  2396. TABOBL(JGM0 + 5) ='ERAI'
  2397.  
  2398. ELSEIF (iplac.eq.15) then
  2399. *LI_LI_FR
  2400. JGM0 = JGOBL
  2401. JGOBL= JGM0 + 9
  2402. TABOBL(JGM0 + 1) ='NORM'
  2403. TABOBL(JGM0 + 2) ='LIMA'
  2404. TABOBL(JGM0 + 3) ='LIES'
  2405. TABOBL(JGM0 + 4) ='RAID'
  2406. TABOBL(JGM0 + 5) ='GLIS'
  2407. TABOBL(JGM0 + 6) ='ADHE'
  2408. TABOBL(JGM0 + 7) ='RTAN'
  2409. TABOBL(JGM0 + 8) ='ATAN'
  2410. TABOBL(JGM0 + 9) ='JEU'
  2411.  
  2412. JGM0 = JGFAC
  2413. JGFAC = JGM0 + 3
  2414. TABFAC(JGM0+1) = 'AMOR'
  2415. TABFAC(JGM0+2) = 'RECH'
  2416. TABFAC(JGM0+3) = 'SYME'
  2417.  
  2418. ELSEIF (iplac.eq.16) then
  2419. *LI_CE_FR
  2420. JGM0 = JGOBL
  2421. JGOBL= JGM0 + 8
  2422. TABOBL(JGM0 + 1) ='NORM'
  2423. TABOBL(JGM0 + 2) ='LIMA'
  2424. TABOBL(JGM0 + 3) ='LIES'
  2425. TABOBL(JGM0 + 4) ='RAID'
  2426. TABOBL(JGM0 + 5) ='GLIS'
  2427. TABOBL(JGM0 + 6) ='ADHE'
  2428. TABOBL(JGM0 + 7) ='RTAN'
  2429. TABOBL(JGM0 + 8) ='ATAN'
  2430.  
  2431. JGM0 = JGFAC
  2432. JGFAC = JGM0 + 5
  2433. TABFAC(JGM0+1) = 'AMOR'
  2434. TABFAC(JGM0+2) = 'RECH'
  2435. TABFAC(JGM0+3) = 'RAYO'
  2436. TABFAC(JGM0+4) = 'ACTN'
  2437. TABFAC(JGM0+5) = 'INVE'
  2438.  
  2439. ELSEIF (iplac.eq.17) then
  2440. *PA_FL_RO
  2441. JGM0 = JGOBL
  2442. JGOBL= JGM0+10
  2443. TABOBL(JGM0 + 1) ='LONG'
  2444. TABOBL(JGM0 + 2) ='RAYO'
  2445. TABOBL(JGM0 + 3) ='VISC'
  2446. TABOBL(JGM0 + 4) ='RHOF'
  2447. TABOBL(JGM0 + 5) ='PADM'
  2448. TABOBL(JGM0 + 6) ='VROT'
  2449. TABOBL(JGM0 + 7) ='EPSI'
  2450. TABOBL(JGM0 + 8) ='PHII'
  2451. TABOBL(JGM0 + 9) ='AFFI'
  2452. TABOBL(JGM0 + 10)='TLOB'
  2453.  
  2454. JGM0 = JGFAC
  2455. JGFAC = JGM0 + 1
  2456. TABFAC(JGM0+1) = 'AMOR'
  2457.  
  2458. ELSEIF (iplac.eq.23) then
  2459. *NEWMARK MODAL
  2460. JGM0 = JGOBL
  2461. JGOBL= JGM0+1
  2462. TABOBL(JGM0 + 1) ='JEU'
  2463.  
  2464. JGM0 = JGFAC
  2465. JGFAC = JGM0 + 3
  2466. TABFAC(JGM0+1) = 'EXCE'
  2467. TABFAC(JGM0+2) = 'FROT'
  2468. TABFAC(JGM0+3) = 'MOFR'
  2469. ENDIF
  2470. * 'SORT' facultatif dans tous les cas
  2471. JGM0 = JGFAC
  2472. JGFAC= JGM0+1
  2473. TABFAC(JGM0+1) = 'SORT'
  2474. GOTO 9999
  2475. ENDIF
  2476.  
  2477. *--------------------------------------------------------------------
  2478. * CAS DE LA FORMULATION ELECTROSTATIQUE
  2479. *--------------------------------------------------------------------
  2480. CALL PLACE(FORMOD,NFOR,IELEC,'ELECTROSTATIQUE')
  2481. IF (IELEC.NE.0) THEN
  2482. C -- Permittivite isotrope
  2483. IF (IMATEE.EQ.1) THEN
  2484. C* IF (CMATEE.EQ.'ISOTROPE') THEN
  2485. C* IF (MATMOD(1).EQ.'ISOTROPE ') THEN
  2486. JGOBL = 1
  2487. TABOBL(1)='PEL '
  2488. C -- Permittivite orthotrope
  2489. ELSEIF (IMATEE.EQ.2) THEN
  2490. C* ELSEIF (CMATEE.EQ.'ORTHOTRO') THEN
  2491. C* ELSEIF (MATMOD(1).EQ.'ORTHOTROPE ') THEN
  2492. C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE
  2493. IF (IDIM.EQ.2) THEN
  2494. IF (IFOMOD.NE.1) THEN
  2495. JGOBL = 4
  2496. TABOBL(1) = 'PE1 '
  2497. TABOBL(2) = 'PE2 '
  2498. TABOBL(3) = 'V1X '
  2499. TABOBL(4) = 'V1Y '
  2500.  
  2501. C ---- Elements massifs bidimensionnels FOURIER
  2502. ELSE
  2503. JGOBL = 5
  2504. TABOBL(1) = 'PE1 '
  2505. TABOBL(2) = 'PE2 '
  2506. TABOBL(3) = 'PE3 '
  2507. TABOBL(4) = 'V1X '
  2508. TABOBL(5) = 'V1Y '
  2509. ENDIF
  2510. C ---- Elements massifs TRIDimensionnels
  2511. ELSEIF (IDIM.EQ.3) THEN
  2512. JGOBL = 9
  2513. TABOBL(1) = 'PE1 '
  2514. TABOBL(2) = 'PE2 '
  2515. TABOBL(3) = 'PE3 '
  2516. TABOBL(4) = 'V1X '
  2517. TABOBL(5) = 'V1Y '
  2518. TABOBL(6) = 'V1Z '
  2519. TABOBL(7) = 'V2X '
  2520. TABOBL(8) = 'V2Y '
  2521. TABOBL(9) = 'V2Z '
  2522. ENDIF
  2523.  
  2524. C -- Permittivite anisotrope
  2525. ELSEIF (IMATEE.EQ.3) THEN
  2526. C* ELSEIF (CMATEE.EQ.'ANISOTRO') THEN
  2527. C* ELSEIF (MATMOD(1).EQ.'ANISOTROPE ') THEN
  2528. C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE
  2529. IF (IDIM.EQ.2) THEN
  2530. IF (IFOMOD.NE.1) THEN
  2531. JGOBL = 5
  2532. TABOBL(1) = 'PE11 '
  2533. TABOBL(2) = 'PE22 '
  2534. TABOBL(3) = 'PE21 '
  2535. TABOBL(4) = 'V1X '
  2536. TABOBL(5) = 'V1Y '
  2537.  
  2538. C ---- Elements massifs bidimensionnels FOURIER
  2539. ELSE
  2540. JGOBL = 6
  2541. TABOBL(1) = 'PE11 '
  2542. TABOBL(2) = 'PE22 '
  2543. TABOBL(3) = 'PE21 '
  2544. TABOBL(4) = 'PE33 '
  2545. TABOBL(5) = 'V1X '
  2546. TABOBL(6) = 'V1Y '
  2547. ENDIF
  2548.  
  2549. C ---- Elements massifs TRIDimensionnels
  2550. ELSEIF (IDIM.EQ.3) THEN
  2551. JGOBL = 12
  2552. TABOBL( 1) = 'PE11 '
  2553. TABOBL( 2) = 'PE22 '
  2554. TABOBL( 3) = 'PE33 '
  2555. TABOBL( 4) = 'PE21 '
  2556. TABOBL( 5) = 'PE31 '
  2557. TABOBL( 6) = 'PE32 '
  2558. TABOBL( 7) = 'V1X '
  2559. TABOBL( 8) = 'V1Y '
  2560. TABOBL( 9) = 'V1Z '
  2561. TABOBL(10) = 'V2X '
  2562. TABOBL(11) = 'V2Y '
  2563. TABOBL(12) = 'V2Z '
  2564. ENDIF
  2565.  
  2566. ELSE
  2567. IRET = 0
  2568. CALL ERREUR(5)
  2569. ENDIF
  2570. GOTO 9999
  2571. ENDIF
  2572.  
  2573. *-----------------------------------------------------------------------
  2574. * CAS DE LA FORMULATION 'DIFFUSION'
  2575. *-----------------------------------------------------------------------
  2576. CALL PLACE(FORMOD,NFOR,IDIFF,'DIFFUSION')
  2577. IF (IDIFF.NE.0) THEN
  2578. IMATE = IMATEE
  2579. IPLAC = INATUU
  2580.  
  2581. C -- Diffusion lineaire (composantes obligatoires)
  2582. CALL IDDILI(IMATE,0, MOOBL,NBROBL,NBRFAC)
  2583. IF (MOOBL.EQ.0) GOTO 9999
  2584.  
  2585. JGM0 =JGOBL
  2586. JGOBL=JGOBL + NBROBL
  2587. DO IC=1,NBROBL
  2588. TABOBL(JGM0 + IC)=MOOBL.MOTS(IC)
  2589. ENDDO
  2590. SEGSUP,MOOBL
  2591.  
  2592. C -- Ajout des Modeles non lineaires de diffusion
  2593. CALL IDDIFF(IMATE,TABOBL,TABFAC,JGOBL,JGFAC,ITA,IPLAC,IRET)
  2594. GOTO 9999
  2595. ENDIF
  2596.  
  2597. *-----------------------------------------------------------------------
  2598. * CAS DE LA FORMULATION 'CHARGEMENT'
  2599. *-----------------------------------------------------------------------
  2600. CALL PLACE(FORMOD,NFOR,ICHAR,'CHARGEMENT')
  2601. IF (ICHAR.NE.0) THEN
  2602. IPLAC = IMATEE
  2603. IF (IPLAC.EQ.1) THEN
  2604. C RAJOUTER DIFFERENTIATION EN FONCIONS DE LA FORMULATION MASSIF -> P
  2605. C COQUE PINF PSUP
  2606. JGOBL=1
  2607. TABOBL(1)='PR '
  2608. ELSE
  2609. IRET = 0
  2610. CALL ERREUR(5)
  2611. ENDIF
  2612. GOTO 9999
  2613. ENDIF
  2614.  
  2615. *--------------------------------------------------------------------
  2616. 9999 CONTINUE
  2617. C
  2618. C Erreur si JGOBL ou JGFAC sont superieurs a ITA
  2619. C (Passage en FORTRAN 77 car la compilation depasse la memoire sur
  2620. C Windows-32bits)
  2621. IF ((JGOBL .GT. ITA) .OR. (JGFAC .GT. ITA)) THEN
  2622. IRET = 0
  2623. CALL ERREUR(5)
  2624. RETURN
  2625. ENDIF
  2626.  
  2627. NBROBL = JGOBL
  2628. NBRFAC = JGFAC
  2629. NOMID = 0
  2630.  
  2631. * SI PROBLEME (IRET = 0), ON SORT AVEC IPNOMC A 0
  2632. *
  2633. IF (IRET.NE.0) THEN
  2634. SEGINI,NOMID
  2635. DO 100 IO = 1,NBROBL
  2636. NOMID.LESOBL(IO) = TABOBL(IO)
  2637. 100 CONTINUE
  2638.  
  2639. DO 110 IO=1,NBRFAC
  2640. NOMID.LESFAC(IO) = TABFAC(IO)
  2641. 110 CONTINUE
  2642. SEGDES,NOMID
  2643. ENDIF
  2644.  
  2645. IPNOMC = NOMID
  2646.  
  2647. RETURN
  2648. END
  2649.  
  2650.  
  2651.  
  2652.  

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