Télécharger idcara.eso

Retour à la liste

Numérotation des lignes :

idcara
  1. C IDCARA SOURCE OF166741 26/02/23 21:15:07 12480
  2. *--------------------------------------------------------------------*
  3. * RECHERCHE DES NOMS DE CARACTERISTIQUES *
  4. *--------------------------------------------------------------------*
  5. * *
  6. * ENTREES: *
  7. * *
  8. * IPMODE Pointeur sur un MMODEL.KMODEL *
  9. * MFR0 Numero de Formulation *
  10. * - Sert seulement si different de celui calcule avec IMODEL *
  11. * *
  12. * SORTIES: *
  13. * *
  14. * IPNOMC Pointeur sur les tables de noms de composantes *
  15. * obligatoires et facultatives *
  16. * NBROBL leur nombre ( =0 si pas trouve ) *
  17. * NBRFAC leur nombre ( =0 si pas trouve ) *
  18. * *
  19. * Remarque : Voir INOMID ou CCOPTIO pour signification IFOUR *
  20. *--------------------------------------------------------------------*
  21. C
  22. SUBROUTINE IDCARA(IPMODE,MFR0,IPNOMC,NBROBL,NBRFAC)
  23. C
  24. IMPLICIT INTEGER(I-N)
  25. IMPLICIT REAL*8(A-H,O-Z)
  26. C
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. C
  30. -INC SMMODEL
  31. C
  32. NBROBL = 0
  33. NBRFAC = 0
  34. NOMID = 0
  35. C
  36. IMODEL=IPMODE
  37. NMAT=IMODEL.MATMOD(/2)
  38. CALL PLACE(MATMOD,NMAT,IIMPE,'IMPEDANCE')
  39. IF (IIMPE.NE.0) RETURN
  40. C
  41. IMODEL=IPMODE
  42. MELE =IMODEL.NEFMOD
  43. MFR =NUMMFR(MELE)
  44. NOMID =IMODEL.LNOMID(7)
  45. C
  46. C Ne pas recreer le NOMID si deja present
  47. IF(NOMID.NE.0.AND.(MFR.EQ.MFR0))THEN
  48. SEGACT,NOMID
  49. NBROBL=LESOBL(/2)
  50. NBRFAC=LESFAC(/2)
  51. IPNOMC=NOMID
  52. RETURN
  53. ENDIF
  54. C
  55. MFR = MFR0
  56. MFR2=NUMFOR(IMODEL)
  57. MFR4=IMODEL.INFELE(13)
  58. *
  59. * ELEMENTS CIFL MACRO ELEMENT CISAILLEMENT FLEXION
  60. *
  61. IF (MELE.EQ.258)THEN
  62. IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2) THEN
  63. NBROBL=2
  64. SEGINI NOMID
  65. LESOBL(1)= 'SECT'
  66. LESOBL(2)= 'INRZ'
  67. ENDIF
  68. ENDIF
  69. C =================================================================
  70. C FORMULATION MECANIQUE
  71. C =================================================================
  72. IF (MFR2.EQ.2) THEN
  73. C
  74. C Cas particulier
  75. C ============================================
  76. IF (MFR.EQ.1.OR.MFR.EQ.75.OR.IFOUR.LT.-3.OR.IFOUR.GT.2) THEN
  77. C
  78. C ajout de la densite (rendement) vectorielle du constituant kich
  79. NBROBL=0
  80. NBRFAC=10
  81. SEGINI,NOMID
  82. LESFAC(1) = 'REND'
  83. LESFAC(2) = 'W1X '
  84. LESFAC(3) = 'W1Y '
  85. LESFAC(4) = 'W1Z '
  86. LESFAC(5) = 'W2X '
  87. LESFAC(6) = 'W2Y '
  88. LESFAC(7) = 'W2Z '
  89. LESFAC(8) = 'REN1'
  90. LESFAC(9) = 'REN2'
  91. LESFAC(10)= 'REN3'
  92. C
  93. C Elements COQUE MINCE CISAILLEMENT TRANSVERSE
  94. C ============================================
  95. ELSE IF (MFR.EQ.3.OR.MFR.EQ.9) THEN
  96. NBROBL=1
  97. NBRFAC=2
  98. SEGINI NOMID
  99. LESOBL(1)='EPAI'
  100. LESFAC(1)='CALF'
  101. LESFAC(2)='EXCE'
  102. C
  103. C Elements COQUE EPAISSE
  104. C ======================
  105. ELSE IF (MFR.EQ.5) THEN
  106. NBROBL=1
  107. NBRFAC=1
  108. SEGINI NOMID
  109. LESOBL(1)='EPAI'
  110. LESFAC(1)='EXCE'
  111. C
  112. C Elements POUTRE
  113. C ===============
  114. ELSE IF (MFR.EQ.7) THEN
  115. IF (IFOUR.EQ.2) THEN
  116. NBRFAC=10
  117. NBROBL=4
  118. SEGINI NOMID
  119. LESOBL(1)= 'TORS'
  120. LESOBL(2)= 'INRY'
  121. LESOBL(3)= 'INRZ'
  122. LESOBL(4)= 'SECT'
  123. LESFAC(1)= 'SECY'
  124. LESFAC(2)= 'SECZ'
  125. LESFAC(3)= 'DX '
  126. LESFAC(4)= 'DY '
  127. LESFAC(5)= 'DZ '
  128. LESFAC(6)= 'OMEG'
  129. LESFAC(7)= 'VECT'
  130. LESFAC(8)= 'VX '
  131. LESFAC(9)= 'VY '
  132. LESFAC(10)= 'VZ '
  133. ELSEIF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN
  134. NBRFAC=2
  135. NBROBL=2
  136. SEGINI NOMID
  137. LESOBL(1)= 'SECT'
  138. LESOBL(2)= 'INRZ'
  139. LESFAC(1)= 'SECY'
  140. LESFAC(2)= 'DY '
  141. ENDIF
  142. C
  143. C Elements LIAISON
  144. C ================
  145. ELSE IF (MFR.EQ.51) THEN
  146. NBROBL=9
  147. SEGINI NOMID
  148. LESOBL(1)='RLUX'
  149. LESOBL(2)='RLUY'
  150. LESOBL(3)='RLUZ'
  151. LESOBL(4)='RLRX'
  152. LESOBL(5)='RLRY'
  153. LESOBL(6)='RLRZ'
  154. LESOBL(7)='VX '
  155. LESOBL(8)='VY '
  156. LESOBL(9)='VZ '
  157. C
  158. C Elements BARRE EXCENTREE
  159. C ========================
  160. ELSE IF (MFR.EQ.49) THEN
  161. NBROBL=6
  162. SEGINI NOMID
  163. LESOBL(1)='SECT'
  164. LESOBL(2)='EXCZ'
  165. LESOBL(3)='EXCY'
  166. LESOBL(4)='VX '
  167. LESOBL(5)='VY '
  168. LESOBL(6)='VZ '
  169. C
  170. C Elements TUYAU
  171. C ==============
  172. ELSE IF (MFR.EQ.13) THEN
  173. IF (IFOUR.EQ.2) THEN
  174. NBROBL=2
  175. NBRFAC=13
  176. SEGINI NOMID
  177. LESOBL(1)='EPAI'
  178. LESOBL(2)='RAYO'
  179. LESFAC(1)='RACO'
  180. LESFAC(2)='PRES'
  181. LESFAC(3)='CISA'
  182. LESFAC(4)='CFFX'
  183. LESFAC(5)='CFMX'
  184. LESFAC(6)='CFMY'
  185. LESFAC(7)='CFMZ'
  186. LESFAC(8)='CFPR'
  187. LESFAC(9)= 'OMEG'
  188. LESFAC(10)='VECT'
  189. LESFAC(11)='VX '
  190. LESFAC(12)='VY '
  191. LESFAC(13)='VZ '
  192. ENDIF
  193. C
  194. C Elements TUYO
  195. C =============
  196. ELSE IF (MFR.EQ.39) THEN
  197. IF (IFOUR.EQ.2) THEN
  198. NBROBL=2
  199. NBRFAC=6
  200. SEGINI NOMID
  201. LESOBL(1)='EPAI'
  202. LESOBL(2)='RAYO'
  203. LESFAC(1)='RACO'
  204. LESFAC(2)='PRES'
  205. LESFAC(3)='VECT'
  206. LESFAC(4)='VX '
  207. LESFAC(5)='VY '
  208. LESFAC(6)='VZ '
  209. ENDIF
  210. C
  211. C Elements LINESPRING
  212. C ===================
  213. ELSE IF (MFR.EQ.15) THEN
  214. IF (IFOUR.EQ.2) THEN
  215. NBROBL=5
  216. SEGINI NOMID
  217. LESOBL(1)='EPAI'
  218. LESOBL(2)='FISS'
  219. LESOBL(3)='VX '
  220. LESOBL(4)='VY '
  221. LESOBL(5)='VZ '
  222. ENDIF
  223. C
  224. C Elements TUYAU FISSURE
  225. C ===========================
  226. ELSE IF (MFR.EQ.17) THEN
  227. IF (IFOUR.EQ.2) THEN
  228. NBROBL=9
  229. SEGINI NOMID
  230. LESOBL(1)='RAYO'
  231. LESOBL(2)='EPAI'
  232. LESOBL(3)='VX '
  233. LESOBL(4)='VY '
  234. LESOBL(5)='VZ '
  235. LESOBL(6)='VXF '
  236. LESOBL(7)='VYF '
  237. LESOBL(8)='VZF '
  238. LESOBL(9)='ANGL'
  239. ENDIF
  240. C
  241. C Elements BARRE/COS2
  242. C ===================
  243. ELSE IF (MFR.EQ.27.OR.MFR.EQ.78) THEN
  244. IF (MFR4.NE.26.AND.MFR4.NE.28) THEN
  245. NBROBL=1
  246. SEGINI NOMID
  247. LESOBL(1)='SECT'
  248. ENDIF
  249. C
  250. C Elements HOMOGENEISE
  251. C =====================
  252. ELSE IF (MFR.EQ.37) THEN
  253. IF (IFOUR.EQ.1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.2) THEN
  254. NBROBL=5
  255. SEGINI NOMID
  256. LESOBL(1)='SCEL'
  257. LESOBL(2)='SFLU'
  258. LESOBL(3)='EPS '
  259. LESOBL(4)='SECT'
  260. LESOBL(5)='INRZ'
  261. ELSE
  262. NBROBL=3
  263. NBRFAC=2
  264. SEGINI NOMID
  265. LESOBL(1)='SCEL'
  266. LESOBL(2)='SFLU'
  267. LESOBL(3)='EPS '
  268. LESFAC(1)='NOF1'
  269. LESFAC(2)='NOF2'
  270. ENDIF
  271. C
  272. C Elements SECTION
  273. C ================
  274. ELSE IF (MFR.EQ.47) THEN
  275. IF (IFOUR.EQ.2) THEN
  276. NBROBL=2
  277. SEGINI NOMID
  278. LESOBL(1)='ALPY'
  279. LESOBL(2)='ALPZ'
  280. ELSE
  281. NBROBL=1
  282. NBRFAC=0
  283. SEGINI NOMID
  284. LESOBL(1)='ALPY'
  285. ENDIF
  286. C
  287. C CARACTERISTIQUE SUPPLEMENTAIRE POUR LE SEGS
  288. IF (MELE.EQ.166) THEN
  289. NBROBL=NBROBL+1
  290. SEGADJ,NOMID
  291. LESOBL(NBROBL)='LARG'
  292. C CARACTERISTIQUE SUPPLEMENTAIRE POUR LE POJS
  293. ELSE IF (MELE.EQ.167) THEN
  294. NBROBL=NBROBL+1
  295. SEGADJ,NOMID
  296. LESOBL(NBROBL)='SECT'
  297. ENDIF
  298. C
  299. C Elements JOINTS GENERALISE
  300. C ==========================
  301. ELSE IF (MFR.EQ.55) THEN
  302. NBROBL=0
  303. NBRFAC=1
  304. SEGINI NOMID
  305. LESFAC(1)='EPAI'
  306. ENDIF
  307. C =================================================================
  308. C FORMULATION LIQUIDE/MECANIQUE+LIQUIDE
  309. C =================================================================
  310. ELSE IF ((MFR2.EQ.11) .OR. (MFR2.EQ.44)) THEN
  311. C
  312. C Elements LIQUIDE
  313. C ================
  314. IF (MFR.EQ.11.OR.MFR.EQ.19.OR.MFR.EQ.21) THEN
  315. IF (IFOUR.EQ.2) THEN
  316. NBROBL=0
  317. NBRFAC=3
  318. SEGINI NOMID
  319. LESFAC(1)='VX '
  320. LESFAC(2)='VY '
  321. LESFAC(3)='VZ '
  322. ELSE
  323. NBROBL=0
  324. NBRFAC=2
  325. SEGINI NOMID
  326. LESFAC(1)='VX '
  327. LESFAC(2)='VY '
  328. ENDIF
  329. C
  330. C Elements TUYAU ACOUSTIQUE PUR
  331. C =============================
  332. ELSE IF (MFR.EQ.41) THEN
  333. NBROBL=1
  334. NBRFAC=1
  335. SEGINI NOMID
  336. LESOBL(1)='RAYO'
  337.  
  338. C
  339. C Element de RACCORD LIQUIDE TUYAU
  340. C ================================
  341. ELSE IF (MFR.EQ.43) THEN
  342. NBROBL=1
  343. NBRFAC=5
  344. SEGINI NOMID
  345. LESOBL(1)='RAYO'
  346. LESFAC(1)='RACO'
  347. LESFAC(2)='VECT'
  348. LESFAC(3)='VX '
  349. LESFAC(4)='VY '
  350. LESFAC(5)='VZ '
  351. ENDIF
  352. C =================================================================
  353. C FORMULATION THERMIQUE
  354. C =================================================================
  355. ELSE IF (MFR2.EQ.29) THEN
  356. C
  357. C Elements TUYAU
  358. C ==============
  359. IF (MFR.EQ.79 .OR. MFR.EQ.27) then
  360. NBROBL=1
  361. SEGINI NOMID
  362. LESOBL(1)= 'SECT'
  363. C
  364. C Elements COQUE
  365. C ==============
  366. ELSE IF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
  367. NBROBL=1
  368. NBRFAC=1
  369. SEGINI NOMID
  370. LESOBL(1)='EPAI '
  371. LESFAC(1)='EXCE '
  372. C
  373. C Autres elements
  374. C ===============
  375. ELSE
  376. NBROBL=0
  377. SEGINI NOMID
  378. ENDIF
  379. C =================================================================
  380. C FORMULATION DIFFUSION
  381. C =================================================================
  382. ELSE IF (MFR2.EQ.73) THEN
  383. C
  384. C Elements TUYAU
  385. C ==============
  386. IF (MFR.EQ.79 .OR. MFR.EQ.27) then
  387. NBROBL=1
  388. SEGINI NOMID
  389. LESOBL(1)= 'SECT'
  390. C
  391. C Elements COQUE
  392. C ==============
  393. ELSE IF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
  394. NBROBL=1
  395. NBRFAC=1
  396. SEGINI NOMID
  397. LESOBL(1)='EPAI '
  398. LESFAC(1)='EXCE '
  399. C
  400. C Autres elements
  401. C ===============
  402. ELSE
  403. NBROBL=0
  404. SEGINI NOMID
  405. ENDIF
  406. C =================================================================
  407. ENDIF
  408. C
  409. IF (NOMID.NE.0) THEN
  410. IF (IFOMOD.EQ.6) THEN
  411. NBRFA0 = NBRFAC
  412. NBRFAC = NBROBL + (NBRFA0*2)
  413. SEGADJ NOMID
  414. DO IMO = 1,NBROBL
  415. LESFAC(NBRFA0 + IMO)(2:4) = LESOBL(IMO)(1:3)
  416. LESFAC(NBRFA0 + IMO)(1:1) = 'I'
  417. ENDDO
  418. DO IMO = 1,NBRFA0
  419. LESFAC(NBRFA0+NBROBL+IMO)(2:4) = LESFAC(IMO)(1:3)
  420. LESFAC(NBRFA0+NBROBL+IMO)(1:1) = 'I'
  421. ENDDO
  422. ENDIF
  423. ENDIF
  424. C
  425. IF (NOMID.NE.0) SEGACT,NOMID*NOMOD
  426. IPNOMC=NOMID
  427. C
  428. C RETURN
  429. END
  430.  
  431.  
  432.  

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