Télécharger nomate.eso

Retour à la liste

Numérotation des lignes :

nomate
  1. C NOMATE SOURCE MB234859 25/08/26 21:15:17 12343
  2.  
  3. SUBROUTINE NOMATE(FORMOD,NFOR,MATMOD,NMAT,CMATE,IMATE,INATU)
  4.  
  5. * le dernier numero de materiau utilise est le : 191
  6.  
  7. *--------------------------------------------------------------------*
  8. * *
  9. * DETERMINER UN NUMERO POUR UN MODELE DE MATERIAU *
  10. * _______________________________________________ *
  11. * *
  12. * ENTREES *
  13. * *
  14. * FORMOD Liste des formulations *
  15. * NFOR Nombre de formulations *
  16. * MATMOD Liste des materiaux *
  17. * NMAT Nombre de materiaux *
  18. * *
  19. * SORTIES *
  20. * *
  21. * CMATE Nom du materiau (isotrope, orthotrope....) *
  22. * IMATE Numero du materiau *
  23. * INATU Numero de nature *
  24. * *
  25. * NOMS DE MATERIAUX POSSIBLES *
  26. * *
  27. *--------------------------------------------------------------------*
  28. * 1/ 'THERMIQUE' *
  29. * *
  30. * 'ISOTROPE' *
  31. * 'ORTHOTROPE' *
  32. * 'ANISOTROPE' *
  33. * 'CONDUCTION' *
  34. * 'CONVECTION' *
  35. * 'ADVECTION' non lineaire de conduction *
  36. * 'PHASE' non lineaire de conduction *
  37. * 'DISSIPATION' *
  38. * 'RAYONNEMENT' *
  39. * imate=1 ancien rayonnement avec table *
  40. * imate=2 fac_a_fac *
  41. * imate=3 infini *
  42. * imate=4 cavite *
  43. * inatu 1 cavite toute simple *
  44. * inatu=2 cavite ferme *
  45. * inatu=3 cavite syme *
  46. * inatu=4 cavite convexe *
  47. * inatu=5 cavite syme convexe *
  48. * inatu=6 cavite ferme convexe *
  49. * inatu=7 cavite syme ferme *
  50. * inatu=8 cavite syme convexe ferme *
  51. * 'SOURCE' source de chaleur : CMATE = 'SOURCE' *
  52. * *
  53. * formulation generale : INATU = 1 / IMATE = 1 *
  54. * *
  55. * formulation generale :' INATU = 2 / IMATE = 1 *
  56. * 'GAUSSIENNE' 'ELLIPTIQUE' INATU = 2 / IMATE = 2 *
  57. * 'GAUSSIENNE' 'ELARGIE' INATU = 2 / IMATE = 3 *
  58. * *
  59. *--------------------------------------------------------------------*
  60. * 2/ 'MECANIQUE' OU 6/ 'POREUX' *
  61. * *
  62. * ELASTIQUE *
  63. * 'ISOTROPE' *
  64. * 'ORTHOTROPE' *
  65. * 'ANISOTROPE' *
  66. * 'POREUX' *
  67. * 'HOMOGENEISE' *
  68. * 'UNIDIRECTIONNEL' *
  69. * 'SECTION' *
  70. * 'ARMATURE' *
  71. * 'MODAL' *
  72. * 'STATIQUE' *
  73. * 'ZONE_COHESIVE' *
  74. * *
  75. * PLASTIQUE *
  76. * 'PARFAIT' INATU = 1 *
  77. * 'LINESPRING' INATU = 2 *
  78. * 'DRUCKER-SIMPLE' INATU = 3 *
  79. * 'CINEMATIQUE' INATU = 4 *
  80. * 'ISOTROPE' INATU = 5 *
  81. * 'CHABOCHE1' INATU = 7 *
  82. * 'BETON' INATU = 9 *
  83. * 'CHABOCHE2' INATU = 12 *
  84. * 'TUYAU-FISSURE' INATU = 14 *
  85. * 'DRUCKER-PRAGER' INATU = 15 *
  86. * 'GAUVAIN' INATU = 16 *
  87. * 'ENDOMMAGEABLE' INATU = 26 *
  88. * 'UBIQUITOUS' INATU = 28 *
  89. * 'GLOBAL' INATU = 32 *
  90. * 'CAM-CLAY' INATU = 33 *
  91. * 'COULOMB' INATU = 34 *
  92. * 'JOINT_DILATANT' INATU = 35 *
  93. * 'BETON_AXI' INATU = 36 *
  94. * 'GURSON' INATU = 38 *
  95. * 'BETON_UNI' INATU = 39 *
  96. * 'ACIER_UNI' INATU = 40 *
  97. * 'FRAGILE_UNI' INATU = 78 *
  98. * 'BETON_BAEL' INATU = 79 *
  99. * 'PARFAIT_UNI' INATU = 80 *
  100. * 'STRUT_UNI' INATU = 83 *
  101. * 'CINEMATIQUE_ANCRAGE' INATU = 92 *
  102. * 'ACIER_ANCRAGE' INATU = 93 *
  103. * 'SECTION' INATU = 41 *
  104. * 'OTTOSEN' INATU = 42 *
  105. * 'OTTOVARI' INATU = 148 *
  106. * 'MAZARS_FIB' INATU = 46 *
  107. * 'AMADEI' INATU = 47 *
  108. * 'HUJEUX' INATU = 48 *
  109. * 'STEINBERG' INATU = 49 *
  110. * 'ZERILLI' INATU = 50 *
  111. * 'PRESTON' INATU = 52 *
  112. * 'BETOCYCL' INATU = 54 *
  113. * 'ROTATING_CRACK' INATU = 55 *
  114. * 'JOINT_SOFT' INATU = 56 *
  115. * 'ANCRAGE_ELIGEHAUSEN' INATU = 91 *
  116. * 'BILI_MOMY' INATU = 57 *
  117. * 'BILI_EFFZ' INATU = 58 *
  118. * 'TAKEMO_MOMY' INATU = 59 *
  119. * 'TAKEMO_EFFZ' INATU = 60 *
  120. * 'BETON_INSA' INATU = 66 *
  121. * 'ECROUIS_DECOU' INATU = 67 *
  122. * 'PARFAIT_DECOU' INATU = 68 *
  123. * 'ALONSO' INATU = 69 *
  124. * 'BA1D' INATU = 147 *
  125. * 'PAKZAD' INATU = 71 *
  126. * 'INFILL_UNI' INATU = 72 *
  127. * 'CISAIL_NL' INATU = 73 *
  128. * 'HINT' INATU = 89 *
  129. * 'BETON_URGC' INATU = 99 *
  130. * 'UNILATERAL' (Fibre) INATU = 104 *
  131. * 'INCO' INATU = 129 *
  132. * 'INTIMP' INATU = 145 *
  133. * 'RICJOI' INATU = 146 *
  134. * 'OUGLOVA' INATU = 175 *
  135. * 'MRS_LADE' INATU = 111 *
  136. * 'J2' INATU = 112 *
  137. * 'RH_COULOMB' INATU = 113 *
  138. * 'VMT_FEFP' INATU = 114 *
  139. * 'RHMC_FEFP' INATU = 115 *
  140. * 'POWDER_FEFP' INATU = 116 *
  141. * 'POWDERCAP_FEFP' INATU = 117 *
  142. * 'JOINT_COAT' INATU = 119 *
  143. * 'CONCRETE_UNI' INATU = 123 *
  144. * 'MUR_SHEAR' INATU = 126 *
  145. * 'DRUCKER_PRAGER2' INATU = 140 *
  146. * 'BILIN_EFFX' INATU = 150 *
  147. * 'ISS_GRANGE' INATU = 151 *
  148. * 'RUP_THER' INATU = 152 *
  149. * 'RICBET_UNI' INATU = 160 *
  150. * 'LIAISON_ACBE' INATU = 171 *
  151. * 'DP_SOL' INATU = 172 *
  152. * 'CONCYC' INATU = 173 *
  153. * 'IWPR3D_SOL' INATU = 176 *
  154. * 'NORTON' (Fibre) INATU = 181 *
  155. * 'POLYNOMIAL' (Fibre) INATU = 182 *
  156. * 'BLACKBURN' (Fibre) INATU = 183 *
  157. * 'BLACKBURN_2' (Fibre) INATU = 184 *
  158. * 'LEMAITRE' (Fibre) INATU = 185 *
  159. * *
  160. * FLUAGE *
  161. * 'NORTON' INATU = 19 *
  162. * 'BLACKBURN' INATU = 20 *
  163. * 'POLYNOMIAL' INATU = 21 *
  164. * 'RCCMR-316' INATU = 22 *
  165. * 'RCCMR-304' INATU = 23 *
  166. * 'LEMAITRE' INATU = 24 *
  167. * 'BLACKBURN_2' INATU = 61 *
  168. * 'CERAMIQUE' INATU = 65 *
  169. * 'MAXWELL' INATU = 74 *
  170. * 'COMETE' INATU = 84 *
  171. * 'CCPL' INATU = 85 *
  172. * 'X11' INATU = 86 *
  173. * 'BPEL_RELAX' INATU = 95 *
  174. * 'BETON_URGC' INATU = 101 *
  175. * 'SODERBERG' INATU = 102 *
  176. * 'MAXOTT' INATU = 106 *
  177. * 'FBB1' INATU = 127 *
  178. * 'FBB2' INATU = 128 *
  179. * 'KELVIN' INATU = 174 *
  180. * *
  181. * VISCOPLASTIQUE *
  182. * 'GUIONNET' INATU = 17 *
  183. * 'ONERA' INATU = 25 *
  184. * 'VISCODOMMAGE' INATU = 29 *
  185. * 'PARFAIT' INATU = 43 *
  186. * 'POUDRE_A' INATU = 44 *
  187. * 'POUDRE_B' INATU = 45 *
  188. * 'OHNO' INATU = 53 *
  189. * 'DDI' INATU = 63 *
  190. * 'KOCKS' INATU = 70 *
  191. * 'NOUAILHAS_A' INATU = 76 *
  192. * 'NOUAILHAS_B' INATU = 77 *
  193. * 'VISK2' INATU = 82 *
  194. * 'VISCOHINT' INATU = 90 *
  195. * 'MISTRAL' INATU = 94 *
  196. * 'BETON_URGC' INATU = 100 *
  197. * 'BETON_URGC_ENDO' INATU = 122 *
  198. * 'LEMENDO' INATU = 103 *
  199. * 'FLUNOR2' INATU = 105 *
  200. * 'GATT_MONERIE' INATU = 107 *
  201. * 'UO2' INATU = 108 *
  202. * 'VISCODD' INATU = 130 *
  203. * 'CHAB_SINH_R' INATU = 136 *
  204. * 'CHAB_SINH_X' INATU = 137 *
  205. * 'CHAB_NOR_R' INATU = 138 *
  206. * 'CHAB_NOR_X' INATU = 139 *
  207. * 'PELLET' INATU = 142 *
  208. * 'FLUTRA' INATU = 143 *
  209. * 'SYCO1' INATU = 153 *
  210. * 'SYCO2' INATU = 154 *
  211. * 'CHABOCHE' INATU = 165 *
  212. * 'FLUENDO3D' INATU = 187
  213. * 'INCLUSION3D' INATU = 188
  214. * 'ENDO3D' INATU = 189
  215. * 'FLUISO3D' INATU = 190
  216. * 'FLUORTHO3D' INATU = 191
  217. * *
  218. * ENDOMMAGEABLE *
  219. * 'MAZARS' INATU = 30 *
  220. * 'UNILATERAL' INATU = 31 *
  221. * 'ROTATING_CRACK' INATU = 37 *
  222. * 'SIC_SIC' INATU = 88 *
  223. * 'MICROPLANS' INATU = 96 *
  224. * 'VISCOUNILATERAL' INATU = 97 *
  225. * 'MICROISO' INATU = 98 *
  226. * 'SICSCAL' INATU = 131 *
  227. * 'SICTENS' INATU = 132 *
  228. * 'FATSIN' INATU = 141 *
  229. * 'RICRAG' INATU = 144 *
  230. * 'MVM' INATU = 118 *
  231. * 'CRUCRA' INATU = 124 *
  232. * 'DAMAGE_TC' INATU = 125 *
  233. * 'DESMORAT' INATU = 134 *
  234. * 'GLRC_DM' INATU = 157 *
  235. * 'RICBET' INATU = 158 *
  236. * 'RICCOQ' INATU = 159 *
  237. * 'EFEM' INATU = 177 *
  238. * *
  239. * PLASTIQUE_ENDOM(MAGEABLE) *
  240. * 'PSURY' INATU = 51 *
  241. * 'ROUSSELIER' INATU = 62 *
  242. * 'GURSON2' INATU = 64 *
  243. * 'DRAGON' INATU = 75 *
  244. * 'BETON_URGC' INATU = 120 *
  245. * 'BETON_INSA' INATU = 121 *
  246. * 'BETON_DYNAR_LMT' INATU = 133 *
  247. * 'ENDO_PLAS' INATU = 135 *
  248. * 'GERNAY' INATU = 155 *
  249. * 'WELLS' INATU = 156 *
  250. * *
  251. * ELASTIQUE NON_LINEAIRE *
  252. * 'EQUIPLAS' INATU = 87 *
  253. * 'UTILISATEUR' INATU = -1 *
  254. * *
  255. * VISCO_EXTERNE *
  256. * 'GENERAL' IVIEX = 1 INATU = -2 *
  257. * 'DRUCKER_PRAGER' IVIEX = 2 en sortie de NOMATE, *
  258. * 'COHESION' IVIEX = 3 INATU = -2 - IVIEX *
  259. * 'CONSOLIDATION' IVIEX = 4 ce qui permet de *
  260. * 'UTILISATEUR' IVIEX = 5 recuperer IVIEX *
  261. * *
  262. * IMPEDANCE *
  263. * 'ELASTIQUE' INATU = 161 *
  264. * 'VOIGT' INATU = 162 *
  265. * 'MAXWELL' INATU = 163 *
  266. * 'COMPL??' INATU = 164 *
  267. *--------------------------------------------------------------------*
  268. * 3/ 'LIQUIDE ' *
  269. * 'ISOTROPE' *
  270. *--------------------------------------------------------------------*
  271. * 5/ 'MECANIQUE+LIQUIDE' *
  272. * la formulation suffit *
  273. *--------------------------------------------------------------------*
  274. * 6/ 'POREUX' VOIR 2/ *
  275. *--------------------------------------------------------------------*
  276. * 7/ 'DARCY' *
  277. * *
  278. * 'ISOTROPE' *
  279. * 'ORTHOTROPE' *
  280. * 'ANISOTROPE' *
  281. *--------------------------------------------------------------------*
  282. * 8/ 'CONTACT ' *
  283. * *
  284. * 'COULOMB' INATU=1 *
  285. * 'FROCABLE' INATU=2 *
  286. *--------------------------------------------------------------------*
  287. * 10/ 'MAGNETODYNAMIQUE' *
  288. * *
  289. * 'POTENTIEL_VECTEUR' *
  290. * 'ISOTROPE' *
  291. * 'ORTHOTROPE' *
  292. *--------------------------------------------------------------------*
  293. * 11/ 'NAVIER_STOKES' *
  294. * *
  295. * 'NEWTONIEN' *
  296. * 'BINGHAM' *
  297. * 'VISCOPLASTIQUE' *
  298. *--------------------------------------------------------------------*
  299. * 12/ 'MELANGE' *
  300. * *
  301. * 'CEREM' *
  302. * 'ZTMAX' *
  303. * 'PARALLELE' *
  304. * 'SERIE' *
  305. * 'UTILISATEUR' *
  306. *--------------------------------------------------------------------*
  307. * 13/ 'EULER' *
  308. * *
  309. * 'NEWTONIEN' *
  310. *--------------------------------------------------------------------*
  311. * 14/ 'FISSURE' *
  312. * *
  313. * 'MASS' 'PARF' 'POISEU_BLASIUS' *
  314. * 'FILM' 'REEL' 'POISEU_COLEBROOK' *
  315. * 'FROTTEMENT1' *
  316. * 'FROTTEMENT2' *
  317. * 'FROTTEMENT3' *
  318. * 'FROTTEMENT4' *
  319. *--------------------------------------------------------------------*
  320. * 15/ 'LIAISON' *
  321. * *
  322. * 'POINT_PLAN_FLUIDE' *
  323. * 'POINT_PLAN_FROTTEMENT' *
  324. * 'POINT_PLAN' *
  325. * 'POINT_POINT_FROTTEMENT' *
  326. * 'POINT_POINT_DEPLACEMENT_PLASTIQUE' *
  327. * 'POINT_POINT_ROTATION_PLASTIQUE' *
  328. * 'POINT_POINT' *
  329. * 'POINT_CERCLE_MOBILE' *
  330. * 'POINT_CERCLE_FROTTEMENT' *
  331. * 'POINT_CERCLE' *
  332. * 'CERCLE_PLAN_FROTTEMENT' *
  333. * 'CERCLE_CERCLE_FROTTEMENT' *
  334. * 'PROFIL_PROFIL_INTERIEUR' *
  335. * 'PROFIL_PROFIL_EXTERIEUR' *
  336. * 'LIGNE_LIGNE_FROTTEMENT' *
  337. * 'LIGNE_CERCLE_FROTTEMENT' *
  338. * 'PALIER_FLUIDE' *
  339. * 'NEWMARK' *
  340. *--------------------------------------------------------------------*
  341. * 16/ 'THERMOHYDRIQUE' *
  342. * *
  343. * 'SCHREFLER' *
  344. *--------------------------------------------------------------------*
  345. * 17/ 'ELECTROSTATIQUE' *
  346. * *
  347. * 'ISOTROPE' *
  348. * 'ORTHOTROPE' *
  349. * 'ANISOTROPE' *
  350. *--------------------------------------------------------------------*
  351. * 18/ 'DIFFUSION' *
  352. * *
  353. * 'ISOTROPE' *
  354. * 'ORTHOTROPE' *
  355. * 'ANISOTROPE' *
  356. * 'FICK' INATU = 0 *
  357. * 'SORET' INATU = 1 *
  358. * 'UTILISATEUR' INATU =-1 *
  359. *--------------------------------------------------------------------*
  360. * 19/ 'METALLURGIE' INATU = 178 *
  361. *--------------------------------------------------------------------*
  362. * 20/ 'CHANGEMENT_PHASE' *
  363. * *
  364. * 'PARFAIT' INATU = 179 *
  365. * 'SOLUBILITE' INATU = 180 *
  366. *--------------------------------------------------------------------*
  367. * 21/ 'CONTRAINTE' *
  368. * *
  369. * 'ROTATION' INATU = 1 *
  370. * 'DEPLACEMENT' INATU = 2 *
  371. * 'RELATION' INATU = 3 *
  372. *--------------------------------------------------------------------*
  373. * DECLARATIONS *
  374. *--------------------------------------------------------------------*
  375. IMPLICIT INTEGER(I-N)
  376. IMPLICIT REAL*8 (A-H,O-Z)
  377.  
  378. -INC PPARAM
  379. -INC CCOPTIO
  380.  
  381. INTEGER NFOR,NMAT
  382. CHARACTER*(*) CMATE
  383. CHARACTER*16 FORMOD(*),MATMOD(*)
  384. *
  385. CHARACTER*16 MOMODL(200),FORFO1,FORFO2
  386. *
  387. CHARACTER*16 LISTMT(3),LINAST(4)
  388. CHARACTER*12 CMAT1,CMAT2,CMAT3
  389.  
  390. DATA LISTMT / 'ISOTROPE ',
  391. & 'ORTHOTROPE ',
  392. & 'ANISOTROPE ' /
  393. DATA LINAST / 'NEWTONIEN ','BINGHAM ',
  394. & 'VISCOPLASTIQUE ','NLIN '/
  395. *
  396. CMATE = ' '
  397. IMATE = 0
  398. INATU = 0
  399. *
  400. INMAT = 0
  401. IEXI = 1
  402. *
  403. FORFO1 = FORMOD(1)
  404. *
  405. IF (NFOR.EQ.1) THEN
  406. *--------------------------------------------------------------------*
  407. * 1/ Cas de la formulation 'THERMIQUE' OU 'DARCY' *
  408. *--------------------------------------------------------------------*
  409. IF (FORFO1.EQ.'THERMIQUE'.OR.FORFO1.EQ.'DARCY') THEN
  410. C
  411. C Par defaut la formulation est isotrope
  412. CMATE='ISOTROPE'
  413. IMATE=1
  414. C
  415. IF (NMAT.NE.0) THEN
  416. C
  417. C "Tropie"
  418. INMAT=INMAT+1
  419. CALL PLACE(LISTMT,3,IPLAC,MATMOD(INMAT))
  420. IF (IPLAC.NE.0) THEN
  421. CMATE=MATMOD(1)
  422. IMATE=IPLAC
  423. INMAT=INMAT+1
  424. ENDIF
  425. C
  426. IF (FORFO1.EQ.'THERMIQUE') THEN
  427. IF (NMAT.GE.INMAT) THEN
  428. CALL MOCOTH(MOMODL,NMOD)
  429. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  430. IF (IPLAC.EQ.2) THEN
  431. CMATE = 'CONVECTI'
  432. IMATE = 1
  433. IF (NMAT.GT.2)THEN
  434. CALL MODCON(MOMODL,NMOD)
  435. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(3))
  436. IF (IPLAC.NE.0) IMATE = IPLAC
  437. ENDIF
  438. ELSEIF (IPLAC.EQ.3) THEN
  439. CMATE = 'RAYONNEM'
  440. IMATE = 1
  441. IF(NMAT.GT.2) THEN
  442. CALL MODRAY(MOMODL,NMOD)
  443. CALL PLACE (MOMODL,NMOD,IPLAC,MATMOD(3))
  444. IF(IPLAC.EQ.2)THEN
  445. C Rayonnement FACE A FACE
  446. IMATE=2
  447. ELSEIF(IPLAC.EQ.3) THEN
  448. C Rayonnement INFINI
  449. IMATE=3
  450. ELSEIF(IPLAC.EQ.1) THEN
  451. C Rayonnement CAVITE
  452. IMATE=4
  453. CALL PLACE(MATMOD,NMAT,IPLACF,'FERME ')
  454. CALL PLACE(MATMOD,NMAT,IPLACS,'SYMETRIE ')
  455. CALL PLACE(MATMOD,NMAT,IPLACC,'CONVEXE ')
  456. ICAS=0
  457. IF(IPLACF.NE.0) ICAS=ICAS+1
  458. IF(IPLACS.NE.0) ICAS=ICAS+1
  459. IF(IPLACC.NE.0) ICAS=ICAS+1
  460. IF(ICAS.EQ.0) THEN
  461. INATU=1
  462. ELSEIF(ICAS.EQ.1)THEN
  463. IF(IPLACF.NE.0) THEN
  464. INATU=2
  465. ELSEIF(IPLACS.NE.0) THEN
  466. INATU=3
  467. ELSE
  468. INATU=4
  469. ENDIF
  470. ELSEIF(ICAS.EQ.2) THEN
  471. IF(IPLACF.EQ.0) THEN
  472. INATU=5
  473. ELSEIF(IPLACS.EQ.0) THEN
  474. INATU=6
  475. ELSE
  476. INATU=7
  477. ENDIF
  478. ELSE
  479. INATU=8
  480. endif
  481. ENDIF
  482. ENDIF
  483. ELSEIF (IPLAC.EQ.6) THEN
  484. CMATE = 'SOURCE'
  485. INATU = 1
  486. IMATE = 1
  487. IF (NMAT.GT.1) THEN
  488. CALL MODSRC(MOMODL,NMOD)
  489. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(2))
  490. C
  491. C SOURCE GAUSSIENNE
  492. IF (IPLAC.EQ.1) THEN
  493. INATU = 2
  494. IMATE = 1
  495. IF (NMAT.GT.2) THEN
  496. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(3))
  497. IF (IPLAC.EQ.2) THEN
  498. C Gaussienne : Spherique
  499. IMATE = 1
  500. ELSEIF (IPLAC.EQ.3) THEN
  501. C Gaussienne : Elliptique
  502. IMATE = 2
  503. ELSEIF (IPLAC.EQ.4) THEN
  504. C Gaussienne : Elargie
  505. IMATE = 3
  506. ENDIF
  507. ENDIF
  508. ENDIF
  509. ENDIF
  510. ENDIF
  511. ENDIF
  512. ENDIF
  513. C
  514. ENDIF
  515. *--------------------------------------------------------------------*
  516. * 2/ Cas de la formulation 'MECANIQUE' OU 'POREUX' *
  517. *--------------------------------------------------------------------*
  518. ELSE IF (FORFO1.EQ.'MECANIQUE'.OR.FORFO1.EQ.'POREUX') THEN
  519. C
  520. IF (NMAT.NE.0) THEN
  521. C
  522. C Comportement reversible
  523. C -----------------------
  524. INMAT=INMAT+1
  525. CALL MODLIN(MOMODL,NMOD)
  526. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  527. IF (IPLAC.EQ.1) THEN
  528. C
  529. C "Tropie" par defaut : ISOTROPE
  530. CMATE = 'ISOTROPE'
  531. IMATE=1
  532. C
  533. IF (NMAT.GT.INMAT) THEN
  534. INMAT=INMAT+1
  535. CALL MODELA(MOMODL,NMOD)
  536. CALL PLACE(MOMODL,NMOD,ITROP,MATMOD(INMAT))
  537. IF (ITROP.NE.0) THEN
  538. CMATE = MOMODL(ITROP)
  539. IF (ITROP.LE.3) THEN
  540. IMATE=ITROP
  541. ELSE IF (ITROP.EQ.4) THEN
  542. IMATE=7
  543. ELSE IF (ITROP.EQ.5) THEN
  544. IMATE=5
  545. ELSE IF (ITROP.EQ.6) THEN
  546. IMATE=4
  547. ELSE IF (ITROP.EQ.7) THEN
  548. IMATE=11
  549. ELSE IF (ITROP.EQ.8) THEN
  550. IMATE=ITROP
  551. ELSE IF (ITROP.EQ.9.OR.ITROP.EQ.10) THEN
  552. IMATE=ITROP
  553. ELSE IF (ITROP.EQ.11) THEN
  554. IMATE=12
  555. ENDIF
  556. ELSE
  557. INMAT=INMAT-1
  558. ENDIF
  559. ENDIF
  560. ENDIF
  561. ELSE
  562. IEXI=0
  563. GOTO 99
  564. ENDIF
  565. C
  566. C Comportement non lineaire
  567. C -------------------------
  568. IF (NMAT.GT.INMAT) THEN
  569. INMAT=INMAT+1
  570. CALL MODNLI(MOMODL,NMOD)
  571. CALL PLACE(MOMODL,NMOD,INLI,MATMOD(INMAT))
  572. IPOSI=INLI+1
  573. C
  574. C =============================================================
  575. C MATERIAU MECANIQUE ELASTIQUE/POREUX ISOTROPE ...
  576. C =============================================================
  577. IF (IMATE.EQ.1) THEN
  578. GOTO (1000, 100, 200, 300, 400, 500, 600, 700, 800) IPOSI
  579. C =============================================================
  580. C MATERIAU MECANIQUE ELASTIQUE/POREUX ORTHOTROPE
  581. C =============================================================
  582. ELSE IF (IMATE.EQ.2) THEN
  583. GOTO (1000, 100,1000, 300, 400,1000, 600,1000,1000) IPOSI
  584. C =============================================================
  585. C MATERIAU MECANIQUE ELASTIQUE/POREUX ANISOTROPE
  586. C =============================================================
  587. ELSE IF (IMATE.EQ.3) THEN
  588. GOTO (1000,1000,1000,1000,1000,1000, 600,1000,1000) IPOSI
  589. C =============================================================
  590. C MATERIAU MECANIQUE ELASTIQUE/POREUX UNIDIRECTIONNEL
  591. C =============================================================
  592. ELSE IF (IMATE.EQ.4) THEN
  593. GOTO (1000, 100, 200,1000,1000,1000, 600,1000,1000) IPOSI
  594. C =============================================================
  595. C MATERIAU MECANIQUE ELASTIQUE/POREUX MODAL/STATIQUE
  596. C =============================================================
  597. ELSE IF (IMATE.EQ.9.OR.IMATE.EQ.10) THEN
  598. GOTO (1000, 100,1000,1000,1000,1000,1000,1000, 800) IPOSI
  599. C =============================================================
  600. C MATERIAU MECANIQUE ELASTIQUE/POREUX SECTION
  601. C =============================================================
  602. ELSE IF (IMATE.EQ.11) THEN
  603. GOTO (1000, 100,1000,1000,1000,1000,1000,1000,1000) IPOSI
  604. C =============================================================
  605. C MATERIAU MECANIQUE ELASTIQUE/POREUX ZONE_COHESIVE
  606. C =============================================================
  607. ELSE IF (IMATE.EQ.12) THEN
  608. GOTO (1000,1000,1000,1000, 500, 600,1000,1000,1000) IPOSI
  609. ENDIF
  610. C =============================================================
  611. C
  612. 1000 CONTINUE
  613. C
  614. C Comportement non reconnu
  615. IEXI=0
  616. GOTO 99
  617. C
  618. 100 CONTINUE
  619. C
  620. C Comportement PLASTIQUE : [option par defaut : ISOTROPE]
  621. C ----------------------
  622. INATU=5
  623. C
  624. IF (NMAT.GT.INMAT) THEN
  625. INMAT= INMAT+1
  626. CALL MODPLA(MOMODL,NMOD)
  627. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  628. C
  629. C Compatibilite entre "Tropie" et loi de comportement
  630. IF (IMATE.EQ.1) THEN
  631. IF ((IMOD.EQ.22).OR.(IMOD.EQ.38).OR.(IMOD.EQ.39).OR.
  632. & (IMOD.EQ.70).OR.(IMOD.EQ.71)) GOTO 1000
  633. ELSEIF (IMATE.EQ.2) THEN
  634. IF ((IMOD.NE.16).AND.(IMOD.NE.38).AND.(IMOD.NE.39).AND.
  635. & (IMOD.NE.70).AND.(IMOD.NE.71)) GOTO 1000
  636. ELSEIF (IMATE.EQ.4) THEN
  637. IF ((IMOD.NE.1 ).AND.(IMOD.NE.2 ).AND.(IMOD.NE.3).AND.
  638. & (IMOD.NE.21).AND.(IMOD.NE.70).AND.(IMOD.NE.71))
  639. & GOTO 1000
  640. ELSEIF ((IMATE.EQ.9).OR.(IMATE.EQ.10)) THEN
  641. IF (IMOD.GT.3 ) GOTO 1000
  642. ELSEIF (IMATE.EQ.11) THEN
  643. IF (IMOD.NE.22) GOTO 1000
  644. ENDIF
  645. IF (IMOD.EQ.0) GOTO 1000
  646. C
  647. IF (IMOD.EQ.1) THEN
  648. * ISOTROPE
  649. INATU=5
  650. ELSE IF (IMOD.EQ.2 ) THEN
  651. * PARFAIT
  652. INATU=1
  653. ELSE IF (IMOD.EQ.3 ) THEN
  654. * CINEMATIQUE
  655. INATU=4
  656. ELSE IF (IMOD.EQ.4 ) THEN
  657. * DRUCKER-PRAGER
  658. INATU=15
  659. ELSE IF (IMOD.EQ.5 ) THEN
  660. * DRUCKER-SIMPLE
  661. INATU=3
  662. ELSE IF (IMOD.EQ.6 ) THEN
  663. * BETON
  664. INATU=9
  665. ELSE IF (IMOD.EQ.7 ) THEN
  666. * CHABOCHE1
  667. INATU=7
  668. ELSE IF (IMOD.EQ.8 ) THEN
  669. * CHABOCHE2
  670. INATU=12
  671. ELSE IF (IMOD.EQ.9 ) THEN
  672. * TUYAU-FISSURE
  673. INATU=14
  674. ELSE IF (IMOD.EQ.10) THEN
  675. * ENDOMMAGEABLE
  676. INATU=26
  677. ELSE IF (IMOD.EQ.11) THEN
  678. * GAUVAIN
  679. INATU=16
  680. ELSE IF (IMOD.EQ.12) THEN
  681. * LINESPRING
  682. INATU=2
  683. ELSE IF (IMOD.EQ.13) THEN
  684. * UBIQUITOUS
  685. INATU=28
  686. ELSE IF (IMOD.EQ.14) THEN
  687. * GLOBAL
  688. INATU=32
  689. ELSE IF (IMOD.EQ.15) THEN
  690. * CAM-CLAY
  691. INATU=33
  692. ELSE IF (IMOD.EQ.16) THEN
  693. * MOHR COULOMB
  694. INATU=34
  695. ELSE IF (IMOD.EQ.17) THEN
  696. * JOINT DILATANT
  697. INATU=35
  698. ELSE IF (IMOD.EQ.18) THEN
  699. * BETON_AXI
  700. INATU=36
  701. ELSE IF (IMOD.EQ.19) THEN
  702. * GURSON
  703. INATU=38
  704. ELSE IF (IMOD.EQ.20) THEN
  705. * BETON_UNI
  706. INATU=39
  707. ELSE IF (IMOD.EQ.21) THEN
  708. * ACIER_UNI
  709. INATU=40
  710. ELSE IF (IMOD.EQ.22) THEN
  711. * SECTION
  712. INATU=41
  713. ELSE IF (IMOD.EQ.23) THEN
  714. * OTTOSEN (BETON)
  715. INATU=42
  716. ELSE IF (IMOD.EQ.24) THEN
  717. * MAZARS_FIB
  718. INATU=46
  719. ELSE IF (IMOD.EQ.25) THEN
  720. * AMADEI-SAEB
  721. INATU=47
  722. ELSE IF (IMOD.EQ.26) THEN
  723. * HUJEUX
  724. INATU=48
  725. ELSE IF (IMOD.EQ.27) THEN
  726. * STEINBERG-COCHRAN-GUINAN
  727. INATU=49
  728. ELSE IF (IMOD.EQ.28) THEN
  729. * ZERILLI-ARMSTRONG
  730. INATU=50
  731. ELSE IF (IMOD.EQ.29) THEN
  732. * PRESTON-TONKS-WALLACE
  733. INATU=52
  734. ELSE IF (IMOD.EQ.30) THEN
  735. * BETOCYCL
  736. INATU=54
  737. ELSE IF (IMOD.EQ.31) THEN
  738. * ROTATING_CRACK
  739. INATU=55
  740. ELSE IF (IMOD.EQ.32) THEN
  741. * JOINT_SOFT
  742. INATU=56
  743. ELSE IF (IMOD.EQ.33) THEN
  744. * BILI_MOMY
  745. INATU=57
  746. ELSE IF (IMOD.EQ.34) THEN
  747. * BILI_EFFZ
  748. INATU=58
  749. ELSE IF (IMOD.EQ.35) THEN
  750. * TAKEMO_MOMY
  751. INATU=59
  752. ELSE IF (IMOD.EQ.36) THEN
  753. * TAKEMO_EFFZ
  754. INATU=60
  755. ELSE IF (IMOD.EQ.37) THEN
  756. * BETON_INSA
  757. INATU=66
  758. ELSE IF (IMOD.EQ.38) THEN
  759. * ECROUIS_INSA
  760. INATU=67
  761. ELSE IF (IMOD.EQ.39) THEN
  762. * PARFAIT_INSA
  763. INATU=68
  764. ELSE IF (IMOD.EQ.40) THEN
  765. * ALONSO
  766. INATU=69
  767. ELSE IF (IMOD.EQ.41) THEN
  768. * PAKZAD
  769. INATU=71
  770. ELSE IF (IMOD.EQ.42) THEN
  771. * INFILL_UNI
  772. INATU=72
  773. ELSE IF (IMOD.EQ.43) THEN
  774. * CISAIL_NL
  775. INATU=73
  776. ELSE IF (IMOD.EQ.44) THEN
  777. * FRAGILE_UNI
  778. INATU=78
  779. ELSE IF (IMOD.EQ.45) THEN
  780. * BETON_BAEL
  781. INATU=79
  782. ELSE IF (IMOD.EQ.46) THEN
  783. * PARFAIT_UNI
  784. INATU=80
  785. ELSE IF (IMOD.EQ.47) THEN
  786. * STRUT_UNI
  787. INATU=83
  788. ELSE IF (IMOD.EQ.48) THEN
  789. * HINTE
  790. INATU=89
  791. ELSE IF (IMOD.EQ.49) THEN
  792. * ANCRAGE_ELIGEHAUSEN
  793. INATU=91
  794. ELSE IF (IMOD.EQ.50) THEN
  795. * PARFAIT_ANCRAGE
  796. INATU=92
  797. ELSE IF (IMOD.EQ.51) THEN
  798. * ACIER_ANCRAGE
  799. INATU=93
  800. ELSE IF (IMOD.EQ.52) THEN
  801. * BETON_URGC
  802. INATU=99
  803. ELSE IF (IMOD.EQ.53) THEN
  804. * UNILATERAL (Fibre)
  805. INATU=104
  806. ELSE IF (IMOD.EQ.54) THEN
  807. * MRS_LADE
  808. INATU=111
  809. ELSE IF (IMOD.EQ.55) THEN
  810. * J2
  811. INATU=112
  812. ELSE IF (IMOD.EQ.56) THEN
  813. * RH_COULOMB
  814. INATU=113
  815. ELSE IF (IMOD.EQ.57) THEN
  816. * VMT_FEFP
  817. INATU=114
  818. ELSE IF (IMOD.EQ.58) THEN
  819. * RHMC_FEFP
  820. INATU=115
  821. ELSE IF (IMOD.EQ.59) THEN
  822. * POWDER_FEFP
  823. INATU=116
  824. ELSE IF (IMOD.EQ.60) THEN
  825. * POWDERCAP_FEFP
  826. INATU=117
  827. ELSE IF (IMOD.EQ.61) THEN
  828. * JOINT_COAT
  829. INATU=119
  830. ELSE IF (IMOD.EQ.62) THEN
  831. * CONCRETE_UNI
  832. INATU=123
  833. ELSE IF (IMOD.EQ.63) THEN
  834. * MUR_SHEAR
  835. INATU=126
  836. ELSE IF (IMOD.EQ.64) THEN
  837. * INCO
  838. INATU=129
  839. ELSE IF (IMOD.EQ.65) THEN
  840. * DRUCKER_PRAGER2
  841. INATU=140
  842. ELSE IF (IMOD.EQ.67) THEN
  843. * INTIMP
  844. INATU=145
  845. ELSE IF (IMOD.EQ.68) THEN
  846. * INTJOI
  847. INATU=146
  848. ELSE IF (IMOD.EQ.69) THEN
  849. * BILIN_EFFX
  850. INATU=150
  851. ELSE IF (IMOD.EQ.70) THEN
  852. * ISS_GRANGE
  853. INATU=151
  854. ELSE IF (IMOD.EQ.71) THEN
  855. * RUP_THER
  856. INATU=152
  857. ELSE IF (IMOD.EQ.72) THEN
  858. * RICBET_UNI
  859. INATU=160
  860. ELSE IF (IMOD.EQ.73) THEN
  861. * BA1D
  862. INATU=147
  863. ELSE IF (IMOD.EQ.74) THEN
  864. * LIAISON_ACBE (liaison acier beton)
  865. INATU=171
  866. ELSE IF (IMOD.EQ.75) THEN
  867. * DP_SOL
  868. INATU=172
  869. ELSE IF (IMOD.EQ.76) THEN
  870. * OUGLOVA
  871. INATU=175
  872. ELSE IF (IMOD.EQ.77) THEN
  873. * IWPR3D_SOL
  874. INATU=176
  875. ELSE IF (IMOD.EQ.78) THEN
  876. * NORTON
  877. INATU=181
  878. ELSE IF (IMOD.EQ.79) THEN
  879. * POLYNOMIAL
  880. INATU=182
  881. ELSE IF (IMOD.EQ.80) THEN
  882. * BLACKBURN
  883. INATU=183
  884. ELSE IF (IMOD.EQ.81) THEN
  885. * BLACKBURN_2
  886. INATU=184
  887. ELSE IF (IMOD.EQ.82) THEN
  888. * LEMAITRE
  889. INATU=185
  890. ELSE IF (IMOD.EQ.83) THEN
  891. * OTTOVARI (BETON)
  892. INATU=148
  893. ENDIF
  894. ENDIF
  895. GOTO 900
  896. C
  897. 200 CONTINUE
  898. C
  899. C Comportement FLUAGE [option par defaut : NORTON]
  900. C -------------------
  901. INATU=19
  902. C
  903. IF (NMAT.GT.INMAT) THEN
  904. INMAT=INMAT+1
  905. CALL MODFLU(MOMODL,NMOD)
  906. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  907. C
  908. C Compatibilite entre "Tropie" et loi de comportement
  909. IF ((IMATE.EQ.4).AND.(IMOD.NE.9)) GOTO 1000
  910. IF (IMOD.EQ.0 ) GOTO 1000
  911. C
  912. IF (IMOD.EQ.1 ) THEN
  913. * NORTON
  914. INATU=19
  915. ELSE IF (IMOD.EQ.2 ) THEN
  916. * BLACKBURN
  917. INATU=20
  918. ELSE IF (IMOD.EQ.3 ) THEN
  919. * RCCMR-316
  920. INATU=22
  921. ELSE IF (IMOD.EQ.4 ) THEN
  922. * RCCMR-304
  923. INATU=23
  924. ELSE IF (IMOD.EQ.5 ) THEN
  925. * LEMAITRE
  926. INATU=24
  927. ELSE IF (IMOD.EQ.6 ) THEN
  928. * POLYNOMIAL
  929. INATU=21
  930. ELSE IF (IMOD.EQ.7 ) THEN
  931. * BLACKBURN_2
  932. INATU=61
  933. ELSE IF (IMOD.EQ.8) THEN
  934. * CERAMIQUE
  935. INATU=65
  936. ELSE IF (IMOD.EQ.9) THEN
  937. * MAXWELL
  938. INATU=74
  939. ELSE IF (IMOD.EQ.10) THEN
  940. * COMETE
  941. INATU = 84
  942. ELSE IF (IMOD.EQ.11) THEN
  943. * CCPL
  944. INATU = 85
  945. ELSE IF (IMOD.EQ.12) THEN
  946. * X11
  947. INATU = 86
  948. ELSE IF (IMOD.EQ.13) THEN
  949. * BPEL_RELAX
  950. INATU = 95
  951. ELSE IF (IMOD.EQ.14) THEN
  952. * BETON_URGC
  953. INATU = 101
  954. ELSE IF (IMOD.EQ.15) THEN
  955. * SODERBERG
  956. INATU = 102
  957. ELSE IF (IMOD.EQ.16) THEN
  958. * MAXOTT
  959. INATU = 106
  960. ELSE IF (IMOD.EQ.17) THEN
  961. * FBB1
  962. INATU = 127
  963. ELSE IF (IMOD.EQ.18) THEN
  964. * FBB2
  965. INATU = 128
  966. ELSE IF (IMOD.EQ.19) THEN
  967. * KELVIN
  968. ** INATU = 174
  969. * AM 3/3/17 MODELE INDISPONIBLE
  970. CMATE=' '
  971. IMATE=0
  972. INATU=0
  973. ENDIF
  974. ENDIF
  975. GOTO 900
  976. C
  977. 300 CONTINUE
  978. C
  979. C Comportement VISCOPLASTIQUE [option par defaut : ONERA]
  980. C ---------------------------
  981. INATU=25
  982. C
  983. IF (NMAT.GT.INMAT) THEN
  984. INMAT=INMAT+1
  985. CALL MODVIS(MOMODL,NMOD)
  986. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  987. C
  988. C Compatibilite entre "Tropie" et loi de comportement
  989. IF (IMATE.EQ.2) THEN
  990. IF ((IMOD.NE.14).AND.(IMOD.NE.35)) GOTO 1000
  991. ENDIF
  992. IF (IMOD.EQ.0 ) GOTO 1000
  993. C
  994. IF (IMOD.EQ.1 ) THEN
  995. * GUIONNET
  996. INATU=17
  997. ELSE IF (IMOD.EQ.2 ) THEN
  998. * ONERA
  999. INATU=25
  1000. ELSE IF (IMOD.EQ.3 ) THEN
  1001. * VISCODOMMAGE
  1002. INATU=29
  1003. ELSE IF (IMOD.EQ.4 ) THEN
  1004. * PARFAIT
  1005. INATU = 43
  1006. ELSE IF (IMOD.EQ.5 ) THEN
  1007. * POUDRE_A
  1008. INATU = 44
  1009. ELSE IF (IMOD.EQ.6 ) THEN
  1010. * POUDRE_B
  1011. INATU = 45
  1012. ELSE IF (IMOD.EQ.7 ) THEN
  1013. * OHNO
  1014. INATU = 53
  1015. ELSE IF (IMOD.EQ.8 ) THEN
  1016. * DDI
  1017. INATU = 63
  1018. ELSE IF (IMOD.EQ.9 ) THEN
  1019. * KOCK
  1020. INATU = 70
  1021. ELSE IF (IMOD.EQ.10) THEN
  1022. * NOUAILHAS_A
  1023. INATU = 76
  1024. ELSE IF (IMOD.EQ.11) THEN
  1025. * NOUAILHAS_B
  1026. INATU = 77
  1027. ELSE IF (IMOD.EQ.12) THEN
  1028. * VISK2
  1029. INATU = 82
  1030. ELSE IF (IMOD.EQ.13) THEN
  1031. * VISCOHINTE
  1032. INATU = 90
  1033. ELSE IF (IMOD.EQ.14) THEN
  1034. * MISTRAL
  1035. INATU = 94
  1036. ELSE IF (IMOD.EQ.15) THEN
  1037. * BETON_URGC
  1038. INATU = 100
  1039. ELSE IF (IMOD.EQ.16) THEN
  1040. * LEMENDO
  1041. INATU = 103
  1042. ELSE IF (IMOD.EQ.17) THEN
  1043. * FLUNOR2
  1044. INATU = 105
  1045. ELSE IF (IMOD.EQ.18) THEN
  1046. * GATT_MONERIE
  1047. INATU = 107
  1048. ELSE IF (IMOD.EQ.19) THEN
  1049. * UO2
  1050. INATU = 108
  1051. ELSE IF (IMOD.EQ.20) THEN
  1052. * BETON_URGC_ENDO
  1053. INATU = 122
  1054. ELSE IF (IMOD.EQ.21) THEN
  1055. * LOI DE COMPORTEMENT VISQUEUSE AVEC DOUBLE ENDO
  1056. INATU = 130
  1057. ELSE IF (IMOD.EQ.22) THEN
  1058. * 'CHAB_SINH_R'
  1059. INATU = 136
  1060. ELSE IF (IMOD.EQ.23) THEN
  1061. * 'CHAB_SINH_X'
  1062. INATU = 137
  1063. ELSE IF (IMOD.EQ.24) THEN
  1064. * 'CHAB_NOR_R'
  1065. INATU = 138
  1066. ELSE IF (IMOD.EQ.25) THEN
  1067. * 'CHAB_NOR_X'
  1068. INATU = 139
  1069. ELSE IF (IMOD.EQ.26) THEN
  1070. * 'PELLET'
  1071. INATU = 142
  1072. ELSE IF (IMOD.EQ.27) THEN
  1073. * 'FLUTRA'
  1074. INATU = 143
  1075. ELSE IF (IMOD.EQ.28) THEN
  1076. * 'SYCO1'
  1077. INATU = 153
  1078. ELSE IF (IMOD.EQ.29) THEN
  1079. * 'SYCO2'
  1080. INATU = 154
  1081. ELSE IF (IMOD.EQ.30) THEN
  1082. * 'CHABOCHE'
  1083. INATU = 165
  1084. ELSE IF (IMOD.EQ.31) THEN
  1085. * 'FLUENDO3D' 'Sellier'
  1086. INATU = 187
  1087. ELSE IF (IMOD.EQ.32) THEN
  1088. * 'INCLUSION3D' 'Sellier'
  1089. INATU = 188
  1090. ELSE IF (IMOD.EQ.33) THEN
  1091. * 'ENDO3D' 'Sellier'
  1092. INATU = 189
  1093. ELSE IF (IMOD.EQ.34) THEN
  1094. * 'FLUISO3D' 'Sellier'
  1095. INATU = 190
  1096. ELSE IF (IMOD.EQ.35) THEN
  1097. * 'FLUORTHO3D' 'Sellier'
  1098. INATU = 191
  1099. ENDIF
  1100. ENDIF
  1101. GOTO 900
  1102. C
  1103. 400 CONTINUE
  1104. C
  1105. C Comportement ENDOMMAGEMENT [option par defaut : MAZARS]
  1106. C --------------------------
  1107. INATU=30
  1108. C
  1109. IF (NMAT.GT.INMAT) THEN
  1110. INMAT=INMAT+1
  1111. CALL MODEND(MOMODL,NMOD)
  1112. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1113. C
  1114. C Compatibilite entre "Tropie" et loi de comportement
  1115. IF (IMATE.EQ.2) THEN
  1116. IF ((IMOD.NE.4).AND.(IMOD.NE.11).AND.(IMOD.NE.12))
  1117. & GOTO 1000
  1118. ENDIF
  1119. IF (IMOD.EQ.0 ) GOTO 1000
  1120. C
  1121. IF (IMOD.EQ.1 ) THEN
  1122. * MAZARS
  1123. INATU=30
  1124. ELSE IF (IMOD.EQ.2 ) THEN
  1125. * UNILATERAL
  1126. INATU=31
  1127. ELSE IF (IMOD.EQ.3 ) THEN
  1128. * ROTATING_CRACK
  1129. INATU=37
  1130. ELSE IF (IMOD.EQ.4 ) THEN
  1131. * SIC_SIC
  1132. INATU=88
  1133. ELSE IF (IMOD.EQ.5 ) THEN
  1134. * MICROPLANS
  1135. INATU=96
  1136. ELSE IF (IMOD.EQ.6 ) THEN
  1137. * VISCOUNILATERAL
  1138. INATU=97
  1139. ELSE IF (IMOD.EQ.7 ) THEN
  1140. * MICROISO
  1141. INATU=98
  1142. ELSE IF (IMOD.EQ.8 ) THEN
  1143. * MODIFIED VON MISES MVM
  1144. INATU=118
  1145. ELSE IF (IMOD.EQ.9 ) THEN
  1146. * CRUCRA
  1147. INATU=124
  1148. ELSE IF (IMOD.EQ.10) THEN
  1149. * DAMAGE_TC - R. Faria & J. Oliver
  1150. INATU=125
  1151. ELSE IF (IMOD.EQ.11) THEN
  1152. * SICSCAL - modele scalaire SiCf/SiC ONERA
  1153. INATU=131
  1154. ELSE IF (IMOD.EQ.12) THEN
  1155. * SICTENS - modele pseudo tensoriel SiCf/SiC ONERA
  1156. INATU=132
  1157. ELSE IF (IMOD.EQ.13) THEN
  1158. * DESMORAT
  1159. INATU=134
  1160. ELSE IF (IMOD.EQ.14) THEN
  1161. * FATSIN
  1162. INATU=141
  1163. ELSE IF (IMOD.EQ.15) THEN
  1164. * RICRAG2D
  1165. INATU=144
  1166. ELSE IF (IMOD.EQ.16) THEN
  1167. * GLRC_DM
  1168. INATU=157
  1169. ELSE IF (IMOD.EQ.17) THEN
  1170. * RICBET
  1171. INATU=158
  1172. ELSE IF (IMOD.EQ.18) THEN
  1173. * RICCOQ
  1174. INATU=159
  1175. ELSE IF (IMOD.EQ.19) THEN
  1176. * CONCYC
  1177. INATU=173
  1178. ELSE IF (IMOD.EQ.20) THEN
  1179. * EFEM
  1180. INATU=177
  1181. ENDIF
  1182. ENDIF
  1183. GOTO 900
  1184. C
  1185. 500 CONTINUE
  1186. C
  1187. C Comportement PLASTIQUE ENDOMMAGEABLE [option par defaut : PSURY]
  1188. C ------------------------------------
  1189. INATU=51
  1190. C
  1191. IF (NMAT.GT.INMAT) THEN
  1192. INMAT=INMAT+1
  1193. CALL MODPLE(MOMODL,NMOD)
  1194. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1195. C
  1196. IF (IMOD.EQ.10) THEN
  1197. IF (IMATE.NE.12) GOTO 1000
  1198. ELSE
  1199. IF (IMATE.EQ.12) GOTO 1000
  1200. ENDIF
  1201. IF (IMOD.EQ.0 ) GOTO 1000
  1202. C
  1203. IF (IMOD.EQ.1 ) THEN
  1204. * PSURY
  1205. INATU=51
  1206. ELSE IF (IMOD.EQ.2 ) THEN
  1207. * ROUSSELIER
  1208. INATU=62
  1209. ELSE IF (IMOD.EQ.3 ) THEN
  1210. * GURSON2
  1211. INATU=64
  1212. ELSE IF (IMOD.EQ.4 ) THEN
  1213. * DRAGON
  1214. INATU=75
  1215. ELSE IF (IMOD.EQ.5 ) THEN
  1216. * BETON_URGC
  1217. INATU=120
  1218. ELSE IF (IMOD.EQ.6 ) THEN
  1219. * BETON_INSA
  1220. INATU=121
  1221. ELSE IF (IMOD.EQ.7 ) THEN
  1222. * BETON_DYNAR_LMT
  1223. INATU=133
  1224. ELSE IF (IMOD.EQ.8 ) THEN
  1225. * ENDO_PLAS
  1226. INATU=135
  1227. ELSE IF (IMOD.EQ.9 ) THEN
  1228. * GERNAY
  1229. INATU=155
  1230. ELSE IF (IMOD.EQ.10) THEN
  1231. * WELLS
  1232. INATU=156
  1233. ENDIF
  1234. ENDIF
  1235. GOTO 900
  1236. C
  1237. 600 CONTINUE
  1238. C
  1239. C Comportement NON_LINEAIRE [pas d'option par defaut]
  1240. C -------------------------
  1241. C
  1242. IF (NMAT.GT.INMAT) THEN
  1243. INMAT=INMAT+1
  1244. CALL MODENL(MOMODL,NMOD)
  1245. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1246. C
  1247. IF ((IMOD.EQ.1).AND.(IMATE.NE.1)) GOTO 1000
  1248. IF (IMOD.EQ.0) GOTO 1000
  1249. C
  1250. IF (IMOD.EQ.1) THEN
  1251. C EQUIPLAS
  1252. INATU=87
  1253. ELSE IF (IMOD.EQ.2) THEN
  1254. C UTILISATEUR
  1255. IF (NMAT.GT.INMAT) THEN
  1256. INMAT=INMAT+1
  1257. INATU=-1
  1258. ELSE
  1259. CALL ERREUR(952)
  1260. RETURN
  1261. ENDIF
  1262. ENDIF
  1263. ELSE
  1264. GOTO 1000
  1265. ENDIF
  1266. GOTO 900
  1267. C
  1268. 700 CONTINUE
  1269. C
  1270. C Comportement VISCO_EXTERNE [pas d'option par defaut]
  1271. C --------------------------
  1272. C
  1273. IF (NMAT.GT.INMAT) THEN
  1274. INMAT=INMAT+1
  1275. CALL MODVIX(MOMODL,NMOD)
  1276. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1277. IF (IMOD.EQ.0) THEN
  1278. GOTO 1000
  1279. ELSE
  1280. IF (NMAT.GT.INMAT) THEN
  1281. INMAT=INMAT+1
  1282. INATU=-2-IMOD
  1283. c* Permet de recuperer IMOD=IVIEX (>0) en sortie de NOMATE avant de fixer
  1284. c* la valeur de INATU a -2
  1285. ELSE
  1286. CALL ERREUR(952)
  1287. RETURN
  1288. ENDIF
  1289. ENDIF
  1290. ELSE
  1291. GOTO 1000
  1292. ENDIF
  1293. GOTO 900
  1294. C
  1295. 800 CONTINUE
  1296. C
  1297. C Comportement IMPEDANCE [option par defaut : IMPELAST]
  1298. C ----------------------
  1299. CMATE='IMPELAST'
  1300. INATU=161
  1301. IF ((IMATE.EQ.9).OR.(IMATE.EQ.10)) IMATE=1
  1302. C
  1303. IF (NMAT.GT.INMAT) THEN
  1304. INMAT=INMAT+1
  1305. CALL MODIMP(MOMODL,NMOD)
  1306. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(INMAT))
  1307. IF (IMOD.EQ.1) THEN
  1308. CMATE='IMPELAST'
  1309. INATU=161
  1310. ELSEIF (IMOD.EQ.2) THEN
  1311. CMATE='IMPVOIGT'
  1312. INATU=162
  1313. ELSEIF (IMOD.EQ.3) THEN
  1314. CMATE='IMPREUSS'
  1315. INATU=163
  1316. ELSEIF (IMOD.EQ.4) THEN
  1317. CMATE='IMPCOMPL'
  1318. INATU=164
  1319. ENDIF
  1320. ENDIF
  1321. C
  1322. 900 CONTINUE
  1323. ENDIF
  1324. *--------------------------------------------------------------------*
  1325. * 3/ CAS DE LA FORMULATION 'LIQUIDE ' *
  1326. *--------------------------------------------------------------------*
  1327. ELSE IF (FORFO1.EQ.'LIQUIDE') THEN
  1328.  
  1329. IF (NMAT.EQ.0) THEN
  1330. CMATE='ISOTROPE'
  1331. IMATE=1
  1332. ELSE IF (NMAT.EQ.1) THEN
  1333. CALL PLACE(LISTMT,3,IPLAC,MATMOD(1))
  1334. IF (IPLAC.EQ.1) THEN
  1335. CMATE = MATMOD(1)
  1336. IMATE=1
  1337. ENDIF
  1338. ENDIF
  1339. *--------------------------------------------------------------------*
  1340. * 11/ CAS DE LA FORMULATION 'NAVIER_STOKES' *
  1341. *--------------------------------------------------------------------*
  1342. ELSE IF (FORFO1.EQ.'NAVIER_STOKES') THEN
  1343. C
  1344. C Option par defaut
  1345. CMATE='NEWTONIE'
  1346. IMATE=1
  1347. C
  1348. IF(NMAT.GT.0) THEN
  1349. CALL PLACE(LINAST,4,IPLAC,MATMOD(1))
  1350. IF (IPLAC.EQ.4) THEN
  1351. IMATE = IPLAC
  1352. CMATE = 'NLIN'
  1353. ENDIF
  1354. ENDIF
  1355. *--------------------------------------------------------------------*
  1356. * 13/ CAS DE LA FORMULATION 'EULER' *
  1357. *--------------------------------------------------------------------*
  1358. ELSE IF (FORFO1.EQ.'EULER') THEN
  1359. CMATE='NEWTONIE'
  1360. IMATE=1
  1361. *--------------------------------------------------------------------*
  1362. * 10/ CAS DE LA FORMULATION 'MAGNETODYNAMIQUE' *
  1363. *--------------------------------------------------------------------*
  1364. ELSE IF (FORFO1.EQ.'MAGNETODYNAMIQUE') THEN
  1365. C
  1366. C Option par defaut
  1367. CMATE='CORFOU '
  1368. IMATE=1
  1369. C
  1370. IF(NMAT.NE.0) THEN
  1371. IF(MATMOD(1).EQ.'POTENTIEL_VECTEU') THEN
  1372. CMATE='CORFOU '
  1373. IMATE=1
  1374. ELSE
  1375. CALL PLACE(LISTMT,3,IPLAC,MATMOD(1))
  1376. IF(IPLAC.NE.0) THEN
  1377. CMATE=LISTMT(IPLAC)
  1378. IMATE=IPLAC
  1379. ENDIF
  1380. ENDIF
  1381. IF(NMAT.GT.1) THEN
  1382. CALL PLACE(LISTMT,3,IPLAC,MATMOD(2))
  1383. IF(IPLAC.NE.0) THEN
  1384. CMATE=LISTMT(IPLAC)
  1385. IMATE=IPLAC
  1386. ENDIF
  1387. ENDIF
  1388. ENDIF
  1389. *--------------------------------------------------------------------*
  1390. * 8/ CAS DE LA FORMULATION 'CONTACT' *
  1391. *--------------------------------------------------------------------*
  1392. ELSE IF (FORFO1.EQ.'CONTACT') THEN
  1393. C
  1394. C Option par defaut
  1395. CMATE='UNILATERAL'
  1396. IMATE=1
  1397. INATU=0
  1398. C
  1399. CALL PLACE(MATMOD,NMAT,IPLAC,'PERMANENT')
  1400. IF (IPLAC.NE.0) THEN
  1401. CMATE='PERMANENT'
  1402. IMATE=2
  1403. ENDIF
  1404. C
  1405. CALL PLACE(MATMOD,NMAT,IPLA1,'FROTTANT')
  1406. CALL PLACE(MATMOD,NMAT,IPLA2,'COULOMB')
  1407. IF ((IPLA1+IPLA2).NE.0) INATU=1
  1408. C
  1409. CALL PLACE(MATMOD,NMAT,IPLAC,'FROCABLE')
  1410. IF (IPLAC.NE.0) INATU=2
  1411. *--------------------------------------------------------------------*
  1412. * 8/ CAS DE LA FORMULATION 'CONTRAINTE' *
  1413. *--------------------------------------------------------------------*
  1414. ELSE IF (FORFO1.EQ.'CONTRAINTE') THEN
  1415. IMATE=0
  1416. INATU=0
  1417. IF (NMAT.NE.0) THEN
  1418. CALL MODCLI(MOMODL,NMOD)
  1419. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
  1420. IF (IPLAC.EQ.1) THEN
  1421. CMATE='DEPLACEMENT'
  1422. INATU=1
  1423. ELSEIF (IPLAC.EQ.2) THEN
  1424. CMATE='ROTATION'
  1425. INATU=2
  1426. ELSEIF (IPLAC.EQ.3) THEN
  1427. CMATE='RELATION'
  1428. INATU=3
  1429. ENDIF
  1430. ENDIF
  1431. *--------------------------------------------------------------------*
  1432. * 12/ CAS DE LA FORMULATION 'MELANGE' *
  1433. * on renvoie le premier modele trouve !!! *
  1434. *--------------------------------------------------------------------*
  1435. ELSE IF (FORFO1.EQ.'MELANGE') THEN
  1436. C
  1437. C Option par defaut
  1438. CMATE = 'PARALLELE'
  1439. IMATE = 3
  1440. C
  1441. IF (NMAT.NE.0) THEN
  1442. CALL MODMEL(MOMODL,NMOD)
  1443. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
  1444. IF (IPLAC.GT.0) THEN
  1445. CMATE = MOMODL(IPLAC)
  1446. IMATE = IPLAC
  1447. ELSE
  1448. IEXI=0
  1449. GOTO 99
  1450. ENDIF
  1451. ENDIF
  1452. *--------------------------------------------------------------------*
  1453. * 14/ CAS DE LA FORMULATION 'FISSURE' *
  1454. *--------------------------------------------------------------------*
  1455. ELSE IF (FORFO1.EQ.'FISSURE') THEN
  1456. C
  1457. C Option par defaut :
  1458. C Mode de condensation : MAsse
  1459. C Comportement de la vapeur : PArfait
  1460. C Loi de frottement : BLASius
  1461. CMATE = 'MAPABLAS'
  1462. C
  1463. IF (NMAT.NE.0) THEN
  1464. C MODE DE CONDENSATION
  1465. CALL MODCDE(MOMODL,NMOD)
  1466. CALL PLACE(MOMODL,NMOD,IPLA1,MATMOD(1))
  1467. CALL PLACE(MOMODL,NMOD,IPLA2,MATMOD(2))
  1468. CALL PLACE(MOMODL,NMOD,IPLA3,MATMOD(3))
  1469. IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN
  1470. CMAT1='MA'
  1471. ELSE
  1472. IF (IPLA1.GT.0) CMAT1=MATMOD(1)(1:2)
  1473. IF (IPLA2.GT.0) CMAT1=MATMOD(2)(1:2)
  1474. IF (IPLA3.GT.0) CMAT1=MATMOD(3)(1:2)
  1475. END IF
  1476. C
  1477. C COMPORTEMENT DE LA VAPEUR
  1478. CALL MODVAP(MOMODL,NMOD)
  1479. CALL PLACE(MOMODL,NMOD,IPLA1,MATMOD(1))
  1480. CALL PLACE(MOMODL,NMOD,IPLA2,MATMOD(2))
  1481. CALL PLACE(MOMODL,NMOD,IPLA3,MATMOD(3))
  1482. IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN
  1483. CMAT2='PA'
  1484. ELSE
  1485. IF (IPLA1.GT.0) CMAT2=MATMOD(1)(1:2)
  1486. IF (IPLA2.GT.0) CMAT2=MATMOD(2)(1:2)
  1487. IF (IPLA3.GT.0) CMAT2=MATMOD(3)(1:2)
  1488. END IF
  1489. C
  1490. C LOIS DE FROTTEMENT
  1491. CALL MODFRT(MOMODL,NMOD)
  1492. CALL PLACE(MOMODL,NMOD,IPLA1,MATMOD(1))
  1493. CALL PLACE(MOMODL,NMOD,IPLA2,MATMOD(2))
  1494. CALL PLACE(MOMODL,NMOD,IPLA3,MATMOD(3))
  1495. IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN
  1496. CMAT3='BLAS'
  1497. ELSE
  1498. IF (IPLA1.GT.0) CMAT3=MATMOD(1)(8:11)
  1499. IF (IPLA2.GT.0) CMAT3=MATMOD(2)(8:11)
  1500. IF (IPLA3.GT.0) CMAT3=MATMOD(3)(8:11)
  1501. END IF
  1502. *
  1503. CMATE = CMAT1(1:2)//CMAT2(1:2)
  1504. CMATE = CMATE(1:4)//CMAT3(1:4)
  1505. IMATE = 1
  1506. INATU = 1
  1507. END IF
  1508. *--------------------------------------------------------------------*
  1509. * 15/ CAS DE LA FORMULATION 'LIAISON' *
  1510. *--------------------------------------------------------------------*
  1511. ELSE IF (FORFO1.EQ.'LIAISON') THEN
  1512. IMO2 = 0
  1513. CALL MODLIA(MOMODL,NMOD)
  1514. CALL PLACE(MOMODL,NMOD,IMOD,MATMOD(1))
  1515. IF (IMOD.EQ.0) THEN
  1516. IEXI=0
  1517. GOTO 99
  1518. ELSE
  1519. IF (NMAT.GT.1) THEN
  1520. CALL PLACE(MOMODL,NMOD,IMO2,MATMOD(2))
  1521. ENDIF
  1522. ENDIF
  1523. IF (IMOD.EQ.1.AND.IMO2.EQ.3) THEN
  1524. CMATE='PO_PL_FL'
  1525. IMATE=1
  1526. ELSEIF (IMOD.EQ.1.AND.IMO2.EQ.2) THEN
  1527. CMATE='PO_PL_FR'
  1528. IMATE=2
  1529. ELSEIF (IMOD.EQ.1.AND.IMO2.EQ.0) THEN
  1530. CMATE='PO_PL'
  1531. IMATE=3
  1532. ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.2) THEN
  1533. CMATE='PO_PO_FR'
  1534. IMATE=4
  1535. ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.5) THEN
  1536. CMATE='PO_PO_DP'
  1537. IMATE=5
  1538. ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.6) THEN
  1539. CMATE='PO_PO_RP'
  1540. IMATE=6
  1541. ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.0) THEN
  1542. CMATE='PO_PO'
  1543. IMATE=7
  1544. ELSEIF (IMOD.EQ.8.AND.IMO2.EQ.9) THEN
  1545. CMATE='PO_CE_MO'
  1546. IMATE=8
  1547. ELSEIF (IMOD.EQ.8.AND.IMO2.EQ.2) THEN
  1548. CMATE='PO_CE_FR'
  1549. IMATE=9
  1550. ELSEIF (IMOD.EQ.8.AND.IMO2.EQ.0) THEN
  1551. CMATE='PO_CE'
  1552. IMATE=10
  1553. ELSEIF (IMOD.EQ.11.AND.IMO2.EQ.2) THEN
  1554. CMATE='CE_PL_FR'
  1555. IMATE=11
  1556. ELSEIF (IMOD.EQ.12.AND.IMO2.EQ.2) THEN
  1557. CMATE='CE_CE_FR'
  1558. IMATE=12
  1559. ELSEIF (IMOD.EQ.10.AND.IMO2.EQ.13) THEN
  1560. CMATE='PR_PR_IN'
  1561. IMATE=13
  1562. ELSEIF (IMOD.EQ.10.AND.IMO2.EQ.14) THEN
  1563. CMATE='PR_PR_EX'
  1564. IMATE=14
  1565. ELSEIF (IMOD.EQ.15.AND.IMO2.EQ.2) THEN
  1566. CMATE='LI_LI_FR'
  1567. IMATE=15
  1568. ELSEIF (IMOD.EQ.16.AND.IMO2.EQ.2) THEN
  1569. CMATE='LI_CE_FR'
  1570. IMATE=16
  1571. ELSEIF (IMOD.EQ.17.AND.IMO2.EQ.22) THEN
  1572. CMATE='PA_FL_RO'
  1573. IMATE=17
  1574. ELSEIF (IMOD.EQ.18.AND.IMO2.EQ.19) THEN
  1575. CMATE='COUP_DEP'
  1576. IMATE=18
  1577. ELSEIF (IMOD.EQ.18.AND.IMO2.EQ.20) THEN
  1578. CMATE='COUP_VIT'
  1579. IMATE=19
  1580. ELSEIF (IMOD.EQ.21.AND.IMO2.EQ.0) THEN
  1581. CMATE='POLYNOMI'
  1582. IMATE=20
  1583. ELSEIF (IMOD.EQ.23.AND.IMO2.EQ.24) THEN
  1584. CMATE='NEWMOD'
  1585. IMATE=23
  1586. ELSE
  1587. IEXI=0
  1588. GOTO 99
  1589. ENDIF
  1590. *--------------------------------------------------------------------*
  1591. * 16/ CAS DE LA FORMULATION 'THERMOHYDRIQUE' *
  1592. *--------------------------------------------------------------------*
  1593. ELSE IF (FORFO1.EQ.'THERMOHYDRIQUE') THEN
  1594. C
  1595. C Option par defaut
  1596. CMATE='SCHREFLER'
  1597. IMATE=1
  1598. C
  1599. IF (NMAT.NE.0) THEN
  1600. IF (MATMOD(1).NE.'SCHREFLER') THEN
  1601. IEXI=0
  1602. GOTO 99
  1603. ENDIF
  1604. ENDIF
  1605. *----------------------------------------------------------------------*
  1606. * 17/ CAS DE LA FORMULATION 'ELECTROSTATIQUE' *
  1607. *----------------------------------------------------------------------*
  1608. ELSE IF (FORFO1.EQ.'ELECTROSTATIQUE') THEN
  1609. C
  1610. C Option par defaut
  1611. CMATE = 'ISOTROPE'
  1612. IMATE = 1
  1613. INATU = 0
  1614. C
  1615. IF (NMAT.NE.0) THEN
  1616. CALL PLACE(LISTMT,3,IPLAC,MATMOD(1))
  1617. IF (IPLAC.NE.0) THEN
  1618. CMATE = MATMOD(IPLAC)
  1619. IMATE = IPLAC
  1620. ENDIF
  1621. ENDIF
  1622. *----------------------------------------------------------------------*
  1623. * 18/ CAS DE LA FORMULATION 'DIFFUSION' *
  1624. *----------------------------------------------------------------------*
  1625. ELSE IF (FORFO1.EQ.'DIFFUSION') THEN
  1626. C
  1627. C Option par defaut
  1628. CMATE = 'ISOTROPE'
  1629. IMATE = 1
  1630. INATU = 0
  1631. C
  1632. IF (NMAT.NE.0) THEN
  1633. INMAT = INMAT+1
  1634. CALL PLACE(LISTMT,3,IPLAC,MATMOD(INMAT))
  1635. IF (IPLAC.NE.0) THEN
  1636. CMATE = MATMOD(INMAT)
  1637. IMATE = IPLAC
  1638. INMAT = INMAT+1
  1639. ENDIF
  1640. IF (NMAT.GE.INMAT) THEN
  1641. CALL MODDIF(MOMODL,NMOD)
  1642. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  1643. IF (IPLAC.EQ.0) THEN
  1644. IEXI=0
  1645. GOTO 99
  1646. ELSE
  1647. INMAT = INMAT+1
  1648. IF (IPLAC.EQ.1) THEN
  1649. C FICK (lineaire)
  1650. INATU = 0
  1651. ELSE IF (IPLAC.EQ.2) THEN
  1652. C SORET (non lineaire)
  1653. INATU = 1
  1654. ELSE IF (IPLAC.EQ.3) THEN
  1655. C UTILISATEUR (non lineaire)
  1656. IF (NMAT.GT.INMAT) THEN
  1657. INMAT = INMAT+1
  1658. INATU = -1
  1659. ELSE
  1660. CALL ERREUR(952)
  1661. RETURN
  1662. ENDIF
  1663. ELSE IF (IPLAC.EQ.4) THEN
  1664. C DISSIPATION
  1665. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT))
  1666. IF (IPLAC.GE.5) THEN
  1667. C LINEAIRE
  1668. CMATE = matmod(inmat)
  1669. inatu = iplac
  1670. ENDIF
  1671. ENDIF
  1672. ENDIF
  1673. ENDIF
  1674. ENDIF
  1675. *----------------------------------------------------------------------*
  1676. * 19/ CAS DE LA FORMULATION 'CHARGEMENT ' *
  1677. *----------------------------------------------------------------------*
  1678. ELSE IF (FORFO1.EQ.'CHARGEMENT') THEN
  1679. INATU = 0
  1680. CALL MOCHAR(MOMODL,NMOD)
  1681. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
  1682. IF (IPLAC.EQ.0) THEN
  1683. IEXI=0
  1684. GOTO 99
  1685. ELSE
  1686. CMATE = MATMOD(IPLAC)
  1687. IMATE = IPLAC
  1688. ENDIF
  1689. *---------------------------------------------------------------------*
  1690. * 20/ CAS DE LA FORMULATION 'METALLURGIE' *
  1691. *---------------------------------------------------------------------*
  1692. ELSE IF (FORFO1.EQ.'METALLURGIE') THEN
  1693. CALL MOMETA(MOMODL,NMOD)
  1694. CMATE = 'METALLUR'
  1695. INATU = 178
  1696. *---------------------------------------------------------------------*
  1697. * 21/ CAS DE LA FORMULATION 'CHANGEMENT_PHASE' *
  1698. *---------------------------------------------------------------------*
  1699. ELSEIF (FORFO1.EQ.'CHANGEMENT_PHASE') THEN
  1700. CALL MOCHPH(MOMODL,NMOD)
  1701. CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1))
  1702. IF (IPLAC.EQ.1) THEN
  1703. CMATE = 'CHPH_PAR'
  1704. IMATE = IPLAC
  1705. INATU = 179
  1706. ELSEIF (IPLAC.EQ.2) THEN
  1707. CMATE = 'CHPH_SOL'
  1708. IMATE = IPLAC
  1709. INATU = 180
  1710. ELSE
  1711. IEXI=0
  1712. GOTO 99
  1713. ENDIF
  1714. *--------------------------------------------------------------------*
  1715. * 22/ ENDIF correspondant a la FIN des formulations simples *
  1716. *--------------------------------------------------------------------*
  1717. ENDIF
  1718. *
  1719. ELSEIF (NFOR.EQ.2) THEN
  1720. *--------------------------------------------------------------------*
  1721. * NFOR=2 1/ CAS DE LA FORMULATION 'LIQUIDE '+ 'MECANIQUE' *
  1722. *--------------------------------------------------------------------*
  1723. forfo2=formod(2)
  1724. IF ((forfo1.EQ.'LIQUIDE'.AND.forfo2.EQ.'MECANIQUE').OR.
  1725. & (forfo2.EQ.'LIQUIDE'.AND.forfo1.EQ.'MECANIQUE')) THEN
  1726. *
  1727. * La formulation suffit
  1728. CMATE='LIQ+MECA'
  1729. IMATE=1
  1730. ENDIF
  1731. ENDIF
  1732. C
  1733. 99 CONTINUE
  1734. C
  1735. IF (IEXI.EQ.0) THEN
  1736. CMATE=' '
  1737. IMATE=0
  1738. INATU=0
  1739. ENDIF
  1740.  
  1741. END
  1742.  
  1743.  
  1744.  

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