nomate
C NOMATE SOURCE JK148537 24/10/29 21:15:08 12056 * le dernier numero de materiau utilise est le : 189 *--------------------------------------------------------------------* * * * * * * * DETERMINER UN NUMERO POUR UN MODELE DE MATERIAU * * _______________________________________________ * * * * ENTREES * * * * FORMOD Liste des formulations * * NFOR Nombre de formulations * * MATMOD Liste des mat{riaux * * NMAT Nombre de mat{riaux * * * * SORTIES * * * * CMATE Nom du materiau (isotrope, orthotrope....) * * IMATE Num{ro du mat{riau * * INATU Num{ro de nature * * * * NOMS DE MATERIAUX POSSIBLES * * * *--------------------------------------------------------------------* * 1/ 'THERMIQUE' * * * * 'ISOTROPE' * * 'ORTHOTROPE' * * 'ANISOTROPE' * * 'CONDUCTION' * * 'CONVECTION' * * 'ADVECTION' non lineaire de conduction * * 'PHASE' non lineaire de conduction * * 'DISSIPATION' * *--------------------------------------------------------------------* * 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' * *--------------------------------------------------------------------* * 4/ 'CONVECTION' * * la formulation suffit * *--------------------------------------------------------------------* * 5/ 'MECANIQUE+LIQUIDE' * * la formulation suffit * *--------------------------------------------------------------------* * 6/ 'POREUX' VOIR 2/ * *--------------------------------------------------------------------* * 7/ 'DARCY' * * * * 'ISOTROPE' * * 'ORTHOTROPE' * * 'ANISOTROPE' * *--------------------------------------------------------------------* * 8/ 'CONTACT ' * * * * 'COULOMB' INATU=1 * * 'FROCABLE' INATU=2 * *--------------------------------------------------------------------* * 9/ '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 * *--------------------------------------------------------------------* * 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 * *--------------------------------------------------------------------* * '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 * *--------------------------------------------------------------------* * PPU MODIF POUR LES MATERIAUX UNIDIRECTIONELS EN PLASTIQUE *--------------------------------------------------------------------* * 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 * forfo1 = formod(1) * IF (NFOR.EQ.1) THEN * *--------------------------------------------------------------------* * 0/ Cas particuliers : THERMIQUE CONVECTION -> 4/ * * RAYONNEMENT -> 9/ * * SOURCE -> 22/ * *--------------------------------------------------------------------* IF (forfo1.eq.'THERMIQUE' ) THEN icov = 0 IF (icov.NE.0) THEN forfo1 = 'CONVECTION' ELSE iray = 0 IF (iray.NE.0) THEN forfo1 = 'RAYONNEMENT' ELSE isrc = 0 IF (isrc.NE.0) THEN forfo1 = 'SOURCE' ENDIF ENDIF ENDIF ENDIF * *--------------------------------------------------------------------* * 1/ Cas de la formulation 'THERMIQUE' OU 'DARCY' * *--------------------------------------------------------------------* * 1 2 3 4 5 6 7 8 IF (forfo1.EQ.'THERMIQUE' .OR. & forfo1.EQ.'DARCY') THEN IF (NMAT.EQ.0) THEN * * par defaut la formulation est isotrope * CMATE='ISOTROPE' IMATE=1 ELSE INMAT=INMAT+1 CMATE='ISOTROPE' IF (IPLAC.NE.0) THEN CMATE = MATMOD(1) IMATE=IPLAC END IF IF(forfo1.EQ.'THERMIQUE') THEN DO 4287 I=2,NMAT IF(ITROP.NE.0) THEN INMAT=INMAT+1 ENDIF 4287 CONTINUE ENDIF ENDIF *--------------------------------------------------------------------* * 2/ Cas de la formulation 'MECANIQUE' OU 'POREUX' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'MECANIQUE'.OR. . forfo1.EQ.'POREUX') THEN IF (NMAT.NE.0)THEN * * Comportement reversible * --------------------- IF (IPLAC.EQ.1)THEN INMAT=INMAT+1 * * Materiau elastique lineaire ( seule option disponible ) * IF (NMAT.GT. INMAT) THEN * * On teste la "tropie de la formulation" * IF (ITROP.EQ.0) THEN CMATE = 'ISOTROPE' IMATE=1 ELSE INMAT=INMAT+1 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=9 ELSE IF (ITROP.EQ.6) THEN IMATE=4 ELSE IF (ITROP.EQ.7) THEN IMATE=11 ELSE IF (ITROP.EQ.9.OR.ITROP.EQ.10) THEN INMAT=INMAT + 1 IMATE=ITROP ELSE IF (ITROP.EQ.11) THEN * on met 12 car 11 est deja pris IMATE=12 END IF END IF ELSE * * Option par defaut dans le cas elastique * CMATE = 'ISOTROPE' IMATE=1 ENDIF END IF END IF * 25 continue * Comportement non lineaire * ------------------------- IF (IMATE.EQ.1) THEN * * >>>>>>>>>>> Dans le cas d'une formulation elastique isotrope * 20 CONTINUE IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT=INMAT+1 IF (INLI.EQ.0) THEN * * Materiau non reconnu * CMATE=' ' IMATE=0 INATU=0 ELSE IF (INLI .EQ. 1) THEN * * Comportement plastique * ---------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT= INMAT+1 IF (IMOD.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 ELSE 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.51) THEN * ACIER_ANCRAGE INATU=93 ELSE IF (IMOD.EQ.23) THEN * OTTOSEN (BETON) INATU=42 ELSE IF (IMOD.EQ.83) THEN * OTTOVARI (BETON) INATU=148 ELSE IF (IMOD.EQ.24) THEN * MAZARS_FIB INATU=46 ELSE IF (IMOD.EQ.53) THEN * UNILATERAL (Fibre) INATU=104 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.50) THEN * PARFAIT_ANCRAGE INATU=92 C +BR ELSE IF (IMOD.EQ.72) THEN * RICBET_UNI INATU=160 C -BR * ELSE IF (IMOD.EQ.47) THEN * STRUT_UNI INATU=83 * 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.49) THEN * ANCRAGE_ELIGEHAUSEN INATU=91 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.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.48) THEN * HINTE INATU=89 ELSE IF (IMOD.EQ.52) THEN * BETON_URGC INATU=99 * BCN 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 * BCN ELSE IF (IMOD.EQ.61) THEN * JOINT_COAT INATU=119 ELSE IF (IMOD.EQ.62) THEN * CONCRETE_UNI INATU=123 ELSE IF (IMOD.EQ.73) THEN * BA1D INATU=147 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 * LIAISON_ACBE ( liaison acier beton) ELSE IF (IMOD.EQ.74) THEN INATU=171 * DP_SOL ELSE IF (IMOD.EQ.75) THEN INATU=172 * OUGLOVA ELSE IF (IMOD.EQ.76) THEN INATU=175 * IWPR3D_SOL ELSE IF (IMOD.EQ.77) THEN INATU=176 * NORTON ELSE IF (IMOD.EQ.78) THEN INATU=181 * POLYNOMIAL ELSE IF (IMOD.EQ.79) THEN INATU=182 * BLACKBURN ELSE IF (IMOD.EQ.80) THEN INATU=183 * BLACKBURN_2 ELSE IF (IMOD.EQ.81) THEN INATU=184 * LEMAITRE ELSE IF (IMOD.EQ.82) THEN INATU=185 ENDIF ELSE * * Option par defaut * INATU=5 ENDIF ELSE IF (INLI .EQ. 2) THEN * * Comportement FLUAGE * ------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT=INMAT+1 IF (IMOD.EQ.0 ) THEN CMATE=' ' IMATE=0 INATU=0 ELSE 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 ELSE * * Option par defaut * INATU=19 ENDIF * ELSE IF (INLI .EQ. 3) THEN * * Comportement VISCOPLASTIQUE * --------------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT=INMAT+1 IF (IMOD.EQ.0 ) THEN CMATE=' ' IMATE=0 INATU=0 ELSE 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 * print*,'nomate',INATU ELSE IF (IMOD.EQ.35) THEN * 'FLUORTHO3D' 'Sellier' INATU = 191 * print*,'nomate',INATU ENDIF ELSE * * Option par defaut: ONERA * INATU=25 ENDIF * ELSE IF (INLI .EQ. 4) THEN * * Comportement type ENDOMMAGEMENT * ------------------------------- IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 IF (IMOD.EQ.0 ) THEN CMATE=' ' IMATE=0 INATU=0 ELSE 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 * BCN ELSE IF (IMOD.EQ.8) THEN * MODIFIED VON MISES 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 C +BR 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 * RICBET INATU=173 ELSE IF (IMOD.EQ.20) THEN * RICBET INATU=177 C -BR * ENDIF ELSE * * Option par defaut * INATU=30 ENDIF * ELSE IF (INLI .EQ. 5) THEN * * * Comportement PLASTIQUE ENDOM(MAGEABLE) * -------------------------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT=INMAT+1 IF (IMOD.EQ.0 ) THEN CMATE=' ' IMATE=0 INATU=0 ELSE 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 ENDIF ELSE * Par defaut INATU=51 ENDIF C ELSE IF (INLI.EQ.6) THEN C C Comportement ELASTIQUE NON_LINEAIRE C ----------------------------------- IF (NMAT.GT.INMAT) THEN C C Et si le materiau n'est pas totalement decode C INMAT=INMAT+1 IF (IMOD.EQ.0 ) THEN CMATE=' ' IMATE=0 INATU=0 ELSE IF (IMOD.EQ.1 ) THEN * 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 C ELSE C Pas de comportement par defaut CMATE=' ' IMATE=0 INATU=0 ENDIF C ELSE IF (INLI.EQ.7) THEN C C Comportement VISCO_EXTERNE C -------------------------- IF (NMAT.GT.INMAT) THEN C C Et si le materiau n'est pas totalement decode C INMAT=INMAT+1 IF (IMOD.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 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 C Pas de comportement par defaut CMATE=' ' IMATE=0 INATU=0 ENDIF ELSE IF (INLI.EQ.8) THEN c c ------------------------ IMPEDANCE -------------------------- IF (NMAT.GT.INMAT) THEN C Et si le materiau n'est pas totalement decode IMOD = 0 IMO2 = 0 INMAT=INMAT+1 IF (IMOD.EQ.0) THEN CMATE='IMPELAST' INATU=161 ELSE IF (IMOD.EQ.1) THEN CMATE='IMPELAST' if (inmat.lt.nmat) goto 20 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 ELSE CMATE=' ' IMATE=0 INATU=0 ENDIF ENDIF ELSE ENDIF * * ELSEIF (INLI.GT.8) THEN ENDIF ENDIF * * ELSE IF (IMATE.EQ.2) THEN * * >>>>>>>>>>> Dans le cas d'une formulation elastique orthotrope * on se limite pour l'instant � * 2 comportements plastiques, * 1 comportement viscoplastique, * 1 comportement endommageable, * + le comportement 'NON_LINEAIRE' 'UTILISATEUR' * IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT=INMAT+1 c mistral : IF (INLI.NE.1.AND.INLI.NE.3.AND.INLI.NE.4.AND. & INLI.NE.6) THEN c mistral. * * Materiau non reconnu * CMATE=' ' IMATE=0 INATU=0 * ELSE IF (INLI.EQ.1) THEN * * Comportement plastique * ---------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT= INMAT+1 IF (IMOD.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 ELSE IF (IMOD.EQ.16) THEN * MOHR COULOMB INATU=34 ELSE IF (IMOD.EQ.38) THEN * ECROUIS_INSA INATU=67 ELSE IF (IMOD.EQ.39) THEN * PARFAIT_INSA INATU=68 ELSE IF (IMOD.EQ.70) THEN * ISS_GRANGE INATU=151 ELSE IF (IMOD.EQ.71) THEN * RUP_THER INATU=152 ELSE CMATE=' ' imate=0 inatu=0 ENDIF ENDIF c mistral : ELSE IF (INLI.EQ.3) THEN * * Comportement VISCOPLASTIQUE * --------------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT=INMAT+1 IF (IMOD.EQ.0 ) THEN CMATE=' ' IMATE=0 INATU=0 ELSE IF (IMOD.EQ.14) THEN * MISTRAL INATU = 94 ELSE IF (IMOD.EQ.35) THEN * FLUORTHO3D 'Sellier et al' INATU = 191 ELSE CMATE=' ' IMATE=0 INATU=0 ENDIF ENDIF c mistral. ELSE IF(INLI.EQ.4) THEN * * Comportement endommageable * -------------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT= INMAT+1 IF (IMOD.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 ELSE IF (IMOD.EQ.4) THEN * SIC_SIC INATU=88 ELSE IF (IMOD.EQ.11) THEN * SICSCAL - mod�le scalaire SiCf/SiC ONERA INATU=131 ELSE IF (IMOD.EQ.12) THEN * SICTENS - mod�le pseudo tensoriel SiCf/SiC ONERA INATU=132 ELSE CMATE=' ' IMATE=0 INATU=0 ENDIF ENDIF C ELSE IF (INLI.EQ.6) THEN C C Comportement NON_LINEAIRE C ------------------------- IF (NMAT.GT.INMAT) THEN C C Et si le materiau n'est pas totalement decode C INMAT=INMAT+1 IF (IMOD.EQ.2) THEN C UTILISATEUR IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 INATU = -1 ELSE RETURN ENDIF ELSE C Autres cas non autorises CMATE=' ' IMATE=0 INATU=0 ENDIF ELSE C Pas de comportement par defaut CMATE=' ' IMATE=0 INATU=0 ENDIF ENDIF ENDIF * * ELSE IF (IMATE.EQ.3) THEN C C >>>>>>>>>>> Dans le cas d'une formulation elastique anisotrope C on se limite pour l'instant au comportement C 'NON_LINEAIRE' 'UTILISATEUR' C IF (NMAT.GT.INMAT) THEN C C Et si le materiau n'est pas totalement decode C INMAT=INMAT+1 IF (INLI.NE.6) THEN C C Materiau non reconnu C CMATE=' ' IMATE=0 INATU=0 C ELSE C C Comportement NON_LINEAIRE C ------------------------- IF (NMAT.GT.INMAT) THEN C C Et si le materiau n'est pas totalement decode C INMAT=INMAT+1 IF (IMOD.EQ.2) THEN C UTILISATEUR IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 INATU = -1 ELSE RETURN ENDIF ELSE C Autres cas non autorises CMATE=' ' IMATE=0 INATU=0 ENDIF ELSE C Pas de comportement par defaut CMATE=' ' IMATE=0 INATU=0 ENDIF ENDIF ENDIF C C ELSE IF (IMATE.EQ.4) THEN * * >>>>>>>>>>> Dans le cas d'une formulation elastique unidirectionnelle * on se limite pour l'instant � quelques comportements * plastiques et visqueux * + le comportement 'NON_LINEAIRE' 'UTILISATEUR' * IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT=INMAT+1 IF (INLI.NE.1.AND.INLI.NE.2.AND.INLI.NE.6) THEN * * Materiau non reconnu * CMATE=' ' IMATE=0 INATU=0 * ELSE IF(INLI.EQ.1) THEN * * Comportement plastique * ---------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT= INMAT+1 IF (IMOD.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 ELSE IF (IMOD.EQ.70) THEN * ISS_GRANGE INATU=151 ELSE IF (IMOD.EQ.71) THEN * RUP_THER INATU=152 ELSE 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.21) THEN * ACIER_UNI INATU=40 ENDIF ELSE * * Option par defaut * INATU=5 ENDIF * ELSE IF(INLI.EQ.2) THEN * * Comportement FLUAGE * ------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT= INMAT+1 IF (IMOD.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 ELSE IF (IMOD.EQ.9) THEN * MAXWELL INATU=74 ENDIF ELSE * * Option par defaut * INATU=74 ENDIF C ELSE IF (INLI.EQ.6) THEN C C Comportement NON_LINEAIRE C ------------------------- IF (NMAT.GT.INMAT) THEN C C Et si le materiau n'est pas totalement decode C INMAT=INMAT+1 IF (IMOD.EQ.2) THEN C UTILISATEUR IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 INATU = -1 ELSE RETURN ENDIF ELSE C Autres cas non autorises CMATE=' ' IMATE=0 INATU=0 ENDIF ELSE C Pas de comportement par defaut CMATE=' ' IMATE=0 INATU=0 ENDIF ENDIF ENDIF * * MODAL et STATIQUE * ELSE IF (IMATE.EQ.9.OR.IMATE.EQ.10) THEN IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * * INMAT=INMAT+1 IF (INLI.EQ.0) THEN * * Materiau non reconnu * CMATE=' ' IMATE=0 INATU=0 ELSE IF (INLI .EQ. 1) THEN IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT= INMAT+1 IF (IMOD.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 ELSE IF (IMOD.EQ.1) THEN * ISOTROPE INATU=5 ELSE IF (IMOD.EQ.2) THEN * PARFAIT INATU=1 ELSE IF (IMOD.EQ.3) THEN INATU = 3 ENDIF * CINEMATIQUE ENDIF ELSE IF (INLI .EQ. 8) THEN IMATE = 1 INMAT = INMAT - 1 GOTO 25 ENDIF ENDIF * * >>>>>>>>>>> CAS DES POUTRES A FORMULATION SECTION * ELSE IF (IMATE.EQ.11) THEN * IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT=INMAT+1 IF (INLI.NE.1) THEN * * Materiau non reconnu * CMATE=' ' IMATE=0 INATU=0 ELSE * * Comportement plastique * ---------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT= INMAT+1 IF (IMOD.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 ELSE IF (IMOD.EQ.22) THEN * SECTION INATU=41 ELSE * * cas non autorise * CMATE=' ' IMATE=0 INATU=0 ENDIF * ENDIF ENDIF ENDIF ELSE IF (IMATE.EQ.12) THEN * ************************ * | cas 'ZONE_COHESIVE' | * ************************ * >>>>>>>>>>> Dans le cas d'une formulation elastique zone_cohesive * on se limite pour l'instant a quelques comportements * plastique_endo * + le comportement 'NON_LINEAIRE' 'UTILISATEUR' IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT=INMAT+1 IF (INLI.NE.5.AND.INLI.NE.6) THEN * * Materiau non reconnu * CMATE=' ' IMATE=0 INATU=0 * ELSE IF(INLI.EQ.5) THEN * * Comportement plastique_endo * -------------------------- IF (NMAT.GT.INMAT) THEN * * Et si le materiau n'est pas totalement decode * INMAT= INMAT+1 IF (IMOD.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 ELSE IF (IMOD.EQ.10) THEN * WELLS INATU=156 ENDIF ELSE * * Option par defaut * INATU=156 ENDIF * C ELSE IF (INLI.EQ.6) THEN C C Comportement NON_LINEAIRE C ------------------------- IF (NMAT.GT.INMAT) THEN C C Et si le materiau n'est pas totalement decode C INMAT=INMAT+1 IF (IMOD.EQ.2) THEN C UTILISATEUR IF (NMAT.GT.INMAT) THEN INMAT=INMAT+1 INATU = -1 ELSE RETURN ENDIF ELSE C Autres cas non autorises CMATE=' ' IMATE=0 INATU=0 ENDIF ELSE C Pas de comportement par defaut CMATE=' ' IMATE=0 INATU=0 ENDIF ENDIF ENDIF ** ELSE IF (IMATE.GT.12) THEN ENDIF if (NMAT.GT.INMAT) then do jma=1,nmat if(matmod(jma).eq.'CRIP') then INMAT = INMAT+1 elseif(matmod(jma).eq.'FUSION') then INMAT = INMAT+1 endif enddo 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 INMAT=INMAT+1 IF (IPLAC.EQ.1) THEN CMATE = MATMOD(1) IMATE=1 ENDIF ENDIF *--------------------------------------------------------------------* * 4/ CAS DE LA FORMULATION 'THERMIQUE' 'CONVECTION' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'CONVECTION') THEN CMATE = 'CONVECTI' IMATE = 1 IF (NMAT.NE.0)THEN if (nmat.gt.2) then INMAT=INMAT+1 IF (IPLAC.NE.0)THEN CMATE = MOMODL(IPLAC) IMATE = IPLAC ENDIF endif ENDIF * comme il y a ici les mots isotrope et convection pour modele thermique INMAT=INMAT+2 * *--------------------------------------------------------------------* * 9/ CAS DE LA FORMULATION 'THERMIQUE' 'RAYONNEMENT' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'RAYONNEMENT') THEN CMATE ='RAYONNEM' IMATE = 1 if(NMAT.ne.0) then if( iplac.eq.1)then imate=2 inmat=1 elseif( iplac.eq.2) then imate=3 inmat=1 elseif(iplac.eq.3) then imate=4 iplacf=0 iplacs=0 iplacc=0 icas=0 if( iplacf.ne.0) icas=icas+1 if( iplacs.ne.0) icas=icas+1 if( iplacc.ne.0) icas=icas+1 * inmat=inmat+icas if( icas.eq.0) then inatu= 1 inmat=1 elseif(icas.eq.1)then inmat=2 if(iplacf.ne.0) then inatu=2 elseif(iplacs.ne.0) then inatu=3 else inatu=4 endif elseif( icas.eq.2) then inmat=3 if(iplacf.eq.0) then inatu=5 elseif(iplacs.eq.0) then inatu=6 else inatu=7 endif else inmat=4 inatu=8 endif endif endif if(iplac.ne.0) inmat=inmat+1 * comme il y a le mot isotrope et le mot rayonnement si modele thermique inmat=inmat+2 * *--------------------------------------------------------------------* * 22/ CAS DE LA FORMULATION 'THERMIQUE' 'SOURCE' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'SOURCE') THEN INMAT = 1 CMATE = 'SOURCE' C Par defaut, formulation generale : INATU = 1 IMATE = 1 C On identifie le modele de SOURCE gaussienne... C MATMOD(2) = mot donne dans MATE apres le mot 'SOURCE' IF (NMAT.GT.1) THEN C Cas Source Uniforme IF (IPLAC.EQ.1) THEN C INMAT = INMAT+1 C INATU = 1 C IMATE = 1 C Cas Source Gaussienne C ELSEIF (IPLAC.EQ.2) THEN INMAT = INMAT+1 INATU = 2 C Gaussienne : Spherique, Elliptique ou Elargie IF (NMAT.GT.2) THEN IF (IPLAC.EQ.2) THEN INMAT = INMAT+1 IMATE = 1 ELSEIF (IPLAC.EQ.3) THEN INMAT = INMAT+1 IMATE = 2 ELSEIF (IPLAC.EQ.4) THEN INMAT = INMAT+1 IMATE = 3 ELSE MOTERR(1:40) = 'SOURCE '//MATMOD(2)//MATMOD(3) RETURN ENDIF ELSE C Par defaut, Gaussienne Isotrope IMATE = 1 ENDIF ELSE MOTERR(1:8) = MATMOD(2) MOTERR(9:16) = 'SOURCE ' RETURN ENDIF ENDIF * *--------------------------------------------------------------------* * 11/ CAS DE LA FORMULATION 'NAVIER_STOKES' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'NAVIER_STOKES') THEN INMAT=1 if(nmat.gt.0) then if (iplac.eq.4) then imate = iplac CMATE = 'NLIN' else CMATE='NEWTONIE' IMATE=1 endif else CMATE='NEWTONIE' IMATE=1 endif * *--------------------------------------------------------------------* * 13/ CAS DE LA FORMULATION 'EULER' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'EULER') THEN INMAT=1 CMATE='NEWTONIE' IMATE=1 * *--------------------------------------------------------------------* * 10/ CAS DE LA FORMULATION 'MAGNETODYNAMIQUE' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'MAGNETODYNAMIQUE') THEN IF(NMAT.NE.0) THEN IF(MATMOD(1).EQ.'POTENTIEL_VECTEU') THEN CMATE='CORFOU ' IMATE=1 INMAT=INMAT+1 ELSE IF(IPLAC.NE.0) THEN CMATE=LISTMT(IPLAC) IMATE=IPLAC INMAT=INMAT+1 ENDIF ENDIF IF(NMAT.GT.INMAT) THEN IF(IPLAC.NE.0) THEN CMATE=LISTMT(IPLAC) IMATE=IPLAC INMAT=INMAT+1 ENDIF ENDIF ELSE CMATE='CORFOU ' IMATE=1 INMAT=INMAT+1 ENDIF * *--------------------------------------------------------------------* * 8/ CAS DE LA FORMULATION 'CONTACT' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'CONTACT') THEN INMAT=1 imate=0 inatu=0 * imate=1 unilateral; imate=2 maintenu; inatu=0 pas de frottement * inatu=1 coulomb; inatu=2 frocable 88 continue if(iplac.eq.1) then CMATE='UNILATERAL' imate=1 elseif (IPLAC.EQ.2) THEN CMATE='PERMANENT' imate=2 elseif (IPLAC.EQ.3) THEN inatu=1 elseif (iplac.eq.4) then inatu=1 elseif(iplac.eq.5) then inatu=2 endif inmat=inmat+1 if(inmat.le.nmat) go to 88 *--------------------------------------------------------------------* * 8/ CAS DE LA FORMULATION 'CONTRAINTE' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'CONTRAINTE') THEN INMAT=1 imate=0 inatu=0 *** imate=1 unilateral; imate=2 maintenu; inatu=0 pas de frottement * inatu=1 deplacement; inatu=2 rotation; inatu=3 relation CALL MODCLI(MOMODL,NMOD) inatu=0 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 inmat=inmat+1 *--------------------------------------------------------------------* * 12/ CAS DE LA FORMULATION 'MELANGE' * * on renvoie le premier modele trouve !!! * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'MELANGE') THEN IF (NMAT.GE.1)THEN IF (IPLAC.GT.0)THEN IMATE = IPLAC CMATE = MOMODL(IPLAC) ELSE * il y a un probleme INMAT = -1 ENDIF * on ne decortique pas plus pour l instant ELSE * par defaut CMATE = momodl(3) IMATE = 3 ENDIF inmat = inmat + 1 * *--------------------------------------------------------------------* * 14/ CAS DE LA FORMULATION 'FISSURE' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'FISSURE') THEN IF (NMAT.NE.0) THEN * mode de condensation IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN CMAT1='MA' ELSE INMAT=INMAT+1 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 * * comportement de la vapeur IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN CMAT2='PA' ELSE INMAT=INMAT+1 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 * * lois de frottement IF (IPLA1.EQ.0.AND.IPLA2.EQ.0.AND.IPLA3.EQ.0)THEN CMAT3='BLAS' ELSE INMAT=INMAT+1 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 ELSE * * par defaut vapeur=gaz parfait, condensation= en masse, * frottement=canal lisse * CMATE = 'MAPABLAS' IMATE=1 INATU=1 END IF *--------------------------------------------------------------------* * 15/ CAS DE LA FORMULATION 'LIAISON' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'LIAISON') THEN IMOD = 0 IMO2 = 0 IF (IMOD.EQ.0) THEN CMATE=' ' IMATE=0 INATU=0 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 CMATE=' ' IMATE=0 INATU=0 ENDIF INMAT = NMAT *--------------------------------------------------------------------* * 16/ CAS DE LA FORMULATION 'THERMOHYDRIQUE' * *--------------------------------------------------------------------* ELSE IF (forfo1.EQ.'THERMOHYDRIQUE') THEN IF (NMAT.NE.0)THEN IF(MATMOD(1).NE.'SCHREFLER') THEN CMATE=' ' IMATE=0 INATU=0 ELSE INMAT=1 CMATE='SCHREFLER' IMATE=1 ENDIF ELSE INMAT=INMAT+1 CMATE = 'SCHREFLER' IMATE=1 ENDIF * *----------------------------------------------------------------------* * 17/ CAS DE LA FORMULATION 'ELECTROSTATIQUE' * *----------------------------------------------------------------------* ELSE IF ( forfo1.EQ.'ELECTROSTATIQUE' ) THEN INATU = 0 * Par defaut la formulation est isotrope IF (NMAT.EQ.0) THEN CMATE = 'ISOTROPE' IMATE = 1 ELSE INMAT = INMAT+1 C Recuperation de la "tropie" IF (IPLAC.NE.0) THEN CMATE = MATMOD(INMAT) IMATE = IPLAC INMAT = INMAT+1 ELSE CMATE = 'ISOTROPE' IMATE = 1 ENDIF ENDIF * *----------------------------------------------------------------------* * 18/ CAS DE LA FORMULATION 'DIFFUSION' * *----------------------------------------------------------------------* ELSE IF ( forfo1.EQ.'DIFFUSION' ) THEN INATU = 0 * Par defaut la formulation est isotrope IF (NMAT.EQ.0) THEN CMATE = 'ISOTROPE' IMATE = 1 ELSE INMAT = INMAT+1 C Recuperation de la "tropie" IF (IPLAC.NE.0) THEN CMATE = MATMOD(INMAT) IMATE = IPLAC INMAT = INMAT+1 ELSE CMATE = 'ISOTROPE' IMATE = 1 ENDIF IF (NMAT.GE.INMAT) THEN IF (IPLAC.EQ.0) THEN CMATE = ' ' IMATE = 0 ELSE INMAT = INMAT+1 C FICK (lineaire) IF (IPLAC.EQ.1) THEN INATU = 0 C SORET (non lineaire) ELSE IF (IPLAC.EQ.2) THEN INATU = 1 C UTILISATEUR (non lineaire) ELSE IF (IPLAC.EQ.3) THEN IF (NMAT.GT.INMAT) THEN INMAT = INMAT+1 INATU = -1 ELSE CMATE = ' ' IMATE = 0 INATU = 0 RETURN ENDIF C DISSIPATION ELSE IF (IPLAC.EQ.4) THEN C LINEAIRE if (iplac.ge.5) then 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 CMATE = MATMOD(INMAT) ELSE CMATE = MATMOD(IPLAC) IMATE = IPLAC INMAT = INMAT+1 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 else inmat = nmat endif CMATE = 'METALLUR' INATU = 178 *---------------------------------------------------------------------* * 21/ CAS DE LA FORMULATION 'CHANGEMENT_PHASE' * *---------------------------------------------------------------------* ELSEIF (forfo1 .EQ. 'CHANGEMENT_PHASE') THEN DO iii=1,NMAT IF(IPLAC.EQ.0 .OR. (IPLAC.NE.0 .AND. INATU.NE.0)) THEN CMATE = ' ' INMAT = 0 IMATE = 0 INATU = 0 RETURN ELSEIF (IPLAC .EQ. 1) THEN CMATE = 'CHPH_PAR' INMAT = INMAT+1 IMATE = IPLAC INATU = 179 ELSEIF(IPLAC .EQ. 2) THEN CMATE = 'CHPH_SOL' INMAT = INMAT+1 IMATE = IPLAC INATU = 180 ELSE C Ne devrait jamais survenir ENDIF ENDDO *--------------------------------------------------------------------* * 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 IF (NMAT .GT. INMAT) THEN do jma=1,nmat if(matmod(jma).eq.'STATIONNAIRE') then INMAT = INMAT+1 endif enddo ENDIF IF (NMAT .GT. INMAT) THEN CMATE=' ' IMATE=0 INATU=0 ENDIF END
© Cast3M 2003 - Tous droits réservés.
Mentions légales