Télécharger iddual.eso

Retour à la liste

Numérotation des lignes :

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

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