Télécharger nomate.eso

Retour à la liste

Numérotation des lignes :

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

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