Télécharger idcont.eso

Retour à la liste

Numérotation des lignes :

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

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