nomate
C NOMATE SOURCE MB234859 25/08/04 21:15:34 12339 * le dernier numero de materiau utilise est le : 191 *--------------------------------------------------------------------* * * * DETERMINER UN NUMERO POUR UN MODELE DE MATERIAU * * _______________________________________________ * * * * ENTREES * * * * FORMOD Liste des formulations * * NFOR Nombre de formulations * * MATMOD Liste des materiaux * * NMAT Nombre de materiaux * * * * SORTIES * * * * CMATE Nom du materiau (isotrope, orthotrope....) * * IMATE Numero du materiau * * INATU Numero de nature * * * * NOMS DE MATERIAUX POSSIBLES * * * *--------------------------------------------------------------------* * 1/ 'THERMIQUE' * * * * 'ISOTROPE' * * 'ORTHOTROPE' * * 'ANISOTROPE' * * 'CONDUCTION' * * 'CONVECTION' * * 'ADVECTION' non lineaire de conduction * * 'PHASE' non lineaire de conduction * * 'DISSIPATION' * * 'RAYONNEMENT' * * imate=1 ancien rayonnement avec table * * imate=2 fac_a_fac * * imate=3 infini * * imate=4 cavite * * inatu 1 cavite toute simple * * inatu=2 cavite ferme * * inatu=3 cavite syme * * inatu=4 cavite convexe * * inatu=5 cavite syme convexe * * inatu=6 cavite ferme convexe * * inatu=7 cavite syme ferme * * inatu=8 cavite syme convexe ferme * * 'SOURCE' source de chaleur : CMATE = 'SOURCE' * * * * formulation generale : INATU = 1 / IMATE = 1 * * * * formulation generale :' INATU = 2 / IMATE = 1 * * 'GAUSSIENNE' 'ELLIPTIQUE' INATU = 2 / IMATE = 2 * * 'GAUSSIENNE' 'ELARGIE' INATU = 2 / IMATE = 3 * * * *--------------------------------------------------------------------* * 2/ 'MECANIQUE' OU 6/ 'POREUX' * * * * ELASTIQUE * * 'ISOTROPE' * * 'ORTHOTROPE' * * 'ANISOTROPE' * * 'POREUX' * * 'HOMOGENEISE' * * 'UNIDIRECTIONNEL' * * 'SECTION' * * 'ARMATURE' * * 'MODAL' * * 'STATIQUE' * * 'ZONE_COHESIVE' * * * * PLASTIQUE * * 'PARFAIT' INATU = 1 * * 'LINESPRING' INATU = 2 * * 'DRUCKER-SIMPLE' INATU = 3 * * 'CINEMATIQUE' INATU = 4 * * 'ISOTROPE' INATU = 5 * * 'CHABOCHE1' INATU = 7 * * 'BETON' INATU = 9 * * 'CHABOCHE2' INATU = 12 * * 'TUYAU-FISSURE' INATU = 14 * * 'DRUCKER-PRAGER' INATU = 15 * * 'GAUVAIN' INATU = 16 * * 'ENDOMMAGEABLE' INATU = 26 * * 'UBIQUITOUS' INATU = 28 * * 'GLOBAL' INATU = 32 * * 'CAM-CLAY' INATU = 33 * * 'COULOMB' INATU = 34 * * 'JOINT_DILATANT' INATU = 35 * * 'BETON_AXI' INATU = 36 * * 'GURSON' INATU = 38 * * 'BETON_UNI' INATU = 39 * * 'ACIER_UNI' INATU = 40 * * 'FRAGILE_UNI' INATU = 78 * * 'BETON_BAEL' INATU = 79 * * 'PARFAIT_UNI' INATU = 80 * * 'STRUT_UNI' INATU = 83 * * 'CINEMATIQUE_ANCRAGE' INATU = 92 * * 'ACIER_ANCRAGE' INATU = 93 * * 'SECTION' INATU = 41 * * 'OTTOSEN' INATU = 42 * * 'OTTOVARI' INATU = 148 * * 'MAZARS_FIB' INATU = 46 * * 'AMADEI' INATU = 47 * * 'HUJEUX' INATU = 48 * * 'STEINBERG' INATU = 49 * * 'ZERILLI' INATU = 50 * * 'PRESTON' INATU = 52 * * 'BETOCYCL' INATU = 54 * * 'ROTATING_CRACK' INATU = 55 * * 'JOINT_SOFT' INATU = 56 * * 'ANCRAGE_ELIGEHAUSEN' INATU = 91 * * 'BILI_MOMY' INATU = 57 * * 'BILI_EFFZ' INATU = 58 * * 'TAKEMO_MOMY' INATU = 59 * * 'TAKEMO_EFFZ' INATU = 60 * * 'BETON_INSA' INATU = 66 * * 'ECROUIS_DECOU' INATU = 67 * * 'PARFAIT_DECOU' INATU = 68 * * 'ALONSO' INATU = 69 * * 'BA1D' INATU = 147 * * 'PAKZAD' INATU = 71 * * 'INFILL_UNI' INATU = 72 * * 'CISAIL_NL' INATU = 73 * * 'HINT' INATU = 89 * * 'BETON_URGC' INATU = 99 * * 'UNILATERAL' (Fibre) INATU = 104 * * 'INCO' INATU = 129 * * 'INTIMP' INATU = 145 * * 'RICJOI' INATU = 146 * * 'OUGLOVA' INATU = 175 * * 'MRS_LADE' INATU = 111 * * 'J2' INATU = 112 * * 'RH_COULOMB' INATU = 113 * * 'VMT_FEFP' INATU = 114 * * 'RHMC_FEFP' INATU = 115 * * 'POWDER_FEFP' INATU = 116 * * 'POWDERCAP_FEFP' INATU = 117 * * 'JOINT_COAT' INATU = 119 * * 'CONCRETE_UNI' INATU = 123 * * 'MUR_SHEAR' INATU = 126 * * 'DRUCKER_PRAGER2' INATU = 140 * * 'BILIN_EFFX' INATU = 150 * * 'ISS_GRANGE' INATU = 151 * * 'RUP_THER' INATU = 152 * * 'RICBET_UNI' INATU = 160 * * 'LIAISON_ACBE' INATU = 171 * * 'DP_SOL' INATU = 172 * * 'CONCYC' INATU = 173 * * 'IWPR3D_SOL' INATU = 176 * * 'NORTON' (Fibre) INATU = 181 * * 'POLYNOMIAL' (Fibre) INATU = 182 * * 'BLACKBURN' (Fibre) INATU = 183 * * 'BLACKBURN_2' (Fibre) INATU = 184 * * 'LEMAITRE' (Fibre) INATU = 185 * * * * FLUAGE * * 'NORTON' INATU = 19 * * 'BLACKBURN' INATU = 20 * * 'POLYNOMIAL' INATU = 21 * * 'RCCMR-316' INATU = 22 * * 'RCCMR-304' INATU = 23 * * 'LEMAITRE' INATU = 24 * * 'BLACKBURN_2' INATU = 61 * * 'CERAMIQUE' INATU = 65 * * 'MAXWELL' INATU = 74 * * 'COMETE' INATU = 84 * * 'CCPL' INATU = 85 * * 'X11' INATU = 86 * * 'BPEL_RELAX' INATU = 95 * * 'BETON_URGC' INATU = 101 * * 'SODERBERG' INATU = 102 * * 'MAXOTT' INATU = 106 * * 'FBB1' INATU = 127 * * 'FBB2' INATU = 128 * * 'KELVIN' INATU = 174 * * * * VISCOPLASTIQUE * * 'GUIONNET' INATU = 17 * * 'ONERA' INATU = 25 * * 'VISCODOMMAGE' INATU = 29 * * 'PARFAIT' INATU = 43 * * 'POUDRE_A' INATU = 44 * * 'POUDRE_B' INATU = 45 * * 'OHNO' INATU = 53 * * 'DDI' INATU = 63 * * 'KOCKS' INATU = 70 * * 'NOUAILHAS_A' INATU = 76 * * 'NOUAILHAS_B' INATU = 77 * * 'VISK2' INATU = 82 * * 'VISCOHINT' INATU = 90 * * 'MISTRAL' INATU = 94 * * 'BETON_URGC' INATU = 100 * * 'BETON_URGC_ENDO' INATU = 122 * * 'LEMENDO' INATU = 103 * * 'FLUNOR2' INATU = 105 * * 'GATT_MONERIE' INATU = 107 * * 'UO2' INATU = 108 * * 'VISCODD' INATU = 130 * * 'CHAB_SINH_R' INATU = 136 * * 'CHAB_SINH_X' INATU = 137 * * 'CHAB_NOR_R' INATU = 138 * * 'CHAB_NOR_X' INATU = 139 * * 'PELLET' INATU = 142 * * 'FLUTRA' INATU = 143 * * 'SYCO1' INATU = 153 * * 'SYCO2' INATU = 154 * * 'CHABOCHE' INATU = 165 * * 'FLUENDO3D' INATU = 187 * 'INCLUSION3D' INATU = 188 * 'ENDO3D' INATU = 189 * 'FLUISO3D' INATU = 190 * 'FLUORTHO3D' INATU = 191 * * * ENDOMMAGEABLE * * 'MAZARS' INATU = 30 * * 'UNILATERAL' INATU = 31 * * 'ROTATING_CRACK' INATU = 37 * * 'SIC_SIC' INATU = 88 * * 'MICROPLANS' INATU = 96 * * 'VISCOUNILATERAL' INATU = 97 * * 'MICROISO' INATU = 98 * * 'SICSCAL' INATU = 131 * * 'SICTENS' INATU = 132 * * 'FATSIN' INATU = 141 * * 'RICRAG' INATU = 144 * * 'MVM' INATU = 118 * * 'CRUCRA' INATU = 124 * * 'DAMAGE_TC' INATU = 125 * * 'DESMORAT' INATU = 134 * * 'GLRC_DM' INATU = 157 * * 'RICBET' INATU = 158 * * 'RICCOQ' INATU = 159 * * 'EFEM' INATU = 177 * * * * PLASTIQUE_ENDOM(MAGEABLE) * * 'PSURY' INATU = 51 * * 'ROUSSELIER' INATU = 62 * * 'GURSON2' INATU = 64 * * 'DRAGON' INATU = 75 * * 'BETON_URGC' INATU = 120 * * 'BETON_INSA' INATU = 121 * * 'BETON_DYNAR_LMT' INATU = 133 * * 'ENDO_PLAS' INATU = 135 * * 'GERNAY' INATU = 155 * * 'WELLS' INATU = 156 * * * * ELASTIQUE NON_LINEAIRE * * 'EQUIPLAS' INATU = 87 * * 'UTILISATEUR' INATU = -1 * * * * VISCO_EXTERNE * * 'GENERAL' IVIEX = 1 INATU = -2 * * 'DRUCKER_PRAGER' IVIEX = 2 en sortie de NOMATE, * * 'COHESION' IVIEX = 3 INATU = -2 - IVIEX * * 'CONSOLIDATION' IVIEX = 4 ce qui permet de * * 'UTILISATEUR' IVIEX = 5 recuperer IVIEX * * * * IMPEDANCE * * 'ELASTIQUE' INATU = 161 * * 'VOIGT' INATU = 162 * * 'MAXWELL' INATU = 163 * * 'COMPL??' INATU = 164 * *--------------------------------------------------------------------* * 3/ 'LIQUIDE ' * * 'ISOTROPE' * *--------------------------------------------------------------------* * 5/ 'MECANIQUE+LIQUIDE' * * la formulation suffit * *--------------------------------------------------------------------* * 6/ 'POREUX' VOIR 2/ * *--------------------------------------------------------------------* * 7/ 'DARCY' * * * * 'ISOTROPE' * * 'ORTHOTROPE' * * 'ANISOTROPE' * *--------------------------------------------------------------------* * 8/ 'CONTACT ' * * * * 'COULOMB' INATU=1 * * 'FROCABLE' INATU=2 * *--------------------------------------------------------------------* * 10/ 'MAGNETODYNAMIQUE' * * * * 'POTENTIEL_VECTEUR' * * 'ISOTROPE' * * 'ORTHOTROPE' * *--------------------------------------------------------------------* * 11/ 'NAVIER_STOKES' * * * * 'NEWTONIEN' * * 'BINGHAM' * * 'VISCOPLASTIQUE' * *--------------------------------------------------------------------* * 12/ 'MELANGE' * * * * 'CEREM' * * 'ZTMAX' * * 'PARALLELE' * * 'SERIE' * * 'UTILISATEUR' * *--------------------------------------------------------------------* * 13/ 'EULER' * * * * 'NEWTONIEN' * *--------------------------------------------------------------------* * 14/ 'FISSURE' * * * * 'MASS' 'PARF' 'POISEU_BLASIUS' * * 'FILM' 'REEL' 'POISEU_COLEBROOK' * * 'FROTTEMENT1' * * 'FROTTEMENT2' * * 'FROTTEMENT3' * * 'FROTTEMENT4' * *--------------------------------------------------------------------* * 15/ 'LIAISON' * * * * 'POINT_PLAN_FLUIDE' * * 'POINT_PLAN_FROTTEMENT' * * 'POINT_PLAN' * * 'POINT_POINT_FROTTEMENT' * * 'POINT_POINT_DEPLACEMENT_PLASTIQUE' * * 'POINT_POINT_ROTATION_PLASTIQUE' * * 'POINT_POINT' * * 'POINT_CERCLE_MOBILE' * * 'POINT_CERCLE_FROTTEMENT' * * 'POINT_CERCLE' * * 'CERCLE_PLAN_FROTTEMENT' * * 'CERCLE_CERCLE_FROTTEMENT' * * 'PROFIL_PROFIL_INTERIEUR' * * 'PROFIL_PROFIL_EXTERIEUR' * * 'LIGNE_LIGNE_FROTTEMENT' * * 'LIGNE_CERCLE_FROTTEMENT' * * 'PALIER_FLUIDE' * * 'NEWMARK' * *--------------------------------------------------------------------* * 16/ 'THERMOHYDRIQUE' * * * * 'SCHREFLER' * *--------------------------------------------------------------------* * 17/ 'ELECTROSTATIQUE' * * * * 'ISOTROPE' * * 'ORTHOTROPE' * * 'ANISOTROPE' * *--------------------------------------------------------------------* * 18/ 'DIFFUSION' * * * * 'ISOTROPE' * * 'ORTHOTROPE' * * 'ANISOTROPE' * * 'FICK' INATU = 0 * * 'SORET' INATU = 1 * * 'UTILISATEUR' INATU =-1 * *--------------------------------------------------------------------* * 19/ 'METALLURGIE' INATU = 178 * *--------------------------------------------------------------------* * 20/ 'CHANGEMENT_PHASE' * * * * 'PARFAIT' INATU = 179 * * 'SOLUBILITE' INATU = 180 * *--------------------------------------------------------------------* * 21/ 'CONTRAINTE' * * * * 'ROTATION' INATU = 1 * * 'DEPLACEMENT' INATU = 2 * * 'RELATION' INATU = 3 * *--------------------------------------------------------------------* * DECLARATIONS * *--------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO INTEGER NFOR,NMAT CHARACTER*(*) CMATE CHARACTER*16 FORMOD(*),MATMOD(*) * CHARACTER*16 MOMODL(200),FORFO1,FORFO2 * CHARACTER*16 LISTMT(3),LINAST(4) CHARACTER*12 CMAT1,CMAT2,CMAT3 DATA LISTMT / 'ISOTROPE ', & 'ORTHOTROPE ', & 'ANISOTROPE ' / DATA LINAST / 'NEWTONIEN ','BINGHAM ', & 'VISCOPLASTIQUE ','NLIN '/ * CMATE = ' ' IMATE = 0 INATU = 0 * INMAT = 0 IEXI = 1 * FORFO1 = FORMOD(1) * IF (NFOR.EQ.1) THEN *--------------------------------------------------------------------* * 1/ Cas de la formulation 'THERMIQUE' OU 'DARCY' * *--------------------------------------------------------------------* IF (FORFO1.EQ.'THERMIQUE'.OR.FORFO1.EQ.'DARCY') THEN C C Par defaut la formulation est isotrope CMATE='ISOTROPE' IMATE=1 C IF (NMAT.NE.0) THEN C C "Tropie" INMAT=INMAT+1 IF (IPLAC.NE.0) THEN CMATE=MATMOD(1) IMATE=IPLAC INMAT=INMAT+1 ENDIF C IF (FORFO1.EQ.'THERMIQUE') THEN IF (NMAT.GE.INMAT) THEN IF (IPLAC.EQ.2) THEN CMATE = 'CONVECTI' IMATE = 1 IF (NMAT.GT.2)THEN IF (IPLAC.NE.0) IMATE = IPLAC ENDIF ELSEIF (IPLAC.EQ.4) THEN CMATE = 'RAYONNEM' IMATE = 1 IF(NMAT.GT.2) THEN IF(IPLAC.EQ.1)THEN C Rayonnement FACE A FACE IMATE=2 ELSEIF(IPLAC.EQ.2) THEN C Rayonnement INFINI IMATE=3 ELSEIF(IPLAC.EQ.3) THEN C Rayonnement CAVITE IMATE=4 ICAS=0 IF(IPLACF.NE.0) ICAS=ICAS+1 IF(IPLACS.NE.0) ICAS=ICAS+1 IF(IPLACC.NE.0) ICAS=ICAS+1 IF(ICAS.EQ.0) THEN INATU=1 ELSEIF(ICAS.EQ.1)THEN IF(IPLACF.NE.0) THEN INATU=2 ELSEIF(IPLACS.NE.0) THEN INATU=3 ELSE INATU=4 ENDIF ELSEIF(ICAS.EQ.2) THEN IF(IPLACF.EQ.0) THEN INATU=5 ELSEIF(IPLACS.EQ.0) THEN INATU=6 ELSE INATU=7 ENDIF ELSE INATU=8 endif ENDIF ENDIF ELSEIF (IPLAC.EQ.6) THEN CMATE = 'SOURCE' INATU = 1 IMATE = 1 IF (NMAT.GT.1) THEN C C SOURCE GAUSSIENNE IF (IPLAC.EQ.1) THEN INATU = 2 IMATE = 1 IF (NMAT.GT.2) THEN IF (IPLAC.EQ.2) THEN C Gaussienne : Spherique IMATE = 1 ELSEIF (IPLAC.EQ.3) THEN C Gaussienne : Elliptique IMATE = 2 ELSEIF (IPLAC.EQ.4) THEN C Gaussienne : Elargie IMATE = 3 ELSE MOTERR(1:40) = 'SOURCE '//MATMOD(2)//MATMOD(3) RETURN ENDIF ENDIF ELSE MOTERR(1:8) = MATMOD(2) MOTERR(9:16) = 'SOURCE ' RETURN ENDIF ENDIF ENDIF ENDIF ENDIF C ENDIF *--------------------------------------------------------------------* * 2/ Cas de la formulation 'MECANIQUE' OU 'POREUX' * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'MECANIQUE'.OR.FORFO1.EQ.'POREUX') THEN C IF (NMAT.NE.0) THEN C C Comportement reversible C ----------------------- INMAT=INMAT+1 IF (IPLAC.EQ.1) THEN C C "Tropie" par defaut : ISOTROPE CMATE = 'ISOTROPE' IMATE=1 C IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 IF (ITROP.NE.0) THEN CMATE = MOMODL(ITROP) IF (ITROP.LE.3) THEN IMATE=ITROP ELSE IF (ITROP.EQ.4) THEN IMATE=7 ELSE IF (ITROP.EQ.5) THEN IMATE=5 ELSE IF (ITROP.EQ.6) THEN IMATE=4 ELSE IF (ITROP.EQ.7) THEN IMATE=11 ELSE IF (ITROP.EQ.8) THEN IMATE=ITROP ELSE IF (ITROP.EQ.9.OR.ITROP.EQ.10) THEN IMATE=ITROP ELSE IF (ITROP.EQ.11) THEN IMATE=12 ENDIF ELSE INMAT=INMAT-1 ENDIF ENDIF ENDIF ELSE IEXI=0 GOTO 99 ENDIF C C Comportement non lineaire C ------------------------- IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 IPOSI=INLI+1 C C ============================================================= C MATERIAU MECANIQUE ELASTIQUE/POREUX ISOTROPE ... C ============================================================= IF (IMATE.EQ.1) THEN GOTO (1000, 100, 200, 300, 400, 500, 600, 700, 800) IPOSI C ============================================================= C MATERIAU MECANIQUE ELASTIQUE/POREUX ORTHOTROPE C ============================================================= ELSE IF (IMATE.EQ.2) THEN GOTO (1000, 100,1000, 300, 400,1000, 600,1000,1000) IPOSI C ============================================================= C MATERIAU MECANIQUE ELASTIQUE/POREUX ANISOTROPE C ============================================================= ELSE IF (IMATE.EQ.3) THEN GOTO (1000,1000,1000,1000,1000,1000, 600,1000,1000) IPOSI C ============================================================= C MATERIAU MECANIQUE ELASTIQUE/POREUX UNIDIRECTIONNEL C ============================================================= ELSE IF (IMATE.EQ.4) THEN GOTO (1000, 100, 200,1000,1000,1000, 600,1000,1000) IPOSI C ============================================================= C MATERIAU MECANIQUE ELASTIQUE/POREUX MODAL/STATIQUE C ============================================================= ELSE IF (IMATE.EQ.9.OR.IMATE.EQ.10) THEN GOTO (1000, 100,1000,1000,1000,1000,1000,1000, 800) IPOSI C ============================================================= C MATERIAU MECANIQUE ELASTIQUE/POREUX SECTION C ============================================================= ELSE IF (IMATE.EQ.11) THEN GOTO (1000, 100,1000,1000,1000,1000,1000,1000,1000) IPOSI C ============================================================= C MATERIAU MECANIQUE ELASTIQUE/POREUX ZONE_COHESIVE C ============================================================= ELSE IF (IMATE.EQ.12) THEN GOTO (1000,1000,1000,1000, 500, 600,1000,1000,1000) IPOSI ENDIF C ============================================================= C 1000 CONTINUE C C Comportement non reconnu IEXI=0 GOTO 99 C 100 CONTINUE C C Comportement PLASTIQUE : [option par defaut : ISOTROPE] C ---------------------- INATU=5 C IF (NMAT.GT.INMAT) THEN INMAT= INMAT+1 C C Compatibilite entre "Tropie" et loi de comportement IF (IMATE.EQ.1) THEN IF ((IMOD.EQ.22).OR.(IMOD.EQ.38).OR.(IMOD.EQ.39).OR. & (IMOD.EQ.70).OR.(IMOD.EQ.71)) GOTO 1000 ELSEIF (IMATE.EQ.2) THEN IF ((IMOD.NE.16).AND.(IMOD.NE.38).AND.(IMOD.NE.39).AND. & (IMOD.NE.70).AND.(IMOD.NE.71)) GOTO 1000 ELSEIF (IMATE.EQ.4) THEN IF ((IMOD.NE.1 ).AND.(IMOD.NE.2 ).AND.(IMOD.NE.3).AND. & (IMOD.NE.21).AND.(IMOD.NE.70).AND.(IMOD.NE.71)) & GOTO 1000 ELSEIF ((IMATE.EQ.9).OR.(IMATE.EQ.10)) THEN IF (IMOD.GT.3 ) GOTO 1000 ELSEIF (IMATE.EQ.11) THEN IF (IMOD.NE.22) GOTO 1000 ENDIF IF (IMOD.EQ.0) GOTO 1000 C IF (IMOD.EQ.1) THEN * ISOTROPE INATU=5 ELSE IF (IMOD.EQ.2 ) THEN * PARFAIT INATU=1 ELSE IF (IMOD.EQ.3 ) THEN * CINEMATIQUE INATU=4 ELSE IF (IMOD.EQ.4 ) THEN * DRUCKER-PRAGER INATU=15 ELSE IF (IMOD.EQ.5 ) THEN * DRUCKER-SIMPLE INATU=3 ELSE IF (IMOD.EQ.6 ) THEN * BETON INATU=9 ELSE IF (IMOD.EQ.7 ) THEN * CHABOCHE1 INATU=7 ELSE IF (IMOD.EQ.8 ) THEN * CHABOCHE2 INATU=12 ELSE IF (IMOD.EQ.9 ) THEN * TUYAU-FISSURE INATU=14 ELSE IF (IMOD.EQ.10) THEN * ENDOMMAGEABLE INATU=26 ELSE IF (IMOD.EQ.11) THEN * GAUVAIN INATU=16 ELSE IF (IMOD.EQ.12) THEN * LINESPRING INATU=2 ELSE IF (IMOD.EQ.13) THEN * UBIQUITOUS INATU=28 ELSE IF (IMOD.EQ.14) THEN * GLOBAL INATU=32 ELSE IF (IMOD.EQ.15) THEN * CAM-CLAY INATU=33 ELSE IF (IMOD.EQ.16) THEN * MOHR COULOMB INATU=34 ELSE IF (IMOD.EQ.17) THEN * JOINT DILATANT INATU=35 ELSE IF (IMOD.EQ.18) THEN * BETON_AXI INATU=36 ELSE IF (IMOD.EQ.19) THEN * GURSON INATU=38 ELSE IF (IMOD.EQ.20) THEN * BETON_UNI INATU=39 ELSE IF (IMOD.EQ.21) THEN * ACIER_UNI INATU=40 ELSE IF (IMOD.EQ.22) THEN * SECTION INATU=41 ELSE IF (IMOD.EQ.23) THEN * OTTOSEN (BETON) INATU=42 ELSE IF (IMOD.EQ.24) THEN * MAZARS_FIB INATU=46 ELSE IF (IMOD.EQ.25) THEN * AMADEI-SAEB INATU=47 ELSE IF (IMOD.EQ.26) THEN * HUJEUX INATU=48 ELSE IF (IMOD.EQ.27) THEN * STEINBERG-COCHRAN-GUINAN INATU=49 ELSE IF (IMOD.EQ.28) THEN * ZERILLI-ARMSTRONG INATU=50 ELSE IF (IMOD.EQ.29) THEN * PRESTON-TONKS-WALLACE INATU=52 ELSE IF (IMOD.EQ.30) THEN * BETOCYCL INATU=54 ELSE IF (IMOD.EQ.31) THEN * ROTATING_CRACK INATU=55 ELSE IF (IMOD.EQ.32) THEN * JOINT_SOFT INATU=56 ELSE IF (IMOD.EQ.33) THEN * BILI_MOMY INATU=57 ELSE IF (IMOD.EQ.34) THEN * BILI_EFFZ INATU=58 ELSE IF (IMOD.EQ.35) THEN * TAKEMO_MOMY INATU=59 ELSE IF (IMOD.EQ.36) THEN * TAKEMO_EFFZ INATU=60 ELSE IF (IMOD.EQ.37) THEN * BETON_INSA INATU=66 ELSE IF (IMOD.EQ.38) THEN * ECROUIS_INSA INATU=67 ELSE IF (IMOD.EQ.39) THEN * PARFAIT_INSA INATU=68 ELSE IF (IMOD.EQ.40) THEN * ALONSO INATU=69 ELSE IF (IMOD.EQ.41) THEN * PAKZAD INATU=71 ELSE IF (IMOD.EQ.42) THEN * INFILL_UNI INATU=72 ELSE IF (IMOD.EQ.43) THEN * CISAIL_NL INATU=73 ELSE IF (IMOD.EQ.44) THEN * FRAGILE_UNI INATU=78 ELSE IF (IMOD.EQ.45) THEN * BETON_BAEL INATU=79 ELSE IF (IMOD.EQ.46) THEN * PARFAIT_UNI INATU=80 ELSE IF (IMOD.EQ.47) THEN * STRUT_UNI INATU=83 ELSE IF (IMOD.EQ.48) THEN * HINTE INATU=89 ELSE IF (IMOD.EQ.49) THEN * ANCRAGE_ELIGEHAUSEN INATU=91 ELSE IF (IMOD.EQ.50) THEN * PARFAIT_ANCRAGE INATU=92 ELSE IF (IMOD.EQ.51) THEN * ACIER_ANCRAGE INATU=93 ELSE IF (IMOD.EQ.52) THEN * BETON_URGC INATU=99 ELSE IF (IMOD.EQ.53) THEN * UNILATERAL (Fibre) INATU=104 ELSE IF (IMOD.EQ.54) THEN * MRS_LADE INATU=111 ELSE IF (IMOD.EQ.55) THEN * J2 INATU=112 ELSE IF (IMOD.EQ.56) THEN * RH_COULOMB INATU=113 ELSE IF (IMOD.EQ.57) THEN * VMT_FEFP INATU=114 ELSE IF (IMOD.EQ.58) THEN * RHMC_FEFP INATU=115 ELSE IF (IMOD.EQ.59) THEN * POWDER_FEFP INATU=116 ELSE IF (IMOD.EQ.60) THEN * POWDERCAP_FEFP INATU=117 ELSE IF (IMOD.EQ.61) THEN * JOINT_COAT INATU=119 ELSE IF (IMOD.EQ.62) THEN * CONCRETE_UNI INATU=123 ELSE IF (IMOD.EQ.63) THEN * MUR_SHEAR INATU=126 ELSE IF (IMOD.EQ.64) THEN * INCO INATU=129 ELSE IF (IMOD.EQ.65) THEN * DRUCKER_PRAGER2 INATU=140 ELSE IF (IMOD.EQ.67) THEN * INTIMP INATU=145 ELSE IF (IMOD.EQ.68) THEN * INTJOI INATU=146 ELSE IF (IMOD.EQ.69) THEN * BILIN_EFFX INATU=150 ELSE IF (IMOD.EQ.70) THEN * ISS_GRANGE INATU=151 ELSE IF (IMOD.EQ.71) THEN * RUP_THER INATU=152 ELSE IF (IMOD.EQ.72) THEN * RICBET_UNI INATU=160 ELSE IF (IMOD.EQ.73) THEN * BA1D INATU=147 ELSE IF (IMOD.EQ.74) THEN * LIAISON_ACBE (liaison acier beton) INATU=171 ELSE IF (IMOD.EQ.75) THEN * DP_SOL INATU=172 ELSE IF (IMOD.EQ.76) THEN * OUGLOVA INATU=175 ELSE IF (IMOD.EQ.77) THEN * IWPR3D_SOL INATU=176 ELSE IF (IMOD.EQ.78) THEN * NORTON INATU=181 ELSE IF (IMOD.EQ.79) THEN * POLYNOMIAL INATU=182 ELSE IF (IMOD.EQ.80) THEN * BLACKBURN INATU=183 ELSE IF (IMOD.EQ.81) THEN * BLACKBURN_2 INATU=184 ELSE IF (IMOD.EQ.82) THEN * LEMAITRE INATU=185 ELSE IF (IMOD.EQ.83) THEN * OTTOVARI (BETON) INATU=148 ENDIF ENDIF GOTO 900 C 200 CONTINUE C C Comportement FLUAGE [option par defaut : NORTON] C ------------------- INATU=19 C IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 C C Compatibilite entre "Tropie" et loi de comportement IF ((IMATE.EQ.4).AND.(IMOD.NE.9)) GOTO 1000 IF (IMOD.EQ.0 ) GOTO 1000 C IF (IMOD.EQ.1 ) THEN * NORTON INATU=19 ELSE IF (IMOD.EQ.2 ) THEN * BLACKBURN INATU=20 ELSE IF (IMOD.EQ.3 ) THEN * RCCMR-316 INATU=22 ELSE IF (IMOD.EQ.4 ) THEN * RCCMR-304 INATU=23 ELSE IF (IMOD.EQ.5 ) THEN * LEMAITRE INATU=24 ELSE IF (IMOD.EQ.6 ) THEN * POLYNOMIAL INATU=21 ELSE IF (IMOD.EQ.7 ) THEN * BLACKBURN_2 INATU=61 ELSE IF (IMOD.EQ.8) THEN * CERAMIQUE INATU=65 ELSE IF (IMOD.EQ.9) THEN * MAXWELL INATU=74 ELSE IF (IMOD.EQ.10) THEN * COMETE INATU = 84 ELSE IF (IMOD.EQ.11) THEN * CCPL INATU = 85 ELSE IF (IMOD.EQ.12) THEN * X11 INATU = 86 ELSE IF (IMOD.EQ.13) THEN * BPEL_RELAX INATU = 95 ELSE IF (IMOD.EQ.14) THEN * BETON_URGC INATU = 101 ELSE IF (IMOD.EQ.15) THEN * SODERBERG INATU = 102 ELSE IF (IMOD.EQ.16) THEN * MAXOTT INATU = 106 ELSE IF (IMOD.EQ.17) THEN * FBB1 INATU = 127 ELSE IF (IMOD.EQ.18) THEN * FBB2 INATU = 128 ELSE IF (IMOD.EQ.19) THEN * KELVIN ** INATU = 174 * AM 3/3/17 MODELE INDISPONIBLE CMATE=' ' IMATE=0 INATU=0 ENDIF ENDIF GOTO 900 C 300 CONTINUE C C Comportement VISCOPLASTIQUE [option par defaut : ONERA] C --------------------------- INATU=25 C IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 C C Compatibilite entre "Tropie" et loi de comportement IF (IMATE.EQ.2) THEN IF ((IMOD.NE.14).AND.(IMOD.NE.35)) GOTO 1000 ENDIF IF (IMOD.EQ.0 ) GOTO 1000 C IF (IMOD.EQ.1 ) THEN * GUIONNET INATU=17 ELSE IF (IMOD.EQ.2 ) THEN * ONERA INATU=25 ELSE IF (IMOD.EQ.3 ) THEN * VISCODOMMAGE INATU=29 ELSE IF (IMOD.EQ.4 ) THEN * PARFAIT INATU = 43 ELSE IF (IMOD.EQ.5 ) THEN * POUDRE_A INATU = 44 ELSE IF (IMOD.EQ.6 ) THEN * POUDRE_B INATU = 45 ELSE IF (IMOD.EQ.7 ) THEN * OHNO INATU = 53 ELSE IF (IMOD.EQ.8 ) THEN * DDI INATU = 63 ELSE IF (IMOD.EQ.9 ) THEN * KOCK INATU = 70 ELSE IF (IMOD.EQ.10) THEN * NOUAILHAS_A INATU = 76 ELSE IF (IMOD.EQ.11) THEN * NOUAILHAS_B INATU = 77 ELSE IF (IMOD.EQ.12) THEN * VISK2 INATU = 82 ELSE IF (IMOD.EQ.13) THEN * VISCOHINTE INATU = 90 ELSE IF (IMOD.EQ.14) THEN * MISTRAL INATU = 94 ELSE IF (IMOD.EQ.15) THEN * BETON_URGC INATU = 100 ELSE IF (IMOD.EQ.16) THEN * LEMENDO INATU = 103 ELSE IF (IMOD.EQ.17) THEN * FLUNOR2 INATU = 105 ELSE IF (IMOD.EQ.18) THEN * GATT_MONERIE INATU = 107 ELSE IF (IMOD.EQ.19) THEN * UO2 INATU = 108 ELSE IF (IMOD.EQ.20) THEN * BETON_URGC_ENDO INATU = 122 ELSE IF (IMOD.EQ.21) THEN * LOI DE COMPORTEMENT VISQUEUSE AVEC DOUBLE ENDO INATU = 130 ELSE IF (IMOD.EQ.22) THEN * 'CHAB_SINH_R' INATU = 136 ELSE IF (IMOD.EQ.23) THEN * 'CHAB_SINH_X' INATU = 137 ELSE IF (IMOD.EQ.24) THEN * 'CHAB_NOR_R' INATU = 138 ELSE IF (IMOD.EQ.25) THEN * 'CHAB_NOR_X' INATU = 139 ELSE IF (IMOD.EQ.26) THEN * 'PELLET' INATU = 142 ELSE IF (IMOD.EQ.27) THEN * 'FLUTRA' INATU = 143 ELSE IF (IMOD.EQ.28) THEN * 'SYCO1' INATU = 153 ELSE IF (IMOD.EQ.29) THEN * 'SYCO2' INATU = 154 ELSE IF (IMOD.EQ.30) THEN * 'CHABOCHE' INATU = 165 ELSE IF (IMOD.EQ.31) THEN * 'FLUENDO3D' 'Sellier' INATU = 187 ELSE IF (IMOD.EQ.32) THEN * 'INCLUSION3D' 'Sellier' INATU = 188 ELSE IF (IMOD.EQ.33) THEN * 'ENDO3D' 'Sellier' INATU = 189 ELSE IF (IMOD.EQ.34) THEN * 'FLUISO3D' 'Sellier' INATU = 190 ELSE IF (IMOD.EQ.35) THEN * 'FLUORTHO3D' 'Sellier' INATU = 191 ENDIF ENDIF GOTO 900 C 400 CONTINUE C C Comportement ENDOMMAGEMENT [option par defaut : MAZARS] C -------------------------- INATU=30 C IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 C C Compatibilite entre "Tropie" et loi de comportement IF (IMATE.EQ.2) THEN IF ((IMOD.NE.4).AND.(IMOD.NE.11).AND.(IMOD.NE.12)) & GOTO 1000 ENDIF IF (IMOD.EQ.0 ) GOTO 1000 C IF (IMOD.EQ.1 ) THEN * MAZARS INATU=30 ELSE IF (IMOD.EQ.2 ) THEN * UNILATERAL INATU=31 ELSE IF (IMOD.EQ.3 ) THEN * ROTATING_CRACK INATU=37 ELSE IF (IMOD.EQ.4 ) THEN * SIC_SIC INATU=88 ELSE IF (IMOD.EQ.5 ) THEN * MICROPLANS INATU=96 ELSE IF (IMOD.EQ.6 ) THEN * VISCOUNILATERAL INATU=97 ELSE IF (IMOD.EQ.7 ) THEN * MICROISO INATU=98 ELSE IF (IMOD.EQ.8 ) THEN * MODIFIED VON MISES MVM INATU=118 ELSE IF (IMOD.EQ.9 ) THEN * CRUCRA INATU=124 ELSE IF (IMOD.EQ.10) THEN * DAMAGE_TC - R. Faria & J. Oliver INATU=125 ELSE IF (IMOD.EQ.11) THEN * SICSCAL - modele scalaire SiCf/SiC ONERA INATU=131 ELSE IF (IMOD.EQ.12) THEN * SICTENS - modele pseudo tensoriel SiCf/SiC ONERA INATU=132 ELSE IF (IMOD.EQ.13) THEN * DESMORAT INATU=134 ELSE IF (IMOD.EQ.14) THEN * FATSIN INATU=141 ELSE IF (IMOD.EQ.15) THEN * RICRAG2D INATU=144 ELSE IF (IMOD.EQ.16) THEN * GLRC_DM INATU=157 ELSE IF (IMOD.EQ.17) THEN * RICBET INATU=158 ELSE IF (IMOD.EQ.18) THEN * RICCOQ INATU=159 ELSE IF (IMOD.EQ.19) THEN * CONCYC INATU=173 ELSE IF (IMOD.EQ.20) THEN * EFEM INATU=177 ENDIF ENDIF GOTO 900 C 500 CONTINUE C C Comportement PLASTIQUE ENDOMMAGEABLE [option par defaut : PSURY] C ------------------------------------ INATU=51 C IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 C IF (IMOD.EQ.10) THEN IF (IMATE.NE.12) GOTO 1000 ELSE IF (IMATE.EQ.12) GOTO 1000 ENDIF IF (IMOD.EQ.0 ) GOTO 1000 C IF (IMOD.EQ.1 ) THEN * PSURY INATU=51 ELSE IF (IMOD.EQ.2 ) THEN * ROUSSELIER INATU=62 ELSE IF (IMOD.EQ.3 ) THEN * GURSON2 INATU=64 ELSE IF (IMOD.EQ.4 ) THEN * DRAGON INATU=75 ELSE IF (IMOD.EQ.5 ) THEN * BETON_URGC INATU=120 ELSE IF (IMOD.EQ.6 ) THEN * BETON_INSA INATU=121 ELSE IF (IMOD.EQ.7 ) THEN * BETON_DYNAR_LMT INATU=133 ELSE IF (IMOD.EQ.8 ) THEN * ENDO_PLAS INATU=135 ELSE IF (IMOD.EQ.9 ) THEN * GERNAY INATU=155 ELSE IF (IMOD.EQ.10) THEN * WELLS INATU=156 ENDIF ENDIF GOTO 900 C 600 CONTINUE C C Comportement NON_LINEAIRE [pas d'option par defaut] C ------------------------- C IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 C IF ((IMOD.EQ.1).AND.(IMATE.NE.1)) GOTO 1000 IF (IMOD.EQ.0) GOTO 1000 C IF (IMOD.EQ.1) THEN C EQUIPLAS INATU=87 ELSE IF (IMOD.EQ.2) THEN C UTILISATEUR IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 INATU=-1 ELSE RETURN ENDIF ENDIF ELSE GOTO 1000 ENDIF GOTO 900 C 700 CONTINUE C C Comportement VISCO_EXTERNE [pas d'option par defaut] C -------------------------- C IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 IF (IMOD.EQ.0) THEN GOTO 1000 ELSE IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 INATU=-2-IMOD c* Permet de recuperer IMOD=IVIEX (>0) en sortie de NOMATE avant de fixer c* la valeur de INATU a -2 ELSE RETURN ENDIF ENDIF ELSE GOTO 1000 ENDIF GOTO 900 C 800 CONTINUE C C Comportement IMPEDANCE [option par defaut : IMPELAST] C ---------------------- CMATE='IMPELAST' INATU=161 IF ((IMATE.EQ.9).OR.(IMATE.EQ.10)) IMATE=1 C IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 IF (IMOD.EQ.1) THEN CMATE='IMPELAST' INATU=161 ELSEIF (IMOD.EQ.2) THEN CMATE='IMPVOIGT' INATU=162 ELSEIF (IMOD.EQ.3) THEN CMATE='IMPREUSS' INATU=163 ELSEIF (IMOD.EQ.4) THEN CMATE='IMPCOMPL' INATU=164 ENDIF ENDIF C 900 CONTINUE ENDIF *--------------------------------------------------------------------* * 3/ CAS DE LA FORMULATION 'LIQUIDE ' * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'LIQUIDE') THEN IF (NMAT.EQ.0) THEN CMATE='ISOTROPE' IMATE=1 ELSE IF (NMAT.EQ.1) THEN IF (IPLAC.EQ.1) THEN CMATE = MATMOD(1) IMATE=1 ENDIF ENDIF *--------------------------------------------------------------------* * 11/ CAS DE LA FORMULATION 'NAVIER_STOKES' * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'NAVIER_STOKES') THEN C C Option par defaut CMATE='NEWTONIE' IMATE=1 C IF(NMAT.GT.0) THEN IF (IPLAC.EQ.4) THEN IMATE = IPLAC CMATE = 'NLIN' ENDIF ENDIF *--------------------------------------------------------------------* * 13/ CAS DE LA FORMULATION 'EULER' * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'EULER') THEN CMATE='NEWTONIE' IMATE=1 *--------------------------------------------------------------------* * 10/ CAS DE LA FORMULATION 'MAGNETODYNAMIQUE' * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'MAGNETODYNAMIQUE') THEN C C Option par defaut CMATE='CORFOU ' IMATE=1 C IF(NMAT.NE.0) THEN IF(MATMOD(1).EQ.'POTENTIEL_VECTEU') THEN CMATE='CORFOU ' IMATE=1 ELSE IF(IPLAC.NE.0) THEN CMATE=LISTMT(IPLAC) IMATE=IPLAC ENDIF ENDIF IF(NMAT.GT.1) THEN IF(IPLAC.NE.0) THEN CMATE=LISTMT(IPLAC) IMATE=IPLAC ENDIF ENDIF ENDIF *--------------------------------------------------------------------* * 8/ CAS DE LA FORMULATION 'CONTACT' * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'CONTACT') THEN C C Option par defaut CMATE='UNILATERAL' IMATE=1 INATU=0 C IF (IPLAC.NE.0) THEN CMATE='PERMANENT' IMATE=2 ENDIF C IF ((IPLA1+IPLA2).NE.0) INATU=1 C IF (IPLAC.NE.0) INATU=2 *--------------------------------------------------------------------* * 8/ CAS DE LA FORMULATION 'CONTRAINTE' * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'CONTRAINTE') THEN IMATE=0 INATU=0 IF (NMAT.NE.0) THEN CALL MODCLI(MOMODL,NMOD) IF (IPLAC.EQ.1) THEN CMATE='DEPLACEMENT' INATU=1 ELSEIF (IPLAC.EQ.2) THEN CMATE='ROTATION' INATU=2 ELSEIF (IPLAC.EQ.3) THEN CMATE='RELATION' INATU=3 ENDIF ENDIF *--------------------------------------------------------------------* * 12/ CAS DE LA FORMULATION 'MELANGE' * * on renvoie le premier modele trouve !!! * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'MELANGE') THEN C C Option par defaut CMATE = 'PARALLELE' IMATE = 3 C IF (NMAT.NE.0) THEN IF (IPLAC.GT.0) THEN CMATE = MOMODL(IPLAC) IMATE = IPLAC ELSE IEXI=0 GOTO 99 ENDIF ENDIF *--------------------------------------------------------------------* * 14/ CAS DE LA FORMULATION 'FISSURE' * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'FISSURE') THEN C C Option par defaut : C Mode de condensation : MAsse C Comportement de la vapeur : PArfait C Loi de frottement : BLASius CMATE = 'MAPABLAS' C IF (NMAT.NE.0) THEN C MODE DE CONDENSATION IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN CMAT1='MA' ELSE IF (IPLA1.GT.0) CMAT1=MATMOD(1)(1:2) IF (IPLA2.GT.0) CMAT1=MATMOD(2)(1:2) IF (IPLA3.GT.0) CMAT1=MATMOD(3)(1:2) END IF C C COMPORTEMENT DE LA VAPEUR IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN CMAT2='PA' ELSE IF (IPLA1.GT.0) CMAT2=MATMOD(1)(1:2) IF (IPLA2.GT.0) CMAT2=MATMOD(2)(1:2) IF (IPLA3.GT.0) CMAT2=MATMOD(3)(1:2) END IF C C LOIS DE FROTTEMENT IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN CMAT3='BLAS' ELSE IF (IPLA1.GT.0) CMAT3=MATMOD(1)(8:11) IF (IPLA2.GT.0) CMAT3=MATMOD(2)(8:11) IF (IPLA3.GT.0) CMAT3=MATMOD(3)(8:11) END IF * CMATE = CMAT1(1:2)//CMAT2(1:2) CMATE = CMATE(1:4)//CMAT3(1:4) IMATE = 1 INATU = 1 END IF *--------------------------------------------------------------------* * 15/ CAS DE LA FORMULATION 'LIAISON' * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'LIAISON') THEN IMO2 = 0 IF (IMOD.EQ.0) THEN IEXI=0 GOTO 99 ELSE IF (NMAT.GT.1) THEN ENDIF ENDIF IF (IMOD.EQ.1.AND.IMO2.EQ.3) THEN CMATE='PO_PL_FL' IMATE=1 ELSEIF (IMOD.EQ.1.AND.IMO2.EQ.2) THEN CMATE='PO_PL_FR' IMATE=2 ELSEIF (IMOD.EQ.1.AND.IMO2.EQ.0) THEN CMATE='PO_PL' IMATE=3 ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.2) THEN CMATE='PO_PO_FR' IMATE=4 ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.5) THEN CMATE='PO_PO_DP' IMATE=5 ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.6) THEN CMATE='PO_PO_RP' IMATE=6 ELSEIF (IMOD.EQ.4.AND.IMO2.EQ.0) THEN CMATE='PO_PO' IMATE=7 ELSEIF (IMOD.EQ.8.AND.IMO2.EQ.9) THEN CMATE='PO_CE_MO' IMATE=8 ELSEIF (IMOD.EQ.8.AND.IMO2.EQ.2) THEN CMATE='PO_CE_FR' IMATE=9 ELSEIF (IMOD.EQ.8.AND.IMO2.EQ.0) THEN CMATE='PO_CE' IMATE=10 ELSEIF (IMOD.EQ.11.AND.IMO2.EQ.2) THEN CMATE='CE_PL_FR' IMATE=11 ELSEIF (IMOD.EQ.12.AND.IMO2.EQ.2) THEN CMATE='CE_CE_FR' IMATE=12 ELSEIF (IMOD.EQ.10.AND.IMO2.EQ.13) THEN CMATE='PR_PR_IN' IMATE=13 ELSEIF (IMOD.EQ.10.AND.IMO2.EQ.14) THEN CMATE='PR_PR_EX' IMATE=14 ELSEIF (IMOD.EQ.15.AND.IMO2.EQ.2) THEN CMATE='LI_LI_FR' IMATE=15 ELSEIF (IMOD.EQ.16.AND.IMO2.EQ.2) THEN CMATE='LI_CE_FR' IMATE=16 ELSEIF (IMOD.EQ.17.AND.IMO2.EQ.22) THEN CMATE='PA_FL_RO' IMATE=17 ELSEIF (IMOD.EQ.18.AND.IMO2.EQ.19) THEN CMATE='COUP_DEP' IMATE=18 ELSEIF (IMOD.EQ.18.AND.IMO2.EQ.20) THEN CMATE='COUP_VIT' IMATE=19 ELSEIF (IMOD.EQ.21.AND.IMO2.EQ.0) THEN CMATE='POLYNOMI' IMATE=20 ELSEIF (IMOD.EQ.23.AND.IMO2.EQ.24) THEN CMATE='NEWMOD' IMATE=23 ELSE IEXI=0 GOTO 99 ENDIF *--------------------------------------------------------------------* * 16/ CAS DE LA FORMULATION 'THERMOHYDRIQUE' * *--------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'THERMOHYDRIQUE') THEN C C Option par defaut CMATE='SCHREFLER' IMATE=1 C IF (NMAT.NE.0) THEN IF (MATMOD(1).NE.'SCHREFLER') THEN IEXI=0 GOTO 99 ENDIF ENDIF *----------------------------------------------------------------------* * 17/ CAS DE LA FORMULATION 'ELECTROSTATIQUE' * *----------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'ELECTROSTATIQUE') THEN C C Option par defaut CMATE = 'ISOTROPE' IMATE = 1 INATU = 0 C IF (NMAT.NE.0) THEN IF (IPLAC.NE.0) THEN CMATE = MATMOD(IPLAC) IMATE = IPLAC ENDIF ENDIF *----------------------------------------------------------------------* * 18/ CAS DE LA FORMULATION 'DIFFUSION' * *----------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'DIFFUSION') THEN C C Option par defaut CMATE = 'ISOTROPE' IMATE = 1 INATU = 0 C IF (NMAT.NE.0) THEN INMAT = INMAT+1 IF (IPLAC.NE.0) THEN CMATE = MATMOD(INMAT) IMATE = IPLAC INMAT = INMAT+1 ENDIF IF (NMAT.GE.INMAT) THEN IF (IPLAC.EQ.0) THEN IEXI=0 GOTO 99 ELSE INMAT = INMAT+1 IF (IPLAC.EQ.1) THEN C FICK (lineaire) INATU = 0 ELSE IF (IPLAC.EQ.2) THEN C SORET (non lineaire) INATU = 1 ELSE IF (IPLAC.EQ.3) THEN C UTILISATEUR (non lineaire) IF (NMAT.GT.INMAT) THEN INMAT = INMAT+1 INATU = -1 ELSE RETURN ENDIF ELSE IF (IPLAC.EQ.4) THEN C DISSIPATION IF (IPLAC.GE.5) THEN C LINEAIRE CMATE = matmod(inmat) inatu = iplac ENDIF ENDIF ENDIF ENDIF ENDIF *----------------------------------------------------------------------* * 19/ CAS DE LA FORMULATION 'CHARGEMENT ' * *----------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'CHARGEMENT') THEN INATU = 0 IF (IPLAC.EQ.0) THEN IEXI=0 GOTO 99 ELSE CMATE = MATMOD(IPLAC) IMATE = IPLAC ENDIF *---------------------------------------------------------------------* * 20/ CAS DE LA FORMULATION 'METALLURGIE' * *---------------------------------------------------------------------* ELSE IF (FORFO1.EQ.'METALLURGIE') THEN C La syntaxe veut que NMAT=4 si tout vas bien : IF (NMAT.LT.4) THEN RETURN ENDIF CMATE = 'METALLUR' INATU = 178 *---------------------------------------------------------------------* * 21/ CAS DE LA FORMULATION 'CHANGEMENT_PHASE' * *---------------------------------------------------------------------* ELSEIF (FORFO1.EQ.'CHANGEMENT_PHASE') THEN IF (IPLAC.EQ.1) THEN CMATE = 'CHPH_PAR' IMATE = IPLAC INATU = 179 ELSEIF (IPLAC.EQ.2) THEN CMATE = 'CHPH_SOL' IMATE = IPLAC INATU = 180 ELSE IEXI=0 GOTO 99 ENDIF *--------------------------------------------------------------------* * 22/ ENDIF correspondant a la FIN des formulations simples * *--------------------------------------------------------------------* ENDIF * ELSEIF (NFOR.EQ.2) THEN *--------------------------------------------------------------------* * NFOR=2 1/ CAS DE LA FORMULATION 'LIQUIDE '+ 'MECANIQUE' * *--------------------------------------------------------------------* forfo2=formod(2) IF ((forfo1.EQ.'LIQUIDE'.AND.forfo2.EQ.'MECANIQUE').OR. & (forfo2.EQ.'LIQUIDE'.AND.forfo1.EQ.'MECANIQUE')) THEN * * La formulation suffit CMATE='LIQ+MECA' IMATE=1 ENDIF ENDIF C 99 CONTINUE C IF (IEXI.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 ENDIF END
© Cast3M 2003 - Tous droits réservés.
Mentions légales