Télécharger idcont.eso

Retour à la liste

Numérotation des lignes :

idcont
  1. C IDCONT SOURCE OF166741 26/02/23 21:15:07 12480
  2.  
  3. C=======================================================================
  4. C= RECHERCHE DES NOMS DE COMPOSANTES DE CONTRAINTES =
  5. C= ------------------------------------------------ =
  6. C= =
  7. C= Entrees : =
  8. C= IPMODL pointeur ACTIF sur objet IMODEL =
  9. C= IFOU valeur de IFOUR de CCOPTIO =
  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 IDCONT (IPMODL,IFOU,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. POINTEUR nomid1.nomid
  32. C
  33. NBROBL = 0
  34. NBRFAC = 0
  35. C
  36. IMODEL=IPMODL
  37. NOMID =IMODEL.LNOMID(4)
  38. C
  39. C Ne pas recreer le NOMID si deja present
  40. IF (NOMID.NE.0) THEN
  41. NBROBL=LESOBL(/2)
  42. NBRFAC=LESFAC(/2)
  43. IPNOMC=NOMID
  44. RETURN
  45. ENDIF
  46. C
  47. MELE=IMODEL.NEFMOD
  48. MFR =NUMMFR(MELE)
  49. MFR2=NUMFOR(IMODEL)
  50. *
  51. * MACRO ELEMENT
  52. *
  53. IF (MFR.EQ.61)THEN
  54. IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2) THEN
  55. NBROBL=5
  56. SEGINI NOMID
  57. LESOBL(1)='SMN1'
  58. LESOBL(2)='MOM1'
  59. LESOBL(3)='SMSN'
  60. LESOBL(4)='SMN2'
  61. LESOBL(5)='MOM2'
  62. ENDIF
  63. C =================================================================
  64. C FORMULATION MECANIQUE/LIAISON/NAVIER_STOKES
  65. C =================================================================
  66. ELSE IF (MFR2.EQ.2.OR.MFR2.EQ.24.OR.MFR2.EQ.52) THEN
  67. C
  68. NMAT=MATMOD(/2)
  69. CALL PLACE(MATMOD,NMAT,IIMPE,'IMPEDANCE')
  70. IF (IIMPE.NE.0) THEN
  71. C
  72. C Recuperation du NOMID des composantes primales
  73. NOMID1=IMODEL.LNOMID(1)
  74. nbrobl=NOMID1.LESOBL(/2)
  75. nbrfac=NOMID1.LESFAC(/2)
  76. segini,NOMID
  77. do io = 1,nbrobl
  78. LESOBL(io)='S'//NOMID1.LESOBL(io)(1:3)
  79. enddo
  80. do io = 1,nbrfac
  81. LESFAC(io)='S'//NOMID1.LESFAC(io)(1:3)
  82. enddo
  83.  
  84. IPNOMC=NOMID
  85. RETURN
  86.  
  87. ENDIF
  88. C
  89. C Elements MASSIFS (standard,incompressibles,XFEM,Navier_Stokes,HHO)
  90. C ================
  91. IF (MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.63.OR.MFR.EQ.52.OR.
  92. & MFR.EQ.HHO_MFR_ELEMENT) THEN
  93. IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  94. NBROBL=4
  95. SEGINI,NOMID
  96. LESOBL(1)='SMXX'
  97. LESOBL(2)='SMYY'
  98. LESOBL(3)='SMZZ'
  99. LESOBL(4)='SMXY'
  100. ELSE IF (IFOUR.EQ.0) THEN
  101. NBROBL=4
  102. SEGINI,NOMID
  103. LESOBL(1)='SMRR'
  104. LESOBL(2)='SMZZ'
  105. LESOBL(3)='SMTT'
  106. LESOBL(4)='SMRZ'
  107. ELSE IF (IFOUR.EQ.1) THEN
  108. NBROBL=6
  109. SEGINI,NOMID
  110. LESOBL(1)='SMRR'
  111. LESOBL(2)='SMZZ'
  112. LESOBL(3)='SMTT'
  113. LESOBL(4)='SMRZ'
  114. LESOBL(5)='SMRT'
  115. LESOBL(6)='SMZT'
  116. ELSE IF (IFOUR.EQ.2) THEN
  117. NBROBL=6
  118. SEGINI,NOMID
  119. LESOBL(1)='SMXX'
  120. LESOBL(2)='SMYY'
  121. LESOBL(3)='SMZZ'
  122. LESOBL(4)='SMXY'
  123. LESOBL(5)='SMXZ'
  124. LESOBL(6)='SMYZ'
  125. ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15.AND.MFR.EQ.1) THEN
  126. NBROBL=3
  127. SEGINI,NOMID
  128. IF (IFOUR.LE.11) THEN
  129. LESOBL(1)='SMXX'
  130. LESOBL(2)='SMYY'
  131. LESOBL(3)='SMZZ'
  132. ELSE IF (IFOUR.GE.12.AND.IFOUR.LE.14) THEN
  133. LESOBL(1)='SMRR'
  134. LESOBL(2)='SMZZ'
  135. LESOBL(3)='SMTT'
  136. ELSE IF (IFOUR.EQ.15) THEN
  137. LESOBL(1)='SMRR'
  138. C Voir TC pour LESOBL(2)='SMFF' ou 'SMPP'
  139. LESOBL(2)='SMZZ'
  140. LESOBL(3)='SMTT'
  141. ENDIF
  142. ENDIF
  143. C
  144. C Elements COQUES
  145. C ===============
  146. ELSE IF (MFR.EQ.3.OR.MFR.EQ.39) THEN
  147. NPINT=INFMOD(1)
  148. IF (NPINT.EQ.0) THEN
  149. IF (IFOUR.EQ.2.OR.IFOUR.EQ.1) THEN
  150. NBROBL=6
  151. SEGINI,NOMID
  152. LESOBL(1)='N11 '
  153. LESOBL(2)='N22 '
  154. LESOBL(3)='N12 '
  155. LESOBL(4)='M11 '
  156. LESOBL(5)='M22 '
  157. LESOBL(6)='M12 '
  158. ELSE IF (IFOUR.EQ.0) THEN
  159. NBROBL=4
  160. SEGINI,NOMID
  161. LESOBL(1)='N11 '
  162. LESOBL(2)='N22 '
  163. LESOBL(3)='M11 '
  164. LESOBL(4)='M22 '
  165. ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN
  166. NBROBL=4
  167. SEGINI,NOMID
  168. LESOBL(1)='N11 '
  169. LESOBL(2)='NZZ '
  170. LESOBL(3)='M11 '
  171. LESOBL(4)='MZZ '
  172. ENDIF
  173. ELSE
  174. IF (MFR.EQ.3.AND.IFOUR.EQ.2) THEN
  175. NBROBL=4
  176. SEGINI,NOMID
  177. LESOBL(1)='SMSS'
  178. LESOBL(2)='SMTT'
  179. LESOBL(3)='SMNN'
  180. LESOBL(4)='SMST'
  181. ENDIF
  182. ENDIF
  183. C
  184. C Elements COQUE EPAISSE
  185. C ======================
  186. ELSE IF (MFR.EQ.5) THEN
  187. NBROBL=5
  188. SEGINI,NOMID
  189. LESOBL(1)='SMSS'
  190. LESOBL(2)='SMTT'
  191. LESOBL(3)='SMST'
  192. LESOBL(4)='SMSN'
  193. LESOBL(5)='SMTN'
  194. C
  195. C Element de COQUE en CISAILLEMENT TRANSVERSE (tridimensionnel)
  196. C ===========================================
  197. ELSE IF (MFR.EQ.9) THEN
  198. NPINT=INFMOD(1)
  199. IF (NPINT.EQ.0) THEN
  200. IF (IFOUR.EQ.2) THEN
  201. NBROBL=8
  202. SEGINI,NOMID
  203. LESOBL(1)='N11 '
  204. LESOBL(2)='N22 '
  205. LESOBL(3)='N12 '
  206. LESOBL(4)='M11 '
  207. LESOBL(5)='M22 '
  208. LESOBL(6)='M12 '
  209. LESOBL(7)='V1 '
  210. LESOBL(8)='V2 '
  211. ENDIF
  212. ENDIF
  213. C
  214. C Elements POUTRES ET TUYAUX
  215. C ==========================
  216. ELSE IF (MFR.EQ.7.OR.MFR.EQ.13) THEN
  217. IF (IFOUR.EQ.2) THEN
  218. NBROBL=6
  219. SEGINI,NOMID
  220. LESOBL(1)='EFFX'
  221. LESOBL(2)='EFFY'
  222. LESOBL(3)='EFFZ'
  223. LESOBL(4)='MOMX'
  224. LESOBL(5)='MOMY'
  225. LESOBL(6)='MOMZ'
  226. ELSE IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  227. NBROBL=3
  228. SEGINI,NOMID
  229. LESOBL(1)='EFFX'
  230. LESOBL(2)='EFFY'
  231. LESOBL(3)='MOMZ'
  232. ENDIF
  233. C
  234. C Element JOINT JOI1 ET LIA2
  235. C =========================
  236. ELSE IF (MFR.EQ.51.OR.MFR.EQ.75) THEN
  237. IF (IFOUR.EQ.2) THEN
  238. NBROBL=6
  239. SEGINI,NOMID
  240. LESOBL(1)='EFFX'
  241. LESOBL(2)='EFFY'
  242. LESOBL(3)='EFFZ'
  243. LESOBL(4)='MOMX'
  244. LESOBL(5)='MOMY'
  245. LESOBL(6)='MOMZ'
  246. ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  247. NBROBL=3
  248. SEGINI,NOMID
  249. LESOBL(1)='EFFX'
  250. LESOBL(2)='EFFY'
  251. LESOBL(3)='MOMZ'
  252. ENDIF
  253. C
  254. C Element JOINT JOI2
  255. C =================
  256. ELSE IF (MFR.EQ.35) THEN
  257. IF (IFOUR.EQ.2) THEN
  258. NBROBL=3
  259. SEGINI,NOMID
  260. LESOBL(1)='SMS1'
  261. LESOBL(2)='SMS2'
  262. LESOBL(3)='SMN '
  263. ELSE IF ((IFOUR.EQ.-3).OR.(IFOUR.EQ.-2).OR.(IFOUR.EQ.-1).OR.
  264. . (IFOUR.EQ.0)) THEN
  265. NBROBL=2
  266. SEGINI,NOMID
  267. LESOBL(1)='SMSN'
  268. LESOBL(2)='SMN '
  269. ENDIF
  270. C
  271. C Element BARRE EXCENTREE
  272. C =======================
  273. ELSE IF (MFR.EQ.49) THEN
  274. NBROBL=1
  275. SEGINI,NOMID
  276. LESOBL(1)='EFFX'
  277. C
  278. C Element LINESPRING
  279. C ==================
  280. ELSE IF (MFR.EQ.15) THEN
  281. IF (IFOUR.EQ.2) THEN
  282. NBROBL=6
  283. SEGINI,NOMID
  284. LESOBL(1)='NZZ '
  285. LESOBL(2)='NXZ '
  286. LESOBL(3)='NYZ '
  287. LESOBL(4)='MXX '
  288. LESOBL(5)='MZZ '
  289. LESOBL(6)='KI '
  290. ENDIF
  291. C
  292. C Element de MEMBRANE
  293. C ===================
  294. ELSE IF (MFR.EQ.25) THEN
  295. NBROBL=3
  296. SEGINI,NOMID
  297. LESOBL(1)='SMSS'
  298. LESOBL(2)='SMTT'
  299. LESOBL(3)='SMST'
  300. C
  301. C Element UNIAXIALE
  302. C =================
  303. ELSE IF (MFR.EQ.27) THEN
  304. NBROBL=1
  305. MFR2 = infele(13)
  306. IF (MFR2.EQ.26) THEN
  307. NBRFAC=1
  308. ELSE IF (MFR2.EQ.28) THEN
  309. NBROBL=2
  310. ENDIF
  311. SEGINI,NOMID
  312. LESOBL(1)='EFFX'
  313. IF (MFR2.EQ.26) THEN
  314. LESFAC(1) = 'FMOD'
  315. ELSE IF (MFR2.EQ.28) THEN
  316. LESOBL(2) = 'FMOD'
  317. ENDIF
  318. C
  319. C Element TUYAU FISSURE
  320. C =====================
  321. ELSE IF (MFR.EQ.17) THEN
  322. IF (IFOUR.EQ.2) THEN
  323. NBROBL=8
  324. SEGINI,NOMID
  325. LESOBL(1)='EFFX'
  326. LESOBL(2)='EFFY'
  327. LESOBL(3)='EFFZ'
  328. LESOBL(4)='MOMX'
  329. LESOBL(5)='MOMY'
  330. LESOBL(6)='MOMZ'
  331. LESOBL(7)='KI '
  332. LESOBL(8)='AIRE'
  333. ENDIF
  334. C
  335. C Element SECTION/FIBRE
  336. C =====================
  337. ELSE IF (MFR.EQ.47) THEN
  338. IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN
  339. NBROBL=2
  340. SEGINI,NOMID
  341. LESOBL(1)='SMXX'
  342. LESOBL(2)='SMXY'
  343. ELSE IF (IFOUR.EQ.2) THEN
  344. NBROBL=3
  345. SEGINI,NOMID
  346. LESOBL(1)='SMXX'
  347. LESOBL(2)='SMXY'
  348. LESOBL(3)='SMXZ'
  349. ENDIF
  350. C
  351. C Element coaxial COS2
  352. C ====================
  353. ELSE IF ( MFR.EQ.78) THEN
  354. NBROBL=3
  355. SEGINI,NOMID
  356. LESOBL(1)='STRT'
  357. LESOBL(2)='STRN'
  358. LESOBL(3)='STRM'
  359. C
  360. C Element JOINT CISAILLEMENT
  361. C =========================
  362. ELSE IF (MFR.EQ.53) THEN
  363. IF ((IFOUR.EQ.-3).OR.(IFOUR.EQ.-2).OR.(IFOUR.EQ.-1)) THEN
  364. NBROBL=2
  365. SEGINI,NOMID
  366. LESOBL(1)='SMS1'
  367. LESOBL(2)='SMS2'
  368. ENDIF
  369. C
  370. C Elements JOINT GENERALISE
  371. C =========================
  372. ELSE IF (MFR.EQ.55) THEN
  373. IF ((IFOUR.EQ.-3).OR.(IFOUR.EQ.-2).OR.(IFOUR.EQ.-1)) THEN
  374. NBROBL=4
  375. SEGINI,NOMID
  376. LESOBL(1)='SMSN'
  377. LESOBL(2)='SMN '
  378. LESOBL(3)='SETT'
  379. LESOBL(4)='SEZZ'
  380. ELSE IF (IFOUR.EQ.2) THEN
  381. NBROBL=6
  382. SEGINI,NOMID
  383. LESOBL(1)='SMS1'
  384. LESOBL(2)='SMS2'
  385. LESOBL(3)='SMN '
  386. LESOBL(4)='SETT'
  387. LESOBL(5)='SEUU'
  388. LESOBL(6)='SETU'
  389. ENDIF
  390. C
  391. C Elements ZONE COHESIVE
  392. C ==========================
  393. ELSE IF (MFR.EQ.77) THEN
  394. IF (IFOUR.EQ.2) THEN
  395. NBROBL=3
  396. SEGINI,NOMID
  397. LESOBL(1)='SMS1'
  398. LESOBL(2)='SMS2'
  399. LESOBL(3)='SMN '
  400. ELSE IF ((IFOUR.EQ.-3).OR.(IFOUR.EQ.-2).OR.(IFOUR.EQ.-1).OR.
  401. & (IFOUR.EQ.0)) THEN
  402. NBROBL=2
  403. SEGINI,NOMID
  404. LESOBL(1)='SMSN'
  405. LESOBL(2)='SMN '
  406. ENDIF
  407. ENDIF
  408. C =================================================================
  409. C FORMULATION THERMIQUE
  410. C =================================================================
  411. ELSE IF (MFR2.EQ.29) THEN
  412. IF (IFOUR.EQ.2) THEN
  413. NBROBL=3
  414. SEGINI,NOMID
  415. LESOBL(1)='FLUX'
  416. LESOBL(2)='FLUY'
  417. LESOBL(3)='FLUZ'
  418. ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN
  419. NBROBL=2
  420. SEGINI,NOMID
  421. LESOBL(1)='FLUX'
  422. LESOBL(2)='FLUY'
  423. ELSE IF (IFOUR.EQ.1.OR.IFOUR.EQ.0) THEN
  424. NBROBL=2
  425. SEGINI,NOMID
  426. LESOBL(1)='FLUX'
  427. LESOBL(2)='FLUY'
  428. ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15) THEN
  429. NBROBL=1
  430. SEGINI,NOMID
  431. LESOBL(1)='FLUX'
  432. ENDIF
  433. C =================================================================
  434. C FORMULATION POREUX
  435. C =================================================================
  436. ELSE IF (MFR2.EQ.33) THEN
  437. C
  438. C Elements POREUX
  439. C ================
  440. IF (MFR.EQ.33) THEN
  441. IF (MELE.GE.79.AND.MELE.LE.83) THEN
  442. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  443. NBROBL=5
  444. SEGINI,NOMID
  445. LESOBL(1)='SMXX'
  446. LESOBL(2)='SMYY'
  447. LESOBL(3)='SMZZ'
  448. LESOBL(4)='SMXY'
  449. LESOBL(5)='MSR0'
  450. ELSE IF (IFOUR.EQ.0) THEN
  451. NBROBL=5
  452. SEGINI,NOMID
  453. LESOBL(1)='SMRR'
  454. LESOBL(2)='SMZZ'
  455. LESOBL(3)='SMTT'
  456. LESOBL(4)='SMRZ'
  457. LESOBL(5)='MSR0'
  458. ELSE IF (IFOUR.EQ.1) THEN
  459. NBROBL=7
  460. SEGINI,NOMID
  461. LESOBL(1)='SMRR'
  462. LESOBL(2)='SMZZ'
  463. LESOBL(3)='SMTT'
  464. LESOBL(4)='SMRZ'
  465. LESOBL(5)='SMRT'
  466. LESOBL(6)='SMZT'
  467. LESOBL(7)='MSR0'
  468. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN
  469. NBROBL=7
  470. SEGINI,NOMID
  471. LESOBL(1)='SMXX'
  472. LESOBL(2)='SMYY'
  473. LESOBL(3)='SMZZ'
  474. LESOBL(4)='SMXY'
  475. LESOBL(5)='SMXZ'
  476. LESOBL(6)='SMYZ'
  477. LESOBL(7)='MSR0'
  478. ENDIF
  479. ELSE IF (MELE.GE.108.AND.MELE.LE.110) THEN
  480. IF (IFOUR.EQ.2) THEN
  481. NBROBL=4
  482. SEGINI,NOMID
  483. LESOBL(1)='SMS1'
  484. LESOBL(2)='SMS2'
  485. LESOBL(3)='SMN '
  486. LESOBL(4)='MSR0'
  487. ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN
  488. NBROBL=3
  489. SEGINI,NOMID
  490. LESOBL(1)='SMSN'
  491. LESOBL(2)='SMN '
  492. LESOBL(3)='MSR0'
  493. ENDIF
  494. ENDIF
  495. C
  496. C Elements POREUX Type Q
  497. C ======================
  498. ELSE IF (MFR.EQ.57) THEN
  499. IF (MELE.GE.173.AND.MELE.LE.177) THEN
  500. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  501. NBROBL=6
  502. SEGINI,NOMID
  503. LESOBL(1)='SMXX'
  504. LESOBL(2)='SMYY'
  505. LESOBL(3)='SMZZ'
  506. LESOBL(4)='SMXY'
  507. LESOBL(5)='MSR0'
  508. LESOBL(6)='MSRQ'
  509. ELSE IF (IFOUR.EQ.0) THEN
  510. NBROBL=6
  511. SEGINI,NOMID
  512. LESOBL(1)='SMRR'
  513. LESOBL(2)='SMZZ'
  514. LESOBL(3)='SMTT'
  515. LESOBL(4)='SMRZ'
  516. LESOBL(5)='MSR0'
  517. LESOBL(6)='MSRQ'
  518. ELSE IF (IFOUR.EQ.1) THEN
  519. NBROBL=8
  520. SEGINI,NOMID
  521. LESOBL(1)='SMRR'
  522. LESOBL(2)='SMZZ'
  523. LESOBL(3)='SMTT'
  524. LESOBL(4)='SMRZ'
  525. LESOBL(5)='SMRT'
  526. LESOBL(6)='SMZT'
  527. LESOBL(7)='MSR0'
  528. LESOBL(8)='MSRQ'
  529. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN
  530. NBROBL=8
  531. SEGINI,NOMID
  532. LESOBL(1)='SMXX'
  533. LESOBL(2)='SMYY'
  534. LESOBL(3)='SMZZ'
  535. LESOBL(4)='SMXY'
  536. LESOBL(5)='SMXZ'
  537. LESOBL(6)='SMYZ'
  538. LESOBL(7)='MSR0'
  539. LESOBL(8)='MSRQ'
  540. ENDIF
  541. ELSE IF (MELE.GE.185.AND.MELE.LE.187) THEN
  542. IF (IFOUR.EQ.2) THEN
  543. NBROBL=5
  544. SEGINI,NOMID
  545. LESOBL(1)='SMS1'
  546. LESOBL(2)='SMS2'
  547. LESOBL(3)='SMN '
  548. LESOBL(4)='MSR0'
  549. LESOBL(5)='MSRQ'
  550. ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN
  551. NBROBL=4
  552. SEGINI,NOMID
  553. LESOBL(1)='SMSN'
  554. LESOBL(2)='SMN '
  555. LESOBL(3)='MSR0'
  556. LESOBL(4)='MSRQ'
  557. ENDIF
  558. ENDIF
  559. C
  560. C Elements POREUX Type R
  561. C ======================
  562. ELSE IF (MFR.EQ.59) THEN
  563. IF (MELE.GE.178.AND.MELE.LE.182) THEN
  564. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN
  565. NBROBL=7
  566. SEGINI,NOMID
  567. LESOBL(1)='SMXX'
  568. LESOBL(2)='SMYY'
  569. LESOBL(3)='SMZZ'
  570. LESOBL(4)='SMXY'
  571. LESOBL(5)='MSR0'
  572. LESOBL(6)='MSRQ'
  573. LESOBL(7)='TREN'
  574. ELSE IF (IFOUR.EQ.0) THEN
  575. NBROBL=7
  576. SEGINI,NOMID
  577. LESOBL(1)='SMRR'
  578. LESOBL(2)='SMZZ'
  579. LESOBL(3)='SMTT'
  580. LESOBL(4)='SMRZ'
  581. LESOBL(5)='MSR0'
  582. LESOBL(6)='MSRQ'
  583. LESOBL(7)='TREN'
  584. ELSE IF (IFOUR.EQ.1) THEN
  585. NBROBL=9
  586. SEGINI,NOMID
  587. LESOBL(1)='SMRR'
  588. LESOBL(2)='SMZZ'
  589. LESOBL(3)='SMTT'
  590. LESOBL(4)='SMRZ'
  591. LESOBL(5)='SMRT'
  592. LESOBL(6)='SMZT'
  593. LESOBL(7)='MSR0'
  594. LESOBL(8)='MSRQ'
  595. LESOBL(9)='TREN'
  596. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN
  597. NBROBL=9
  598. SEGINI,NOMID
  599. LESOBL(1)='SMXX'
  600. LESOBL(2)='SMYY'
  601. LESOBL(3)='SMZZ'
  602. LESOBL(4)='SMXY'
  603. LESOBL(5)='SMXZ'
  604. LESOBL(6)='SMYZ'
  605. LESOBL(7)='MSR0'
  606. LESOBL(8)='MSRQ'
  607. LESOBL(9)='TREN'
  608. ENDIF
  609. ELSE IF (MELE.GE.188.AND.MELE.LE.190) THEN
  610. IF (IFOUR.EQ.2) THEN
  611. NBROBL=6
  612. SEGINI,NOMID
  613. LESOBL(1)='SMS1'
  614. LESOBL(2)='SMS2'
  615. LESOBL(3)='SMN '
  616. LESOBL(4)='MSR0'
  617. LESOBL(5)='MSRQ'
  618. LESOBL(6)='TREN'
  619. ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN
  620. NBROBL=5
  621. SEGINI,NOMID
  622. LESOBL(1)='SMSN'
  623. LESOBL(2)='SMN '
  624. LESOBL(3)='MSR0'
  625. LESOBL(4)='MSRQ'
  626. LESOBL(5)='TREN'
  627. ENDIF
  628. ENDIF
  629. ENDIF
  630. C =================================================================
  631. C FORMULATION ELECTROSTATIQUE
  632. C =================================================================
  633. ELSE IF (MFR2.EQ.71) THEN
  634. IF (IFOUR.EQ.2) THEN
  635. NBROBL=3
  636. SEGINI,NOMID
  637. LESOBL(1)='DELX '
  638. LESOBL(2)='DELY '
  639. LESOBL(3)='DELZ '
  640. ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN
  641. NBROBL=2
  642. SEGINI,NOMID
  643. LESOBL(1)='DELX '
  644. LESOBL(2)='DELY '
  645. ELSE IF (IFOUR.EQ.1.OR.IFOUR.EQ.0) THEN
  646. NBROBL=2
  647. SEGINI,NOMID
  648. LESOBL(1)='DELR '
  649. LESOBL(2)='DELZ '
  650. ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15) THEN
  651. NBROBL=1
  652. SEGINI,NOMID
  653. IF (IFOUR.LE.11) THEN
  654. LESOBL(1)='DELX '
  655. ELSE
  656. LESOBL(1)='DELR '
  657. ENDIF
  658. ENDIF
  659. C =================================================================
  660. C FORMULATION DIFFUSION
  661. C =================================================================
  662. ELSE IF (MFR2.EQ.73) THEN
  663. C*DEB = Merci de conserver ces lignes ! (Developpements futurs)
  664. C*X C ======
  665. C*X C 22.0 - BARRE
  666. C*X C ======
  667. C*X IF(MELE.EQ.46) THEN
  668. C*X NBROBL=1
  669. C*X SEGINI,NOMID
  670. C*X LESOBL(1)='FS '
  671. C*X ELSE
  672. C*X IF (IFOUR.EQ.2) THEN
  673. C*X NBROBL=3
  674. C*X SEGINI,NOMID
  675. C*X LESOBL(1)='FX '
  676. C*X LESOBL(2)='FY '
  677. C*X LESOBL(3)='FZ '
  678. C*X ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN
  679. C*X NBROBL=2
  680. C*X SEGINI,NOMID
  681. C*X LESOBL(1)='FX '
  682. C*X LESOBL(2)='FY '
  683. C*X ELSE IF (IFOUR.EQ.1.OR.IFOUR.EQ.0) THEN
  684. C*X NBROBL=2
  685. C*X SEGINI,NOMID
  686. C*X LESOBL(1)='FR '
  687. C*X LESOBL(2)='FZ '
  688. C*X ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15) THEN
  689. C*X NBROBL=1
  690. C*X SEGINI,NOMID
  691. C*X IF (IFOUR.LE.11) THEN
  692. C*X LESOBL(1)='FX '
  693. C*X ELSE
  694. C*X LESOBL(1)='FR '
  695. C*X ENDIF
  696. C*X ENDIF
  697. C*X ENDIF
  698. C*X
  699. C*X C* Ajout du nom de l'INCOnnue (DDL) contenu dans TYMODE(1)
  700. C*X DO i = 1, NBROBL
  701. C*X LESOBL(i)(3:8) = imodel.TYMODE(1)(1:6)
  702. C*X ENDDO
  703. C*FIN = Merci de conserver ces lignes ! (Developpements futurs)
  704. C =================================================================
  705. C FORMULATION CHARGEMENT
  706. C =================================================================
  707. ELSE IF (MFR2.EQ.72) THEN
  708. NBROBL=1
  709. SEGINI,NOMID
  710. LESOBL(1)='PRES'
  711. C =================================================================
  712. ENDIF
  713. C
  714. IF (NOMID.NE.0) THEN
  715. IF (IFOMOD.EQ.6) THEN
  716. NBRFA0 = NBRFAC
  717. NBRFAC = NBROBL + NBRFA0
  718. IF (MFR2.EQ.28.OR.MFR2.EQ.26) NBRFAC = NBRFA0 + 1
  719. SEGADJ NOMID
  720. IF (MFR2.EQ.28.OR.MFR2.EQ.26) THEN
  721. LESFAC(NBRFA0 +1) = 'IFFX'
  722. ELSE
  723. DO IMO = 1,NBROBL
  724. LESFAC(NBRFA0 + IMO)(2:4) = LESOBL(IMO)(2:4)
  725. LESFAC(NBRFA0 + IMO)(1:1) = 'I'
  726. ENDDO
  727. ENDIF
  728. ENDIF
  729. ENDIF
  730. C
  731. IF (NOMID.NE.0) SEGACT,NOMID*NOMOD
  732. IPNOMC=NOMID
  733. END
  734.  
  735.  
  736.  

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