Télécharger idprim.eso

Retour à la liste

Numérotation des lignes :

idprim
  1. C IDPRIM SOURCE OF166741 24/05/06 21:15:19 11082
  2. C=======================================================================
  3. C= DEFINITION DES NOMS DE COMPOSANTES PRIMALES =
  4. C= ------------------------------------------- =
  5. C= =
  6. C= Entrees : =
  7. C= IPMODE Pointeur sur un MMODEL.KMODEL =
  8. C= MFR0 Numero de Formulation =
  9. C= - Sert seulement si different de celui calcule avec IMODEL =
  10. C= =
  11. C= Sorties : =
  12. C= IPNOMC pointeur de type NOMID sur les listes de noms de =
  13. C= composantes OBLigatoires et FACultatives =
  14. C= NBROBL Nombre de composantes OBLIGATOIRES =
  15. C= NBRFAC Nombre de composantes FACULTATIVES =
  16. C=======================================================================
  17.  
  18. SUBROUTINE IDPRIM(IPMODE,MFR0,IPNOMC,NBROBL,NBRFAC)
  19.  
  20. IMPLICIT INTEGER(I-N)
  21. IMPLICIT REAL*8(A-H,O-Z)
  22.  
  23. -INC PPARAM
  24. -INC CCOPTIO
  25. C==DEB= FORMULATION HHO == Include specifique ==========================
  26. -INC CCHHOPA
  27. C==FIN= FORMULATION HHO ================================================
  28.  
  29. -INC SMMODEL
  30. -INC SMLMOTS
  31.  
  32. CHARACTER*16 NOM16
  33. CHARACTER*(LOCOMP) CCOMP
  34.  
  35. EXTERNAL LONG
  36.  
  37. NOMID =0
  38. NBROBL=0
  39. NBRFAC=0
  40. IMODEL=IPMODE
  41. C Recuperation de IFOUR dans CCOPTIO.INC
  42. IFOU = IFOUR
  43. MELE =NEFMOD
  44. MFR =NUMMFR(MELE)
  45.  
  46. C Le IMODEL doit etre actif
  47. NOMID = IMODEL.LNOMID(1)
  48.  
  49. C S'ils sont deja presents dans le IMODEL on ne les refait pas...
  50. IF(NOMID .NE. 0 .AND. (MFR .EQ. MFR0))THEN
  51. NBROBL=LESOBL(/2)
  52. NBRFAC=LESFAC(/2)
  53. IPNOMC = NOMID
  54. RETURN
  55. ENDIF
  56.  
  57. C Sinon on les determine
  58. MFR = MFR0
  59.  
  60. C Cas particuliers de la THERMIQUE, DIFFUSION, METALLURGIE
  61. NOM16=FORMOD(1)
  62. IF(NOM16 .EQ. 'THERMIQUE ') GOTO 1001
  63. IF(NOM16 .EQ. 'DIFFUSION ') GOTO 1002
  64. IF(NOM16 .EQ. 'METALLURGIE ') GOTO 1003
  65.  
  66. * formulation thermohydrique
  67. IF (MFR.EQ.65) THEN
  68. NBROBL=3
  69. SEGINI,NOMID
  70. LESOBL(1)='PG '
  71. LESOBL(2)='PC '
  72. LESOBL(3)='T '
  73. *
  74. * 0/ MACRO ELEMENT
  75. *
  76. ELSEIF (MFR.EQ.61)THEN
  77. C
  78. IF (IFOU.EQ.-1.OR.IFOU.EQ.-2) THEN
  79. *
  80. * 0-A/ CONTRAINTES PLANES - DEFORMATIONS PLANES
  81. *
  82. NBROBL=5
  83. SEGINI NOMID
  84. LESOBL(1)='UX '
  85. LESOBL(2)='UY '
  86. LESOBL(3)='RZ '
  87. LESOBL(4)='UM '
  88. LESOBL(5)='RM '
  89. ENDIF
  90.  
  91. C 1 - Elements COQUE (3), COQUE EPAISSE (5), POUTRE (7), COQUE en
  92. C CISAILLEMENT TRANSVERSE (9), TUYAU (13), LINESPRING (15), TUYAU
  93. C FISSURE (17), Barre excentree BAEX (49), LIA2 (51), JOI1(75)
  94. C ====================================================================
  95. ELSE IF (MFR.EQ. 3.OR.MFR.EQ. 5.OR.MFR.EQ. 7.OR.MFR.EQ. 9.OR.
  96. . MFR.EQ.13.OR.MFR.EQ.15.OR.MFR.EQ.17.OR.MFR.EQ.49.OR.
  97. . MFR.EQ.51.OR.MFR.EQ.75.OR.MFR.EQ.74) THEN
  98. C =====
  99. C 1.1 - Tridimensionnel
  100. C =====
  101. IF (IFOU.EQ.2) THEN
  102. NBROBL=6
  103. SEGINI,NOMID
  104. LESOBL(1)='UX '
  105. LESOBL(2)='UY '
  106. LESOBL(3)='UZ '
  107. LESOBL(4)='RX '
  108. LESOBL(5)='RY '
  109. LESOBL(6)='RZ '
  110. C =====
  111. C 1.2 - Fourier
  112. C =====
  113. ELSE IF (IFOU.EQ.1) THEN
  114. NBROBL=4
  115. SEGINI,NOMID
  116. LESOBL(1)='UR '
  117. LESOBL(2)='UZ '
  118. LESOBL(3)='UT '
  119. LESOBL(4)='RT '
  120. C =====
  121. C 1.3 - Axisymetrie
  122. C =====
  123. ELSE IF (IFOU.EQ.0) THEN
  124. NBROBL=3
  125. SEGINI,NOMID
  126. LESOBL(1)='UR '
  127. LESOBL(2)='UZ '
  128. LESOBL(3)='RT '
  129. C =====
  130. C 1.4 - Bidimensionnel PLAN (CP/DP)
  131. C =====
  132. ELSE IF (IFOU.EQ.-1.OR.IFOU.EQ.-2) THEN
  133. NBROBL=3
  134. SEGINI,NOMID
  135. LESOBL(1)='UX '
  136. LESOBL(2)='UY '
  137. LESOBL(3)='RZ '
  138. C =====
  139. C 1.5 - Bidimensionnel PLAN GENE
  140. C =====
  141. ELSE IF (IFOU.EQ.-3) THEN
  142. C Ici il faut distinguer les formulations :
  143. IF (MFR.EQ.03 .OR. MFR.EQ.05) THEN
  144. NBROBL=6
  145. SEGINI,NOMID
  146. LESOBL(1)='UX '
  147. LESOBL(2)='UY '
  148. LESOBL(3)='RZ '
  149. LESOBL(4)='UZ '
  150. LESOBL(5)='RY '
  151. LESOBL(6)='RX '
  152. ELSE
  153. NBROBL=3
  154. SEGINI,NOMID
  155. LESOBL(1)='UX '
  156. LESOBL(2)='UY '
  157. LESOBL(3)='RZ '
  158. ENDIF
  159. ENDIF
  160.  
  161. C 2 - Elements LIQUIDE
  162. C ======================
  163. ELSE IF (MFR.EQ.11) THEN
  164. NBROBL=2
  165. SEGINI,NOMID
  166. LESOBL(1)='P '
  167. LESOBL(2)='PI '
  168.  
  169. C 3 - Elements TUYAU ACOUSTIQUE PUR
  170. C ===================================
  171. ELSE IF (MFR.EQ.41) THEN
  172. NBROBL=2
  173. SEGINI,NOMID
  174. LESOBL(1)='PI '
  175. LESOBL(2)='P '
  176.  
  177. C 4 - Element de RACCORD LITU
  178. C =============================
  179. ELSE IF (MFR.EQ.43) THEN
  180. NBROBL=5
  181. SEGINI,NOMID
  182. LESOBL(1)='UX '
  183. LESOBL(2)='UY '
  184. LESOBL(3)='UZ '
  185. LESOBL(4)='PI '
  186. LESOBL(5)='P '
  187.  
  188. C 5 - Elements HOMOGENEISE
  189. C ==========================
  190. ELSE IF (MFR.EQ.37) THEN
  191. C =====
  192. C 5.1 - Fourier
  193. C =====
  194. IF (IFOU.EQ.1) THEN
  195. NBROBL=6
  196. SEGINI,NOMID
  197. LESOBL(1)='P '
  198. LESOBL(2)='PI '
  199. LESOBL(3)='UR '
  200. LESOBL(4)='RT '
  201. LESOBL(5)='UT '
  202. LESOBL(6)='RR '
  203. C =====
  204. C 5.2 - Axisymetrie
  205. C =====
  206. ELSE IF (IFOU.EQ.0) THEN
  207. NBROBL=4
  208. SEGINI,NOMID
  209. LESOBL(1)='P '
  210. LESOBL(2)='PI '
  211. LESOBL(3)='UR '
  212. LESOBL(4)='RT '
  213. C =====
  214. C 5.3 - Tridimensionnel
  215. C =====
  216. ELSE IF (IFOU.EQ.2) THEN
  217. NBROBL=6
  218. SEGINI,NOMID
  219. LESOBL(1)='P '
  220. LESOBL(2)='PI '
  221. LESOBL(3)='UX '
  222. LESOBL(4)='RY '
  223. LESOBL(5)='UY '
  224. LESOBL(6)='RX '
  225. C =====
  226. C 5.4 - Bidimensionnel PLAN (DP/CP/DPGE)
  227. C =====
  228. ELSE
  229. NBROBL=4
  230. SEGINI,NOMID
  231. LESOBL(1)='P '
  232. LESOBL(2)='PI '
  233. LESOBL(3)='UX '
  234. LESOBL(4)='UY '
  235. ENDIF
  236.  
  237. C 6 - Element de SURFACE LIBRE
  238. C ==============================
  239. ELSE IF (MFR.EQ.23) THEN
  240. NBROBL=3
  241. SEGINI,NOMID
  242. LESOBL(1)='P '
  243. LESOBL(2)='PI '
  244. LESOBL(3)='UZ '
  245.  
  246. C 7 - Element JOINT (35),JOINT CISAILLEMENT (53),JOINT GENERALISE (55)
  247. C COS2 (78)
  248. C =====================================================================
  249. ELSE IF (MFR.EQ.35.OR.MFR.EQ.53.OR.MFR.EQ.55.OR.MFR.EQ.78) THEN
  250. C =====
  251. C 7.1 - Tridimensionnel
  252. C =====
  253. IF (IFOU.EQ.2) THEN
  254. NBROBL=3
  255. SEGINI,NOMID
  256. LESOBL(1)='UX '
  257. LESOBL(2)='UY '
  258. LESOBL(3)='UZ '
  259. C =====
  260. C 7.2 - Bidimensionnel PLAN (CP/DP/DPGE)
  261. C =====
  262. ELSE IF (IFOU.EQ.-1.OR.IFOU.EQ.-2.OR.IFOU.EQ.-3) THEN
  263. NBROBL=2
  264. SEGINI,NOMID
  265. LESOBL(1)='UX '
  266. LESOBL(2)='UY '
  267. C =====
  268. C 7.3 - Axisymetrie
  269. C =====
  270. ELSE IF (IFOU.EQ.0) THEN
  271. NBROBL=2
  272. SEGINI,NOMID
  273. LESOBL(1)='UR '
  274. LESOBL(2)='UZ '
  275. ENDIF
  276.  
  277. C 8 - Elements MASSIFS, de MEMBRANE (25), UNIAXIALE (27),
  278. C NAVIER_STOKES(52)
  279. C ========================================================
  280. ELSE IF (MFR.EQ.1.OR.MFR.EQ.25.OR.MFR.EQ.27.OR.MFR.EQ.31.OR.
  281. $ MFR.EQ.72.OR.MFR.EQ.52) THEN
  282. C =====
  283. C 8.1 - Bidimensionnel PLAN (CP/DP)
  284. C =====
  285. IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN
  286. NBROBL=2
  287. SEGINI,NOMID
  288. LESOBL(1)='UX '
  289. LESOBL(2)='UY '
  290.  
  291. C =====
  292. C 8.2 - Axisymetrie
  293. C =====
  294. ELSE IF (IFOU.EQ.0) THEN
  295. NBROBL=2
  296. SEGINI,NOMID
  297. LESOBL(1)='UR '
  298. LESOBL(2)='UZ '
  299. C =====
  300. C 8.3 - Fourier
  301. C =====
  302. ELSE IF (IFOU.EQ.1) THEN
  303. NBROBL=3
  304. SEGINI,NOMID
  305. LESOBL(1)='UR '
  306. LESOBL(2)='UZ '
  307. LESOBL(3)='UT '
  308. C =====
  309. C 8.4 - Tridimensionnel
  310. C =====
  311. ELSE IF (IFOU.EQ.2) THEN
  312. NBROBL=3
  313. SEGINI,NOMID
  314. LESOBL(1)='UX '
  315. LESOBL(2)='UY '
  316. LESOBL(3)='UZ '
  317. C =====
  318. C 8.5 - Bidimensionnel PLAN DPGE
  319. C =====
  320. ELSE IF (IFOU.EQ.-3) THEN
  321. NBROBL=5
  322. SEGINI,NOMID
  323. LESOBL(1)='UX '
  324. LESOBL(2)='UY '
  325. LESOBL(3)='UZ '
  326. LESOBL(4)='RY '
  327. LESOBL(5)='RX '
  328. C =====
  329. C 8.6 - Unidimensionnel (1D)
  330. C =====
  331. ELSE IF (IFOU.GE.3.AND.IFOU.LE.15.AND.MFR.EQ.1) THEN
  332. IF (IFOU.LE.6) THEN
  333. NBROBL=1
  334. SEGINI,NOMID
  335. LESOBL(1)='UX '
  336. ELSE IF (IFOU.EQ.7.OR.IFOU.EQ.8) THEN
  337. NBROBL=2
  338. SEGINI,NOMID
  339. LESOBL(1)='UX '
  340. LESOBL(2)='UY '
  341. ELSE IF (IFOU.EQ.9.OR.IFOU.EQ.10) THEN
  342. NBROBL=2
  343. SEGINI,NOMID
  344. LESOBL(1)='UX '
  345. LESOBL(2)='UZ '
  346. ELSE IF (IFOU.EQ.11) THEN
  347. NBROBL=3
  348. SEGINI,NOMID
  349. LESOBL(1)='UX '
  350. LESOBL(2)='UY '
  351. LESOBL(3)='UZ '
  352. ELSE IF (IFOU.EQ.12.OR.IFOU.EQ.13.OR.IFOU.EQ.15) THEN
  353. NBROBL=1
  354. SEGINI,NOMID
  355. LESOBL(1)='UR '
  356. ELSE IF (IFOU.EQ.14) THEN
  357. NBROBL=2
  358. SEGINI,NOMID
  359. LESOBL(1)='UR '
  360. LESOBL(2)='UZ '
  361. ENDIF
  362. ENDIF
  363.  
  364. C 10 - Formulation POREUX
  365. C =========================
  366. ELSE IF (MFR.EQ.33) THEN
  367. C ======
  368. C 10.1 - Bidimensionnel PLAN (CP/DP)
  369. C ======
  370. IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN
  371. NBROBL=3
  372. SEGINI,NOMID
  373. LESOBL(1)='UX '
  374. LESOBL(2)='UY '
  375. LESOBL(3)='P '
  376. C ======
  377. C 10.2 - Axisymetrie
  378. C ======
  379. ELSE IF (IFOU.EQ.0) THEN
  380. NBROBL=3
  381. SEGINI,NOMID
  382. LESOBL(1)='UR '
  383. LESOBL(2)='UZ '
  384. LESOBL(3)='P '
  385. C ======
  386. C 10.3 - Fourier
  387. C ======
  388. ELSE IF (IFOU.EQ.1) THEN
  389. NBROBL=4
  390. SEGINI,NOMID
  391. LESOBL(1)='UR '
  392. LESOBL(2)='UZ '
  393. LESOBL(3)='UT '
  394. LESOBL(4)='P '
  395. C ======
  396. C 10.4 - Tridimensionnel et bidimensionnel DEFO PLAN GENE
  397. C ======
  398. ELSE IF (IFOU.EQ.2.OR.IFOU.EQ.-3) THEN
  399. NBROBL=4
  400. SEGINI,NOMID
  401. LESOBL(1)='UX '
  402. LESOBL(2)='UY '
  403. LESOBL(3)='UZ '
  404. LESOBL(4)='P '
  405. ENDIF
  406.  
  407. C 11 - Formulation POREUX type Q
  408. C ================================
  409. ELSE IF (MFR.EQ.57) THEN
  410. C ======
  411. C 11.1 - Bidimensionnel PLAN (CP/DP)
  412. C ======
  413. IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN
  414. NBROBL=4
  415. SEGINI,NOMID
  416. LESOBL(1)='UX '
  417. LESOBL(2)='UY '
  418. LESOBL(3)='P '
  419. LESOBL(4)='PQ '
  420. C ======
  421. C 11.2 - Axisymetrie
  422. C ======
  423. ELSE IF (IFOU.EQ.0) THEN
  424. NBROBL=4
  425. SEGINI,NOMID
  426. LESOBL(1)='UR '
  427. LESOBL(2)='UZ '
  428. LESOBL(3)='P '
  429. LESOBL(4)='PQ '
  430. C ======
  431. C 11.3 - Fourier
  432. C ======
  433. ELSE IF (IFOU.EQ.1) THEN
  434. NBROBL=5
  435. SEGINI,NOMID
  436. LESOBL(1)='UR '
  437. LESOBL(2)='UZ '
  438. LESOBL(3)='UT '
  439. LESOBL(4)='P '
  440. LESOBL(5)='PQ '
  441. C ======
  442. C 11.4 - Tridimensionnel et bidimensionnel DEFO PLAN GENE
  443. C ======
  444. ELSE IF (IFOU.EQ.2.OR.IFOU.EQ.-3) THEN
  445. NBROBL=5
  446. SEGINI,NOMID
  447. LESOBL(1)='UX '
  448. LESOBL(2)='UY '
  449. LESOBL(3)='UZ '
  450. LESOBL(4)='P '
  451. LESOBL(5)='PQ '
  452. ENDIF
  453.  
  454. C 12 - Formulation POREUX type R
  455. C ================================
  456. ELSE IF (MFR.EQ.59) THEN
  457. C ======
  458. C 12.1 - Bidimensionnel PLAN (CP/DP)
  459. C ======
  460. IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN
  461. NBROBL=5
  462. SEGINI,NOMID
  463. LESOBL(1)='UX '
  464. LESOBL(2)='UY '
  465. LESOBL(3)='P '
  466. LESOBL(4)='PQ '
  467. LESOBL(5)='TP '
  468. C ======
  469. C 12.2 - Axisymetrie
  470. C ======
  471. ELSE IF (IFOU.EQ.0) THEN
  472. NBROBL=5
  473. SEGINI,NOMID
  474. LESOBL(1)='UR '
  475. LESOBL(2)='UZ '
  476. LESOBL(3)='P '
  477. LESOBL(4)='PQ '
  478. LESOBL(5)='TP '
  479. C ======
  480. C 12.3 - Fourier
  481. C ======
  482. ELSE IF (IFOU.EQ.1) THEN
  483. NBROBL=6
  484. SEGINI,NOMID
  485. LESOBL(1)='UR '
  486. LESOBL(2)='UZ '
  487. LESOBL(3)='UT '
  488. LESOBL(4)='P '
  489. LESOBL(5)='PQ '
  490. LESOBL(6)='TP '
  491. C ======
  492. C 12.4 - Tridimensionnel et bidimensionnel DEFO PLAN GENE
  493. C ======
  494. ELSE IF(IFOU.EQ.2.OR.IFOU.EQ.-3) THEN
  495. NBROBL=6
  496. SEGINI,NOMID
  497. LESOBL(1)='UX '
  498. LESOBL(2)='UY '
  499. LESOBL(3)='UZ '
  500. LESOBL(4)='P '
  501. LESOBL(5)='PQ '
  502. LESOBL(6)='TP '
  503. ENDIF
  504.  
  505. C 13 - Elements de RACCORD
  506. C ==========================
  507. ELSE IF (MFR.EQ.19.OR.MFR.EQ.21) THEN
  508. NBROBL=2
  509. SEGINI,NOMID
  510. LESOBL(1)='P '
  511. LESOBL(2)='PI '
  512.  
  513. C 14 - Element de RACCORD MASSIF (2e serie de composantes)
  514. C ==========================================================
  515. ELSE IF (MFR.EQ.1019) THEN
  516. C ======
  517. C 14.1 - Bidimensionnel PLAN (CP/DP)
  518. C ======
  519. IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN
  520. NBROBL=2
  521. SEGINI,NOMID
  522. LESOBL(1)='UX '
  523. LESOBL(2)='UY '
  524. C ======
  525. C 14.2 - Axisymetrie
  526. C ======
  527. ELSE IF (IFOU.EQ.0) THEN
  528. NBROBL=2
  529. SEGINI,NOMID
  530. LESOBL(1)='UR '
  531. LESOBL(2)='UZ '
  532. C ======
  533. C 14.3 - Fourier
  534. C ======
  535. ELSE IF (IFOU.EQ.1) THEN
  536. NBROBL=3
  537. SEGINI,NOMID
  538. LESOBL(1)='UR '
  539. LESOBL(2)='UZ '
  540. LESOBL(3)='UT '
  541. C ======
  542. C 14.4 - Tridimensionnel et bidimensionnel DEFO PLAN GENE
  543. C ======
  544. ELSE IF (IFOU.EQ.2.OR.IFOU.EQ.-3) THEN
  545. NBROBL=3
  546. SEGINI,NOMID
  547. LESOBL(1)='UX '
  548. LESOBL(2)='UY '
  549. LESOBL(3)='UZ '
  550. ENDIF
  551.  
  552. C 15 - Element de RACCORD COQUE (2e serie de composantes)
  553. C =========================================================
  554. ELSE IF (MFR.EQ.1021) THEN
  555. C ======
  556. C 15.1 - Bidimensionnel PLAN (CP/DP)
  557. C ======
  558. IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN
  559. NBROBL=3
  560. SEGINI,NOMID
  561. LESOBL(1)='UX '
  562. LESOBL(2)='UY '
  563. LESOBL(3)='RZ '
  564. C ======
  565. C 15.2 - Axisymetrie
  566. C ======
  567. ELSE IF (IFOU.EQ.0) THEN
  568. NBROBL=3
  569. SEGINI,NOMID
  570. LESOBL(1)='UR '
  571. LESOBL(2)='UZ '
  572. LESOBL(3)='RT '
  573. C ======
  574. C 15.3 - Fourier
  575. C ======
  576. ELSE IF (IFOU.EQ.1) THEN
  577. NBROBL=4
  578. SEGINI,NOMID
  579. LESOBL(1)='UR '
  580. LESOBL(2)='UZ '
  581. LESOBL(3)='UT '
  582. LESOBL(4)='RT '
  583. C ======
  584. C 15.4 - Tridimensionnel et bidimensionnel DEFO PLAN GENE
  585. C ======
  586. ELSE IF (IFOU.EQ.2.OR.IFOU.EQ.-3) THEN
  587. NBROBL=6
  588. SEGINI,NOMID
  589. LESOBL(1)='UX '
  590. LESOBL(2)='UY '
  591. LESOBL(3)='UZ '
  592. LESOBL(4)='RX '
  593. LESOBL(5)='RY '
  594. LESOBL(6)='RZ '
  595. ENDIF
  596.  
  597. C 16 - Element TUYO
  598. C ===================
  599. ELSE IF (MFR.EQ.39) THEN
  600. NBROBL=6+9
  601. SEGINI,NOMID
  602. LESOBL(1)='UX '
  603. LESOBL(2)='UY '
  604. LESOBL(3)='UZ '
  605. LESOBL(4)='RX '
  606. LESOBL(5)='RY '
  607. LESOBL(6)='RZ '
  608. LESOBL(7)='W0 '
  609. LESOBL(8)='U1 '
  610. LESOBL(9)='U2 '
  611. LESOBL(10)='U3 '
  612. LESOBL(11)='U4 '
  613. LESOBL(12)='W1 '
  614. LESOBL(13)='W2 '
  615. LESOBL(14)='W3 '
  616. LESOBL(15)='W4 '
  617. C 17 - Element POI1 materiau MODAL
  618. C ===================
  619. ELSE IF (MFR.EQ.26) THEN
  620. NBROBL=1
  621. SEGINI,NOMID
  622. LESOBL(1)='ALFA'
  623. C 18 - Element POI1 materiau STATIQUE
  624. C ===================
  625. ELSE IF (MFR.EQ.28) THEN
  626. NBROBL=1
  627. SEGINI,NOMID
  628. LESOBL(1)='BETA'
  629. C 19 - Element XFEM (xfem meca rupture)
  630. C ===================
  631. ELSEIF(MFR.EQ.63) THEN
  632. CTY - Element XQ4R (xfem meca rupture en 2D)
  633. IF(IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN
  634. NBROBL=2
  635. NBRFAC=18
  636. SEGINI,NOMID
  637. LESOBL(1)='UX '
  638. LESOBL(2)='UY '
  639. LESFAC(1)='AX '
  640. LESFAC(2)='AY '
  641. LESFAC(3)='B1X '
  642. LESFAC(4)='B1Y '
  643. LESFAC(5)='C1X '
  644. LESFAC(6)='C1Y '
  645. LESFAC(7)='D1X '
  646. LESFAC(8)='D1Y '
  647. LESFAC(9)='E1X '
  648. LESFAC(10)='E1Y '
  649. LESFAC(11)='B2X '
  650. LESFAC(12)='B2Y '
  651. LESFAC(13)='C2X '
  652. LESFAC(14)='C2Y '
  653. LESFAC(15)='D2X '
  654. LESFAC(16)='D2Y '
  655. LESFAC(17)='E2X '
  656. LESFAC(18)='E2Y '
  657. CTY - Element XC8R (xfem meca rupture en 3D)
  658. ELSE IF (IFOU.EQ.2) THEN
  659. NBROBL=3
  660. NBRFAC=27
  661. SEGINI,NOMID
  662. LESOBL(1)='UX '
  663. LESOBL(2)='UY '
  664. LESOBL(3)='UZ '
  665. LESFAC(1)='AX '
  666. LESFAC(2)='AY '
  667. LESFAC(3)='AZ '
  668. LESFAC(4)='B1X '
  669. LESFAC(5)='B1Y '
  670. LESFAC(6)='B1Z '
  671. LESFAC(7)='C1X '
  672. LESFAC(8)='C1Y '
  673. LESFAC(9)='C1Z '
  674. LESFAC(10)='D1X '
  675. LESFAC(11)='D1Y '
  676. LESFAC(12)='D1Z '
  677. LESFAC(13)='E1X '
  678. LESFAC(14)='E1Y '
  679. LESFAC(15)='E1Z '
  680. LESFAC(16)='B2X '
  681. LESFAC(17)='B2Y '
  682. LESFAC(18)='B2Z '
  683. LESFAC(19)='C2X '
  684. LESFAC(20)='C2Y '
  685. LESFAC(21)='C2Z '
  686. LESFAC(22)='D2X '
  687. LESFAC(23)='D2Y '
  688. LESFAC(24)='D2Z '
  689. LESFAC(25)='E2X '
  690. LESFAC(26)='E2Y '
  691. LESFAC(27)='E2Z '
  692. ENDIF
  693.  
  694. C 20 - Elements de zones cohesives
  695. C ==================================
  696. ELSEIF(MFR.EQ.77) THEN
  697. C - Element ZCO2 (xfem meca rupture en 2D)
  698. IF(IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN
  699. NBROBL=2
  700. NBRFAC=18
  701. SEGINI,NOMID
  702. LESOBL(1)='AX '
  703. LESOBL(2)='AY '
  704. LESFAC(1)='UX '
  705. LESFAC(2)='UY '
  706. LESFAC(3)='B1X '
  707. LESFAC(4)='B1Y '
  708. LESFAC(5)='C1X '
  709. LESFAC(6)='C1Y '
  710. LESFAC(7)='D1X '
  711. LESFAC(8)='D1Y '
  712. LESFAC(9)='E1X '
  713. LESFAC(10)='E1Y '
  714. LESFAC(11)='B2X '
  715. LESFAC(12)='B2Y '
  716. LESFAC(13)='C2X '
  717. LESFAC(14)='C2Y '
  718. LESFAC(15)='D2X '
  719. LESFAC(16)='D2Y '
  720. LESFAC(17)='E2X '
  721. LESFAC(18)='E2Y '
  722. C - Elements ZCO3 et ZCO4(xfem meca rupture en 3D)
  723. ELSE IF (IFOU.EQ.2) THEN
  724. NBROBL=3
  725. NBRFAC=27
  726. SEGINI,NOMID
  727. LESOBL(1)='AX '
  728. LESOBL(2)='AY '
  729. LESOBL(3)='AZ '
  730. LESFAC(1)='UX '
  731. LESFAC(2)='UY '
  732. LESFAC(3)='UZ '
  733. LESFAC(4)='B1X '
  734. LESFAC(5)='B1Y '
  735. LESFAC(6)='B1Z '
  736. LESFAC(7)='C1X '
  737. LESFAC(8)='C1Y '
  738. LESFAC(9)='C1Z '
  739. LESFAC(10)='D1X '
  740. LESFAC(11)='D1Y '
  741. LESFAC(12)='D1Z '
  742. LESFAC(13)='E1X '
  743. LESFAC(14)='E1Y '
  744. LESFAC(15)='E1Z '
  745. LESFAC(16)='B2X '
  746. LESFAC(17)='B2Y '
  747. LESFAC(18)='B2Z '
  748. LESFAC(19)='C2X '
  749. LESFAC(20)='C2Y '
  750. LESFAC(21)='C2Z '
  751. LESFAC(22)='D2X '
  752. LESFAC(23)='D2Y '
  753. LESFAC(24)='D2Z '
  754. LESFAC(25)='E2X '
  755. LESFAC(26)='E2Y '
  756. LESFAC(27)='E2Z '
  757. ENDIF
  758.  
  759. C 21 - Formulation ELECTROSTATIQUE (base MASSIF)
  760. C ==================================
  761. ELSE IF (MFR.EQ.71) THEN
  762. NBROBL=1
  763. SEGINI,NOMID
  764. LESOBL(1)='VEL '
  765.  
  766. C=DEB==== FORMULATION HHO ==============================================
  767. C Pour l'instant HHO en MECANIQUE seulement en 2D PLAN (CP/DP) et 3D
  768. ELSE IF (MFR.EQ.HHO_MFR_ELEMENT) THEN
  769. i_d_c = IDIM
  770. n_o_c = ABS(imodel.INFMOD(12))
  771. n_d_c = n_o_c * i_d_c
  772. n_o_f = ABS(imodel.INFMOD( 9))
  773. n_d_f = n_o_f * i_d_c
  774.  
  775. NBROBL = n_d_c + n_d_f
  776. NBRFAC = 0
  777. SEGINI,NOMID
  778.  
  779. j1 = 1
  780. j2 = j1 + n_o_c
  781. j3 = j2 + n_o_c
  782. n_o_c = n_o_c - 1
  783. IF (IFOUR.EQ.-2 .OR. IFOUR.EQ.-1) THEN
  784. DO i = 0, n_o_c
  785. c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'UX_HC_',i
  786. c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'UY_HC_',i
  787. WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'UXC',i,' '
  788. WRITE(LESOBL(j2+i),'(A3,I1.1,A4)') 'UYC',i,' '
  789. END DO
  790. ELSE IF (IFOUR.EQ.2) THEN
  791. DO i = 0, n_o_c
  792. c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'UX_HC_',i
  793. c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'UY_HC_',i
  794. c*** WRITE(LESOBL(j3+i),'(A6,I2.2)') 'UZ_HC_',i
  795. WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'UXC',i,' '
  796. WRITE(LESOBL(j2+i),'(A3,I1.1,A4)') 'UYC',i,' '
  797. WRITE(LESOBL(j3+i),'(A3,I1.1,A4)') 'UZC',i,' '
  798. END DO
  799. ELSE
  800. write(ioimp,*) 'IDPRIM - HHO - IFOU not implemented'
  801. CALL ERREUR(5)
  802. RETURN
  803. END IF
  804.  
  805. j1 = n_d_c + 1
  806. j2 = j1 + n_o_f
  807. j3 = j2 + n_o_f
  808. n_o_f = n_o_f - 1
  809. IF (IFOU.EQ.-2 .OR. IFOU.EQ.-1) THEN
  810. DO i = 0, n_o_f
  811. c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'UX_HF_',i
  812. c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'UY_HF_',i
  813. WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'UXF',i,' '
  814. WRITE(LESOBL(j2+i),'(A3,I1.1,A4)') 'UYF',i,' '
  815. END DO
  816. ELSE IF (IFOU.EQ.2) THEN
  817. DO i = 0, n_o_f
  818. c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'UX_HF_',i
  819. c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'UY_HF_',i
  820. c*** WRITE(LESOBL(j3+i),'(A6,I2.2)') 'UZ_HF_',i
  821. WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'UXF',i,' '
  822. WRITE(LESOBL(j2+i),'(A3,I1.1,A4)') 'UYF',i,' '
  823. WRITE(LESOBL(j3+i),'(A3,I1.1,A4)') 'UZF',i,' '
  824. END DO
  825. END IF
  826. C=FIN==== FORMULATION HHO ==============================================
  827.  
  828. ENDIF
  829.  
  830.  
  831. C Par DEFAUT : segment VIDE
  832. C ===========================
  833. IF (NOMID.EQ.0) THEN
  834. SEGINI,NOMID
  835. ELSE
  836. if (ifomod.eq.6) then
  837. nbrfa0 = nbrfac
  838. NBRFAC = NBROBL + (nbrfa0*2)
  839. segadj nomid
  840. do imo = 1,nbrobl
  841. lesfac(nbrfa0 + imo)(2:4) = lesobl(imo)(1:3)
  842. lesfac(nbrfa0 + imo)(1:1) = 'I'
  843. enddo
  844. do imo = 1,nbrfa0
  845. lesfac(nbrfa0+nbrobl+imo)(2:4) = lesfac(imo)(1:3)
  846. lesfac(nbrfa0+nbrobl+imo)(1:1) = 'I'
  847. enddo
  848. endif
  849. ENDIF
  850.  
  851. SEGACT,NOMID*NOMOD
  852. IPNOMC=NOMID
  853. RETURN
  854.  
  855. C 9 - Formulation THERMIQUE
  856. C ===========================
  857. 1001 CONTINUE
  858. C Cas des COQUES
  859. IF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
  860. NPINT = 0
  861. if(infmod(/1).ne.0) NPINT=infmod(1)
  862. IF(NPINT.EQ.0) THEN
  863. NBROBL=3
  864. SEGINI NOMID
  865. LESOBL(1)='TINF '
  866. LESOBL(2)='T '
  867. LESOBL(3)='TSUP '
  868. ELSE
  869. NBROBL = 1
  870. SEGINI NOMID
  871. LESOBL(1)='T '
  872. ENDIF
  873. *
  874. *--- TOUS LES CAS SAUF COQUES ET COQUES EPAISSES
  875. *
  876. ELSE
  877. NBROBL=1
  878. SEGINI NOMID
  879. LESOBL(1)='T '
  880. ENDIF
  881. SEGACT,NOMID*NOMOD
  882. IPNOMC=NOMID
  883. RETURN
  884.  
  885. C 22 - Formulation DIFFUSION
  886. C ===========================
  887. 1002 CONTINUE
  888.  
  889. C Recuperation du LISTMOTS dans IVAMOD(1)
  890. MLMOT1=IVAMOD(1)
  891.  
  892. C Recuperation de l'inconnue PRIMALE
  893. CCOMP =MLMOT1.MOTS(1)
  894. NBCHAR=LONG(CCOMP)
  895. IF (NBCHAR .GT. 4) THEN
  896. CALL ERREUR(536)
  897. RETURN
  898. ENDIF
  899.  
  900. C Cas des COQUES
  901. IF (MFR.EQ.3 .OR. MFR.EQ.5 .OR. MFR.EQ.9) THEN
  902. NPINT = 0
  903. if(infmod(/1).ne.0) NPINT=infmod(1)
  904. IF(NPINT.EQ.0) THEN
  905. NBROBL=3
  906. SEGINI NOMID
  907. LESOBL(1)=CCOMP(1:NBCHAR)//'IN '
  908. LESOBL(2)=CCOMP
  909. LESOBL(3)=CCOMP(1:NBCHAR)//'SU '
  910. ELSE
  911. NBROBL = 1
  912. SEGINI NOMID
  913. LESOBL(1)=CCOMP
  914. ENDIF
  915.  
  916. C Cas des autres elements
  917. ELSE
  918. NBROBL = 1
  919. SEGINI NOMID
  920. LESOBL(1)=CCOMP
  921. ENDIF
  922. SEGACT,NOMID*NOMOD
  923. IPNOMC=NOMID
  924. RETURN
  925.  
  926. C 23 - Formulation METALLURGIE
  927. C ==================================
  928. 1003 CONTINUE
  929. NBROBL=0
  930. NBRFAC=0
  931. SEGINI NOMID
  932. SEGACT,NOMID*NOMOD
  933. IPNOMC=NOMID
  934. RETURN
  935.  
  936. END
  937.  
  938.  
  939.  

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