Télécharger nomate.eso

Retour à la liste

Numérotation des lignes :

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

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