Télécharger iddual.eso

Retour à la liste

Numérotation des lignes :

iddual
  1. C IDDUAL SOURCE OF166741 26/02/23 21:15:11 12480
  2. C=======================================================================
  3. C= DEFINITION DES NOMS DE COMPOSANTES DUALES =
  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. C= Remarque : Voir INOMID ou CCOPTIO pour signification IFOUR =
  18. C=======================================================================
  19. C
  20. SUBROUTINE IDDUAL(IPMODE,MFR0,IPNOMC,NBROBL,NBRFAC)
  21. C
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8(A-H,O-Z)
  24. C
  25. -INC PPARAM
  26. -INC CCOPTIO
  27. C==DEB= FORMULATION HHO == Include specifique ==========================
  28. -INC CCHHOPA
  29. C==FIN= FORMULATION HHO ================================================
  30. -INC SMMODEL
  31. -INC SMLMOTS
  32. C
  33. CHARACTER*(LOCOMP) CCOMP
  34. EXTERNAL LONG
  35. C
  36. NBROBL=0
  37. NBRFAC=0
  38. C
  39. IMODEL=IPMODE
  40. MELE =IMODEL.NEFMOD
  41. MFR =NUMMFR(MELE)
  42. NOMID =IMODEL.LNOMID(2)
  43. C
  44. C Ne pas recreer le NOMID si deja present
  45. IF(NOMID.NE.0 .AND. (MFR.EQ.MFR0))THEN
  46. NBROBL=LESOBL(/2)
  47. NBRFAC=LESFAC(/2)
  48. IPNOMC=NOMID
  49. RETURN
  50. ENDIF
  51. C
  52. MFR =MFR0
  53. MFR2=NUMFOR(IMODEL)
  54. *
  55. * MACRO ELEMENT
  56. *
  57. IF (MFR.EQ.61)THEN
  58. IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2) THEN
  59. NBROBL=5
  60. SEGINI,NOMID
  61. LESOBL(1)='FX '
  62. LESOBL(2)='FY '
  63. LESOBL(3)='MZ '
  64. LESOBL(4)='FM '
  65. LESOBL(5)='MM '
  66. ENDIF
  67. C =================================================================
  68. C FORMULATION THERMOHYDRIQUE
  69. C =================================================================
  70. ELSE IF (MFR2.EQ.65) THEN
  71. NBROBL=3
  72. SEGINI,NOMID
  73. LESOBL(1)='QG '
  74. LESOBL(2)='QC '
  75. LESOBL(3)='Q '
  76. C =================================================================
  77. C FORMULATION MECANIQUE/CHARGEMENT/LIAISON/MELANGE/NAVIER_STOKES
  78. C =================================================================
  79. ELSE IF (MFR2.EQ.2.OR.MFR2.EQ.72.OR.MFR2.EQ.24.OR.MFR2.EQ.38
  80. & .OR. MFR2.EQ.52) THEN
  81. C
  82. C Cas particuliers
  83. C ================
  84. IF (MFR.EQ.26) THEN
  85. NBROBL=1
  86. SEGINI,NOMID
  87. LESOBL(1)='FALF'
  88. ELSE IF (MFR.EQ.28) THEN
  89. NBROBL=1
  90. SEGINI,NOMID
  91. LESOBL(1)='FBET'
  92. C
  93. C Elements MASSIFS, MEMBRANE, UNIAXIALE
  94. C =====================================
  95. ELSE IF (MFR.EQ.1 .OR. MFR.EQ.25 .OR. MFR.EQ.27 .OR. MFR.EQ.31
  96. & .OR. MFR.EQ.52) THEN
  97. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  98. NBROBL=2
  99. SEGINI,NOMID
  100. LESOBL(1)='FX '
  101. LESOBL(2)='FY '
  102. ELSE IF (IFOUR.EQ.0) THEN
  103. NBROBL=2
  104. SEGINI,NOMID
  105. LESOBL(1)='FR '
  106. LESOBL(2)='FZ '
  107. ELSE IF (IFOUR.EQ.1) THEN
  108. NBROBL=3
  109. SEGINI,NOMID
  110. LESOBL(1)='FR '
  111. LESOBL(2)='FZ '
  112. LESOBL(3)='FT '
  113. ELSE IF (IFOUR.EQ.2) THEN
  114. NBROBL=3
  115. SEGINI,NOMID
  116. LESOBL(1)='FX '
  117. LESOBL(2)='FY '
  118. LESOBL(3)='FZ '
  119. ELSE IF (IFOUR.EQ.-3) THEN
  120. IF (MFR2.EQ.72) THEN
  121. NBROBL=2
  122. SEGINI,NOMID
  123. LESOBL(1)='FX '
  124. LESOBL(2)='FY '
  125. ELSE
  126. NBROBL=5
  127. SEGINI,NOMID
  128. LESOBL(1)='FX '
  129. LESOBL(2)='FY '
  130. LESOBL(3)='FZ '
  131. LESOBL(4)='MY '
  132. LESOBL(5)='MX '
  133. ENDIF
  134. ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15.AND.MFR.EQ.1) THEN
  135. IF (IFOUR.LE.6) THEN
  136. NBROBL=1
  137. SEGINI,NOMID
  138. LESOBL(1)='FX '
  139. ELSE IF (IFOUR.EQ.7.OR.IFOUR.EQ.8) THEN
  140. NBROBL=2
  141. SEGINI,NOMID
  142. LESOBL(1)='FX '
  143. LESOBL(2)='FY '
  144. ELSE IF (IFOUR.EQ.9.OR.IFOUR.EQ.10) THEN
  145. NBROBL=2
  146. SEGINI,NOMID
  147. LESOBL(1)='FX '
  148. LESOBL(2)='FZ '
  149. ELSE IF (IFOUR.EQ.11) THEN
  150. NBROBL=3
  151. SEGINI,NOMID
  152. LESOBL(1)='FX '
  153. LESOBL(2)='FY '
  154. LESOBL(3)='FZ '
  155. ELSE IF (IFOUR.EQ.12.OR.IFOUR.EQ.13.OR.IFOUR.EQ.15) THEN
  156. NBROBL=1
  157. SEGINI,NOMID
  158. LESOBL(1)='FR '
  159. ELSE IF (IFOUR.EQ.14) THEN
  160. NBROBL=2
  161. SEGINI,NOMID
  162. LESOBL(1)='FR '
  163. LESOBL(2)='FZ '
  164. ENDIF
  165. ENDIF
  166. C
  167. C Elements COQUE/POUTRE/TUYAU
  168. C ===========================
  169. ELSE IF (MFR.EQ.3 .OR. MFR.EQ.5 .OR. MFR.EQ.7 .OR. MFR.EQ.9
  170. & .OR. MFR.EQ.13 .OR. MFR.EQ.15.OR. MFR.EQ.17 .OR. MFR.EQ.49
  171. & .OR. MFR.EQ.51 .OR. MFR.EQ.75) THEN
  172. IF (IFOUR.EQ.2) THEN
  173. NBROBL=6
  174. SEGINI,NOMID
  175. LESOBL(1)='FX '
  176. LESOBL(2)='FY '
  177. LESOBL(3)='FZ '
  178. LESOBL(4)='MX '
  179. LESOBL(5)='MY '
  180. LESOBL(6)='MZ '
  181. ELSE IF (IFOUR.EQ.1) THEN
  182. NBROBL=4
  183. SEGINI,NOMID
  184. LESOBL(1)='FR '
  185. LESOBL(2)='FZ '
  186. LESOBL(3)='FT '
  187. LESOBL(4)='MT '
  188. ELSE IF (IFOUR.EQ.0) THEN
  189. NBROBL=3
  190. SEGINI,NOMID
  191. LESOBL(1)='FR '
  192. LESOBL(2)='FZ '
  193. LESOBL(3)='MT '
  194. ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2) THEN
  195. NBROBL=3
  196. SEGINI,NOMID
  197. LESOBL(1)='FX '
  198. LESOBL(2)='FY '
  199. LESOBL(3)='MZ '
  200. ELSE IF (IFOUR.EQ.-3) THEN
  201. IF (MFR.EQ.3 .OR. MFR.EQ.5) THEN
  202. NBROBL=6
  203. SEGINI,NOMID
  204. LESOBL(1)='FX '
  205. LESOBL(2)='FY '
  206. LESOBL(3)='MZ '
  207. LESOBL(4)='FZ '
  208. LESOBL(5)='MY '
  209. LESOBL(6)='MX '
  210. ELSE
  211. NBROBL=3
  212. SEGINI,NOMID
  213. LESOBL(1)='FX '
  214. LESOBL(2)='FY '
  215. LESOBL(3)='MZ '
  216. ENDIF
  217. ENDIF
  218. C
  219. C Element JOINT, JOINT CISAILLEMENT,JOINT GENERALISE, COS2
  220. C ===============================================================
  221. ELSE IF (MFR.EQ.35.OR.MFR.EQ.53.OR.MFR.EQ.55.OR.MFR.EQ.78) THEN
  222. IF (IFOUR.EQ.2) THEN
  223. NBROBL=3
  224. SEGINI,NOMID
  225. LESOBL(1)='FX '
  226. LESOBL(2)='FY '
  227. LESOBL(3)='FZ '
  228. ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN
  229. NBROBL=2
  230. SEGINI,NOMID
  231. LESOBL(1)='FX '
  232. LESOBL(2)='FY '
  233. ELSE IF (IFOUR.EQ.0) THEN
  234. NBROBL=2
  235. SEGINI,NOMID
  236. LESOBL(1)='FR '
  237. LESOBL(2)='FZ '
  238. ENDIF
  239. C
  240. C Elements HOMOGENEISE
  241. C =====================
  242. ELSE IF (MFR.EQ.37) THEN
  243. IF (IFOUR.EQ.1) THEN
  244. NBROBL=6
  245. SEGINI,NOMID
  246. LESOBL(1)='FP '
  247. LESOBL(2)='FPI '
  248. LESOBL(3)='FR '
  249. LESOBL(4)='MT '
  250. LESOBL(5)='FT '
  251. LESOBL(6)='MR '
  252. ELSE IF (IFOUR.EQ.0) THEN
  253. NBROBL=4
  254. SEGINI,NOMID
  255. LESOBL(1)='FP '
  256. LESOBL(2)='FPI '
  257. LESOBL(3)='FR '
  258. LESOBL(4)='MT '
  259. ELSE IF (IFOUR.EQ.2) THEN
  260. NBROBL=6
  261. SEGINI,NOMID
  262. LESOBL(1)='FP '
  263. LESOBL(2)='FPI '
  264. LESOBL(3)='FX '
  265. LESOBL(4)='MY '
  266. LESOBL(5)='FY '
  267. LESOBL(6)='MX '
  268. ELSE
  269. NBROBL=4
  270. SEGINI,NOMID
  271. LESOBL(1)='FP '
  272. LESOBL(2)='FPI '
  273. LESOBL(3)='FX '
  274. LESOBL(4)='FY '
  275. ENDIF
  276. C
  277. C Elements TUYO
  278. C =============
  279. ELSE IF (MFR.EQ.39) THEN
  280. NBROBL=6+9
  281. SEGINI,NOMID
  282. LESOBL(1)='FX '
  283. LESOBL(2)='FY '
  284. LESOBL(3)='FZ '
  285. LESOBL(4)='MX '
  286. LESOBL(5)='MY '
  287. LESOBL(6)='MZ '
  288. LESOBL(7)='FW0 '
  289. LESOBL(8)='FU1 '
  290. LESOBL(9)='FU2 '
  291. LESOBL(10)='FU3 '
  292. LESOBL(11)='FU4 '
  293. LESOBL(12)='FW1 '
  294. LESOBL(13)='FW2 '
  295. LESOBL(14)='FW3 '
  296. LESOBL(15)='FW4 '
  297. C
  298. C Elements ZONE_COHESIVE
  299. C ======================
  300. ELSE IF (MFR.EQ.77) THEN
  301. C Element ZCO2 (xfem meca rupture en 2D)
  302. IF(IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  303. NBROBL=2
  304. NBRFAC=18
  305. SEGINI,NOMID
  306. LESOBL(1)='FAX '
  307. LESOBL(2)='FAY '
  308. LESFAC(1)='FX '
  309. LESFAC(2)='FY '
  310. LESFAC(3)='FB1X'
  311. LESFAC(4)='FB1Y'
  312. LESFAC(5)='FC1X'
  313. LESFAC(6)='FC1Y'
  314. LESFAC(7)='FD1X'
  315. LESFAC(8)='FD1Y'
  316. LESFAC(9)='FE1X'
  317. LESFAC(10)='FE1Y'
  318. LESFAC(11)='FB2X'
  319. LESFAC(12)='FB2Y'
  320. LESFAC(13)='FC2X'
  321. LESFAC(14)='FC2Y'
  322. LESFAC(15)='FD2X'
  323. LESFAC(16)='FD2Y'
  324. LESFAC(17)='FE2X'
  325. LESFAC(18)='FE2Y'
  326. C Elements ZCO3 et ZCO4 (xfem meca rupture en 3D)
  327. ELSE IF (IFOUR.EQ.2) THEN
  328. NBROBL=3
  329. NBRFAC=27
  330. SEGINI,NOMID
  331. LESOBL(1)='FAX '
  332. LESOBL(2)='FAY '
  333. LESOBL(3)='FAZ '
  334. LESFAC(1)='FX '
  335. LESFAC(2)='FY '
  336. LESFAC(3)='FZ '
  337. LESFAC(4)='FB1X'
  338. LESFAC(5)='FB1Y'
  339. LESFAC(6)='FB1Z'
  340. LESFAC(7)='FC1X'
  341. LESFAC(8)='FC1Y'
  342. LESFAC(9)='FC1Z'
  343. LESFAC(10)='FD1X'
  344. LESFAC(11)='FD1Y'
  345. LESFAC(12)='FD1Z'
  346. LESFAC(13)='FE1X'
  347. LESFAC(14)='FE1Y'
  348. LESFAC(15)='FE1Z'
  349. LESFAC(16)='FB2X'
  350. LESFAC(17)='FB2Y'
  351. LESFAC(18)='FB2Z'
  352. LESFAC(19)='FC2X'
  353. LESFAC(20)='FC2Y'
  354. LESFAC(21)='FC2Z'
  355. LESFAC(22)='FD2X'
  356. LESFAC(23)='FD2Y'
  357. LESFAC(24)='FD2Z'
  358. LESFAC(25)='FE2X'
  359. LESFAC(26)='FE2Y'
  360. LESFAC(27)='FE2Z'
  361. ENDIF
  362. C
  363. C Element XFEM
  364. C ============
  365. ELSE IF (MFR.EQ.63) THEN
  366. CTY Element XQ4R (xfem meca rupture en 2D)
  367. IF(IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  368. NBROBL=2
  369. NBRFAC=18
  370. SEGINI,NOMID
  371. LESOBL(1)='FX '
  372. LESOBL(2)='FY '
  373. LESFAC(1)='FAX '
  374. LESFAC(2)='FAY '
  375. LESFAC(3)='FB1X'
  376. LESFAC(4)='FB1Y'
  377. LESFAC(5)='FC1X'
  378. LESFAC(6)='FC1Y'
  379. LESFAC(7)='FD1X'
  380. LESFAC(8)='FD1Y'
  381. LESFAC(9)='FE1X'
  382. LESFAC(10)='FE1Y'
  383. LESFAC(11)='FB2X'
  384. LESFAC(12)='FB2Y'
  385. LESFAC(13)='FC2X'
  386. LESFAC(14)='FC2Y'
  387. LESFAC(15)='FD2X'
  388. LESFAC(16)='FD2Y'
  389. LESFAC(17)='FE2X'
  390. LESFAC(18)='FE2Y'
  391. CTY Element XC8R (xfem meca rupture en 3D)
  392. ELSE IF (IFOUR.EQ.2) THEN
  393. NBROBL=3
  394. NBRFAC=27
  395. SEGINI,NOMID
  396. LESOBL(1)='FX '
  397. LESOBL(2)='FY '
  398. LESOBL(3)='FZ '
  399. LESFAC(1)='FAX '
  400. LESFAC(2)='FAY '
  401. LESFAC(3)='FAZ '
  402. LESFAC(4)='FB1X'
  403. LESFAC(5)='FB1Y'
  404. LESFAC(6)='FB1Z'
  405. LESFAC(7)='FC1X'
  406. LESFAC(8)='FC1Y'
  407. LESFAC(9)='FC1Z'
  408. LESFAC(10)='FD1X'
  409. LESFAC(11)='FD1Y'
  410. LESFAC(12)='FD1Z'
  411. LESFAC(13)='FE1X'
  412. LESFAC(14)='FE1Y'
  413. LESFAC(15)='FE1Z'
  414. LESFAC(16)='FB2X'
  415. LESFAC(17)='FB2Y'
  416. LESFAC(18)='FB2Z'
  417. LESFAC(19)='FC2X'
  418. LESFAC(20)='FC2Y'
  419. LESFAC(21)='FC2Z'
  420. LESFAC(22)='FD2X'
  421. LESFAC(23)='FD2Y'
  422. LESFAC(24)='FD2Z'
  423. LESFAC(25)='FE2X'
  424. LESFAC(26)='FE2Y'
  425. LESFAC(27)='FE2Z'
  426. ENDIF
  427. C
  428. C FORMULATION MECANQIUE HHO (SEULEMENT 2D (CP/DP) et 3D
  429. C =====================================================
  430. ELSE IF (MFR.EQ.HHO_MFR_ELEMENT) THEN
  431. i_d_c = IDIM
  432. n_o_c = ABS(imodel.INFMOD(12))
  433. n_d_c = n_o_c * i_d_c
  434. n_o_f = ABS(imodel.INFMOD( 9))
  435. n_d_f = n_o_f * i_d_c
  436.  
  437. NBROBL = n_d_c + n_d_f
  438. NBRFAC = 0
  439. SEGINI,NOMID
  440.  
  441. j1 = 1
  442. j2 = j1 + n_o_c
  443. j3 = j2 + n_o_c
  444. n_o_c = n_o_c - 1
  445. IF (IFOUR.EQ.-2 .OR. IFOUR.EQ.-1) THEN
  446. DO i = 0, n_o_c
  447. c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'FX_HC_',i
  448. c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'FY_HC_',i
  449. WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'FXC',i,' '
  450. WRITE(LESOBL(j2+i),'(A3,I1.1,A4)') 'FYC',i,' '
  451. END DO
  452. ELSE IF (IFOUR.EQ.2) THEN
  453. DO i = 0, n_o_c
  454. c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'FX_HC_',i
  455. c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'FY_HC_',i
  456. c*** WRITE(LESOBL(j3+i),'(A6,I2.2)') 'FZ_HC_',i
  457. WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'FXC',i,' '
  458. WRITE(LESOBL(j2+i),'(A3,I1.1,A4)') 'FYC',i,' '
  459. WRITE(LESOBL(j3+i),'(A3,I1.1,A4)') 'FZC',i,' '
  460. END DO
  461. ELSE
  462. write(ioimp,*) 'IDDUAL - HHO - IFOUR not implemented'
  463. CALL ERREUR(5)
  464. RETURN
  465. END IF
  466.  
  467. j1 = n_d_c + 1
  468. j2 = j1 + n_o_f
  469. j3 = j2 + n_o_f
  470. n_o_f = n_o_f - 1
  471. IF (IFOUR.EQ.-2 .OR. IFOUR.EQ.-1) THEN
  472. DO i = 0, n_o_f
  473. c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'FX_HF_',i
  474. c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'FY_HF_',i
  475. WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'FXF',i,' '
  476. WRITE(LESOBL(j2+i),'(A3,I1.1,A4)') 'FYF',i,' '
  477. END DO
  478. ELSE IF (IFOUR.EQ.2) THEN
  479. DO i = 0, n_o_f
  480. c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'FX_HF_',i
  481. c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'FY_HF_',i
  482. c*** WRITE(LESOBL(j3+i),'(A6,I2.2)') 'FZ_HF_',i
  483. WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'FXF',i,' '
  484. WRITE(LESOBL(j2+i),'(A3,I1.1,A4)') 'FYF',i,' '
  485. WRITE(LESOBL(j3+i),'(A3,I1.1,A4)') 'FZF',i,' '
  486. END DO
  487. END IF
  488. ENDIF
  489. C =================================================================
  490. C FORMULATION LIQUIDE
  491. C =================================================================
  492. ELSE IF (MFR2.EQ.11) THEN
  493. C
  494. C Elements LIQUIDE
  495. C ================
  496. IF (MFR.EQ.11) THEN
  497. NBROBL=2
  498. SEGINI,NOMID
  499. LESOBL(1)='FP '
  500. LESOBL(2)='FPI '
  501. C
  502. C Elements TUYAU ACOUSTIQUE PUR
  503. C =============================
  504. ELSE IF (MFR.EQ.41) THEN
  505. NBROBL=2
  506. SEGINI,NOMID
  507. LESOBL(1)='FPI '
  508. LESOBL(2)='FP '
  509. C
  510. C Elements SURFACE LIBRE
  511. C ======================
  512. ELSE IF (MFR.EQ.23) THEN
  513. NBROBL=3
  514. SEGINI,NOMID
  515. LESOBL(1)='FP '
  516. LESOBL(2)='FPI '
  517. LESOBL(3)='FZ '
  518. ENDIF
  519. C =================================================================
  520. C FORMULATION MECANIQUE+LIQUID
  521. C =================================================================
  522. ELSE IF (MFR2.EQ.44) THEN
  523. C
  524. C Element de RACCORD LIQUIDE TUYAU
  525. C ================================
  526. IF (MFR.EQ.43) THEN
  527. NBROBL=5
  528. SEGINI,NOMID
  529. LESOBL(1)='FX '
  530. LESOBL(2)='FY '
  531. LESOBL(3)='FZ '
  532. LESOBL(4)='FPI '
  533. LESOBL(5)='FP '
  534. C
  535. C Element de RACCORD
  536. C ==================
  537. ELSE IF (MFR.EQ.19.OR.MFR.EQ.21) THEN
  538. NBROBL=2
  539. SEGINI,NOMID
  540. LESOBL(1)='FP '
  541. LESOBL(2)='FPI '
  542. C
  543. C Element de RACCORD MASSIF (2e serie de composantes)
  544. C ====================================================
  545. ELSE IF (MFR.EQ.1019) THEN
  546. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  547. NBROBL=2
  548. SEGINI,NOMID
  549. LESOBL(1)='FX '
  550. LESOBL(2)='FY '
  551. ELSE IF (IFOUR.EQ.0) THEN
  552. NBROBL=2
  553. SEGINI,NOMID
  554. LESOBL(1)='FR '
  555. LESOBL(2)='FZ '
  556. ELSE IF (IFOUR.EQ.1) THEN
  557. NBROBL=3
  558. SEGINI,NOMID
  559. LESOBL(1)='FR '
  560. LESOBL(2)='FZ '
  561. LESOBL(3)='FT '
  562. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN
  563. NBROBL=3
  564. SEGINI,NOMID
  565. LESOBL(1)='FX '
  566. LESOBL(2)='FY '
  567. LESOBL(3)='FZ '
  568. ENDIF
  569. C
  570. C Element de RACCORD COQUE (2e serie de composantes)
  571. C ==================================================
  572. ELSE IF (MFR.EQ.1021) THEN
  573. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  574. NBROBL=3
  575. SEGINI,NOMID
  576. LESOBL(1)='FX '
  577. LESOBL(2)='FY '
  578. LESOBL(3)='MZ '
  579. ELSE IF (IFOUR.EQ.0) THEN
  580. NBROBL=3
  581. SEGINI,NOMID
  582. LESOBL(1)='FR '
  583. LESOBL(2)='FZ '
  584. LESOBL(3)='MT '
  585. ELSE IF (IFOUR.EQ.1) THEN
  586. NBROBL=4
  587. SEGINI,NOMID
  588. LESOBL(1)='FR '
  589. LESOBL(2)='FZ '
  590. LESOBL(3)='FT '
  591. LESOBL(4)='MT '
  592. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN
  593. NBROBL=6
  594. SEGINI,NOMID
  595. LESOBL(1)='FX '
  596. LESOBL(2)='FY '
  597. LESOBL(3)='FZ '
  598. LESOBL(4)='MX '
  599. LESOBL(5)='MY '
  600. LESOBL(6)='MZ '
  601. ENDIF
  602. ENDIF
  603. C =================================================================
  604. C FORMULATION POREUX
  605. C =================================================================
  606. ELSE IF (MFR2.EQ.33) THEN
  607. C
  608. C Element POREUX
  609. C ==============
  610. IF (MFR.EQ.33) THEN
  611. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  612. NBROBL=3
  613. SEGINI,NOMID
  614. LESOBL(1)='FX '
  615. LESOBL(2)='FY '
  616. LESOBL(3)='FP '
  617. ELSE IF (IFOUR.EQ.0) THEN
  618. NBROBL=3
  619. SEGINI,NOMID
  620. LESOBL(1)='FR '
  621. LESOBL(2)='FZ '
  622. LESOBL(3)='FP '
  623. ELSE IF (IFOUR.EQ.1) THEN
  624. NBROBL=4
  625. SEGINI,NOMID
  626. LESOBL(1)='FR '
  627. LESOBL(2)='FZ '
  628. LESOBL(3)='FT '
  629. LESOBL(4)='FP '
  630. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN
  631. NBROBL=4
  632. SEGINI,NOMID
  633. LESOBL(1)='FX '
  634. LESOBL(2)='FY '
  635. LESOBL(3)='FZ '
  636. LESOBL(4)='FP '
  637. ENDIF
  638. C
  639. C Element POREUX type Q
  640. C =====================
  641. ELSE IF (MFR.EQ.57) THEN
  642. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  643. NBROBL=4
  644. SEGINI,NOMID
  645. LESOBL(1)='FX '
  646. LESOBL(2)='FY '
  647. LESOBL(3)='FP '
  648. LESOBL(4)='FPQ '
  649. ELSE IF (IFOUR.EQ.0) THEN
  650. NBROBL=4
  651. SEGINI,NOMID
  652. LESOBL(1)='FR '
  653. LESOBL(2)='FZ '
  654. LESOBL(3)='FP '
  655. LESOBL(4)='FPQ '
  656. ELSE IF (IFOUR.EQ.1) THEN
  657. NBROBL=5
  658. SEGINI,NOMID
  659. LESOBL(1)='FR '
  660. LESOBL(2)='FZ '
  661. LESOBL(3)='FT '
  662. LESOBL(4)='FP '
  663. LESOBL(5)='FPQ '
  664. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN
  665. NBROBL=5
  666. SEGINI,NOMID
  667. LESOBL(1)='FX '
  668. LESOBL(2)='FY '
  669. LESOBL(3)='FZ '
  670. LESOBL(4)='FP '
  671. LESOBL(5)='FPQ '
  672. ENDIF
  673. C
  674. C Element POREUX type R
  675. C =====================
  676. ELSE IF (MFR.EQ.59) THEN
  677. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  678. NBROBL=5
  679. SEGINI,NOMID
  680. LESOBL(1)='FX '
  681. LESOBL(2)='FY '
  682. LESOBL(3)='FP '
  683. LESOBL(4)='FPQ '
  684. LESOBL(5)='FTP '
  685. ELSE IF (IFOUR.EQ.0) THEN
  686. NBROBL=5
  687. SEGINI,NOMID
  688. LESOBL(1)='FR '
  689. LESOBL(2)='FZ '
  690. LESOBL(3)='FP '
  691. LESOBL(4)='FPQ '
  692. LESOBL(5)='FTP '
  693. ELSE IF (IFOUR.EQ.1) THEN
  694. NBROBL=6
  695. SEGINI,NOMID
  696. LESOBL(1)='FR '
  697. LESOBL(2)='FZ '
  698. LESOBL(3)='FT '
  699. LESOBL(4)='FP '
  700. LESOBL(5)='FPQ '
  701. LESOBL(6)='FTP '
  702. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN
  703. NBROBL=6
  704. SEGINI,NOMID
  705. LESOBL(1)='FX '
  706. LESOBL(2)='FY '
  707. LESOBL(3)='FZ '
  708. LESOBL(4)='FP '
  709. LESOBL(5)='FPQ '
  710. LESOBL(6)='FTP '
  711. ENDIF
  712. ENDIF
  713. C =================================================================
  714. C FORMULATION ELECTROSTATIQUE
  715. C =================================================================
  716. ELSE IF (MFR2.EQ.71) THEN
  717. NBROBL=1
  718. SEGINI,NOMID
  719. LESOBL(1)='QEL '
  720. C =================================================================
  721. C FORMULATION THERMIQUE
  722. C =================================================================
  723. ELSE IF (MFR2.EQ.29) THEN
  724. C
  725. C Elements COQUE
  726. C ==============
  727. IF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
  728. NPINT=infmod(1)
  729. IF(NPINT.EQ.0) THEN
  730. NBROBL=3
  731. SEGINI NOMID
  732. LESOBL(1)='QINF '
  733. LESOBL(2)='Q '
  734. LESOBL(3)='QSUP '
  735. ELSE
  736. NBROBL = 1
  737. SEGINI NOMID
  738. LESOBL(1)='Q '
  739. ENDIF
  740. C
  741. C Autres elements
  742. C ===============
  743. ELSE
  744. NBROBL=1
  745. SEGINI NOMID
  746. LESOBL(1)='Q '
  747. ENDIF
  748. C =================================================================
  749. C FORMULATION DIFFUSION
  750. C =================================================================
  751. ELSE IF (MFR2.EQ.73) THEN
  752. C
  753. C Recuperation du LISTMOTS dans IVAMOD(1)
  754. MLMOT1=IVAMOD(1)
  755.  
  756. C Recuperation de l'inconnue DUALE
  757. CCOMP =MLMOT1.MOTS(2)
  758. NBCHAR=LONG(CCOMP)
  759. IF (NBCHAR.GT.LOCOMP) THEN
  760. CALL ERREUR(536)
  761. RETURN
  762. ENDIF
  763. C
  764. C Elements COQUE
  765. C ==============
  766. IF (MFR.EQ.3 .OR. MFR.EQ.5 .OR. MFR.EQ.9) THEN
  767. NPINT=infmod(1)
  768. IF(NPINT.EQ.0) THEN
  769. NBROBL=3
  770. SEGINI NOMID
  771. LESOBL(1)=CCOMP(1:NBCHAR)//'IN '
  772. LESOBL(2)=CCOMP
  773. LESOBL(3)=CCOMP(1:NBCHAR)//'SU '
  774. ELSE
  775. NBROBL = 1
  776. SEGINI NOMID
  777. LESOBL(1)=CCOMP
  778. ENDIF
  779. C
  780. C Autres elements
  781. C ===============
  782. ELSE
  783. NBROBL = 1
  784. SEGINI NOMID
  785. LESOBL(1)=CCOMP
  786. ENDIF
  787. C =================================================================
  788. C FORMULATION CHANGEMENT_PHASE
  789. C =================================================================
  790. ELSE IF (MFR2.EQ.30) THEN
  791. C
  792. IF (IMODEL.CMATEE.EQ.'CHPH_PAR') THEN
  793. NBROBL=1
  794. NBRFAC=0
  795. SEGINI,NOMID
  796. MLMOT1=IMODEL.IVAMOD(1)
  797. NOMID.LESOBL(1)=MLMOT1.MOTS(2)
  798. ELSE IF (IMODEL.CMATEE.EQ.'CHPH_SOL')THEN
  799. NBROBL=2
  800. NBRFAC=0
  801. SEGINI,NOMID
  802. MLMOT1=IMODEL.IVAMOD(1)
  803. NOMID.LESOBL(1)=MLMOT1.MOTS(3)
  804. NOMID.LESOBL(2)=MLMOT1.MOTS(4)
  805. ENDIF
  806. C =================================================================
  807. ENDIF
  808. C
  809. IF (NOMID.NE.0) THEN
  810. if (ifomod.eq.6) then
  811. nbrfa0 = nbrfac
  812. NBRFAC = NBROBL + (nbrfa0*2)
  813. segadj nomid
  814. do imo = 1,nbrobl
  815. lesfac(nbrfa0 + imo)(2:4) = lesobl(imo)(1:3)
  816. lesfac(nbrfa0 + imo)(1:1) = 'I'
  817. enddo
  818. do imo = 1,nbrfa0
  819. lesfac(nbrfa0+nbrobl+imo)(2:4) = lesfac(imo)(1:3)
  820. lesfac(nbrfa0+nbrobl+imo)(1:1) = 'I'
  821. enddo
  822. endif
  823. ENDIF
  824. C
  825. IF (NOMID.NE.0) SEGACT,NOMID*NOMOD
  826. IPNOMC=NOMID
  827. END
  828.  
  829.  
  830.  
  831.  

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