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