Télécharger nomate.eso

Retour à la liste

Numérotation des lignes :

nomate
  1. C NOMATE SOURCE JK148537 24/10/29 21:15:08 12056
  2.  
  3. SUBROUTINE NOMATE(FORMOD,NFOR,MATMOD,NMAT,CMATE,IMATE,INATU)
  4.  
  5. * le dernier numero de materiau utilise est le : 189
  6.  
  7. *--------------------------------------------------------------------*
  8. * *
  9. * *
  10. * *
  11. * DETERMINER UN NUMERO POUR UN MODELE DE MATERIAU *
  12. * _______________________________________________ *
  13. * *
  14. * ENTREES *
  15. * *
  16. * FORMOD Liste des formulations *
  17. * NFOR Nombre de formulations *
  18. * MATMOD Liste des mat{riaux *
  19. * NMAT Nombre de mat{riaux *
  20. * *
  21. * SORTIES *
  22. * *
  23. * CMATE Nom du materiau (isotrope, orthotrope....) *
  24. * IMATE Num{ro du mat{riau *
  25. * INATU Num{ro de nature *
  26. * *
  27. * NOMS DE MATERIAUX POSSIBLES *
  28. * *
  29. *--------------------------------------------------------------------*
  30. * 1/ 'THERMIQUE' *
  31. * *
  32. * 'ISOTROPE' *
  33. * 'ORTHOTROPE' *
  34. * 'ANISOTROPE' *
  35. * 'CONDUCTION' *
  36. * 'CONVECTION' *
  37. * 'ADVECTION' non lineaire de conduction *
  38. * 'PHASE' non lineaire de conduction *
  39. * 'DISSIPATION' *
  40. *--------------------------------------------------------------------*
  41. * 2/ 'MECANIQUE' OU 6/ 'POREUX' *
  42. * *
  43. * ELASTIQUE *
  44. * 'ISOTROPE' *
  45. * 'ORTHOTROPE' *
  46. * 'ANISOTROPE' *
  47. * 'POREUX' *
  48. * 'HOMOGENEISE' *
  49. * 'UNIDIRECTIONNEL' *
  50. * 'SECTION' *
  51. * 'ARMATURE' *
  52. * 'MODAL' *
  53. * 'STATIQUE' *
  54. * 'ZONE_COHESIVE' *
  55. * *
  56. * PLASTIQUE *
  57. * 'PARFAIT' INATU = 1 *
  58. * 'LINESPRING' INATU = 2 *
  59. * 'DRUCKER-SIMPLE' INATU = 3 *
  60. * 'CINEMATIQUE' INATU = 4 *
  61. * 'ISOTROPE' INATU = 5 *
  62. * 'CHABOCHE1' INATU = 7 *
  63. * 'BETON' INATU = 9 *
  64. * 'CHABOCHE2' INATU = 12 *
  65. * 'TUYAU-FISSURE' INATU = 14 *
  66. * 'DRUCKER-PRAGER' INATU = 15 *
  67. * 'GAUVAIN' INATU = 16 *
  68. * 'ENDOMMAGEABLE' INATU = 26 *
  69. * 'UBIQUITOUS' INATU = 28 *
  70. * 'GLOBAL' INATU = 32 *
  71. * 'CAM-CLAY' INATU = 33 *
  72. * 'COULOMB' INATU = 34 *
  73. * 'JOINT_DILATANT' INATU = 35 *
  74. * 'BETON_AXI' INATU = 36 *
  75. * 'GURSON' INATU = 38 *
  76. * 'BETON_UNI' INATU = 39 *
  77. * 'ACIER_UNI' INATU = 40 *
  78. * 'FRAGILE_UNI' INATU = 78 *
  79. * 'BETON_BAEL' INATU = 79 *
  80. * 'PARFAIT_UNI' INATU = 80 *
  81. * 'STRUT_UNI' INATU = 83 *
  82. * 'CINEMATIQUE_ANCRAGE' INATU = 92 *
  83. * 'ACIER_ANCRAGE' INATU = 93 *
  84. * 'SECTION' INATU = 41 *
  85. * 'OTTOSEN' INATU = 42 *
  86. * 'OTTOVARI' INATU = 148 *
  87. * 'MAZARS_FIB' INATU = 46 *
  88. * 'AMADEI' INATU = 47 *
  89. * 'HUJEUX' INATU = 48 *
  90. * 'STEINBERG' INATU = 49 *
  91. * 'ZERILLI' INATU = 50 *
  92. * 'PRESTON' INATU = 52 *
  93. * 'BETOCYCL' INATU = 54 *
  94. * 'ROTATING_CRACK' INATU = 55 *
  95. * 'JOINT_SOFT' INATU = 56 *
  96. * 'ANCRAGE_ELIGEHAUSEN' INATU = 91 *
  97. * 'BILI_MOMY' INATU = 57 *
  98. * 'BILI_EFFZ' INATU = 58 *
  99. * 'TAKEMO_MOMY' INATU = 59 *
  100. * 'TAKEMO_EFFZ' INATU = 60 *
  101. * 'BETON_INSA' INATU = 66 *
  102. * 'ECROUIS_DECOU' INATU = 67 *
  103. * 'PARFAIT_DECOU' INATU = 68 *
  104. * 'ALONSO' INATU = 69 *
  105. * 'BA1D' INATU = 147 *
  106. * 'PAKZAD' INATU = 71 *
  107. * 'INFILL_UNI' INATU = 72 *
  108. * 'CISAIL_NL' INATU = 73 *
  109. * 'HINT' INATU = 89 *
  110. * 'BETON_URGC' INATU = 99 *
  111. * 'UNILATERAL' (Fibre) INATU = 104 *
  112. * 'INCO' INATU = 129 *
  113. * 'INTIMP' INATU = 145 *
  114. * 'RICJOI' INATU = 146 *
  115. * 'OUGLOVA' INATU = 175 *
  116. * 'MRS_LADE' INATU = 111 *
  117. * 'J2' INATU = 112 *
  118. * 'RH_COULOMB' INATU = 113 *
  119. * 'VMT_FEFP' INATU = 114 *
  120. * 'RHMC_FEFP' INATU = 115 *
  121. * 'POWDER_FEFP' INATU = 116 *
  122. * 'POWDERCAP_FEFP' INATU = 117 *
  123. * 'JOINT_COAT' INATU = 119 *
  124. * 'CONCRETE_UNI' INATU = 123 *
  125. * 'MUR_SHEAR' INATU = 126 *
  126. * 'DRUCKER_PRAGER2' INATU = 140 *
  127. * 'BILIN_EFFX' INATU = 150 *
  128. * 'ISS_GRANGE' INATU = 151 *
  129. * 'RUP_THER' INATU = 152 *
  130. * 'RICBET_UNI' INATU = 160 *
  131. * 'LIAISON_ACBE' INATU = 171 *
  132. * 'DP_SOL' INATU = 172 *
  133. * 'CONCYC' INATU = 173 *
  134. * 'IWPR3D_SOL' INATU = 176 *
  135. * 'NORTON' (Fibre) INATU = 181 *
  136. * 'POLYNOMIAL' (Fibre) INATU = 182 *
  137. * 'BLACKBURN' (Fibre) INATU = 183 *
  138. * 'BLACKBURN_2' (Fibre) INATU = 184 *
  139. * 'LEMAITRE' (Fibre) INATU = 185 *
  140. * *
  141. * FLUAGE *
  142. * 'NORTON' INATU = 19 *
  143. * 'BLACKBURN' INATU = 20 *
  144. * 'POLYNOMIAL' INATU = 21 *
  145. * 'RCCMR-316' INATU = 22 *
  146. * 'RCCMR-304' INATU = 23 *
  147. * 'LEMAITRE' INATU = 24 *
  148. * 'BLACKBURN_2' INATU = 61 *
  149. * 'CERAMIQUE' INATU = 65 *
  150. * 'MAXWELL' INATU = 74 *
  151. * 'COMETE' INATU = 84 *
  152. * 'CCPL' INATU = 85 *
  153. * 'X11' INATU = 86 *
  154. * 'BPEL_RELAX' INATU = 95 *
  155. * 'BETON_URGC' INATU = 101 *
  156. * 'SODERBERG' INATU = 102 *
  157. * 'MAXOTT' INATU = 106 *
  158. * 'FBB1' INATU = 127 *
  159. * 'FBB2' INATU = 128 *
  160. * 'KELVIN' INATU = 174 *
  161. * *
  162. * VISCOPLASTIQUE *
  163. * 'GUIONNET' INATU = 17 *
  164. * 'ONERA' INATU = 25 *
  165. * 'VISCODOMMAGE' INATU = 29 *
  166. * 'PARFAIT' INATU = 43 *
  167. * 'POUDRE_A' INATU = 44 *
  168. * 'POUDRE_B' INATU = 45 *
  169. * 'OHNO' INATU = 53 *
  170. * 'DDI' INATU = 63 *
  171. * 'KOCKS' INATU = 70 *
  172. * 'NOUAILHAS_A' INATU = 76 *
  173. * 'NOUAILHAS_B' INATU = 77 *
  174. * 'VISK2' INATU = 82 *
  175. * 'VISCOHINT' INATU = 90 *
  176. * 'MISTRAL' INATU = 94 *
  177. * 'BETON_URGC' INATU = 100 *
  178. * 'BETON_URGC_ENDO' INATU = 122 *
  179. * 'LEMENDO' INATU = 103 *
  180. * 'FLUNOR2' INATU = 105 *
  181. * 'GATT_MONERIE' INATU = 107 *
  182. * 'UO2' INATU = 108 *
  183. * 'VISCODD' INATU = 130 *
  184. * 'CHAB_SINH_R' INATU = 136 *
  185. * 'CHAB_SINH_X' INATU = 137 *
  186. * 'CHAB_NOR_R' INATU = 138 *
  187. * 'CHAB_NOR_X' INATU = 139 *
  188. * 'PELLET' INATU = 142 *
  189. * 'FLUTRA' INATU = 143 *
  190. * 'SYCO1' INATU = 153 *
  191. * 'SYCO2' INATU = 154 *
  192. * 'CHABOCHE' INATU = 165 *
  193. * 'FLUENDO3D' INATU = 187
  194. * 'INCLUSION3D' INATU = 188
  195. * 'ENDO3D' INATU = 189
  196. * 'FLUISO3D' INATU = 190
  197. * 'FLUORTHO3D' INATU = 191
  198. * *
  199. * ENDOMMAGEABLE *
  200. * 'MAZARS' INATU = 30 *
  201. * 'UNILATERAL' INATU = 31 *
  202. * 'ROTATING_CRACK' INATU = 37 *
  203. * 'SIC_SIC' INATU = 88 *
  204. * 'MICROPLANS' INATU = 96 *
  205. * 'VISCOUNILATERAL' INATU = 97 *
  206. * 'MICROISO' INATU = 98 *
  207. * 'SICSCAL' INATU = 131 *
  208. * 'SICTENS' INATU = 132 *
  209. * 'FATSIN' INATU = 141 *
  210. * 'RICRAG' INATU = 144 *
  211. * 'MVM' INATU = 118 *
  212. * 'CRUCRA' INATU = 124 *
  213. * 'DAMAGE_TC' INATU = 125 *
  214. * 'DESMORAT' INATU = 134 *
  215. * 'GLRC_DM' INATU = 157 *
  216. * 'RICBET' INATU = 158 *
  217. * 'RICCOQ' INATU = 159 *
  218. * 'EFEM' INATU = 177 *
  219. * *
  220. * PLASTIQUE_ENDOM(MAGEABLE) *
  221. * 'PSURY' INATU = 51 *
  222. * 'ROUSSELIER' INATU = 62 *
  223. * 'GURSON2' INATU = 64 *
  224. * 'DRAGON' INATU = 75 *
  225. * 'BETON_URGC' INATU = 120 *
  226. * 'BETON_INSA' INATU = 121 *
  227. * 'BETON_DYNAR_LMT' INATU = 133 *
  228. * 'ENDO_PLAS' INATU = 135 *
  229. * 'GERNAY' INATU = 155 *
  230. * 'WELLS' INATU = 156 *
  231. * *
  232. * ELASTIQUE NON_LINEAIRE *
  233. * 'EQUIPLAS' INATU = 87 *
  234. * 'UTILISATEUR' INATU = -1 *
  235. * *
  236. * VISCO_EXTERNE *
  237. * 'GENERAL' IVIEX = 1 INATU = -2 *
  238. * 'DRUCKER_PRAGER' IVIEX = 2 en sortie de NOMATE, *
  239. * 'COHESION' IVIEX = 3 INATU = -2 - IVIEX *
  240. * 'CONSOLIDATION' IVIEX = 4 ce qui permet de *
  241. * 'UTILISATEUR' IVIEX = 5 recuperer IVIEX *
  242. * *
  243. * IMPEDANCE *
  244. * 'ELASTIQUE' INATU = 161 *
  245. * 'VOIGT' INATU = 162 *
  246. * 'MAXWELL' INATU = 163 *
  247. * 'COMPL??' INATU = 164 *
  248. *--------------------------------------------------------------------*
  249. * 3/ 'LIQUIDE ' *
  250. * 'ISOTROPE' *
  251. *--------------------------------------------------------------------*
  252. * 4/ 'CONVECTION' *
  253. * la formulation suffit *
  254. *--------------------------------------------------------------------*
  255. * 5/ 'MECANIQUE+LIQUIDE' *
  256. * la formulation suffit *
  257. *--------------------------------------------------------------------*
  258. * 6/ 'POREUX' VOIR 2/ *
  259. *--------------------------------------------------------------------*
  260. * 7/ 'DARCY' *
  261. * *
  262. * 'ISOTROPE' *
  263. * 'ORTHOTROPE' *
  264. * 'ANISOTROPE' *
  265. *--------------------------------------------------------------------*
  266. * 8/ 'CONTACT ' *
  267. * *
  268. * 'COULOMB' INATU=1 *
  269. * 'FROCABLE' INATU=2 *
  270. *--------------------------------------------------------------------*
  271. * 9/ 'RAYONNEMENT' *
  272. * imate=1 ancien rayonnement avec table *
  273. * imate=2 fac_a_fac *
  274. * imate=3 infini *
  275. * imate=4 cavite *
  276. * inatu 1 cavite toute simple *
  277. * inatu=2 cavite ferme *
  278. * inatu=3 cavite syme *
  279. * inatu=4 cavite convexe *
  280. * inatu=5 cavite syme convexe *
  281. * inatu=6 cavite ferme convexe *
  282. * inatu=7 cavite syme ferme *
  283. * inatu=8 cavite syme convexe ferme *
  284. *--------------------------------------------------------------------*
  285. * 10/ 'MAGNETODYNAMIQUE' *
  286. * *
  287. * 'POTENTIEL_VECTEUR' *
  288. * 'ISOTROPE' *
  289. * 'ORTHOTROPE' *
  290. *--------------------------------------------------------------------*
  291. * 11/ 'NAVIER_STOKES' *
  292. * *
  293. * 'NEWTONIEN' *
  294. * 'BINGHAM' *
  295. * 'VISCOPLASTIQUE' *
  296. *--------------------------------------------------------------------*
  297. * 12/ 'MELANGE' *
  298. * *
  299. * 'CEREM' *
  300. * 'ZTMAX' *
  301. * 'PARALLELE' *
  302. * 'SERIE' *
  303. * 'UTILISATEUR' *
  304. *--------------------------------------------------------------------*
  305. * 13/ 'EULER' *
  306. * *
  307. * 'NEWTONIEN' *
  308. *--------------------------------------------------------------------*
  309. * 14/ 'FISSURE' *
  310. * *
  311. * 'MASS' 'PARF' 'POISEU_BLASIUS' *
  312. * 'FILM' 'REEL' 'POISEU_COLEBROOK' *
  313. * 'FROTTEMENT1' *
  314. * 'FROTTEMENT2' *
  315. * 'FROTTEMENT3' *
  316. * 'FROTTEMENT4' *
  317. *--------------------------------------------------------------------*
  318. * 15/ 'LIAISON' *
  319. * *
  320. * 'POINT_PLAN_FLUIDE' *
  321. * 'POINT_PLAN_FROTTEMENT' *
  322. * 'POINT_PLAN' *
  323. * 'POINT_POINT_FROTTEMENT' *
  324. * 'POINT_POINT_DEPLACEMENT_PLASTIQUE' *
  325. * 'POINT_POINT_ROTATION_PLASTIQUE' *
  326. * 'POINT_POINT' *
  327. * 'POINT_CERCLE_MOBILE' *
  328. * 'POINT_CERCLE_FROTTEMENT' *
  329. * 'POINT_CERCLE' *
  330. * 'CERCLE_PLAN_FROTTEMENT' *
  331. * 'CERCLE_CERCLE_FROTTEMENT' *
  332. * 'PROFIL_PROFIL_INTERIEUR' *
  333. * 'PROFIL_PROFIL_EXTERIEUR' *
  334. * 'LIGNE_LIGNE_FROTTEMENT' *
  335. * 'LIGNE_CERCLE_FROTTEMENT' *
  336. * 'PALIER_FLUIDE' *
  337. * 'NEWMARK' *
  338. *--------------------------------------------------------------------*
  339. * 16/ 'THERMOHYDRIQUE' *
  340. * *
  341. * 'SCHREFLER' *
  342. *--------------------------------------------------------------------*
  343. * 17/ 'ELECTROSTATIQUE' *
  344. * *
  345. * 'ISOTROPE' *
  346. * 'ORTHOTROPE' *
  347. * 'ANISOTROPE' *
  348. *--------------------------------------------------------------------*
  349. * 18/ 'DIFFUSION' *
  350. * *
  351. * 'ISOTROPE' *
  352. * 'ORTHOTROPE' *
  353. * 'ANISOTROPE' *
  354. * 'FICK' INATU = 0 *
  355. * 'SORET' INATU = 1 *
  356. * 'UTILISATEUR' INATU =-1 *
  357. *--------------------------------------------------------------------*
  358. * 19/ 'METALLURGIE' INATU = 178 *
  359. *--------------------------------------------------------------------*
  360. * 20/ 'CHANGEMENT_PHASE' *
  361. * *
  362. * 'PARFAIT' INATU = 179 *
  363. * 'SOLUBILITE' INATU = 180 *
  364. *--------------------------------------------------------------------*
  365. * 21/ 'CONTRAINTE' *
  366. * *
  367. * 'ROTATION' INATU = 1 *
  368. * 'DEPLACEMENT' INATU = 2 *
  369. * 'RELATION' INATU = 3 *
  370. *--------------------------------------------------------------------*
  371. * 'SOURCE' source de chaleur : CMATE = 'SOURCE' *
  372. * *
  373. * formulation generale : INATU = 1 / IMATE = 1 *
  374. * *
  375. * formulation generale :' INATU = 2 / IMATE = 1 *
  376. * 'GAUSSIENNE' 'ELLIPTIQUE' INATU = 2 / IMATE = 2 *
  377. * 'GAUSSIENNE' 'ELARGIE' INATU = 2 / IMATE = 3 *
  378.  
  379. *--------------------------------------------------------------------*
  380. * PPU MODIF POUR LES MATERIAUX UNIDIRECTIONELS EN PLASTIQUE
  381.  
  382.  
  383. *--------------------------------------------------------------------*
  384. * DECLARATIONS
  385. *--------------------------------------------------------------------*
  386. IMPLICIT INTEGER(I-N)
  387. IMPLICIT REAL*8 (A-H,O-Z)
  388.  
  389. -INC PPARAM
  390. -INC CCOPTIO
  391.  
  392. INTEGER NFOR,NMAT
  393. CHARACTER*(*) CMATE
  394. CHARACTER*16 FORMOD(*),MATMOD(*)
  395. *
  396. CHARACTER*16 MOMODL(200), forfo1,forfo2
  397. *
  398. CHARACTER*16 LISTMT(3),LINAST(4)
  399. CHARACTER*12 CMAT1,CMAT2,CMAT3
  400.  
  401. DATA LISTMT / 'ISOTROPE ',
  402. & 'ORTHOTROPE ',
  403. & 'ANISOTROPE ' /
  404. DATA LINAST / 'NEWTONIEN ','BINGHAM ',
  405. & 'VISCOPLASTIQUE ','NLIN '/
  406. *
  407. CMATE = ' '
  408. IMATE = 0
  409. INATU = 0
  410. *
  411. INMAT = 0
  412. *
  413. forfo1 = formod(1)
  414. *
  415. IF (NFOR.EQ.1) THEN
  416. *
  417. *--------------------------------------------------------------------*
  418. * 0/ Cas particuliers : THERMIQUE CONVECTION -> 4/ *
  419. * RAYONNEMENT -> 9/ *
  420. * SOURCE -> 22/ *
  421. *--------------------------------------------------------------------*
  422.  
  423. IF (forfo1.eq.'THERMIQUE' ) THEN
  424. icov = 0
  425. CALL PLACE(MATMOD,NMAT,icov,'CONVECTION')
  426. IF (icov.NE.0) THEN
  427. forfo1 = 'CONVECTION'
  428. ELSE
  429. iray = 0
  430. CALL PLACE(MATMOD,NMAT,iray,'RAYONNEMENT')
  431. IF (iray.NE.0) THEN
  432. forfo1 = 'RAYONNEMENT'
  433. ELSE
  434. isrc = 0
  435. CALL PLACE(MATMOD,NMAT,isrc,'SOURCE')
  436. IF (isrc.NE.0) THEN
  437. forfo1 = 'SOURCE'
  438. ENDIF
  439. ENDIF
  440. ENDIF
  441. ENDIF
  442. *
  443. *--------------------------------------------------------------------*
  444. * 1/ Cas de la formulation 'THERMIQUE' OU 'DARCY' *
  445. *--------------------------------------------------------------------*
  446. * 1 2 3 4 5 6 7 8
  447.  
  448. IF (forfo1.EQ.'THERMIQUE' .OR.
  449. & forfo1.EQ.'DARCY') THEN
  450.  
  451. IF (NMAT.EQ.0) THEN
  452. *
  453. * par defaut la formulation est isotrope
  454. *
  455. CMATE='ISOTROPE'
  456. IMATE=1
  457.  
  458. ELSE
  459. CALL PLACE(LISTMT,3,IPLAC,MATMOD(1))
  460. INMAT=INMAT+1
  461. CMATE='ISOTROPE'
  462. IF (IPLAC.NE.0) THEN
  463. CMATE = MATMOD(1)
  464. IMATE=IPLAC
  465. END IF
  466. IF(forfo1.EQ.'THERMIQUE') THEN
  467. CALL MODTHE(MOMODL,NMOD)
  468. DO 4287 I=2,NMAT
  469. CALL PLACE(MOMODL,NMOD,ITROP,MATMOD(I))
  470. IF(ITROP.NE.0) THEN
  471. INMAT=INMAT+1
  472. ENDIF
  473. 4287 CONTINUE
  474. ENDIF
  475. ENDIF
  476. *--------------------------------------------------------------------*
  477. * 2/ Cas de la formulation 'MECANIQUE' OU 'POREUX' *
  478. *--------------------------------------------------------------------*
  479. ELSE IF (forfo1.EQ.'MECANIQUE'.OR.
  480. . forfo1.EQ.'POREUX') THEN
  481.  
  482. IF (NMAT.NE.0)THEN
  483. *
  484. * Comportement reversible
  485. * ---------------------
  486. CALL MODLIN(MOMODL,NMOD)
  487. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
  488. IF (IPLAC.EQ.1)THEN
  489. INMAT=INMAT+1
  490. *
  491. * Materiau elastique lineaire ( seule option disponible )
  492. *
  493. IF (NMAT.GT. INMAT) THEN
  494. *
  495. * On teste la "tropie de la formulation"
  496. *
  497. CALL MODELA(MOMODL,NMOD)
  498. CALL PLACE(MOMODL,NMOD,ITROP,MATMOD(2))
  499. IF (ITROP.EQ.0) THEN
  500. CMATE = 'ISOTROPE'
  501. IMATE=1
  502. ELSE
  503. INMAT=INMAT+1
  504. CMATE = MOMODL(ITROP)
  505. IF (ITROP.LE.3) THEN
  506. IMATE=ITROP
  507. ELSE IF (ITROP.EQ.4) THEN
  508. IMATE=7
  509. ELSE IF (ITROP.EQ.5) THEN
  510. IMATE=9
  511. ELSE IF (ITROP.EQ.6) THEN
  512. IMATE=4
  513. ELSE IF (ITROP.EQ.7) THEN
  514. IMATE=11
  515. ELSE IF (ITROP.EQ.9.OR.ITROP.EQ.10) THEN
  516. INMAT=INMAT + 1
  517. IMATE=ITROP
  518. ELSE IF (ITROP.EQ.11) THEN
  519. * on met 12 car 11 est deja pris
  520. IMATE=12
  521. END IF
  522. END IF
  523. ELSE
  524. *
  525. * Option par defaut dans le cas elastique
  526. *
  527. CMATE = 'ISOTROPE'
  528. IMATE=1
  529. ENDIF
  530. END IF
  531. END IF
  532. *
  533. 25 continue
  534. * Comportement non lineaire
  535. * -------------------------
  536. IF (IMATE.EQ.1) THEN
  537. *
  538. * >>>>>>>>>>> Dans le cas d'une formulation elastique isotrope
  539. *
  540. 20 CONTINUE
  541. IF (NMAT.GT.INMAT) THEN
  542. *
  543. * Et si le materiau n'est pas totalement decode
  544. *
  545. CALL MODNLI(MOMODL,NMOD)
  546. INMAT=INMAT+1
  547. CALL PLACE(MOMODL,NMOD,INLI,MATMOD(INMAT))
  548. IF (INLI.EQ.0) THEN
  549. *
  550. * Materiau non reconnu
  551. *
  552. CMATE=' '
  553. IMATE=0
  554. INATU=0
  555. ELSE IF (INLI .EQ. 1) THEN
  556. *
  557. * Comportement plastique
  558. * ----------------------
  559.  
  560. IF (NMAT.GT.INMAT) THEN
  561. *
  562. * Et si le materiau n'est pas totalement decode
  563. *
  564. CALL MODPLA(MOMODL,NMOD)
  565. INMAT= INMAT+1
  566. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  567. IF (IMOD.EQ.0) THEN
  568. CMATE=' '
  569. IMATE=0
  570. INATU=0
  571. ELSE IF (IMOD.EQ.1) THEN
  572. * ISOTROPE
  573. INATU=5
  574. ELSE IF (IMOD.EQ.2) THEN
  575. * PARFAIT
  576. INATU=1
  577. ELSE IF (IMOD.EQ.3) THEN
  578. * CINEMATIQUE
  579. INATU=4
  580. ELSE IF (IMOD.EQ.4) THEN
  581. * DRUCKER-PRAGER
  582. INATU=15
  583. ELSE IF (IMOD.EQ.5) THEN
  584. * DRUCKER-SIMPLE
  585. INATU=3
  586. ELSE IF (IMOD.EQ.6) THEN
  587. * BETON
  588. INATU=9
  589. ELSE IF (IMOD.EQ.7) THEN
  590. * CHABOCHE1
  591. INATU=7
  592. ELSE IF (IMOD.EQ.8) THEN
  593. * CHABOCHE2
  594. INATU=12
  595. ELSE IF (IMOD.EQ.9) THEN
  596. * TUYAU-FISSURE
  597. INATU=14
  598. ELSE IF (IMOD.EQ.10) THEN
  599. * ENDOMMAGEABLE
  600. INATU=26
  601. ELSE IF (IMOD.EQ.11) THEN
  602. * GAUVAIN
  603. INATU=16
  604. ELSE IF (IMOD.EQ.12) THEN
  605. * LINESPRING
  606. INATU=2
  607. ELSE IF (IMOD.EQ.13) THEN
  608. * UBIQUITOUS
  609. INATU=28
  610. ELSE IF (IMOD.EQ.14) THEN
  611. * GLOBAL
  612. INATU=32
  613. ELSE IF (IMOD.EQ.15) THEN
  614. * CAM-CLAY
  615. INATU=33
  616. ELSE IF (IMOD.EQ.16) THEN
  617. * MOHR COULOMB
  618. INATU=34
  619. ELSE IF (IMOD.EQ.17) THEN
  620. * JOINT DILATANT
  621. INATU=35
  622. ELSE IF (IMOD.EQ.18) THEN
  623. * BETON_AXI
  624. INATU=36
  625. ELSE IF (IMOD.EQ.19) THEN
  626. * GURSON
  627. INATU=38
  628. ELSE IF (IMOD.EQ.20) THEN
  629. * BETON_UNI
  630. INATU=39
  631. ELSE IF (IMOD.EQ.21) THEN
  632. * ACIER_UNI
  633. INATU=40
  634. ELSE IF (IMOD.EQ.51) THEN
  635. * ACIER_ANCRAGE
  636. INATU=93
  637. ELSE IF (IMOD.EQ.23) THEN
  638. * OTTOSEN (BETON)
  639. INATU=42
  640. ELSE IF (IMOD.EQ.83) THEN
  641. * OTTOVARI (BETON)
  642. INATU=148
  643. ELSE IF (IMOD.EQ.24) THEN
  644. * MAZARS_FIB
  645. INATU=46
  646. ELSE IF (IMOD.EQ.53) THEN
  647. * UNILATERAL (Fibre)
  648. INATU=104
  649. ELSE IF (IMOD.EQ.44) THEN
  650. * FRAGILE_UNI
  651. INATU=78
  652. *
  653. ELSE IF (IMOD.EQ.45) THEN
  654. * BETON_BAEL
  655. INATU=79
  656. *
  657. ELSE IF (IMOD.EQ.46) THEN
  658. * PARFAIT_UNI
  659. INATU=80
  660. *
  661. ELSE IF (IMOD.EQ.50) THEN
  662. * PARFAIT_ANCRAGE
  663. INATU=92
  664. C +BR
  665. ELSE IF (IMOD.EQ.72) THEN
  666. * RICBET_UNI
  667. INATU=160
  668. C -BR
  669. *
  670. ELSE IF (IMOD.EQ.47) THEN
  671. * STRUT_UNI
  672. INATU=83
  673. *
  674. ELSE IF (IMOD.EQ.25) THEN
  675. * AMADEI-SAEB
  676. INATU=47
  677. ELSE IF (IMOD.EQ.26) THEN
  678. * HUJEUX
  679. INATU=48
  680. ELSE IF (IMOD.EQ.27) THEN
  681. * STEINBERG-COCHRAN-GUINAN
  682. INATU=49
  683. ELSE IF (IMOD.EQ.28) THEN
  684. * ZERILLI-ARMSTRONG
  685. INATU=50
  686. ELSE IF (IMOD.EQ.29) THEN
  687. * PRESTON-TONKS-WALLACE
  688. INATU=52
  689. ELSE IF (IMOD.EQ.30) THEN
  690. * BETOCYCL
  691. INATU=54
  692. ELSE IF (IMOD.EQ.31) THEN
  693. * ROTATING_CRACK
  694. INATU=55
  695. ELSE IF (IMOD.EQ.32) THEN
  696. * JOINT_SOFT
  697. INATU=56
  698. ELSE IF (IMOD.EQ.49) THEN
  699. * ANCRAGE_ELIGEHAUSEN
  700. INATU=91
  701. ELSE IF (IMOD.EQ.33) THEN
  702. * BILI_MOMY
  703. INATU=57
  704. ELSE IF (IMOD.EQ.34) THEN
  705. * BILI_EFFZ
  706. INATU=58
  707. ELSE IF (IMOD.EQ.35) THEN
  708. * TAKEMO_MOMY
  709. INATU=59
  710. ELSE IF (IMOD.EQ.36) THEN
  711. * TAKEMO_EFFZ
  712. INATU=60
  713. ELSE IF (IMOD.EQ.37) THEN
  714. * BETON_INSA
  715. INATU=66
  716. ELSE IF (IMOD.EQ.40) THEN
  717. * ALONSO
  718. INATU=69
  719. ELSE IF (IMOD.EQ.41) THEN
  720. * PAKZAD
  721. INATU=71
  722. ELSE IF (IMOD.EQ.42) THEN
  723. * INFILL_UNI
  724. INATU=72
  725. ELSE IF (IMOD.EQ.43) THEN
  726. * CISAIL_NL
  727. INATU=73
  728. ELSE IF (IMOD.EQ.48) THEN
  729. * HINTE
  730. INATU=89
  731. ELSE IF (IMOD.EQ.52) THEN
  732. * BETON_URGC
  733. INATU=99
  734. * BCN
  735. ELSE IF (IMOD.EQ.54) THEN
  736. * MRS_LADE
  737. INATU=111
  738. ELSE IF (IMOD.EQ.55) THEN
  739. * J2
  740. INATU=112
  741. ELSE IF (IMOD.EQ.56) THEN
  742. * RH_COULOMB
  743. INATU=113
  744. ELSE IF (IMOD.EQ.57) THEN
  745. * VMT_FEFP
  746. INATU=114
  747. ELSE IF (IMOD.EQ.58) THEN
  748. * RHMC_FEFP
  749. INATU=115
  750. ELSE IF (IMOD.EQ.59) THEN
  751. * POWDER_FEFP
  752. INATU=116
  753. ELSE IF (IMOD.EQ.60) THEN
  754. * POWDERCAP_FEFP
  755. INATU=117
  756. * BCN
  757. ELSE IF (IMOD.EQ.61) THEN
  758. * JOINT_COAT
  759. INATU=119
  760.  
  761. ELSE IF (IMOD.EQ.62) THEN
  762. * CONCRETE_UNI
  763. INATU=123
  764.  
  765. ELSE IF (IMOD.EQ.73) THEN
  766. * BA1D
  767. INATU=147
  768.  
  769. ELSE IF (IMOD.EQ.63) THEN
  770. * MUR_SHEAR
  771. INATU=126
  772.  
  773. ELSE IF (IMOD.EQ.64) THEN
  774. * INCO
  775. INATU=129
  776. ELSE IF (IMOD.EQ.65) THEN
  777. * DRUCKER_PRAGER2
  778. INATU=140
  779. ELSE IF (IMOD.EQ.67) THEN
  780. * INTIMP
  781. INATU=145
  782. ELSE IF (IMOD.EQ.68) THEN
  783. * INTJOI
  784. INATU=146
  785. ELSE IF (IMOD.EQ.69) THEN
  786. * BILIN_EFFX
  787. INATU=150
  788. * LIAISON_ACBE ( liaison acier beton)
  789. ELSE IF (IMOD.EQ.74) THEN
  790. INATU=171
  791. * DP_SOL
  792. ELSE IF (IMOD.EQ.75) THEN
  793. INATU=172
  794. * OUGLOVA
  795. ELSE IF (IMOD.EQ.76) THEN
  796. INATU=175
  797. * IWPR3D_SOL
  798. ELSE IF (IMOD.EQ.77) THEN
  799. INATU=176
  800. * NORTON
  801. ELSE IF (IMOD.EQ.78) THEN
  802. INATU=181
  803. * POLYNOMIAL
  804. ELSE IF (IMOD.EQ.79) THEN
  805. INATU=182
  806. * BLACKBURN
  807. ELSE IF (IMOD.EQ.80) THEN
  808. INATU=183
  809. * BLACKBURN_2
  810. ELSE IF (IMOD.EQ.81) THEN
  811. INATU=184
  812. * LEMAITRE
  813. ELSE IF (IMOD.EQ.82) THEN
  814. INATU=185
  815. ENDIF
  816. ELSE
  817. *
  818. * Option par defaut
  819. *
  820. INATU=5
  821. ENDIF
  822.  
  823. ELSE IF (INLI .EQ. 2) THEN
  824. *
  825. * Comportement FLUAGE
  826. * -------------------
  827. IF (NMAT.GT.INMAT) THEN
  828. *
  829. * Et si le materiau n'est pas totalement decode
  830. *
  831. INMAT=INMAT+1
  832. CALL MODFLU(MOMODL,NMOD)
  833. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  834. IF (IMOD.EQ.0 ) THEN
  835. CMATE=' '
  836. IMATE=0
  837. INATU=0
  838. ELSE IF (IMOD.EQ.1 ) THEN
  839. * NORTON
  840. INATU=19
  841. ELSE IF (IMOD.EQ.2 ) THEN
  842. * BLACKBURN
  843. INATU=20
  844. ELSE IF (IMOD.EQ.3 ) THEN
  845. * RCCMR-316
  846. INATU=22
  847. ELSE IF (IMOD.EQ.4 ) THEN
  848. * RCCMR-304
  849. INATU=23
  850. ELSE IF (IMOD.EQ.5 ) THEN
  851. * LEMAITRE
  852. INATU=24
  853. ELSE IF (IMOD.EQ.6 ) THEN
  854. * POLYNOMIAL
  855. INATU=21
  856. ELSE IF (IMOD.EQ.7 ) THEN
  857. * BLACKBURN_2
  858. INATU=61
  859. ELSE IF (IMOD.EQ.8) THEN
  860. * CERAMIQUE
  861. INATU=65
  862. ELSE IF (IMOD.EQ.9) THEN
  863. * MAXWELL
  864. INATU=74
  865. ELSE IF (IMOD.EQ.10) THEN
  866. * COMETE
  867. INATU = 84
  868. ELSE IF (IMOD.EQ.11) THEN
  869. * CCPL
  870. INATU = 85
  871. ELSE IF (IMOD.EQ.12) THEN
  872. * X11
  873. INATU = 86
  874. ELSE IF (IMOD.EQ.13) THEN
  875. * BPEL_RELAX
  876. INATU = 95
  877. ELSE IF (IMOD.EQ.14) THEN
  878. * BETON_URGC
  879. INATU = 101
  880. ELSE IF (IMOD.EQ.15) THEN
  881. * SODERBERG
  882. INATU = 102
  883. ELSE IF (IMOD.EQ.16) THEN
  884. * MAXOTT
  885. INATU = 106
  886. ELSE IF (IMOD.EQ.17) THEN
  887. * FBB1
  888. INATU = 127
  889. ELSE IF (IMOD.EQ.18) THEN
  890. * FBB2
  891. INATU = 128
  892. ELSE IF (IMOD.EQ.19) THEN
  893. * KELVIN
  894. ** INATU = 174
  895. * AM 3/3/17 MODELE INDISPONIBLE
  896. CMATE=' '
  897. IMATE=0
  898. INATU=0
  899. ENDIF
  900. ELSE
  901. *
  902. * Option par defaut
  903. *
  904. INATU=19
  905. ENDIF
  906. *
  907. ELSE IF (INLI .EQ. 3) THEN
  908. *
  909. * Comportement VISCOPLASTIQUE
  910. * ---------------------------
  911. IF (NMAT.GT.INMAT) THEN
  912. *
  913. * Et si le materiau n'est pas totalement decode
  914. *
  915. CALL MODVIS(MOMODL,NMOD)
  916. INMAT=INMAT+1
  917. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  918. IF (IMOD.EQ.0 ) THEN
  919. CMATE=' '
  920. IMATE=0
  921. INATU=0
  922. ELSE IF (IMOD.EQ.1 ) THEN
  923. * GUIONNET
  924. INATU=17
  925. ELSE IF (IMOD.EQ.2 ) THEN
  926. * ONERA
  927. INATU=25
  928. ELSE IF (IMOD.EQ.3 ) THEN
  929. * VISCODOMMAGE
  930. INATU=29
  931. ELSE IF (IMOD.EQ.4 ) THEN
  932. * PARFAIT
  933. INATU = 43
  934. ELSE IF (IMOD.EQ.5 ) THEN
  935. * POUDRE_A
  936. INATU = 44
  937. ELSE IF (IMOD.EQ.6 ) THEN
  938. * POUDRE_B
  939. INATU = 45
  940. ELSE IF (IMOD.EQ.7 ) THEN
  941. * OHNO
  942. INATU = 53
  943. ELSE IF (IMOD.EQ.8 ) THEN
  944. * DDI
  945. INATU = 63
  946. ELSE IF (IMOD.EQ.9 ) THEN
  947. * KOCK
  948. INATU = 70
  949. ELSE IF (IMOD.EQ.10 ) THEN
  950. * NOUAILHAS_A
  951. INATU = 76
  952. ELSE IF (IMOD.EQ.11 ) THEN
  953. * NOUAILHAS_B
  954. INATU = 77
  955. ELSE IF (IMOD.EQ.12) THEN
  956. * VISK2
  957. INATU = 82
  958. ELSE IF (IMOD.EQ.13 ) THEN
  959. * VISCOHINTE
  960. INATU = 90
  961. ELSE IF (IMOD.EQ.14) THEN
  962. * MISTRAL
  963. INATU = 94
  964. ELSE IF (IMOD.EQ.15) THEN
  965. * BETON_URGC
  966. INATU = 100
  967. ELSE IF (IMOD.EQ.16 ) THEN
  968. * LEMENDO
  969. INATU = 103
  970. ELSE IF (IMOD.EQ.17) THEN
  971. * FLUNOR2
  972. INATU = 105
  973. ELSE IF (IMOD.EQ.18) THEN
  974. * GATT_MONERIE
  975. INATU = 107
  976. ELSE IF (IMOD.EQ.19) THEN
  977. * UO2
  978. INATU = 108
  979. ELSE IF (IMOD.EQ.20) THEN
  980. * BETON_URGC_ENDO
  981. INATU = 122
  982. ELSE IF (IMOD.EQ.21) THEN
  983. * LOI DE COMPORTEMENT VISQUEUSE AVEC DOUBLE ENDO
  984. INATU = 130
  985. ELSE IF (IMOD.EQ.22) THEN
  986. * 'CHAB_SINH_R'
  987. INATU = 136
  988. ELSE IF (IMOD.EQ.23) THEN
  989. * 'CHAB_SINH_X'
  990. INATU = 137
  991. ELSE IF (IMOD.EQ.24) THEN
  992. * 'CHAB_NOR_R'
  993. INATU = 138
  994. ELSE IF (IMOD.EQ.25) THEN
  995. * 'CHAB_NOR_X'
  996. INATU = 139
  997. ELSE IF (IMOD.EQ.26) THEN
  998. * 'PELLET'
  999. INATU = 142
  1000. ELSE IF (IMOD.EQ.27) THEN
  1001. * 'FLUTRA'
  1002. INATU = 143
  1003. ELSE IF (IMOD.EQ.28) THEN
  1004. * 'SYCO1'
  1005. INATU = 153
  1006. ELSE IF (IMOD.EQ.29) THEN
  1007. * 'SYCO2'
  1008. INATU = 154
  1009. ELSE IF (IMOD.EQ.30) THEN
  1010. * 'CHABOCHE'
  1011. INATU = 165
  1012. ELSE IF (IMOD.EQ.31) THEN
  1013. * 'FLUENDO3D' 'Sellier'
  1014. INATU = 187
  1015. ELSE IF (IMOD.EQ.32) THEN
  1016. * 'INCLUSION3D' 'Sellier'
  1017. INATU = 188
  1018. ELSE IF (IMOD.EQ.33) THEN
  1019. * 'ENDO3D' 'Sellier'
  1020. INATU = 189
  1021. ELSE IF (IMOD.EQ.34) THEN
  1022. * 'FLUISO3D' 'Sellier'
  1023. INATU = 190
  1024. * print*,'nomate',INATU
  1025. ELSE IF (IMOD.EQ.35) THEN
  1026. * 'FLUORTHO3D' 'Sellier'
  1027. INATU = 191
  1028. * print*,'nomate',INATU
  1029. ENDIF
  1030. ELSE
  1031. *
  1032. * Option par defaut: ONERA
  1033. *
  1034. INATU=25
  1035. ENDIF
  1036. *
  1037. ELSE IF (INLI .EQ. 4) THEN
  1038. *
  1039. * Comportement type ENDOMMAGEMENT
  1040. * -------------------------------
  1041. IF (NMAT.GT.INMAT) THEN
  1042. INMAT=INMAT+1
  1043. CALL MODEND(MOMODL,NMOD)
  1044. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1045. IF (IMOD.EQ.0 ) THEN
  1046. CMATE=' '
  1047. IMATE=0
  1048. INATU=0
  1049. ELSE IF (IMOD.EQ.1 ) THEN
  1050. * MAZARS
  1051. INATU=30
  1052. ELSE IF (IMOD.EQ.2 ) THEN
  1053. * UNILATERAL
  1054. INATU=31
  1055. ELSE IF (IMOD.EQ.3 ) THEN
  1056. * ROTATING_CRACK
  1057. INATU=37
  1058. * ELSE IF (IMOD.EQ.4) THEN
  1059. * SIC_SIC
  1060. * INATU=88
  1061. ELSE IF (IMOD.EQ.5) THEN
  1062. * MICROPLANS
  1063. INATU=96
  1064. ELSE IF (IMOD.EQ.6) THEN
  1065. * VISCOUNILATERAL
  1066. INATU=97
  1067. ELSE IF (IMOD.EQ.7) THEN
  1068. * MICROISO
  1069. INATU=98
  1070. * BCN
  1071. ELSE IF (IMOD.EQ.8) THEN
  1072. * MODIFIED VON MISES
  1073. INATU=118
  1074.  
  1075. ELSE IF (IMOD.EQ.9) THEN
  1076. * CRUCRA
  1077. INATU=124
  1078. ELSE IF (IMOD.EQ.10) THEN
  1079. * DAMAGE_TC - R. Faria & J. Oliver
  1080. INATU=125
  1081. * ELSE IF (IMOD.EQ.11) THEN
  1082. * SICSCAL - modele scalaire SiCf/SiC ONERA
  1083. * INATU=131
  1084. * ELSE IF (IMOD.EQ.12) THEN
  1085. * SICTENS - modele pseudo tensoriel SiCf/SiC ONERA
  1086. * INATU=132
  1087. ELSE IF (IMOD.EQ.13) THEN
  1088. * DESMORAT
  1089. INATU=134
  1090. ELSE IF (IMOD.EQ.14) THEN
  1091. * FATSIN
  1092. INATU=141
  1093. ELSE IF (IMOD.EQ.15) THEN
  1094. * RICRAG2D
  1095. INATU=144
  1096. C +BR
  1097. ELSE IF (IMOD.EQ.16) THEN
  1098. * GLRC_DM
  1099. INATU=157
  1100. ELSE IF (IMOD.EQ.17) THEN
  1101. * RICBET
  1102. INATU=158
  1103. ELSE IF (IMOD.EQ.18) THEN
  1104. * RICCOQ
  1105. INATU=159
  1106. ELSE IF (IMOD.EQ.19) THEN
  1107. * RICBET
  1108. INATU=173
  1109. ELSE IF (IMOD.EQ.20) THEN
  1110. * RICBET
  1111. INATU=177
  1112. C -BR
  1113. *
  1114. ENDIF
  1115. ELSE
  1116. *
  1117. * Option par defaut
  1118. *
  1119. INATU=30
  1120. ENDIF
  1121. *
  1122. ELSE IF (INLI .EQ. 5) THEN
  1123. *
  1124. *
  1125. * Comportement PLASTIQUE ENDOM(MAGEABLE)
  1126. * --------------------------------------
  1127. IF (NMAT.GT.INMAT) THEN
  1128. *
  1129. * Et si le materiau n'est pas totalement decode
  1130. *
  1131. CALL MODPLE(MOMODL,NMOD)
  1132. INMAT=INMAT+1
  1133. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1134. IF (IMOD.EQ.0 ) THEN
  1135. CMATE=' '
  1136. IMATE=0
  1137. INATU=0
  1138. ELSE IF (IMOD.EQ.1 ) THEN
  1139. * PSURY
  1140. INATU=51
  1141. ELSE IF (IMOD.EQ.2 ) THEN
  1142. * ROUSSELIER
  1143. INATU=62
  1144. ELSE IF (IMOD.EQ.3 ) THEN
  1145. * GURSON2
  1146. INATU=64
  1147. ELSE IF (IMOD.EQ.4 ) THEN
  1148. * DRAGON
  1149. INATU=75
  1150. ELSE IF (IMOD.EQ.5 ) THEN
  1151. * BETON_URGC
  1152. INATU=120
  1153. ELSE IF (IMOD.EQ.6 ) THEN
  1154. * BETON_INSA
  1155. INATU=121
  1156. ELSE IF (IMOD.EQ.7 ) THEN
  1157. * BETON_DYNAR_LMT
  1158. INATU=133
  1159. ELSE IF (IMOD.EQ.8) THEN
  1160. * ENDO_PLAS
  1161. INATU=135
  1162. ELSE IF (IMOD.EQ.9) THEN
  1163. * GERNAY
  1164. INATU=155
  1165. ENDIF
  1166. ELSE
  1167. * Par defaut
  1168. INATU=51
  1169. ENDIF
  1170. C
  1171. ELSE IF (INLI.EQ.6) THEN
  1172. C
  1173. C Comportement ELASTIQUE NON_LINEAIRE
  1174. C -----------------------------------
  1175. IF (NMAT.GT.INMAT) THEN
  1176. C
  1177. C Et si le materiau n'est pas totalement decode
  1178. C
  1179. CALL MODENL(MOMODL,NMOD)
  1180. INMAT=INMAT+1
  1181. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1182. IF (IMOD.EQ.0 ) THEN
  1183. CMATE=' '
  1184. IMATE=0
  1185. INATU=0
  1186. ELSE IF (IMOD.EQ.1 ) THEN
  1187. * EQUIPLAS
  1188. INATU=87
  1189. ELSE IF (IMOD.EQ.2) THEN
  1190. C UTILISATEUR
  1191. IF (NMAT.GT.INMAT) THEN
  1192. INMAT=INMAT+1
  1193. INATU = -1
  1194. ELSE
  1195. CALL ERREUR(952)
  1196. RETURN
  1197. ENDIF
  1198. ENDIF
  1199. C
  1200. ELSE
  1201. C Pas de comportement par defaut
  1202. CMATE=' '
  1203. IMATE=0
  1204. INATU=0
  1205. ENDIF
  1206. C
  1207. ELSE IF (INLI.EQ.7) THEN
  1208. C
  1209. C Comportement VISCO_EXTERNE
  1210. C --------------------------
  1211. IF (NMAT.GT.INMAT) THEN
  1212. C
  1213. C Et si le materiau n'est pas totalement decode
  1214. C
  1215. CALL MODVIX(MOMODL,NMOD)
  1216. INMAT=INMAT+1
  1217. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1218. IF (IMOD.EQ.0) THEN
  1219. CMATE=' '
  1220. IMATE=0
  1221. INATU=0
  1222. ELSE
  1223. IF (NMAT.GT.INMAT) THEN
  1224. INMAT=INMAT+1
  1225. INATU = -2-IMOD
  1226. c* Permet de recuperer IMOD=IVIEX (>0) en sortie de NOMATE avant de fixer
  1227. c* la valeur de INATU a -2
  1228. ELSE
  1229. CALL ERREUR(952)
  1230. RETURN
  1231. ENDIF
  1232. ENDIF
  1233. ELSE
  1234. C Pas de comportement par defaut
  1235. CMATE=' '
  1236. IMATE=0
  1237. INATU=0
  1238. ENDIF
  1239.  
  1240. ELSE IF (INLI.EQ.8) THEN
  1241. c
  1242. c ------------------------ IMPEDANCE --------------------------
  1243. IF (NMAT.GT.INMAT) THEN
  1244. C Et si le materiau n'est pas totalement decode
  1245.  
  1246. IMOD = 0
  1247. IMO2 = 0
  1248. CALL MODIMP(MOMODL,NMOD)
  1249. INMAT=INMAT+1
  1250. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1251. IF (IMOD.EQ.0) THEN
  1252. CMATE='IMPELAST'
  1253. INATU=161
  1254. ELSE
  1255.  
  1256. IF (IMOD.EQ.1) THEN
  1257. CMATE='IMPELAST'
  1258. if (inmat.lt.nmat) goto 20
  1259. INATU = 161
  1260. ELSEIF (IMOD.EQ.2) THEN
  1261. CMATE='IMPVOIGT'
  1262. INATU = 162
  1263. ELSEIF (IMOD.EQ.3) THEN
  1264. CMATE='IMPREUSS'
  1265. INATU = 163
  1266. ELSEIF (IMOD.EQ.4) THEN
  1267. CMATE='IMPCOMPL'
  1268. INATU = 164
  1269. ELSE
  1270. CMATE=' '
  1271. IMATE=0
  1272. INATU=0
  1273. ENDIF
  1274. ENDIF
  1275.  
  1276. ELSE
  1277. ENDIF
  1278. *
  1279. * ELSEIF (INLI.GT.8) THEN
  1280. ENDIF
  1281. ENDIF
  1282. *
  1283. *
  1284. ELSE IF (IMATE.EQ.2) THEN
  1285. *
  1286. * >>>>>>>>>>> Dans le cas d'une formulation elastique orthotrope
  1287. * on se limite pour l'instant �
  1288. * 2 comportements plastiques,
  1289. * 1 comportement viscoplastique,
  1290. * 1 comportement endommageable,
  1291. * + le comportement 'NON_LINEAIRE' 'UTILISATEUR'
  1292. *
  1293. IF (NMAT.GT.INMAT) THEN
  1294. *
  1295. * Et si le materiau n'est pas totalement decode
  1296. *
  1297. CALL MODNLI(MOMODL,NMOD)
  1298. INMAT=INMAT+1
  1299. CALL PLACE(MOMODL,NMOD,INLI,MATMOD(INMAT))
  1300. c mistral :
  1301. IF (INLI.NE.1.AND.INLI.NE.3.AND.INLI.NE.4.AND.
  1302. & INLI.NE.6) THEN
  1303. c mistral.
  1304. *
  1305. * Materiau non reconnu
  1306. *
  1307. CMATE=' '
  1308. IMATE=0
  1309. INATU=0
  1310. *
  1311. ELSE IF (INLI.EQ.1) THEN
  1312. *
  1313. * Comportement plastique
  1314. * ----------------------
  1315.  
  1316. IF (NMAT.GT.INMAT) THEN
  1317. *
  1318. * Et si le materiau n'est pas totalement decode
  1319. *
  1320. CALL MODPLA(MOMODL,NMOD)
  1321. INMAT= INMAT+1
  1322. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1323. IF (IMOD.EQ.0) THEN
  1324. CMATE=' '
  1325. IMATE=0
  1326. INATU=0
  1327. ELSE IF (IMOD.EQ.16) THEN
  1328. * MOHR COULOMB
  1329. INATU=34
  1330. ELSE IF (IMOD.EQ.38) THEN
  1331. * ECROUIS_INSA
  1332. INATU=67
  1333. ELSE IF (IMOD.EQ.39) THEN
  1334. * PARFAIT_INSA
  1335. INATU=68
  1336. ELSE IF (IMOD.EQ.70) THEN
  1337. * ISS_GRANGE
  1338. INATU=151
  1339. ELSE IF (IMOD.EQ.71) THEN
  1340. * RUP_THER
  1341. INATU=152
  1342. ELSE
  1343. CMATE=' '
  1344. imate=0
  1345. inatu=0
  1346. ENDIF
  1347. ENDIF
  1348. c mistral :
  1349. ELSE IF (INLI.EQ.3) THEN
  1350. *
  1351. * Comportement VISCOPLASTIQUE
  1352. * ---------------------------
  1353. IF (NMAT.GT.INMAT) THEN
  1354. *
  1355. * Et si le materiau n'est pas totalement decode
  1356. *
  1357. CALL MODVIS(MOMODL,NMOD)
  1358. INMAT=INMAT+1
  1359. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1360. IF (IMOD.EQ.0 ) THEN
  1361. CMATE=' '
  1362. IMATE=0
  1363. INATU=0
  1364. ELSE IF (IMOD.EQ.14) THEN
  1365. * MISTRAL
  1366. INATU = 94
  1367. ELSE IF (IMOD.EQ.35) THEN
  1368. * FLUORTHO3D 'Sellier et al'
  1369. INATU = 191
  1370.  
  1371. ELSE
  1372. CMATE=' '
  1373. IMATE=0
  1374. INATU=0
  1375. ENDIF
  1376. ENDIF
  1377. c mistral.
  1378. ELSE IF(INLI.EQ.4) THEN
  1379. *
  1380. * Comportement endommageable
  1381. * --------------------------
  1382.  
  1383. IF (NMAT.GT.INMAT) THEN
  1384. *
  1385. * Et si le materiau n'est pas totalement decode
  1386. *
  1387. CALL MODEND(MOMODL,NMOD)
  1388. INMAT= INMAT+1
  1389. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1390. IF (IMOD.EQ.0) THEN
  1391. CMATE=' '
  1392. IMATE=0
  1393. INATU=0
  1394. ELSE IF (IMOD.EQ.4) THEN
  1395. * SIC_SIC
  1396. INATU=88
  1397. ELSE IF (IMOD.EQ.11) THEN
  1398. * SICSCAL - mod�le scalaire SiCf/SiC ONERA
  1399. INATU=131
  1400. ELSE IF (IMOD.EQ.12) THEN
  1401. * SICTENS - mod�le pseudo tensoriel SiCf/SiC ONERA
  1402. INATU=132
  1403. ELSE
  1404. CMATE=' '
  1405. IMATE=0
  1406. INATU=0
  1407. ENDIF
  1408. ENDIF
  1409. C
  1410. ELSE IF (INLI.EQ.6) THEN
  1411. C
  1412. C Comportement NON_LINEAIRE
  1413. C -------------------------
  1414. IF (NMAT.GT.INMAT) THEN
  1415. C
  1416. C Et si le materiau n'est pas totalement decode
  1417. C
  1418. CALL MODENL(MOMODL,NMOD)
  1419. INMAT=INMAT+1
  1420. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1421. IF (IMOD.EQ.2) THEN
  1422. C UTILISATEUR
  1423. IF (NMAT.GT.INMAT) THEN
  1424. INMAT=INMAT+1
  1425. INATU = -1
  1426. ELSE
  1427. CALL ERREUR(952)
  1428. RETURN
  1429. ENDIF
  1430. ELSE
  1431. C Autres cas non autorises
  1432. CMATE=' '
  1433. IMATE=0
  1434. INATU=0
  1435. ENDIF
  1436. ELSE
  1437. C Pas de comportement par defaut
  1438. CMATE=' '
  1439. IMATE=0
  1440. INATU=0
  1441. ENDIF
  1442. ENDIF
  1443. ENDIF
  1444. *
  1445. *
  1446. ELSE IF (IMATE.EQ.3) THEN
  1447. C
  1448. C >>>>>>>>>>> Dans le cas d'une formulation elastique anisotrope
  1449. C on se limite pour l'instant au comportement
  1450. C 'NON_LINEAIRE' 'UTILISATEUR'
  1451. C
  1452. IF (NMAT.GT.INMAT) THEN
  1453. C
  1454. C Et si le materiau n'est pas totalement decode
  1455. C
  1456. CALL MODNLI(MOMODL,NMOD)
  1457. INMAT=INMAT+1
  1458. CALL PLACE(MOMODL,NMOD,INLI,MATMOD(INMAT))
  1459. IF (INLI.NE.6) THEN
  1460. C
  1461. C Materiau non reconnu
  1462. C
  1463. CMATE=' '
  1464. IMATE=0
  1465. INATU=0
  1466. C
  1467. ELSE
  1468. C
  1469. C Comportement NON_LINEAIRE
  1470. C -------------------------
  1471. IF (NMAT.GT.INMAT) THEN
  1472. C
  1473. C Et si le materiau n'est pas totalement decode
  1474. C
  1475. CALL MODENL(MOMODL,NMOD)
  1476. INMAT=INMAT+1
  1477. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1478. IF (IMOD.EQ.2) THEN
  1479. C UTILISATEUR
  1480. IF (NMAT.GT.INMAT) THEN
  1481. INMAT=INMAT+1
  1482. INATU = -1
  1483. ELSE
  1484. CALL ERREUR(952)
  1485. RETURN
  1486. ENDIF
  1487. ELSE
  1488. C Autres cas non autorises
  1489. CMATE=' '
  1490. IMATE=0
  1491. INATU=0
  1492. ENDIF
  1493. ELSE
  1494. C Pas de comportement par defaut
  1495. CMATE=' '
  1496. IMATE=0
  1497. INATU=0
  1498. ENDIF
  1499. ENDIF
  1500. ENDIF
  1501. C
  1502. C
  1503. ELSE IF (IMATE.EQ.4) THEN
  1504. *
  1505. * >>>>>>>>>>> Dans le cas d'une formulation elastique unidirectionnelle
  1506. * on se limite pour l'instant � quelques comportements
  1507. * plastiques et visqueux
  1508. * + le comportement 'NON_LINEAIRE' 'UTILISATEUR'
  1509. *
  1510. IF (NMAT.GT.INMAT) THEN
  1511. *
  1512. * Et si le materiau n'est pas totalement decode
  1513. *
  1514. CALL MODNLI(MOMODL,NMOD)
  1515. INMAT=INMAT+1
  1516. CALL PLACE(MOMODL,NMOD,INLI,MATMOD(INMAT))
  1517. IF (INLI.NE.1.AND.INLI.NE.2.AND.INLI.NE.6) THEN
  1518. *
  1519. * Materiau non reconnu
  1520. *
  1521. CMATE=' '
  1522. IMATE=0
  1523. INATU=0
  1524. *
  1525. ELSE IF(INLI.EQ.1) THEN
  1526. *
  1527. * Comportement plastique
  1528. * ----------------------
  1529.  
  1530. IF (NMAT.GT.INMAT) THEN
  1531. *
  1532. * Et si le materiau n'est pas totalement decode
  1533. *
  1534. CALL MODPLA(MOMODL,NMOD)
  1535. INMAT= INMAT+1
  1536. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1537. IF (IMOD.EQ.0) THEN
  1538. CMATE=' '
  1539. IMATE=0
  1540. INATU=0
  1541. ELSE IF (IMOD.EQ.70) THEN
  1542. * ISS_GRANGE
  1543. INATU=151
  1544. ELSE IF (IMOD.EQ.71) THEN
  1545. * RUP_THER
  1546. INATU=152
  1547. ELSE IF (IMOD.EQ.1) THEN
  1548. * ISOTROPE
  1549. INATU=5
  1550. ELSE IF (IMOD.EQ.2) THEN
  1551. * PARFAIT
  1552. INATU=1
  1553. ELSE IF (IMOD.EQ.3) THEN
  1554. * CINEMATIQUE
  1555. INATU=4
  1556. ELSE IF (IMOD.EQ.21) THEN
  1557. * ACIER_UNI
  1558. INATU=40
  1559. ENDIF
  1560. ELSE
  1561. *
  1562. * Option par defaut
  1563. *
  1564. INATU=5
  1565. ENDIF
  1566. *
  1567. ELSE IF(INLI.EQ.2) THEN
  1568. *
  1569. * Comportement FLUAGE
  1570. * -------------------
  1571.  
  1572. IF (NMAT.GT.INMAT) THEN
  1573. *
  1574. * Et si le materiau n'est pas totalement decode
  1575. *
  1576. CALL MODFLU(MOMODL,NMOD)
  1577. INMAT= INMAT+1
  1578. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1579. IF (IMOD.EQ.0) THEN
  1580. CMATE=' '
  1581. IMATE=0
  1582. INATU=0
  1583. ELSE IF (IMOD.EQ.9) THEN
  1584. * MAXWELL
  1585. INATU=74
  1586. ENDIF
  1587. ELSE
  1588. *
  1589. * Option par defaut
  1590. *
  1591. INATU=74
  1592. ENDIF
  1593. C
  1594. ELSE IF (INLI.EQ.6) THEN
  1595. C
  1596. C Comportement NON_LINEAIRE
  1597. C -------------------------
  1598. IF (NMAT.GT.INMAT) THEN
  1599. C
  1600. C Et si le materiau n'est pas totalement decode
  1601. C
  1602. CALL MODENL(MOMODL,NMOD)
  1603. INMAT=INMAT+1
  1604. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1605. IF (IMOD.EQ.2) THEN
  1606. C UTILISATEUR
  1607. IF (NMAT.GT.INMAT) THEN
  1608. INMAT=INMAT+1
  1609. INATU = -1
  1610. ELSE
  1611. CALL ERREUR(952)
  1612. RETURN
  1613. ENDIF
  1614. ELSE
  1615. C Autres cas non autorises
  1616. CMATE=' '
  1617. IMATE=0
  1618. INATU=0
  1619. ENDIF
  1620. ELSE
  1621. C Pas de comportement par defaut
  1622. CMATE=' '
  1623. IMATE=0
  1624. INATU=0
  1625. ENDIF
  1626. ENDIF
  1627. ENDIF
  1628. *
  1629. * MODAL et STATIQUE
  1630. *
  1631. ELSE IF (IMATE.EQ.9.OR.IMATE.EQ.10) THEN
  1632. IF (NMAT.GT.INMAT) THEN
  1633. *
  1634. * Et si le materiau n'est pas totalement decode
  1635. *
  1636. CALL MODNLI(MOMODL,NMOD)
  1637. * INMAT=INMAT+1
  1638. CALL PLACE(MOMODL,NMOD,INLI,MATMOD(INMAT))
  1639. IF (INLI.EQ.0) THEN
  1640. *
  1641. * Materiau non reconnu
  1642. *
  1643. CMATE=' '
  1644. IMATE=0
  1645. INATU=0
  1646. ELSE IF (INLI .EQ. 1) THEN
  1647. IF (NMAT.GT.INMAT) THEN
  1648. *
  1649. * Et si le materiau n'est pas totalement decode
  1650. *
  1651. CALL MODPLA(MOMODL,NMOD)
  1652. INMAT= INMAT+1
  1653. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1654. IF (IMOD.EQ.0) THEN
  1655. CMATE=' '
  1656. IMATE=0
  1657. INATU=0
  1658. ELSE IF (IMOD.EQ.1) THEN
  1659. * ISOTROPE
  1660. INATU=5
  1661. ELSE IF (IMOD.EQ.2) THEN
  1662. * PARFAIT
  1663. INATU=1
  1664. ELSE IF (IMOD.EQ.3) THEN
  1665. INATU = 3
  1666. ENDIF
  1667. * CINEMATIQUE
  1668. ENDIF
  1669. ELSE IF (INLI .EQ. 8) THEN
  1670. IMATE = 1
  1671. INMAT = INMAT - 1
  1672. GOTO 25
  1673. ENDIF
  1674. ENDIF
  1675. *
  1676. * >>>>>>>>>>> CAS DES POUTRES A FORMULATION SECTION
  1677. *
  1678. ELSE IF (IMATE.EQ.11) THEN
  1679. *
  1680. IF (NMAT.GT.INMAT) THEN
  1681. *
  1682. * Et si le materiau n'est pas totalement decode
  1683. *
  1684. CALL MODNLI(MOMODL,NMOD)
  1685. INMAT=INMAT+1
  1686. CALL PLACE(MOMODL,NMOD,INLI,MATMOD(INMAT))
  1687. IF (INLI.NE.1) THEN
  1688. *
  1689. * Materiau non reconnu
  1690. *
  1691. CMATE=' '
  1692. IMATE=0
  1693. INATU=0
  1694. ELSE
  1695. *
  1696. * Comportement plastique
  1697. * ----------------------
  1698.  
  1699. IF (NMAT.GT.INMAT) THEN
  1700. *
  1701. * Et si le materiau n'est pas totalement decode
  1702. *
  1703. CALL MODPLA(MOMODL,NMOD)
  1704. INMAT= INMAT+1
  1705. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1706. IF (IMOD.EQ.0) THEN
  1707. CMATE=' '
  1708. IMATE=0
  1709. INATU=0
  1710. ELSE IF (IMOD.EQ.22) THEN
  1711. * SECTION
  1712. INATU=41
  1713. ELSE
  1714. *
  1715. * cas non autorise
  1716. *
  1717. CMATE=' '
  1718. IMATE=0
  1719. INATU=0
  1720. ENDIF
  1721. *
  1722. ENDIF
  1723. ENDIF
  1724. ENDIF
  1725.  
  1726. ELSE IF (IMATE.EQ.12) THEN
  1727. * ************************
  1728. * | cas 'ZONE_COHESIVE' |
  1729. * ************************
  1730. * >>>>>>>>>>> Dans le cas d'une formulation elastique zone_cohesive
  1731. * on se limite pour l'instant a quelques comportements
  1732. * plastique_endo
  1733. * + le comportement 'NON_LINEAIRE' 'UTILISATEUR'
  1734.  
  1735. IF (NMAT.GT.INMAT) THEN
  1736. *
  1737. * Et si le materiau n'est pas totalement decode
  1738. *
  1739. CALL MODNLI(MOMODL,NMOD)
  1740. INMAT=INMAT+1
  1741. CALL PLACE(MOMODL,NMOD,INLI,MATMOD(INMAT))
  1742. IF (INLI.NE.5.AND.INLI.NE.6) THEN
  1743. *
  1744. * Materiau non reconnu
  1745. *
  1746. CMATE=' '
  1747. IMATE=0
  1748. INATU=0
  1749. *
  1750. ELSE IF(INLI.EQ.5) THEN
  1751. *
  1752. * Comportement plastique_endo
  1753. * --------------------------
  1754.  
  1755. IF (NMAT.GT.INMAT) THEN
  1756. *
  1757. * Et si le materiau n'est pas totalement decode
  1758. *
  1759. CALL MODPLE(MOMODL,NMOD)
  1760. INMAT= INMAT+1
  1761. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1762. IF (IMOD.EQ.0) THEN
  1763. CMATE=' '
  1764. IMATE=0
  1765. INATU=0
  1766. ELSE IF (IMOD.EQ.10) THEN
  1767. * WELLS
  1768. INATU=156
  1769. ENDIF
  1770. ELSE
  1771. *
  1772. * Option par defaut
  1773. *
  1774. INATU=156
  1775. ENDIF
  1776. *
  1777. C
  1778. ELSE IF (INLI.EQ.6) THEN
  1779. C
  1780. C Comportement NON_LINEAIRE
  1781. C -------------------------
  1782. IF (NMAT.GT.INMAT) THEN
  1783. C
  1784. C Et si le materiau n'est pas totalement decode
  1785. C
  1786. CALL MODENL(MOMODL,NMOD)
  1787. INMAT=INMAT+1
  1788. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1789. IF (IMOD.EQ.2) THEN
  1790. C UTILISATEUR
  1791. IF (NMAT.GT.INMAT) THEN
  1792. INMAT=INMAT+1
  1793. INATU = -1
  1794. ELSE
  1795. CALL ERREUR(952)
  1796. RETURN
  1797. ENDIF
  1798. ELSE
  1799. C Autres cas non autorises
  1800. CMATE=' '
  1801. IMATE=0
  1802. INATU=0
  1803. ENDIF
  1804. ELSE
  1805. C Pas de comportement par defaut
  1806. CMATE=' '
  1807. IMATE=0
  1808. INATU=0
  1809. ENDIF
  1810. ENDIF
  1811. ENDIF
  1812.  
  1813. ** ELSE IF (IMATE.GT.12) THEN
  1814. ENDIF
  1815.  
  1816. if (NMAT.GT.INMAT) then
  1817. do jma=1,nmat
  1818. if(matmod(jma).eq.'CRIP') then
  1819. INMAT = INMAT+1
  1820. elseif(matmod(jma).eq.'FUSION') then
  1821. INMAT = INMAT+1
  1822. endif
  1823. enddo
  1824. endif
  1825.  
  1826. *--------------------------------------------------------------------*
  1827. * 3/ CAS DE LA FORMULATION 'LIQUIDE ' *
  1828. *--------------------------------------------------------------------*
  1829. ELSE IF (forfo1.EQ.'LIQUIDE') THEN
  1830.  
  1831. IF (NMAT.EQ.0) THEN
  1832. CMATE='ISOTROPE'
  1833. IMATE=1
  1834. ELSE IF (NMAT.EQ.1) THEN
  1835. CALL PLACE(LISTMT,3,IPLAC,MATMOD(1))
  1836. INMAT=INMAT+1
  1837. IF (IPLAC.EQ.1) THEN
  1838. CMATE = MATMOD(1)
  1839. IMATE=1
  1840. ENDIF
  1841. ENDIF
  1842.  
  1843. *--------------------------------------------------------------------*
  1844. * 4/ CAS DE LA FORMULATION 'THERMIQUE' 'CONVECTION' *
  1845. *--------------------------------------------------------------------*
  1846. ELSE IF (forfo1.EQ.'CONVECTION') THEN
  1847. CMATE = 'CONVECTI'
  1848. IMATE = 1
  1849. IF (NMAT.NE.0)THEN
  1850. if (nmat.gt.2) then
  1851. CALL MODCON(MOMODL,NMOD)
  1852. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(3))
  1853. INMAT=INMAT+1
  1854. IF (IPLAC.NE.0)THEN
  1855. CMATE = MOMODL(IPLAC)
  1856. IMATE = IPLAC
  1857. ENDIF
  1858. endif
  1859. ENDIF
  1860. * comme il y a ici les mots isotrope et convection pour modele thermique
  1861. INMAT=INMAT+2
  1862. *
  1863. *--------------------------------------------------------------------*
  1864. * 9/ CAS DE LA FORMULATION 'THERMIQUE' 'RAYONNEMENT' *
  1865. *--------------------------------------------------------------------*
  1866. ELSE IF (forfo1.EQ.'RAYONNEMENT') THEN
  1867. CMATE ='RAYONNEM'
  1868. IMATE = 1
  1869. if(NMAT.ne.0) then
  1870. call modray(momodl,nmod)
  1871. call place (momodl,nmod,iplac,matmod(3))
  1872. if( iplac.eq.1)then
  1873. imate=2
  1874. inmat=1
  1875. elseif( iplac.eq.2) then
  1876. imate=3
  1877. inmat=1
  1878. elseif(iplac.eq.3) then
  1879. imate=4
  1880. iplacf=0
  1881. iplacs=0
  1882. iplacc=0
  1883. call place(matmod,nmat,iplacf,'FERME ')
  1884. call place(matmod,nmat,iplacs,'SYMETRIE ')
  1885. call place(matmod,nmat,iplacc,'CONVEXE ')
  1886. icas=0
  1887. if( iplacf.ne.0) icas=icas+1
  1888. if( iplacs.ne.0) icas=icas+1
  1889. if( iplacc.ne.0) icas=icas+1
  1890. * inmat=inmat+icas
  1891. if( icas.eq.0) then
  1892. inatu= 1
  1893. inmat=1
  1894. elseif(icas.eq.1)then
  1895. inmat=2
  1896. if(iplacf.ne.0) then
  1897. inatu=2
  1898. elseif(iplacs.ne.0) then
  1899. inatu=3
  1900. else
  1901. inatu=4
  1902. endif
  1903. elseif( icas.eq.2) then
  1904. inmat=3
  1905. if(iplacf.eq.0) then
  1906. inatu=5
  1907. elseif(iplacs.eq.0) then
  1908. inatu=6
  1909. else
  1910. inatu=7
  1911. endif
  1912. else
  1913. inmat=4
  1914. inatu=8
  1915. endif
  1916. endif
  1917. endif
  1918. CALL place (matmod,nmat,iplac,'TRAYO')
  1919. if(iplac.ne.0) inmat=inmat+1
  1920. * comme il y a le mot isotrope et le mot rayonnement si modele thermique
  1921. inmat=inmat+2
  1922. *
  1923. *--------------------------------------------------------------------*
  1924. * 22/ CAS DE LA FORMULATION 'THERMIQUE' 'SOURCE' *
  1925. *--------------------------------------------------------------------*
  1926. ELSE IF (forfo1.EQ.'SOURCE') THEN
  1927. INMAT = 1
  1928. CMATE = 'SOURCE'
  1929. C Par defaut, formulation generale :
  1930. INATU = 1
  1931. IMATE = 1
  1932. CALL MODSRC(MOMODL,NMOD)
  1933. C On identifie le modele de SOURCE gaussienne...
  1934. C MATMOD(2) = mot donne dans MATE apres le mot 'SOURCE'
  1935. IF (NMAT.GT.1) THEN
  1936. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(2))
  1937. C Cas Source Uniforme
  1938. IF (IPLAC.EQ.1) THEN
  1939. C INMAT = INMAT+1
  1940. C INATU = 1
  1941. C IMATE = 1
  1942. C Cas Source Gaussienne
  1943. C ELSEIF (IPLAC.EQ.2) THEN
  1944. INMAT = INMAT+1
  1945. INATU = 2
  1946. C Gaussienne : Spherique, Elliptique ou Elargie
  1947. IF (NMAT.GT.2) THEN
  1948. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(3))
  1949. IF (IPLAC.EQ.2) THEN
  1950. INMAT = INMAT+1
  1951. IMATE = 1
  1952. ELSEIF (IPLAC.EQ.3) THEN
  1953. INMAT = INMAT+1
  1954. IMATE = 2
  1955. ELSEIF (IPLAC.EQ.4) THEN
  1956. INMAT = INMAT+1
  1957. IMATE = 3
  1958. ELSE
  1959. MOTERR(1:40) = 'SOURCE '//MATMOD(2)//MATMOD(3)
  1960. CALL ERREUR(1048)
  1961. RETURN
  1962. ENDIF
  1963. ELSE
  1964. C Par defaut, Gaussienne Isotrope
  1965. IMATE = 1
  1966. ENDIF
  1967. ELSE
  1968. MOTERR(1:8) = MATMOD(2)
  1969. MOTERR(9:16) = 'SOURCE '
  1970. CALL ERREUR(81)
  1971. RETURN
  1972. ENDIF
  1973. ENDIF
  1974. *
  1975. *--------------------------------------------------------------------*
  1976. * 11/ CAS DE LA FORMULATION 'NAVIER_STOKES' *
  1977. *--------------------------------------------------------------------*
  1978. ELSE IF (forfo1.EQ.'NAVIER_STOKES') THEN
  1979. INMAT=1
  1980. if(nmat.gt.0) then
  1981. call place(LINAST,4,IPLAC,MATMOD(1))
  1982. if (iplac.eq.4) then
  1983. imate = iplac
  1984. CMATE = 'NLIN'
  1985. else
  1986. CMATE='NEWTONIE'
  1987. IMATE=1
  1988. endif
  1989. else
  1990. CMATE='NEWTONIE'
  1991. IMATE=1
  1992. endif
  1993. *
  1994. *--------------------------------------------------------------------*
  1995. * 13/ CAS DE LA FORMULATION 'EULER' *
  1996. *--------------------------------------------------------------------*
  1997. ELSE IF (forfo1.EQ.'EULER') THEN
  1998. INMAT=1
  1999. CMATE='NEWTONIE'
  2000. IMATE=1
  2001. *
  2002. *--------------------------------------------------------------------*
  2003. * 10/ CAS DE LA FORMULATION 'MAGNETODYNAMIQUE' *
  2004. *--------------------------------------------------------------------*
  2005. ELSE IF (forfo1.EQ.'MAGNETODYNAMIQUE') THEN
  2006. IF(NMAT.NE.0) THEN
  2007. IF(MATMOD(1).EQ.'POTENTIEL_VECTEU') THEN
  2008. CMATE='CORFOU '
  2009. IMATE=1
  2010. INMAT=INMAT+1
  2011. ELSE
  2012. CALL PLACE(LISTMT,3,IPLAC,MATMOD(1))
  2013. IF(IPLAC.NE.0) THEN
  2014. CMATE=LISTMT(IPLAC)
  2015. IMATE=IPLAC
  2016. INMAT=INMAT+1
  2017. ENDIF
  2018. ENDIF
  2019. IF(NMAT.GT.INMAT) THEN
  2020. CALL PLACE(LISTMT,3,IPLAC,MATMOD(2))
  2021. IF(IPLAC.NE.0) THEN
  2022. CMATE=LISTMT(IPLAC)
  2023. IMATE=IPLAC
  2024. INMAT=INMAT+1
  2025. ENDIF
  2026. ENDIF
  2027. ELSE
  2028. CMATE='CORFOU '
  2029. IMATE=1
  2030. INMAT=INMAT+1
  2031. ENDIF
  2032. *
  2033. *--------------------------------------------------------------------*
  2034. * 8/ CAS DE LA FORMULATION 'CONTACT' *
  2035. *--------------------------------------------------------------------*
  2036. ELSE IF (forfo1.EQ.'CONTACT') THEN
  2037. INMAT=1
  2038. imate=0
  2039. inatu=0
  2040. * imate=1 unilateral; imate=2 maintenu; inatu=0 pas de frottement
  2041. * inatu=1 coulomb; inatu=2 frocable
  2042. 88 continue
  2043. CALL MOCONT(MOMODL,NMOD)
  2044.  
  2045. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(inmat))
  2046. if(iplac.eq.1) then
  2047. CMATE='UNILATERAL'
  2048. imate=1
  2049. elseif (IPLAC.EQ.2) THEN
  2050. CMATE='PERMANENT'
  2051. imate=2
  2052. elseif (IPLAC.EQ.3) THEN
  2053. inatu=1
  2054. elseif (iplac.eq.4) then
  2055. inatu=1
  2056. elseif(iplac.eq.5) then
  2057. inatu=2
  2058. endif
  2059. inmat=inmat+1
  2060. if(inmat.le.nmat) go to 88
  2061.  
  2062. *--------------------------------------------------------------------*
  2063. * 8/ CAS DE LA FORMULATION 'CONTRAINTE' *
  2064. *--------------------------------------------------------------------*
  2065. ELSE IF (forfo1.EQ.'CONTRAINTE') THEN
  2066. INMAT=1
  2067. imate=0
  2068. inatu=0
  2069. *** imate=1 unilateral; imate=2 maintenu; inatu=0 pas de frottement
  2070. * inatu=1 deplacement; inatu=2 rotation; inatu=3 relation
  2071. CALL MODCLI(MOMODL,NMOD)
  2072. inatu=0
  2073. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(inmat))
  2074. if(iplac.eq.1) then
  2075. CMATE='DEPLACEMENT'
  2076. inatu=1
  2077. elseif (IPLAC.EQ.2) THEN
  2078. CMATE='ROTATION'
  2079. inatu=2
  2080. elseif (IPLAC.EQ.3) THEN
  2081. CMATE='RELATION'
  2082. inatu=3
  2083. endif
  2084. inmat=inmat+1
  2085.  
  2086. *--------------------------------------------------------------------*
  2087. * 12/ CAS DE LA FORMULATION 'MELANGE' *
  2088. * on renvoie le premier modele trouve !!! *
  2089. *--------------------------------------------------------------------*
  2090. ELSE IF (forfo1.EQ.'MELANGE') THEN
  2091. IF (NMAT.GE.1)THEN
  2092. CALL MODMEL(MOMODL,NMOD)
  2093. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
  2094. IF (IPLAC.GT.0)THEN
  2095. IMATE = IPLAC
  2096. CMATE = MOMODL(IPLAC)
  2097. ELSE
  2098. * il y a un probleme
  2099. INMAT = -1
  2100. ENDIF
  2101. * on ne decortique pas plus pour l instant
  2102. ELSE
  2103. * par defaut
  2104. CMATE = momodl(3)
  2105. IMATE = 3
  2106. ENDIF
  2107. inmat = inmat + 1
  2108. *
  2109. *--------------------------------------------------------------------*
  2110. * 14/ CAS DE LA FORMULATION 'FISSURE' *
  2111. *--------------------------------------------------------------------*
  2112. ELSE IF (forfo1.EQ.'FISSURE') THEN
  2113. IF (NMAT.NE.0) THEN
  2114. * mode de condensation
  2115. CALL MODCDE(MOMODL,NMOD)
  2116. CALL PLACE(MOMODL,NMOD,IPLA1,MATMOD(1))
  2117. CALL PLACE(MOMODL,NMOD,IPLA2,MATMOD(2))
  2118. CALL PLACE(MOMODL,NMOD,IPLA3,MATMOD(3))
  2119. IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN
  2120. CMAT1='MA'
  2121. ELSE
  2122. INMAT=INMAT+1
  2123. IF (IPLA1.GT.0) CMAT1=MATMOD(1)(1:2)
  2124. IF (IPLA2.GT.0) CMAT1=MATMOD(2)(1:2)
  2125. IF (IPLA3.GT.0) CMAT1=MATMOD(3)(1:2)
  2126. END IF
  2127. *
  2128. * comportement de la vapeur
  2129. CALL MODVAP(MOMODL,NMOD)
  2130. CALL PLACE(MOMODL,NMOD,IPLA1,MATMOD(1))
  2131. CALL PLACE(MOMODL,NMOD,IPLA2,MATMOD(2))
  2132. CALL PLACE(MOMODL,NMOD,IPLA3,MATMOD(3))
  2133. IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN
  2134. CMAT2='PA'
  2135. ELSE
  2136. INMAT=INMAT+1
  2137. IF (IPLA1.GT.0) CMAT2=MATMOD(1)(1:2)
  2138. IF (IPLA2.GT.0) CMAT2=MATMOD(2)(1:2)
  2139. IF (IPLA3.GT.0) CMAT2=MATMOD(3)(1:2)
  2140. END IF
  2141. *
  2142. * lois de frottement
  2143. CALL MODFRT(MOMODL,NMOD)
  2144. CALL PLACE(MOMODL,NMOD,IPLA1,MATMOD(1))
  2145. CALL PLACE(MOMODL,NMOD,IPLA2,MATMOD(2))
  2146. CALL PLACE(MOMODL,NMOD,IPLA3,MATMOD(3))
  2147. IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN
  2148. CMAT3='BLAS'
  2149. ELSE
  2150. INMAT=INMAT+1
  2151. IF (IPLA1.GT.0) CMAT3=MATMOD(1)(8:11)
  2152. IF (IPLA2.GT.0) CMAT3=MATMOD(2)(8:11)
  2153. IF (IPLA3.GT.0) CMAT3=MATMOD(3)(8:11)
  2154. END IF
  2155. *
  2156. CMATE = CMAT1(1:2)//CMAT2(1:2)
  2157. CMATE = CMATE(1:4)//CMAT3(1:4)
  2158. IMATE=1
  2159. INATU=1
  2160. ELSE
  2161. *
  2162. * par defaut vapeur=gaz parfait, condensation= en masse,
  2163. * frottement=canal lisse
  2164. *
  2165. CMATE = 'MAPABLAS'
  2166. IMATE=1
  2167. INATU=1
  2168. END IF
  2169. *--------------------------------------------------------------------*
  2170. * 15/ CAS DE LA FORMULATION 'LIAISON' *
  2171. *--------------------------------------------------------------------*
  2172. ELSE IF (forfo1.EQ.'LIAISON') THEN
  2173. IMOD = 0
  2174. IMO2 = 0
  2175. CALL MODLIA(MOMODL,NMOD)
  2176. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(1))
  2177. IF (IMOD.EQ.0) THEN
  2178. CMATE=' '
  2179. IMATE=0
  2180. INATU=0
  2181. ELSE
  2182. IF (NMAT.GT.1) THEN
  2183. CALL PLACE(MOMODL,NMOD,IMO2,MATMOD(2))
  2184. ENDIF
  2185. ENDIF
  2186. IF (IMOD.EQ.1.AND.IMO2.EQ.3) THEN
  2187. CMATE='PO_PL_FL'
  2188. IMATE=1
  2189. ELSEIF (IMOD.EQ.1.AND.IMO2.EQ.2) THEN
  2190. CMATE='PO_PL_FR'
  2191. IMATE=2
  2192. ELSEIF (IMOD.EQ.1.AND.IMO2.EQ.0) THEN
  2193. CMATE='PO_PL'
  2194. IMATE=3
  2195. ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.2) THEN
  2196. CMATE='PO_PO_FR'
  2197. IMATE=4
  2198. ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.5) THEN
  2199. CMATE='PO_PO_DP'
  2200. IMATE=5
  2201. ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.6) THEN
  2202. CMATE='PO_PO_RP'
  2203. IMATE=6
  2204. ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.0) THEN
  2205. CMATE='PO_PO'
  2206. IMATE=7
  2207. ELSEIF (IMOD.EQ.8.AND.IMO2.EQ.9) THEN
  2208. CMATE='PO_CE_MO'
  2209. IMATE=8
  2210. ELSEIF (IMOD.EQ.8.AND.IMO2.EQ.2) THEN
  2211. CMATE='PO_CE_FR'
  2212. IMATE=9
  2213. ELSEIF (IMOD.EQ.8.AND.IMO2.EQ.0) THEN
  2214. CMATE='PO_CE'
  2215. IMATE=10
  2216. ELSEIF (IMOD.EQ.11.AND.IMO2.EQ.2) THEN
  2217. CMATE='CE_PL_FR'
  2218. IMATE=11
  2219. ELSEIF (IMOD.EQ.12.AND.IMO2.EQ.2) THEN
  2220. CMATE='CE_CE_FR'
  2221. IMATE=12
  2222. ELSEIF (IMOD.EQ.10.AND.IMO2.EQ.13) THEN
  2223. CMATE='PR_PR_IN'
  2224. IMATE=13
  2225. ELSEIF (IMOD.EQ.10.AND.IMO2.EQ.14) THEN
  2226. CMATE='PR_PR_EX'
  2227. IMATE=14
  2228. ELSEIF (IMOD.EQ.15.AND.IMO2.EQ.2) THEN
  2229. CMATE='LI_LI_FR'
  2230. IMATE=15
  2231. ELSEIF (IMOD.EQ.16.AND.IMO2.EQ.2) THEN
  2232. CMATE='LI_CE_FR'
  2233. IMATE=16
  2234. ELSEIF (IMOD.EQ.17.AND.IMO2.EQ.22) THEN
  2235. CMATE='PA_FL_RO'
  2236. IMATE=17
  2237. ELSEIF (IMOD.EQ.18.AND.IMO2.EQ.19) THEN
  2238. CMATE='COUP_DEP'
  2239. IMATE=18
  2240. ELSEIF (IMOD.EQ.18.AND.IMO2.EQ.20) THEN
  2241. CMATE='COUP_VIT'
  2242. IMATE=19
  2243. ELSEIF (IMOD.EQ.21.AND.IMO2.EQ.0) THEN
  2244. CMATE='POLYNOMI'
  2245. IMATE=20
  2246. ELSEIF (IMOD.EQ.23.AND.IMO2.EQ.24) THEN
  2247. CMATE='NEWMOD'
  2248. IMATE=23
  2249. ELSE
  2250. CMATE=' '
  2251. IMATE=0
  2252. INATU=0
  2253. ENDIF
  2254. INMAT = NMAT
  2255.  
  2256. *--------------------------------------------------------------------*
  2257. * 16/ CAS DE LA FORMULATION 'THERMOHYDRIQUE' *
  2258. *--------------------------------------------------------------------*
  2259. ELSE IF (forfo1.EQ.'THERMOHYDRIQUE') THEN
  2260. IF (NMAT.NE.0)THEN
  2261. IF(MATMOD(1).NE.'SCHREFLER') THEN
  2262. CMATE=' '
  2263. IMATE=0
  2264. INATU=0
  2265. ELSE
  2266. INMAT=1
  2267. CMATE='SCHREFLER'
  2268. IMATE=1
  2269. ENDIF
  2270. ELSE
  2271. INMAT=INMAT+1
  2272. CMATE = 'SCHREFLER'
  2273. IMATE=1
  2274. ENDIF
  2275. *
  2276. *----------------------------------------------------------------------*
  2277. * 17/ CAS DE LA FORMULATION 'ELECTROSTATIQUE' *
  2278. *----------------------------------------------------------------------*
  2279. ELSE IF ( forfo1.EQ.'ELECTROSTATIQUE' ) THEN
  2280. INATU = 0
  2281. * Par defaut la formulation est isotrope
  2282. IF (NMAT.EQ.0) THEN
  2283. CMATE = 'ISOTROPE'
  2284. IMATE = 1
  2285. ELSE
  2286. INMAT = INMAT+1
  2287. CALL PLACE(LISTMT,3,IPLAC,MATMOD(INMAT))
  2288. C Recuperation de la "tropie"
  2289. IF (IPLAC.NE.0) THEN
  2290. CMATE = MATMOD(INMAT)
  2291. IMATE = IPLAC
  2292. INMAT = INMAT+1
  2293. ELSE
  2294. CMATE = 'ISOTROPE'
  2295. IMATE = 1
  2296. ENDIF
  2297. ENDIF
  2298. *
  2299. *----------------------------------------------------------------------*
  2300. * 18/ CAS DE LA FORMULATION 'DIFFUSION' *
  2301. *----------------------------------------------------------------------*
  2302. ELSE IF ( forfo1.EQ.'DIFFUSION' ) THEN
  2303. INATU = 0
  2304. * Par defaut la formulation est isotrope
  2305. IF (NMAT.EQ.0) THEN
  2306. CMATE = 'ISOTROPE'
  2307. IMATE = 1
  2308. ELSE
  2309. INMAT = INMAT+1
  2310. CALL PLACE(LISTMT,3,IPLAC,MATMOD(INMAT))
  2311. C Recuperation de la "tropie"
  2312. IF (IPLAC.NE.0) THEN
  2313. CMATE = MATMOD(INMAT)
  2314. IMATE = IPLAC
  2315. INMAT = INMAT+1
  2316. ELSE
  2317. CMATE = 'ISOTROPE'
  2318. IMATE = 1
  2319. ENDIF
  2320. IF (NMAT.GE.INMAT) THEN
  2321. CALL MODDIF(MOMODL,NMOD)
  2322. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  2323. IF (IPLAC.EQ.0) THEN
  2324. CMATE = ' '
  2325. IMATE = 0
  2326. ELSE
  2327. INMAT = INMAT+1
  2328. C FICK (lineaire)
  2329. IF (IPLAC.EQ.1) THEN
  2330. INATU = 0
  2331. C SORET (non lineaire)
  2332. ELSE IF (IPLAC.EQ.2) THEN
  2333. INATU = 1
  2334. C UTILISATEUR (non lineaire)
  2335. ELSE IF (IPLAC.EQ.3) THEN
  2336. IF (NMAT.GT.INMAT) THEN
  2337. INMAT = INMAT+1
  2338. INATU = -1
  2339. ELSE
  2340. CMATE = ' '
  2341. IMATE = 0
  2342. INATU = 0
  2343. CALL ERREUR(952)
  2344. RETURN
  2345. ENDIF
  2346. C DISSIPATION
  2347. ELSE IF (IPLAC.EQ.4) THEN
  2348. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  2349. C LINEAIRE
  2350. if (iplac.ge.5) then
  2351. CMATE = matmod(inmat)
  2352. inatu = iplac
  2353. endif
  2354. ENDIF
  2355. ENDIF
  2356. ENDIF
  2357. ENDIF
  2358. *
  2359. *----------------------------------------------------------------------*
  2360. * 19/ CAS DE LA FORMULATION 'CHARGEMENT ' *
  2361. *----------------------------------------------------------------------*
  2362. ELSE IF ( forfo1.EQ.'CHARGEMENT' ) THEN
  2363. INATU = 0
  2364. CALL MOCHAR(MOMODL,NMOD)
  2365. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
  2366. IF (IPLAC.EQ.0) THEN
  2367. CMATE = MATMOD(INMAT)
  2368. ELSE
  2369. CMATE = MATMOD(IPLAC)
  2370. IMATE = IPLAC
  2371. INMAT = INMAT+1
  2372. ENDIF
  2373.  
  2374. *---------------------------------------------------------------------*
  2375. * 20/ CAS DE LA FORMULATION 'METALLURGIE' *
  2376. *---------------------------------------------------------------------*
  2377. ELSE IF (forfo1 .EQ. 'METALLURGIE') THEN
  2378. CALL MOMETA(MOMODL,NMOD)
  2379. C La syntaxe veut que NMAT=4 si tout vas bien :
  2380. if( NMAT .lt. 4 ) then
  2381. CALL ERREUR(21)
  2382. RETURN
  2383. else
  2384. inmat = nmat
  2385. endif
  2386.  
  2387. CMATE = 'METALLUR'
  2388. INATU = 178
  2389.  
  2390. *---------------------------------------------------------------------*
  2391. * 21/ CAS DE LA FORMULATION 'CHANGEMENT_PHASE' *
  2392. *---------------------------------------------------------------------*
  2393. ELSEIF (forfo1 .EQ. 'CHANGEMENT_PHASE') THEN
  2394. CALL MOCHPH(MOMODL,NMOD)
  2395. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
  2396. DO iii=1,NMAT
  2397. IF(IPLAC.EQ.0 .OR. (IPLAC.NE.0 .AND. INATU.NE.0)) THEN
  2398. CMATE = ' '
  2399. INMAT = 0
  2400. IMATE = 0
  2401. INATU = 0
  2402. CALL ERREUR(21)
  2403. RETURN
  2404. ELSEIF (IPLAC .EQ. 1) THEN
  2405. CMATE = 'CHPH_PAR'
  2406. INMAT = INMAT+1
  2407. IMATE = IPLAC
  2408. INATU = 179
  2409. ELSEIF(IPLAC .EQ. 2) THEN
  2410. CMATE = 'CHPH_SOL'
  2411. INMAT = INMAT+1
  2412. IMATE = IPLAC
  2413. INATU = 180
  2414. ELSE
  2415. C Ne devrait jamais survenir
  2416. CALL ERREUR(5)
  2417. ENDIF
  2418. ENDDO
  2419.  
  2420. *--------------------------------------------------------------------*
  2421. * 22/ ENDIF correspondant a la FIN des formulations simples *
  2422. *--------------------------------------------------------------------*
  2423. ENDIF
  2424. *
  2425. ELSEIF (NFOR.EQ.2) THEN
  2426. *--------------------------------------------------------------------*
  2427. * NFOR=2 1/ CAS DE LA FORMULATION 'LIQUIDE '+ 'MECANIQUE' *
  2428. *--------------------------------------------------------------------*
  2429. forfo2=formod(2)
  2430. IF ( ( forfo1.EQ.'LIQUIDE '.AND.
  2431. & forfo2.EQ.'MECANIQUE ' )
  2432. & .OR. ( forfo2.EQ.'LIQUIDE '.AND.
  2433. & forfo1.EQ.'MECANIQUE ' ) ) THEN
  2434. *
  2435. * La formulation suffit
  2436. *
  2437. CMATE='LIQ+MECA'
  2438. IMATE=1
  2439. ENDIF
  2440. ENDIF
  2441.  
  2442. IF (NMAT .GT. INMAT) THEN
  2443. do jma=1,nmat
  2444. if(matmod(jma).eq.'STATIONNAIRE') then
  2445. INMAT = INMAT+1
  2446. endif
  2447. enddo
  2448. ENDIF
  2449.  
  2450.  
  2451. IF (NMAT .GT. INMAT) THEN
  2452. CMATE=' '
  2453. IMATE=0
  2454. INATU=0
  2455. ENDIF
  2456.  
  2457. END
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  

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