idvar4
C IDVAR4 SOURCE PV090527 24/02/09 21:15:03 11835 C======================================================================= * RECHERCHE DES NOMS DE COMPOSANTES DES VARIABLES INTERNES * -------------------------------------------------------- * * ENTREES : * --------- * MATEPL NUMERO DU MATERIAU PLASTIQUE * MFR NUMERO DE FORMULATION * IFOUR VALEUR DE IFOU DANS CCOPTIO * NPINT NOMBRE DE POINTS D'INTEGRATION DANS L'EPAISSEUR * POUR LES ELEMENTS DE COQUE INTEGRES * * SORTIES : * --------- * IPCOMP POINTEUR SUR LA LISTE DES NOMS DE COMPOSANTES * OBLIGATOIRES ET FACULTATIVES * NBROBL NOMBRE DE COMPOSANTES OBLIGATOIRES * NBRFAC NOMBRE DE COMPOSANTES FACTULTATIVES C======================================================================= IMPLICIT INTEGER(I-N) ***sellier rajout de parametre pour gerer les noms de variables ******** character*1 motren1,mothelm1,motinc1,motnum1,motdir1,motvec1 character*2 motren2,mothelm2,motinc2,motnum2,motdir2,motvec2 character*3 motren3,mothelm3,motinc3,motnum3,motdir3,motvec3 character*4 motren4,mothelm4,motinc4,motnum4,motdir4,motvec4 integer icomp3d,nv3d,iphase3d,int3d,i integer NBVCOM3D,NBVMAT3D,NBRINC3D,NBVPARI3D integer NBNLOC3D,NDEBUT c NOMBRE DE VARI POUR FLUENDO3D c include './nombre_fluendo3d.h' -INC HNBRF3D c NB_RENF,NB_PARA_RENF,NB_VARI_RENF c include './nombre_renforts.h' -INC HNBRREN c NB_HELM,NB_PARA_HELM,NB_VARI_HELM c include './nombre_helmholtz.h' -INC HNBRHEL c nombre de sous types de modeles a coupler dans FLUISO3D et FLUORTHO3D integer NSTYPEI,NSTYPEO,ITYPE c dimension du vecteur de stockage des tenseurs (ici 12 c = 3 valeurs principales suivies des 3 vecteurs propres) integer NDTENS,JDIR,KDIR,N3D,NUM0 c pour chaque sous type de modele on a indice 1-9 numero du sous type c indice 2 : si 1 nbre de tenseurs, si 2 nombre de scalaires c exple : VNVARI(2,1)=5 (le sous type 2 a 5 vari scalaires) c VNVARI(2,2)=1 (le sous type 2 a une seule vari tensorielle) parameter (NSTYPEI=9,NSTYPEO=4,NDTENS=12) c nombre de vari scalaires par sous type de modele integer VNVARI_I(NSTYPEI,2),VNVARI_O(NSTYPEO,2) ***fin ajout declaration sellier *************************************** SEGMENT NOMID CHARACTER*8 LESOBL(NBROBL),LESFAC(NBRFAC) ENDSEGMENT NBROBL=0 NBRFAC=0 NOMID=0 C 1 - Modele ONERA et OHNO C =================================== IF (MATEPL.EQ.25) THEN C ===== C 1.1 - Elements MASSIFs C ===== IF (MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33) THEN C= 1.1.1 - Cas des CONTRAINTES PLANES ou des DEFORMATIONS PLANES ou C= des DEFORMATIONS PLANES GENERALISEES IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN NBROBL=20 SEGINI,NOMID LESOBL( 1)='X1XX' LESOBL( 2)='X1YY' LESOBL( 3)='X1ZZ' LESOBL( 4)='X1XY' LESOBL( 5)='X2XX' LESOBL( 6)='X2YY' LESOBL( 7)='X2ZZ' LESOBL( 8)='X2XY' LESOBL( 9)='GPXX' LESOBL(10)='GPYY' LESOBL(11)='GPZZ' LESOBL(12)='GPXY' LESOBL(13)='VIXX' LESOBL(14)='VIYY' LESOBL(15)='VIZZ' LESOBL(16)='VIXY' LESOBL(17)='EPSE' LESOBL(18)='RR ' LESOBL(19)='QQQ ' LESOBL(20)='QQ ' C= 1.1.2 - Cas AXISYMETRIQUE ELSE IF (IFOUR.EQ.0) THEN NBROBL=20 SEGINI,NOMID LESOBL( 1)='X1RR' LESOBL( 2)='X1ZZ' LESOBL( 3)='X1TT' LESOBL( 4)='X1RZ' LESOBL( 5)='X2RR' LESOBL( 6)='X2ZZ' LESOBL( 7)='X2TT' LESOBL( 8)='X2RZ' LESOBL( 9)='GPRR' LESOBL(10)='GPZZ' LESOBL(11)='GPTT' LESOBL(12)='GPRZ' LESOBL(13)='VIRR' LESOBL(14)='VIZZ' LESOBL(15)='VITT' LESOBL(16)='VIRZ' LESOBL(17)='EPSE' LESOBL(18)='RR ' LESOBL(19)='QQQ ' LESOBL(20)='QQ ' C= 1.1.3 - Cas des series de FOURIER ELSE IF (IFOUR.EQ.1) THEN NBROBL=28 SEGINI,NOMID LESOBL( 1)='X1RR' LESOBL( 2)='X1ZZ' LESOBL( 3)='X1TT' LESOBL( 4)='X1RZ' LESOBL( 5)='X1RT' LESOBL( 6)='X1ZT' LESOBL( 7)='X2RR' LESOBL( 8)='X2ZZ' LESOBL( 9)='X2TT' LESOBL(10)='X2RZ' LESOBL(11)='X2RT' LESOBL(12)='X2ZT' LESOBL(13)='GPRR' LESOBL(14)='GPZZ' LESOBL(15)='GPTT' LESOBL(16)='GPRZ' LESOBL(17)='GPRT' LESOBL(18)='GPZT' LESOBL(19)='VIRR' LESOBL(20)='VIZZ' LESOBL(21)='VITT' LESOBL(22)='VIRZ' LESOBL(23)='VIRT' LESOBL(24)='VIZT' LESOBL(25)='EPSE' LESOBL(26)='RR ' LESOBL(27)='QQQ ' LESOBL(28)='QQ ' C= 1.1.4 - Cas TRIDIMENSIONNEL ELSE IF (IFOUR.EQ.2) THEN NBROBL=28 SEGINI,NOMID LESOBL( 1)='X1XX' LESOBL( 2)='X1YY' LESOBL( 3)='X1ZZ' LESOBL( 4)='X1XY' LESOBL( 5)='X1YZ' LESOBL( 6)='X1ZX' LESOBL( 7)='X2XX' LESOBL( 8)='X2YY' LESOBL( 9)='X2ZZ' LESOBL(10)='X2XY' LESOBL(11)='X2YZ' LESOBL(12)='X2ZX' LESOBL(13)='GPXX' LESOBL(14)='GPYY' LESOBL(15)='GPZZ' LESOBL(16)='GPXY' LESOBL(17)='GPYZ' LESOBL(18)='GPZX' LESOBL(19)='VIXX' LESOBL(20)='VIYY' LESOBL(21)='VIZZ' LESOBL(22)='VIXY' LESOBL(23)='VIYZ' LESOBL(24)='VIZX' LESOBL(25)='EPSE' LESOBL(26)='RR ' LESOBL(27)='QQQ ' LESOBL(28)='QQ ' C= 1.1.5 - Modes de calcul UNIDIMENSIONNELS (1D) PLAN ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.11) THEN NBROBL=16 SEGINI,NOMID LESOBL( 1)='X1XX' LESOBL( 2)='X1YY' LESOBL( 3)='X1ZZ' LESOBL( 4)='X2XX' LESOBL( 5)='X2YY' LESOBL( 6)='X2ZZ' LESOBL( 7)='GPXX' LESOBL( 8)='GPYY' LESOBL( 9)='GPZZ' LESOBL(10)='VIXX' LESOBL(11)='VIYY' LESOBL(12)='VIZZ' LESOBL(13)='EPSE' LESOBL(14)='RR ' LESOBL(15)='QQQ ' LESOBL(16)='QQ ' C= 1.1.6 - Modes de calcul UNIDIMENSIONNELS (1D) AXIS et SPHE ELSE IF (IFOUR.GE.12.AND.IFOUR.LE.15) THEN NBROBL=16 SEGINI,NOMID LESOBL( 1)='X1RR' LESOBL( 2)='X1ZZ' LESOBL( 3)='X1TT' LESOBL( 4)='X2RR' LESOBL( 5)='X2ZZ' LESOBL( 6)='X2TT' LESOBL( 7)='GPRR' LESOBL( 8)='GPZZ' LESOBL( 9)='GPTT' LESOBL(10)='VIRR' LESOBL(11)='VIZZ' LESOBL(12)='VITT' LESOBL(13)='EPSE' LESOBL(14)='RR ' LESOBL(15)='QQQ ' LESOBL(16)='QQ ' ENDIF C ===== C 1.2 - Elements COQUEs C ===== ELSE IF (MFR.EQ.3) THEN IF (NPINT.EQ.0) THEN C= 1.2.1 - Modes de calcul TRIDIMENSIONNEL et FOURIER IF (IFOUR.EQ.2.OR.IFOUR.EQ.1) THEN NBROBL=36 SEGINI,NOMID LESOBL( 1)='X1N1' LESOBL( 2)='X1N2' LESOBL( 3)='X1N3' LESOBL( 4)='X1N4' LESOBL( 5)='X1M1' LESOBL( 6)='X1M2' LESOBL( 7)='X1M3' LESOBL( 8)='X1M4' LESOBL( 9)='X2N1' LESOBL(10)='X2N2' LESOBL(11)='X2N3' LESOBL(12)='X2N4' LESOBL(13)='X2M1' LESOBL(14)='X2M2' LESOBL(15)='X2M3' LESOBL(16)='X2M4' LESOBL(17)='GPN1' LESOBL(18)='GPN2' LESOBL(19)='GPN3' LESOBL(20)='GPN4' LESOBL(21)='GPM1' LESOBL(22)='GPM2' LESOBL(23)='GPM3' LESOBL(24)='GPM4' LESOBL(25)='EPN1' LESOBL(26)='EPN2' LESOBL(27)='EPN3' LESOBL(28)='EPN4' LESOBL(29)='EPM1' LESOBL(30)='EPM2' LESOBL(31)='EPM3' LESOBL(32)='EPM4' LESOBL(33)='EPSE' LESOBL(34)='RR ' LESOBL(35)='QQQ ' LESOBL(36)='QQ ' C= 1.2.2 - Cas AXISYMETRIQUE ELSE IF (IFOUR.EQ.0) THEN NBROBL=28 SEGINI,NOMID LESOBL( 1)='X1N1' LESOBL( 2)='X1N2' LESOBL( 3)='X1N3' LESOBL( 4)='X1M1' LESOBL( 5)='X1M2' LESOBL( 6)='X1M3' LESOBL( 7)='X2N1' LESOBL( 8)='X2N2' LESOBL( 9)='X2N3' LESOBL(10)='X2M1' LESOBL(11)='X2M2' LESOBL(12)='X2M3' LESOBL(13)='GPN1' LESOBL(14)='GPN2' LESOBL(15)='GPN3' LESOBL(16)='GPM1' LESOBL(17)='GPM2' LESOBL(18)='GPM3' LESOBL(19)='EPN1' LESOBL(20)='EPN2' LESOBL(21)='EPN3' LESOBL(22)='EPM1' LESOBL(23)='EPM2' LESOBL(24)='EPM3' LESOBL(25)='EPSE' LESOBL(26)='RR ' LESOBL(27)='QQQ ' LESOBL(28)='QQ ' C= 1.2.3 - Cas des CONTRAINTES PLANES ou des DEFORMATIONS PLANES ou C= des DEFORMATIONS PLANES GENERALISEES ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN NBROBL=28 SEGINI,NOMID LESOBL( 1)='X1N1' LESOBL( 2)='X1N2' LESOBL( 3)='X1N3' LESOBL( 4)='X1M1' LESOBL( 5)='X1M2' LESOBL( 6)='X1M3' LESOBL( 7)='X2N1' LESOBL( 8)='X2N2' LESOBL( 9)='X2N3' LESOBL(10)='X2M1' LESOBL(11)='X2M2' LESOBL(12)='X2M3' LESOBL(13)='GPN1' LESOBL(14)='GPN2' LESOBL(15)='GPN3' LESOBL(16)='GPM1' LESOBL(17)='GPM2' LESOBL(18)='GPM3' LESOBL(19)='EPN1' LESOBL(20)='EPN2' LESOBL(21)='EPN3' LESOBL(22)='EPM1' LESOBL(23)='EPM2' LESOBL(24)='EPM3' LESOBL(25)='EPSE' LESOBL(26)='RR ' LESOBL(27)='QQQ ' LESOBL(28)='QQ ' ENDIF ELSE C= 1.2.4 - Cas des COQUES INTEGREES en TRIDIMENSIONNEL IF (IFOUR.EQ.2) THEN NBROBL=20 SEGINI,NOMID LESOBL( 1)='X1SS' LESOBL( 2)='X1TT' LESOBL( 3)='X1NN' LESOBL( 4)='X1ST' LESOBL( 5)='X2SS' LESOBL( 6)='X2TT' LESOBL( 7)='X2NN' LESOBL( 8)='X2ST' LESOBL( 9)='GPSS' LESOBL(10)='GPTT' LESOBL(11)='GPNN' LESOBL(12)='GPST' LESOBL(13)='VISS' LESOBL(14)='VITT' LESOBL(15)='VINN' LESOBL(16)='VIST' LESOBL(17)='EPSE' LESOBL(18)='RR ' LESOBL(19)='QQQ ' LESOBL(20)='QQ ' ENDIF ENDIF C ===== C 1.3 - Element COQUE EPAISSE C ===== ELSE IF (MFR.EQ.5) THEN C= Mode de calcul TRIDIMENSIONNEL IF (IFOUR.EQ.2) THEN NBROBL=28 SEGINI,NOMID LESOBL( 1)='X1SS' LESOBL( 2)='X1TT' LESOBL( 3)='X1NN' LESOBL( 4)='X1ST' LESOBL( 5)='X1SN' LESOBL( 6)='X1TN' LESOBL( 7)='X2SS' LESOBL( 8)='X2TT' LESOBL( 9)='X2NN' LESOBL(10)='X2ST' LESOBL(11)='X2SN' LESOBL(12)='X2TN' LESOBL(13)='GPSS' LESOBL(14)='GPTT' LESOBL(15)='GPNN' LESOBL(16)='GPST' LESOBL(17)='GPSN' LESOBL(18)='GPTN' LESOBL(19)='VISS' LESOBL(20)='VITT' LESOBL(21)='VINN' LESOBL(22)='VIST' LESOBL(23)='VISN' LESOBL(24)='VITN' LESOBL(25)='EPSE' LESOBL(26)='RR ' LESOBL(27)='QQQ ' LESOBL(28)='QQ ' ENDIF C ===== C 1.4 - Elements POUTRE et TUYAU C ===== ELSE IF (MFR.EQ.7.OR.MFR.EQ.13) THEN C= Mode de calcul TRIDIMENSIONNEL IF (IFOUR.EQ.2) THEN NBROBL=28 SEGINI,NOMID LESOBL( 1)='X1FX' LESOBL( 2)='X1FY' LESOBL( 3)='X1FZ' LESOBL( 4)='X1MX' LESOBL( 5)='X1MY' LESOBL( 6)='X1MZ' LESOBL( 7)='X2FX' LESOBL( 8)='X2FY' LESOBL( 9)='X2FZ' LESOBL(10)='X2MX' LESOBL(11)='X2MY' LESOBL(12)='X2MZ' LESOBL(13)='GPFX' LESOBL(14)='GPFY' LESOBL(15)='GPFZ' LESOBL(16)='GPMX' LESOBL(17)='GPMY' LESOBL(18)='GPMZ' LESOBL(19)='EPFX' LESOBL(20)='EPFY' LESOBL(21)='EPFZ' LESOBL(22)='EPMX' LESOBL(23)='EPMY' LESOBL(24)='EPMZ' LESOBL(25)='EPSE' LESOBL(26)='RR ' LESOBL(27)='QQQ ' LESOBL(28)='QQ ' ENDIF C ===== C 1.5 - Element COQUE CISAILLEMENT TRANSVERSE C ===== ELSE IF (MFR.EQ.9) THEN C= Mode de calcul TRIDIMENSIONNEL IF (NPINT.EQ.0) THEN IF (IFOUR.EQ.2) THEN NBROBL=36 SEGINI,NOMID LESOBL( 1)='X1N1' LESOBL( 2)='X1N2' LESOBL( 3)='X1N3' LESOBL( 4)='X1M1' LESOBL( 5)='X1M2' LESOBL( 6)='X1M3' LESOBL( 7)='X1V1' LESOBL( 8)='X1V2' LESOBL( 9)='X2N1' LESOBL(10)='X2N2' LESOBL(11)='X2N3' LESOBL(12)='X2M1' LESOBL(13)='X2M2' LESOBL(14)='X2M3' LESOBL(15)='X2V1' LESOBL(16)='X2V2' LESOBL(17)='GPN1' LESOBL(18)='GPN2' LESOBL(19)='GPN3' LESOBL(20)='GPM1' LESOBL(21)='GPM2' LESOBL(22)='GPM3' LESOBL(23)='GPV1' LESOBL(24)='GPV2' LESOBL(25)='EPN1' LESOBL(26)='EPN2' LESOBL(27)='EPN3' LESOBL(28)='EPM1' LESOBL(29)='EPM2' LESOBL(30)='EPM3' LESOBL(31)='EPV1' LESOBL(32)='EPV2' LESOBL(33)='EPSE' LESOBL(34)='RR ' LESOBL(35)='QQQ ' LESOBL(36)='QQ ' ENDIF ENDIF C ===== C 1.6 - Formulation MEMBRANE C ===== ELSE IF (MFR.EQ.25) THEN NBROBL=16 SEGINI,NOMID LESOBL( 1)='X1SS' LESOBL( 2)='X1TT' LESOBL( 3)='X1ST' LESOBL( 4)='X2SS' LESOBL( 5)='X2TT' LESOBL( 6)='X2ST' LESOBL( 7)='GPSS' LESOBL( 8)='GPTT' LESOBL( 9)='GPST' LESOBL(10)='VISS' LESOBL(11)='VITT' LESOBL(12)='VIST' LESOBL(13)='EPSE' LESOBL(14)='RR ' LESOBL(15)='QQQ ' LESOBL(16)='QQ ' C ===== C 1.7 - Formulation UNIAXIALE C ===== ELSE IF (MFR.EQ.27) THEN NBROBL=8 SEGINI,NOMID LESOBL(1)='X1FX' LESOBL(2)='X2FX' LESOBL(3)='GPFX' LESOBL(4)='EPFX' LESOBL(5)='EPSE' LESOBL(6)='RR ' LESOBL(7)='QQQ ' LESOBL(8)='QQ ' ENDIF C 2 - Modele VISCOPLASTIQUE PARFAIT C =================================== ELSE IF (MATEPL.EQ.43) THEN C= Formulation MASSIF : C= Modele non disponible en PLAN CONT et en FOURIER IF ( (MFR.EQ.1.OR.MFR.EQ.31) .AND. & (IFOUR.NE.-2.AND.IFOUR.NE.1) ) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='EPSE' ENDIF C 3 - Modele a deux deformations inelastiques (DDI) C =================================================== ELSE IF (MATEPL.EQ.63) THEN C ===== C 3.1 - Elements MASSIFs C ===== IF (MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33) THEN C= 3.1.1 - Cas des CONTRAINTES PLANES ou des DEFORMATIONS PLANES ou C= des DEFORMATIONS PLANES GENERALISEES IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN NBROBL=45 SEGINI,NOMID LESOBL( 1)='X1XX' LESOBL( 2)='X1YY' LESOBL( 3)='X1ZZ' LESOBL( 4)='X1XY' LESOBL( 5)='X2XX' LESOBL( 6)='X2YY' LESOBL( 7)='X2ZZ' LESOBL( 8)='X2XY' LESOBL( 9)='A1XX' LESOBL(10)='A1YY' LESOBL(11)='A1ZZ' LESOBL(12)='A1XY' LESOBL(13)='A2XX' LESOBL(14)='A2YY' LESOBL(15)='A2ZZ' LESOBL(16)='A2XY' LESOBL(17)='VIXX' LESOBL(18)='VIYY' LESOBL(19)='VIZZ' LESOBL(20)='VIXY' LESOBL(21)='Y1XX' LESOBL(22)='Y1YY' LESOBL(23)='Y1ZZ' LESOBL(24)='Y1XY' LESOBL(25)='Y2XX' LESOBL(26)='Y2YY' LESOBL(27)='Y2ZZ' LESOBL(28)='Y2XY' LESOBL(29)='B1XX' LESOBL(30)='B1YY' LESOBL(31)='B1ZZ' LESOBL(32)='B1XY' LESOBL(33)='B2XX' LESOBL(34)='B2YY' LESOBL(35)='B2ZZ' LESOBL(36)='B2XY' LESOBL(37)='EVXX' LESOBL(38)='EVYY' LESOBL(39)='EVZZ' LESOBL(40)='EVXY' LESOBL(41)='VIPW' LESOBL(42)='RP ' LESOBL(43)='V ' LESOBL(44)='RV ' LESOBL(45)='EPSE' C= 3.1.2 - Cas AXISYMETRIQUE ELSE IF (IFOUR.EQ.0) THEN NBROBL=45 SEGINI,NOMID LESOBL( 1)='X1RR' LESOBL( 2)='X1ZZ' LESOBL( 3)='X1TT' LESOBL( 4)='X1RZ' LESOBL( 5)='X2RR' LESOBL( 6)='X2ZZ' LESOBL( 7)='X2TT' LESOBL( 8)='X2RZ' LESOBL( 9)='A1RR' LESOBL(10)='A1ZZ' LESOBL(11)='A1TT' LESOBL(12)='A1RZ' LESOBL(13)='A2RR' LESOBL(14)='A2ZZ' LESOBL(15)='A2TT' LESOBL(16)='A2RZ' LESOBL(17)='VIRR' LESOBL(18)='VIZZ' LESOBL(19)='VITT' LESOBL(20)='VIRZ' LESOBL(21)='Y1RR' LESOBL(22)='Y1ZZ' LESOBL(23)='Y1TT' LESOBL(24)='Y1RZ' LESOBL(25)='Y2RR' LESOBL(26)='Y2ZZ' LESOBL(27)='Y2TT' LESOBL(28)='Y2RZ' LESOBL(29)='B1RR' LESOBL(30)='B1ZZ' LESOBL(31)='B1TT' LESOBL(32)='B1RZ' LESOBL(33)='B2RR' LESOBL(34)='B2ZZ' LESOBL(35)='B2TT' LESOBL(36)='B2RZ' LESOBL(37)='EVRR' LESOBL(38)='EVZZ' LESOBL(39)='EVTT' LESOBL(40)='EVRZ' LESOBL(41)='VIPW' LESOBL(42)='RP ' LESOBL(43)='V ' LESOBL(44)='RV ' LESOBL(45)='EPSE' C= 3.1.3 - Cas des series de FOURIER ELSE IF (IFOUR.EQ.1) THEN NBROBL=65 SEGINI,NOMID LESOBL( 1)='X1RR' LESOBL( 2)='X1ZZ' LESOBL( 3)='X1TT' LESOBL( 4)='X1RZ' LESOBL( 5)='X1RT' LESOBL( 6)='X1ZT' LESOBL( 7)='X2RR' LESOBL( 8)='X2ZZ' LESOBL( 9)='X2TT' LESOBL(10)='X2RZ' LESOBL(11)='X2RT' LESOBL(12)='X2ZT' LESOBL(13)='A1RR' LESOBL(14)='A1ZZ' LESOBL(15)='A1TT' LESOBL(16)='A1RZ' LESOBL(17)='A1RT' LESOBL(18)='A1ZT' LESOBL(19)='A2RR' LESOBL(20)='A2ZZ' LESOBL(21)='A2TT' LESOBL(22)='A2RZ' LESOBL(23)='A2RT' LESOBL(24)='A2ZT' LESOBL(25)='VIRR' LESOBL(26)='VIZZ' LESOBL(27)='VITT' LESOBL(28)='VIRZ' LESOBL(29)='VIRT' LESOBL(30)='VIZT' LESOBL(31)='Y1RR' LESOBL(32)='Y1ZZ' LESOBL(33)='Y1TT' LESOBL(34)='Y1RZ' LESOBL(35)='Y1RT' LESOBL(36)='Y1ZT' LESOBL(37)='Y2RR' LESOBL(38)='Y2ZZ' LESOBL(39)='Y2TT' LESOBL(40)='Y2RZ' LESOBL(41)='Y2RT' LESOBL(42)='Y2ZT' LESOBL(43)='B1RR' LESOBL(44)='B1ZZ' LESOBL(45)='B1TT' LESOBL(46)='B1RZ' LESOBL(47)='B1RT' LESOBL(48)='B1ZT' LESOBL(49)='B2RR' LESOBL(50)='B2ZZ' LESOBL(51)='B2TT' LESOBL(52)='B2RZ' LESOBL(53)='B2RT' LESOBL(54)='B2ZT' LESOBL(55)='EVRR' LESOBL(56)='EVZZ' LESOBL(57)='EVTT' LESOBL(58)='EVRZ' LESOBL(59)='EVRT' LESOBL(60)='EVZT' LESOBL(61)='VIPW' LESOBL(62)='RP ' LESOBL(63)='V ' LESOBL(64)='RV ' LESOBL(65)='EPSE' C= 3.1.4 - Cas TRIDIMENSIONNEL ELSE IF (IFOUR.EQ.2) THEN NBROBL=65 SEGINI,NOMID LESOBL( 1)='X1XX' lESOBL( 2)='X1YY' LESOBL( 3)='X1ZZ' LESOBL( 4)='X1XY' LESOBL( 5)='X1YZ' LESOBL( 6)='X1ZX' LESOBL( 7)='X2XX' LESOBL( 8)='X2YY' LESOBL( 9)='X2ZZ' LESOBL(10)='X2XY' LESOBL(11)='X2YZ' LESOBL(12)='X2ZX' LESOBL(13)='A1XX' LESOBL(14)='A1YY' LESOBL(15)='A1ZZ' LESOBL(16)='A1XY' LESOBL(17)='A1YZ' LESOBL(18)='A1ZX' LESOBL(19)='A2XX' LESOBL(20)='A2YY' LESOBL(21)='A2ZZ' LESOBL(22)='A2XY' LESOBL(23)='A2YZ' LESOBL(24)='A2ZX' LESOBL(25)='VIXX' LESOBL(26)='VIYY' LESOBL(27)='VIZZ' LESOBL(28)='VIXY' LESOBL(29)='VIYZ' LESOBL(30)='VIZX' LESOBL(31)='Y1XX' LESOBL(32)='Y1YY' LESOBL(33)='Y1ZZ' LESOBL(34)='Y1XY' LESOBL(35)='Y1YZ' LESOBL(36)='Y1ZX' LESOBL(37)='Y2XX' LESOBL(38)='Y2YY' LESOBL(39)='Y2ZZ' LESOBL(40)='Y2XY' LESOBL(41)='Y2YZ' LESOBL(42)='Y2ZX' LESOBL(43)='B1XX' LESOBL(44)='B1YY' LESOBL(45)='B1ZZ' LESOBL(46)='B1XY' LESOBL(47)='B1YZ' LESOBL(48)='B1ZX' LESOBL(49)='B2XX' LESOBL(50)='B2YY' LESOBL(51)='B2ZZ' LESOBL(52)='B2XY' LESOBL(53)='B2YZ' LESOBL(54)='B2ZX' LESOBL(55)='EVXX' LESOBL(56)='EVYY' LESOBL(57)='EVZZ' LESOBL(58)='EVXY' LESOBL(59)='EVYZ' LESOBL(60)='EVZX' LESOBL(61)='VIPW' LESOBL(62)='RP ' LESOBL(63)='V ' LESOBL(64)='RV ' LESOBL(65)='EPSE' C= 3.1.5 - Modes de calcul UNIDIMENSIONNELS (1D) PLAN ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.11) THEN NBROBL=35 SEGINI,NOMID LESOBL( 1)='X1XX' LESOBL( 2)='X1YY' LESOBL( 3)='X1ZZ' LESOBL( 4)='X2XX' LESOBL( 5)='X2YY' LESOBL( 6)='X2ZZ' LESOBL( 7)='A1XX' LESOBL( 8)='A1YY' LESOBL( 9)='A1ZZ' LESOBL(10)='A2XX' LESOBL(11)='A2YY' LESOBL(12)='A2ZZ' LESOBL(13)='VIXX' LESOBL(14)='VIYY' LESOBL(15)='VIZZ' LESOBL(16)='Y1XX' LESOBL(17)='Y1YY' LESOBL(18)='Y1ZZ' LESOBL(19)='Y2XX' LESOBL(20)='Y2YY' LESOBL(21)='Y2ZZ' LESOBL(22)='B1XX' LESOBL(23)='B1YY' LESOBL(24)='B1ZZ' LESOBL(25)='B2XX' LESOBL(26)='B2YY' LESOBL(27)='B2ZZ' LESOBL(28)='EVXX' LESOBL(29)='EVYY' LESOBL(30)='EVZZ' LESOBL(31)='VIPW' LESOBL(32)='RP ' LESOBL(33)='V ' LESOBL(34)='RV ' LESOBL(35)='EPSE' C= 3.1.6 - Modes de calcul UNIDIMENSIONNELS (1D) AXIS et SPHE ELSE IF (IFOUR.GE.12.AND.IFOUR.LE.15) THEN NBROBL=35 SEGINI,NOMID LESOBL( 1)='X1RR' LESOBL( 2)='X1ZZ' LESOBL( 3)='X1TT' LESOBL( 4)='X2RR' LESOBL( 5)='X2ZZ' LESOBL( 6)='X2TT' LESOBL( 7)='A1RR' LESOBL( 8)='A1ZZ' LESOBL( 9)='A1TT' LESOBL(10)='A2RR' LESOBL(11)='A2ZZ' LESOBL(12)='A2TT' LESOBL(13)='VIRR' LESOBL(14)='VIZZ' LESOBL(15)='VITT' LESOBL(16)='Y1RR' LESOBL(17)='Y1ZZ' LESOBL(18)='Y1TT' LESOBL(19)='Y2RR' LESOBL(20)='Y2ZZ' LESOBL(21)='Y2TT' LESOBL(22)='B1RR' LESOBL(23)='B1ZZ' LESOBL(24)='B1TT' LESOBL(25)='B2RR' LESOBL(26)='B2ZZ' LESOBL(27)='B2TT' LESOBL(28)='EVRR' LESOBL(29)='EVZZ' LESOBL(30)='EVTT' LESOBL(31)='VIPW' LESOBL(32)='RP ' LESOBL(33)='V ' LESOBL(34)='RV ' LESOBL(35)='EPSE' ENDIF C ===== C 3.2 - Elements COQUEs C ===== ELSE IF (MFR.EQ.3) THEN IF (NPINT.EQ.0) THEN C= 3.2.1 - Modes de calcul TRIDIMENSIONNEL et FOURIER IF (IFOUR.EQ.2.OR.IFOUR.EQ.1) THEN NBROBL=85 SEGINI,NOMID LESOBL( 1)='X1N1' LESOBL( 2)='X1N2' LESOBL( 3)='X1N3' LESOBL( 4)='X1N4' LESOBL( 5)='X1M1' LESOBL( 6)='X1M2' LESOBL( 7)='X1M3' LESOBL( 8)='X1M4' LESOBL( 9)='X2N1' LESOBL(10)='X2N2' LESOBL(11)='X2N3' LESOBL(12)='X2N4' LESOBL(13)='X2M1' LESOBL(14)='X2M2' LESOBL(15)='X2M3' LESOBL(16)='X2M4' LESOBL(17)='A1N1' LESOBL(18)='A1N2' LESOBL(19)='A1N3' LESOBL(20)='A1N4' LESOBL(21)='A1M1' LESOBL(22)='A1M2' LESOBL(23)='A1M3' LESOBL(24)='A1M4' LESOBL(25)='A2N1' LESOBL(26)='A2N2' LESOBL(27)='A2N3' LESOBL(28)='A2N4' LESOBL(29)='A2M1' LESOBL(30)='A2M2' LESOBL(31)='A2M3' LESOBL(32)='A2M4' LESOBL(33)='EPN1' LESOBL(34)='EPN2' LESOBL(35)='EPN3' LESOBL(36)='EPN4' LESOBL(37)='EPM1' LESOBL(38)='EPM2' LESOBL(39)='EPM3' LESOBL(40)='EPM4' LESOBL(41)='Y1N1' LESOBL(42)='Y1N2' LESOBL(43)='Y1N3' LESOBL(44)='Y1N4' LESOBL(45)='Y1M1' LESOBL(46)='Y1M2' LESOBL(47)='Y1M3' LESOBL(48)='Y1M4' LESOBL(49)='Y2N1' LESOBL(50)='Y2N2' LESOBL(51)='Y2N3' LESOBL(52)='Y2N4' LESOBL(53)='Y2M1' LESOBL(54)='Y2M2' LESOBL(55)='Y2M3' LESOBL(56)='Y2M4' LESOBL(57)='B1N1' LESOBL(58)='B1N2' LESOBL(59)='B1N3' LESOBL(60)='B1N4' LESOBL(61)='B1M1' LESOBL(62)='B1M2' LESOBL(63)='B1M3' LESOBL(64)='B1M4' LESOBL(65)='B2N1' LESOBL(66)='B2N2' LESOBL(67)='B2N3' LESOBL(68)='B2N4' LESOBL(69)='B2M1' LESOBL(70)='B2M2' LESOBL(71)='B2M3' LESOBL(72)='A2M4' LESOBL(73)='EVN1' LESOBL(74)='EVN2' LESOBL(75)='EVN3' LESOBL(76)='EVN4' LESOBL(77)='EVM1' LESOBL(78)='EVM2' LESOBL(79)='EVM3' LESOBL(80)='EVM4' LESOBL(81)='VIPW' LESOBL(82)='RP ' LESOBL(83)='V ' LESOBL(84)='RV ' LESOBL(85)='EPSE' C= 3.2.2 - Cas AXISYMETRIQUE ELSE IF (IFOUR.EQ.0) THEN NBROBL=65 SEGINI,NOMID LESOBL( 1)='X1N1' LESOBL( 2)='X1N2' LESOBL( 3)='X1N3' LESOBL( 4)='X1M1' LESOBL( 5)='X1M2' LESOBL( 6)='X1M3' LESOBL( 7)='X2N1' LESOBL( 8)='X2N2' LESOBL( 9)='X2N3' LESOBL(10)='X2M1' LESOBL(11)='X2M2' LESOBL(12)='X2M3' LESOBL(13)='A1N1' LESOBL(14)='A1N2' LESOBL(15)='A1N3' LESOBL(16)='A1M1' LESOBL(17)='A1M2' LESOBL(18)='A1M3' LESOBL(19)='A2N1' LESOBL(20)='A2N2' LESOBL(21)='A2N3' LESOBL(22)='A2M1' LESOBL(23)='A2M2' LESOBL(24)='A2M3' LESOBL(25)='EPN1' LESOBL(26)='EPN2' LESOBL(27)='EPN3' LESOBL(28)='EPM1' LESOBL(29)='EPM2' LESOBL(30)='EPM3' LESOBL(31)='Y1N1' LESOBL(32)='Y1N2' LESOBL(33)='Y1N3' LESOBL(34)='Y1M1' LESOBL(35)='Y1M2' LESOBL(36)='Y1M3' LESOBL(37)='Y2N1' LESOBL(38)='Y2N2' LESOBL(39)='Y2N3' LESOBL(40)='Y2M1' LESOBL(41)='Y2M2' LESOBL(42)='Y2M3' LESOBL(43)='B1N1' LESOBL(44)='B1N2' LESOBL(45)='B1N3' LESOBL(46)='B1M1' LESOBL(47)='B1M2' LESOBL(48)='B1M3' LESOBL(49)='B2N1' LESOBL(50)='B2N2' LESOBL(51)='B2N3' LESOBL(52)='B2M1' LESOBL(53)='B2M2' LESOBL(54)='B2M3' LESOBL(55)='EVN1' LESOBL(56)='EVN2' LESOBL(57)='EVN3' LESOBL(58)='EVM1' LESOBL(59)='EVM2' LESOBL(60)='EVM3' LESOBL(61)='VIPW' LESOBL(62)='RP ' LESOBL(63)='V ' LESOBL(64)='RV ' LESOBL(65)='EPSE' C= 3.2.3 - Cas des CONTRAINTES PLANES ou des DEFORMATIONS PLANES ou C= des DEFORMATIONS PLANES GENERALISEES ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN NBROBL=65 SEGINI,NOMID LESOBL( 1)='X1N1' LESOBL( 2)='X1N2' LESOBL( 3)='X1N3' LESOBL( 4)='X1M1' LESOBL( 5)='X1M2' LESOBL( 6)='X1M3' LESOBL( 7)='X2N1' LESOBL( 8)='X2N2' LESOBL( 9)='X2N3' LESOBL(10)='X2M1' LESOBL(11)='X2M2' LESOBL(12)='X2M3' LESOBL(13)='A1N1' LESOBL(14)='A1N2' LESOBL(15)='A1N3' LESOBL(16)='A1M1' LESOBL(17)='A1M2' LESOBL(18)='A1M3' LESOBL(19)='A2N1' LESOBL(20)='A2N2' LESOBL(21)='A2N3' LESOBL(22)='A2M1' LESOBL(23)='A2M2' LESOBL(24)='A2M3' LESOBL(25)='EPN1' LESOBL(26)='EPN2' LESOBL(27)='EPN3' LESOBL(28)='EPM1' LESOBL(29)='EPM2' LESOBL(30)='EPM3' LESOBL(31)='Y1N1' LESOBL(32)='Y1N2' LESOBL(33)='Y1N3' LESOBL(34)='Y1M1' LESOBL(35)='Y1M2' LESOBL(36)='Y1M3' LESOBL(37)='Y2N1' LESOBL(38)='Y2N2' LESOBL(39)='Y2N3' LESOBL(40)='Y2M1' LESOBL(41)='Y2M2' LESOBL(42)='Y2M3' LESOBL(43)='B1N1' LESOBL(44)='B1N2' LESOBL(45)='B1N3' LESOBL(46)='B1M1' LESOBL(47)='B1M2' LESOBL(48)='B1M3' LESOBL(49)='B2N1' LESOBL(50)='B2N2' LESOBL(51)='B2N3' LESOBL(52)='B2M1' LESOBL(53)='B2M2' LESOBL(54)='B2M3' LESOBL(55)='EVN1' LESOBL(56)='EVN2' LESOBL(57)='EVN3' LESOBL(58)='EVM1' LESOBL(59)='EVM2' LESOBL(60)='EVM3' LESOBL(61)='VIPW' LESOBL(62)='RP ' LESOBL(63)='V ' LESOBL(64)='RV ' LESOBL(65)='EPSE' ENDIF ELSE C= 3.2.4 - Cas des COQUES INTEGREES en TRIDIMENSIONNEL IF (IFOUR.EQ.2) THEN NBROBL=45 SEGINI,NOMID LESOBL( 1)='X1SS' LESOBL( 2)='X1TT' LESOBL( 3)='X1NN' LESOBL( 4)='X1ST' LESOBL( 5)='X2SS' LESOBL( 6)='X2TT' LESOBL( 7)='X2NN' LESOBL( 8)='X2ST' LESOBL( 9)='A1SS' LESOBL(10)='A1TT' LESOBL(11)='A1NN' LESOBL(12)='A1ST' LESOBL(13)='A2SS' LESOBL(14)='A2TT' LESOBL(15)='A2NN' LESOBL(16)='A2ST' LESOBL(17)='VISS' LESOBL(18)='VITT' LESOBL(19)='VINN' LESOBL(20)='VIST' LESOBL(21)='Y1SS' LESOBL(22)='Y1TT' LESOBL(23)='Y1NN' LESOBL(24)='Y1ST' LESOBL(25)='Y2SS' LESOBL(26)='Y2TT' LESOBL(27)='Y2NN' LESOBL(28)='Y2ST' LESOBL(29)='B1SS' LESOBL(30)='B1TT' LESOBL(31)='B1NN' LESOBL(32)='B1ST' LESOBL(33)='B2SS' LESOBL(34)='B2TT' LESOBL(35)='B2NN' LESOBL(36)='B2ST' LESOBL(37)='EVSS' LESOBL(38)='EVTT' LESOBL(39)='EVNN' LESOBL(40)='EVST' LESOBL(41)='VIPW ' LESOBL(42)='RP ' LESOBL(43)='V ' LESOBL(44)='RV ' LESOBL(45)='EPSE' ENDIF ENDIF C ===== C 3.3 - Element COQUE EPAISSE C ===== ELSE IF (MFR.EQ.5) THEN C= Mode de calcul TRIDIMENSIONNEL NBROBL=65 SEGINI,NOMID LESOBL( 1)='X1SS' LESOBL( 2)='X1TT' LESOBL( 3)='X1NN' LESOBL( 4)='X1ST' LESOBL( 5)='X1SN' LESOBL( 6)='X1TN' LESOBL( 7)='X2SS' LESOBL( 8)='X2TT' LESOBL( 9)='X2NN' LESOBL(10)='X2ST' LESOBL(11)='X2SN' LESOBL(12)='X2TN' LESOBL(13)='A1SS' LESOBL(14)='A1TT' LESOBL(15)='A1NN' LESOBL(16)='A1ST' LESOBL(17)='A1SN' LESOBL(18)='A1TN' LESOBL(19)='A2SS' LESOBL(20)='A2TT' LESOBL(21)='A2NN' LESOBL(22)='A2ST' LESOBL(23)='A2SN' LESOBL(24)='A2TN' LESOBL(25)='VISS' LESOBL(26)='VITT' LESOBL(27)='VINN' LESOBL(28)='VIST' LESOBL(29)='VISN' LESOBL(30)='VITN' LESOBL(31)='Y1SS' LESOBL(32)='Y1TT' LESOBL(33)='Y1NN' LESOBL(34)='Y1ST' LESOBL(35)='Y1SN' LESOBL(36)='Y1TN' LESOBL(37)='Y2SS' LESOBL(38)='Y2TT' LESOBL(39)='Y2NN' LESOBL(40)='Y2ST' LESOBL(41)='Y2SN' LESOBL(42)='Y2TN' LESOBL(43)='B1SS' LESOBL(44)='B1TT' LESOBL(45)='B1NN' LESOBL(46)='B1ST' LESOBL(47)='B1SN' LESOBL(48)='B1TN' LESOBL(49)='B2SS' LESOBL(50)='B2TT' LESOBL(51)='B2NN' LESOBL(52)='B2ST' LESOBL(53)='B2SN' LESOBL(54)='B2TN' LESOBL(55)='EVSS' LESOBL(56)='EVTT' LESOBL(57)='EVNN' LESOBL(58)='EVST' LESOBL(59)='EVSN' LESOBL(60)='EVTN' LESOBL(61)='VIPW' LESOBL(62)='RP ' LESOBL(63)='V ' LESOBL(64)='RV ' LESOBL(65)='EPSE' ENDIF C 4 - Modele ELASTO-VISCOPLASTIQUE DE KOCKS C =========================================== ELSE IF (MATEPL.EQ.70) THEN C= Formulation MASSIF : C= Modele non disponible en PLAN CONT et en FOURIER IF (MFR.EQ.1.AND.(IFOUR.NE.-2.AND.IFOUR.NE.1)) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='EPSE' LESOBL(2)='S ' ENDIF C 5 - Modele MISTRAL C ==================== ELSE IF (MATEPL.EQ.94) THEN C ===== C 5.1 - Elements MASSIFs (seule formulation disponible actuellement) C ===== C= Note : Les indices finaux 1, 2, 3, 4, 5, 6 C= correspondent respectivement aux composantes : C= 11, 22, 33, 12, 13, 23 IF (MFR.EQ.1.OR.MFR.EQ.31) THEN IF (IFOUR.NE.1) THEN NBROBL=101 SEGINI,NOMID LESOBL( 1)='ETH1' LESOBL( 2)='ETH2' LESOBL( 3)='ETH3' LESOBL( 4)='ETH4' LESOBL( 5)='ETH5' LESOBL( 6)='ETH6' LESOBL( 7)='EEL1' LESOBL( 8)='EEL2' LESOBL( 9)='EEL3' LESOBL(10)='EEL4' LESOBL(11)='EEL5' LESOBL(12)='EEL6' LESOBL(13)='EP01' LESOBL(14)='EP02' LESOBL(15)='EP03' LESOBL(16)='EP04' LESOBL(17)='EP05' LESOBL(18)='EP06' LESOBL(19)='EP11' LESOBL(20)='EP12' LESOBL(21)='EP13' LESOBL(22)='EP14' LESOBL(23)='EP15' LESOBL(24)='EP16' LESOBL(25)='EP21' LESOBL(26)='EP22' LESOBL(27)='EP23' LESOBL(28)='EP24' LESOBL(29)='EP25' LESOBL(30)='EP26' LESOBL(31)='EP31' LESOBL(32)='EP32' LESOBL(33)='EP33' LESOBL(34)='EP34' LESOBL(35)='EP35' LESOBL(36)='EP36' LESOBL(37)='EP41' LESOBL(38)='EP42' LESOBL(39)='EP43' LESOBL(40)='EP44' LESOBL(41)='EP45' LESOBL(42)='EP46' LESOBL(43)='ECR1' LESOBL(44)='ECR2' LESOBL(45)='ECR3' LESOBL(46)='ECR4' LESOBL(47)='ECR5' LESOBL(48)='ECR6' LESOBL(49)='EP0E' LESOBL(50)='EP1E' LESOBL(51)='EP2E' LESOBL(52)='EP3E' LESOBL(53)='EP4E' LESOBL(54)='EP0Q' LESOBL(55)='EP1Q' LESOBL(56)='EP2Q' LESOBL(57)='EP3Q' LESOBL(58)='EP4Q' LESOBL(59)='X11 ' LESOBL(60)='X12 ' LESOBL(61)='X13 ' LESOBL(62)='X14 ' LESOBL(63)='X15 ' LESOBL(64)='X16 ' LESOBL(65)='X21 ' LESOBL(66)='X22 ' LESOBL(67)='X23 ' LESOBL(68)='X24 ' LESOBL(69)='X25 ' LESOBL(70)='X26 ' LESOBL(71)='X31 ' LESOBL(72)='X32 ' LESOBL(73)='X33 ' LESOBL(74)='X34 ' LESOBL(75)='X35 ' LESOBL(76)='X36 ' LESOBL(77)='FIT ' LESOBL(78)='PSI ' LESOBL(79)='DTA ' LESOBL(80)='SEA0' LESOBL(81)='RRA0' LESOBL(82)='VEA0' LESOBL(83)='KPLA' LESOBL(84)='EPSE' LESOBL(85)='VET1' LESOBL(86)='VET2' LESOBL(87)='VET3' LESOBL(88)='VET4' LESOBL(89)='VET5' LESOBL(90)='VET6' LESOBL(91)='VEI1' LESOBL(92)='VEI2' LESOBL(93)='VEI3' LESOBL(94)='VEI4' LESOBL(95)='VEI5' LESOBL(96)='VEI6' LESOBL(97)='VP0E' LESOBL(98)='VP1E' LESOBL(99)='VP2E' LESOBL(100)='VP3E' LESOBL(101)='VP4E' ENDIF ENDIF C 6 - Modele de GATT_MONERIE C ============================ C= Modele disponible uniquement en formulation MASSIF ELSE IF (MATEPL.EQ.107) THEN IF (MFR.EQ.1.OR.MFR.EQ.31) THEN IF (IFOUR.NE.1) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='EPSE' LESOBL(2)='PORO' LESOBL(3)='BU ' LESOBL(4)='TETA' LESOBL(5)='EPSD' LESOBL(6)='EPSG' ENDIF ENDIF C 7 - Modele UO2 (= OTTOSEN + GATT_MONERIE) C =========================================== ELSE IF (MATEPL.EQ.108) THEN C ===== C 7.1 - Elements MASSIFs C ===== IF (MFR.EQ.1.OR.MFR.EQ.31) THEN C= 7.1.1 - Cas TRIDIMENSIONNEL IF (IFOUR.EQ.2) THEN NBROBL=30 SEGINI,NOMID LESOBL( 1)='EPSE' LESOBL( 2)='W1MA' LESOBL( 3)='W2MA' LESOBL( 4)='W3MA' LESOBL( 5)='W1 ' LESOBL( 6)='W2 ' LESOBL( 7)='W3 ' LESOBL( 8)='VF1X' LESOBL( 9)='VF1Y' LESOBL(10)='VF1Z' LESOBL(11)='VF2X' LESOBL(12)='VF2Y' LESOBL(13)='VF2Z' LESOBL(14)='VF3X' LESOBL(15)='VF3Y' LESOBL(16)='VF3Z' LESOBL(17)='IVL1' LESOBL(18)='IVL2' LESOBL(19)='IVL3' LESOBL(20)='PREC' LESOBL(21)='EVXX' LESOBL(22)='EVYY' LESOBL(23)='EVZZ' LESOBL(24)='GVXY' LESOBL(25)='GVXZ' LESOBL(26)='GVYZ' LESOBL(27)='PORO' LESOBL(28)='BU ' LESOBL(29)='EPSF' LESOBL(30)='TETA' C= 7.1.2 - Cas AXISYMETRIQUE ELSE IF (IFOUR.EQ.0) THEN NBROBL=23 SEGINI,NOMID LESOBL( 1)='EPSE' LESOBL( 2)='W1MA' LESOBL( 3)='W2MA' LESOBL( 4)='EPSM' LESOBL( 5)='W1 ' LESOBL( 6)='W2 ' LESOBL( 7)='VEPS' LESOBL( 8)='VF1X' LESOBL( 9)='VF1Y' LESOBL(10)='VF2X' LESOBL(11)='VF2Y' LESOBL(12)='IVL1' LESOBL(13)='IVL2' LESOBL(14)='IVL3' LESOBL(15)='PREC' LESOBL(16)='EVRR' LESOBL(17)='EVZZ' LESOBL(18)='EVTT' LESOBL(19)='GVRZ' LESOBL(20)='PORO' LESOBL(21)='BU ' LESOBL(22)='EPSF' LESOBL(23)='TETA' C= 7.1.3 - Cas des series de FOURIER ELSE IF (IFOUR.EQ.1) THEN NBROBL=25 SEGINI NOMID LESOBL( 1)='EPSE' LESOBL( 2)='W1MA' LESOBL( 3)='W2MA' LESOBL( 4)='EPSM' LESOBL( 5)='W1 ' LESOBL( 6)='W2 ' LESOBL( 7)='VEPS' LESOBL( 8)='VF1X' LESOBL( 9)='VF1Y' LESOBL(10)='VF2X' LESOBL(11)='VF2Y' LESOBL(12)='IVL1' LESOBL(13)='IVL2' LESOBL(14)='IVL3' LESOBL(15)='PREC' LESOBL(16)='EVRR' LESOBL(17)='EVZZ' LESOBL(18)='EVTT' LESOBL(19)='GVRZ' LESOBL(20)='GVRT' LESOBL(21)='GVZT' LESOBL(22)='PORO' LESOBL(23)='BU ' LESOBL(24)='EPSF' LESOBL(25)='TETA' C= 7.1.4 - Cas DEFOrmations PLANES (GENEralisees ou non) ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN NBROBL=23 SEGINI NOMID LESOBL( 1)='EPSE' LESOBL( 2)='W1MA' LESOBL( 3)='W2MA' LESOBL( 4)='EPSM' LESOBL( 5)='W1 ' LESOBL( 6)='W2 ' LESOBL( 7)='VEPS' LESOBL( 8)='VF1X' LESOBL( 9)='VF1Y' LESOBL(10)='VF2X' LESOBL(11)='VF2Y' LESOBL(12)='IVL1' LESOBL(13)='IVL2' LESOBL(14)='IVL3' LESOBL(15)='PREC' LESOBL(16)='EVXX' LESOBL(17)='EVYY' LESOBL(18)='EVZZ' LESOBL(19)='GVXY' LESOBL(20)='PORO' LESOBL(21)='BU ' LESOBL(22)='EPSF' LESOBL(23)='TETA' C= 7.1.5 - Cas CONTraintes PLANes ELSE IF (IFOUR.EQ.-2) THEN NBROBL=20 SEGINI,NOMID LESOBL( 1)='EPSE' LESOBL( 2)='W1MA' LESOBL( 3)='W2MA' LESOBL( 4)='W1 ' LESOBL( 5)='W2 ' LESOBL( 6)='VF1X' LESOBL( 7)='VF1Y' LESOBL( 8)='VF2X' LESOBL( 9)='VF2Y' LESOBL(10)='IVL1' LESOBL(11)='IVL2' LESOBL(12)='PREC' LESOBL(13)='EVXX' LESOBL(14)='EVYY' LESOBL(15)='EVZZ' LESOBL(16)='GVXY' LESOBL(17)='PORO' LESOBL(18)='BU ' LESOBL(19)='EPSF' LESOBL(20)='TETA' C= 7.1.6 - Modes de calcul UNIDIMENSIONNELs (1D) PLAN ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.11) THEN C* NBROBL= C* SEGINI,NOMID C* LESOBL( 1)='EPSE' C* LESOBL( 2)='W1MA' C* LESOBL( 3)='W2MA' C* LESOBL( 4)='W1 ' C* LESOBL( 5)='W2 ' C* LESOBL( 6)='VF1X' C* LESOBL( 7)='VF1Y' C* LESOBL( 8)='VF2X' C* LESOBL( 9)='VF2Y' C* LESOBL(10)='IVL1' C* LESOBL(11)='IVL2' C* LESOBL(12)='PREC' C* LESOBL(13)='EVXX' C* LESOBL(14)='EVYY' C* LESOBL(15)='EVZZ' C* LESOBL(16)='PORO' C* LESOBL(17)='BU ' C* LESOBL(18)='EPSF' C* LESOBL(19)='TETA' C= 7.1.7 - Modes de calcul UNIDIMENSIONNELs (1D) AXIS et SPHE ELSE IF (IFOUR.GE.12.AND.IFOUR.LE.15) THEN C* NBROBL= C* SEGINI,NOMID C* LESOBL( 1)='EPSE' C* LESOBL( 2)='W1MA' C* LESOBL( 3)='W2MA' C* LESOBL( 4)='W1 ' C* LESOBL( 5)='W2 ' C* LESOBL( 6)='VF1X' C* LESOBL( 7)='VF1Y' C* LESOBL( 8)='VF2X' C* LESOBL( 9)='VF2Y' C* LESOBL(10)='IVL1' C* LESOBL(11)='IVL2' C* LESOBL(12)='PREC' C* LESOBL(13)='EVRR' C* LESOBL(14)='EVZZ' C* LESOBL(15)='EVTT' C* LESOBL(16)='PORO' C* LESOBL(17)='BU ' C* LESOBL(18)='EPSF' C* LESOBL(19)='TETA' ENDIF C ===== C 7.2 - Elements COQUEs MINCEs C ===== ELSE IF (MFR.EQ.3) THEN C= 7.2.1 - Mode de calcul TRIDIMENSIONNEL IF (IFOUR.EQ.2) THEN NBROBL=22 SEGINI,NOMID LESOBL( 1)='EPSE' LESOBL( 2)='W1MA' LESOBL( 3)='W2MA' LESOBL( 4)='W1 ' LESOBL( 5)='W2 ' LESOBL( 6)='VF1X' LESOBL( 7)='VF1Y' LESOBL( 8)='VF2X' LESOBL( 9)='VF2Y' LESOBL(10)='IVL1' LESOBL(11)='IVL2' LESOBL(12)='PREC' LESOBL(13)='EVSS' LESOBL(14)='EVTT' LESOBL(15)='GVST' LESOBL(16)='RVSS' LESOBL(17)='RVTT' LESOBL(18)='RVST' LESOBL(19)='PORO' LESOBL(20)='BU ' LESOBL(21)='EPSF' LESOBL(22)='TETA' ENDIF C ===== C 7.3 - Elements COQUEs en CISAILLEMENT TRANSVERSE$ C ===== ELSE IF (MFR.EQ.9) THEN C= 7.3.1 - Mode de calcul TRIDIMENSIONNEL IF (IFOUR.EQ.2) THEN NBROBL=24 SEGINI,NOMID LESOBL( 1)='EPSE' LESOBL( 2)='W1MA' LESOBL( 3)='W2MA' LESOBL( 4)='W1 ' LESOBL( 5)='W2 ' LESOBL( 6)='VF1X' LESOBL( 7)='VF1Y' LESOBL( 8)='VF2X' LESOBL( 9)='VF2Y' LESOBL(10)='IVL1' LESOBL(11)='IVL2' LESOBL(12)='PREC' LESOBL(13)='EVSS' LESOBL(14)='EVTT' LESOBL(15)='GVST' LESOBL(16)='RVSS' LESOBL(17)='RVTT' LESOBL(18)='RVST' LESOBL(19)='GVSN' LESOBL(20)='GVTN' LESOBL(21)='PORO' LESOBL(22)='BU ' LESOBL(23)='EPSF' LESOBL(24)='TETA' ENDIF ENDIF C 8 - Modele visqueux avec double endommagement C ============================ C= Modele disponible uniquement en formulation MASSIF ELSE IF (MATEPL.EQ.130) THEN IF (MFR.EQ.1.OR.MFR.EQ.31) THEN IF (IFOUR.EQ.0) THEN NBROBL=4 SEGINI NOMID LESOBL(1)='R' LESOBL(2)='EPSE' LESOBL(3)='DD' LESOBL(4)='DC' IPCOMP=NOMID SEGDES NOMID ELSE IF (IFOUR.EQ.2) THEN NBROBL=4 SEGINI NOMID LESOBL(1)='R' LESOBL(2)='EPSE' LESOBL(3)='DD' LESOBL(4)='DC' IPCOMP=NOMID SEGDES NOMID ENDIF ENDIF C 9 - Modele visqueux CHAB_SINH_R et CHAB_NOR_R C ============================================== C= Modele disponible uniquement en formulation MASSIF ELSE IF (MATEPL.EQ.136.OR.MATEPL.EQ.138) THEN IF (MFR.EQ.1.OR.MFR.EQ.31) THEN C--------AXIS IF (IFOUR.EQ.0) THEN NBROBL=2 SEGINI NOMID LESOBL(1)='R' LESOBL(2)='EPSE' IPCOMP=NOMID SEGDES NOMID C--------3D ELSE IF (IFOUR.EQ.2) THEN NBROBL=2 SEGINI NOMID LESOBL(1)='R' LESOBL(2)='EPSE' IPCOMP=NOMID SEGDES NOMID ENDIF ENDIF C 9 - Modele visqueux CHAB_SINH_X et CHAB_NOR_X C ============================================== C= Modele disponible uniquement en formulation MASSIF ELSE IF (MATEPL.EQ.137.OR.MATEPL.EQ.139) THEN IF (MFR.EQ.1.OR.MFR.EQ.31) THEN C--------AXIS IF (IFOUR.EQ.0) THEN NBROBL=10 SEGINI NOMID LESOBL( 1)='A1RR' LESOBL( 2)='A1ZZ' LESOBL( 3)='A1TT' LESOBL( 4)='A1RZ' LESOBL( 5)='A2RR' LESOBL( 6)='A2ZZ' LESOBL( 7)='A2TT' LESOBL( 8)='A2RZ' LESOBL(9)='r' LESOBL(10)='EPSE' IPCOMP=NOMID SEGDES NOMID C--------3D ELSE IF (IFOUR.EQ.2) THEN C write(6,*) 'on est en 3D',IFOUR NBROBL=14 SEGINI NOMID LESOBL( 1)='A1XX' LESOBL( 2)='A1YY' LESOBL( 3)='A1ZZ' LESOBL( 4)='A1XY' LESOBL( 5)='A1YZ' LESOBL( 6)='A1ZX' LESOBL( 7)='A2XX' LESOBL( 8)='A2YY' LESOBL( 9)='A2ZZ' LESOBL(10)='A2XY' LESOBL(11)='A2YZ' LESOBL(12)='A2ZX' LESOBL(13)='r' LESOBL(14)='EPSE' IPCOMP=NOMID SEGDES NOMID ENDIF ENDIF C 10 - Modeles de SYMONDS et COWPER (SYCO1 et SYCO2) C =================================== ELSE IF (MATEPL.EQ.153.OR.MATEPL.EQ.154) THEN C element massif ou xfem IF (MFR.EQ.1.OR.MFR.EQ.63) THEN C Cas des CONTRAINTES PLANES ou des DEFORMATIONS PLANES ou C= tridimensionnel IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.2) THEN NBROBL=2 SEGINI,NOMID LESOBL( 1)='EPSE' LESOBL( 2)='VP' ENDIF ENDIF C 11 - Modele de CHABOCHE C =================================== ELSE IF (MATEPL.EQ.165) THEN C ===== C Uniquement elements MASSIFs (incompressibles ou poreux) C ===== IF (MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33) THEN C= 11.1 - Cas des CONTRAINTES PLANES ou des DEFORMATIONS PLANES ou C= des DEFORMATIONS PLANES GENERALISEES IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='AXX ' LESOBL(2)='AYY ' LESOBL(3)='AZZ ' LESOBL(4)='AXY ' LESOBL(5)='EPSE' LESOBL(6)='QQ ' C= 11.2 - Cas AXISYMETRIQUE ELSE IF (IFOUR.EQ.0) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='ARR ' LESOBL(2)='AZZ ' LESOBL(3)='ATT ' LESOBL(4)='ARZ ' LESOBL(5)='EPSE' LESOBL(6)='QQ ' C= 11.3 - Cas des series de FOURIER ELSE IF (IFOUR.EQ.1) THEN NBROBL=8 SEGINI,NOMID LESOBL(1)='ARR ' LESOBL(2)='AZZ ' LESOBL(3)='ATT ' LESOBL(4)='ARZ ' LESOBL(5)='ART ' LESOBL(6)='AZT ' LESOBL(7)='EPSE' LESOBL(8)='QQ ' C= 11.4 - Cas TRIDIMENSIONNEL ELSE IF (IFOUR.EQ.2) THEN NBROBL=8 SEGINI,NOMID LESOBL(1)='AXX ' LESOBL(2)='AYY ' LESOBL(3)='AZZ ' LESOBL(4)='AXY ' LESOBL(5)='AXZ ' LESOBL(6)='AYZ ' LESOBL(7)='EPSE' LESOBL(8)='QQ ' C= 1.1.5 - Modes de calcul UNIDIMENSIONNELS (1D) PLAN ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.11) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='AXX ' LESOBL(2)='AYY ' LESOBL(3)='AZZ ' LESOBL(4)='EPSE' LESOBL(5)='QQ ' C= 1.1.6 - Modes de calcul UNIDIMENSIONNELS (1D) AXIS et SPHE ELSE IF (IFOUR.GE.12.AND.IFOUR.LE.15) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='ARR ' LESOBL(2)='AZZ ' LESOBL(3)='ATT ' LESOBL(4)='EPSE' LESOBL(5)='QQ ' ENDIF ENDIF C 31 Modeles FLUENDO3D (A.SELLIER et al.) C ======================================== ELSE IF (MATEPL.EQ.187 ) THEN C modeles FLUENDO3D IF (MFR.EQ.1 .OR. MFR.EQ.33) THEN C Elements MASSIF MECA ou MASSIF POREUX uniquement IF (IFOUR.EQ.2 .or. IFOUR.EQ.-1 .or.IFOUR.EQ.0) THEN C Cas TRIDIMENSIONNEL, DEFORMATIONS PLANES ou AXISYMETRIQUES c cf.COML7 pour l initialisation des conditions intiales c nombre de variables internes pour le comportement fluendo3d c nombre total de variables internes NBROBL=NB_VARI_FLUENDO3D+NB_VARI_SUPP_FLUENDO3D NBROBL=NBROBL+NB_VARI_RENF+NB_VARI_HELM c print*,'DS IDVAR4 POUR FLUENDO3D NBROBL=',NBROBL SEGINI,NOMID c variables internes pour fluendo3d c indicateur premier pas (1 si premier pas passé sinon 0) LESOBL(1)='PPAS' c deformations elastiques LESOBL(2)='EPE1' LESOBL(3)='EPE2' LESOBL(4)='EPE3' LESOBL(5)='EPE4' LESOBL(6)='EPE5' LESOBL(7)='EPE6' c deformation de l etage de Kelvin LESOBL(8)='EPK1' LESOBL(9)='EPK2' LESOBL(10)='EPK3' LESOBL(11)='EPK4' LESOBL(12)='EPK5' LESOBL(13)='EPK6' c deformations de l etage de Maxwell LESOBL(14)='EPM1' LESOBL(15)='EPM2' LESOBL(16)='EPM3' LESOBL(17)='EPM4' LESOBL(18)='EPM5' LESOBL(19)='EPM6' c deformations plastiques de druker prager LESOBL(20)='EPC1' LESOBL(21)='EPC2' LESOBL(22)='EPC3' LESOBL(23)='EPC4' LESOBL(24)='EPC5' LESOBL(25)='EPC6' c deformation plastique de traction LESOBL(26)='EPT1' LESOBL(27)='EPT2' LESOBL(28)='EPT3' LESOBL(29)='EPT4' LESOBL(30)='EPT5' LESOBL(31)='EPT6' c deformation visqueuse transitoire non consolidante LESOBL(32)='EVT1' LESOBL(33)='EVT2' LESOBL(34)='EVT3' LESOBL(35)='EVT4' LESOBL(36)='EVT5' LESOBL(37)='EVT6' c deformation plastique fissuration gel LESOBL(38)='EPG1' LESOBL(39)='EPG2' LESOBL(40)='EPG3' LESOBL(41)='EPG4' LESOBL(42)='EPG5' LESOBL(43)='EPG6' c deformation plastique def LESOBL(44)='EPS1' LESOBL(45)='EPS2' LESOBL(46)='EPS3' LESOBL(47)='EPS4' LESOBL(48)='EPS5' LESOBL(49)='EPS6' c contraintes effective squelette solide LESOBL(50)='SIG1' LESOBL(51)='SIG2' LESOBL(52)='SIG3' LESOBL(53)='SIG4' LESOBL(54)='SIG5' LESOBL(55)='SIG6' c contraintes effectives elastiques de l etage de Kelvin LESOBL(56)='SKE1' LESOBL(57)='SKE2' LESOBL(58)='SKE3' LESOBL(59)='SKE4' LESOBL(60)='SKE5' LESOBL(61)='SKE6' c contraintes totales dans la matrice endommagee LESOBL(62)='SIM1' LESOBL(63)='SIM2' LESOBL(64)='SIM3' LESOBL(65)='SIM4' LESOBL(66)='SIM5' LESOBL(67)='SIM6' c hydratation finale LESOBL(68)='HYDF' c volume d eau final LESOBL(69)='VWAT' c porosite finale LESOBL(70)='VPOR' c variable non locale weibull par methode wl2 LESOBL(71)='XWL2' c taux de chargement de traction pour weibull LESOBL(72)='TWL2' c xwl2 maxi pour calcul du smax non local ds wl2 LESOBL(73)='MXWL' c maximum du taux de chargement pour methode wl2 LESOBL(74)='MTWL' c endommagement localise de traction debut de pas LESOBL(75)='DTMX' c coeff d effet d echelle de Weibull sur RTP macro LESOBL(76)='CWRT' c endommagement thermique isotrope LESOBL(77)='DTHE' c endomagement par fluage LESOBL(78)='DFLU' c endommagement de traction diffus pre pic LESOBL(79)='DTPP' c biot eau LESOBL(80)='BWAT' c pression eau LESOBL(81)='PWAT' c biot gel LESOBL(82)='BGEL' c pression rag LESOBL(83)='PGEL' c biot eau LESOBL(84)='BAFT' c pression def LESOBL(85)='PAFT' c avancement gel LESOBL(86)='AGEL' c epseces chimiques pour AFT LESOBL(87)='AFT1' LESOBL(88)='AFM1' LESOBL(89)='ATIL' LESOBL(90)='STIL' LESOBL(91)='AFT2' c avancement et volume AFT LESOBL(92)='ADEF' LESOBL(93)='VAFT' c deformation plastique equivalente de cisaillement LESOBL(94)='EPLC' c endo global de traction LESOBL(95)='DTRA' c endo global de compression LESOBL(96)='DCOM' c ouvertures plastiques de fissures actuelles de traction LESOBL(97)='WPL1' LESOBL(98)='WPL2' LESOBL(99)='WPL3' LESOBL(100)='WPL4' LESOBL(101)='WPL5' LESOBL(102)='WPL6' c ouvertures plastiques maxi de fissures actuelles de traction LESOBL(103)='WPX1' LESOBL(104)='WPX2' LESOBL(105)='WPX3' LESOBL(106)='WPX4' LESOBL(107)='WPX5' LESOBL(108)='WPX6' c ouverture plastique maxi actuelle LESOBL(109)='WPL0' c controle de l erreur sur Gf LESOBL(110)='ERGF' c endommagements maxi de traction LESOBL(111)='DTM0' LESOBL(112)='DTW0' LESOBL(113)='DTG0' LESOBL(114)='DTS0' c endommagements maxi de compression LESOBL(115)='DCM0' LESOBL(116)='DCW0' LESOBL(117)='DCG0' LESOBL(118)='DCS0' c endommagement localise de traction LESOBL(119)='DTL0' c eau pour la DTT LESOBL(120)='WCSH' c pression dans les CSH LESOBL(121)='PCSH' c endo pre pic de compression LESOBL(122)='DCPP' c increment de deformation de Kelvin LESOBL(123)='DEK1' LESOBL(124)='DEK2' LESOBL(125)='DEK3' LESOBL(126)='DEK4' LESOBL(127)='DEK5' LESOBL(128)='DEK6' c coeff d amplification par DTT LESOBL(129)='CDTT' c taux de franchissement des criteres par les depressions capillaire LESOBL(130)='FSH1' LESOBL(131)='FSH2' LESOBL(132)='FSH3' LESOBL(133)='FSH4' LESOBL(134)='FSH5' LESOBL(135)='FSH6' c endo de couplage traction sur compression LESOBL(136)='DCT0' c taux de cisaillement de Drucker Prager LESOBL(137)='TAUD' c endommagement maxi post peak de compression par dilatance LESOBL(138)='DCC0' c pas de temps effectivement pris en compte dans le calcul LESOBL(139)='DTPS' c pression maxi de gel de rag LESOBL(140)='PGMX' c source de la deformation non locale LESOBL(141)='ENL1' LESOBL(142)='ENL2' LESOBL(143)='ENL3' LESOBL(144)='ENL4' LESOBL(145)='ENL5' LESOBL(146)='ENL6' c deformation non locale stockee LESOBL(147)='NLM1' LESOBL(148)='NLM2' LESOBL(149)='NLM3' LESOBL(150)='NLM4' LESOBL(151)='NLM5' LESOBL(152)='NLM6' c********rajouter ici les variables supplementaires ******************** c jusqu a NDEBUT NDEBUT=NB_VARI_FLUENDO3D+NB_VARI_SUPP_FLUENDO3D c debut variables internes fibres Romain Gontero LESOBL(NB_VARI_FLUENDO3D+1)='SFI1' LESOBL(NB_VARI_FLUENDO3D+2)='SFI2' LESOBL(NB_VARI_FLUENDO3D+3)='SFI3' LESOBL(NB_VARI_FLUENDO3D+4)='SFI4' LESOBL(NB_VARI_FLUENDO3D+5)='SFI5' LESOBL(NB_VARI_FLUENDO3D+6)='SFI6' LESOBL(NB_VARI_FLUENDO3D+7)='WMA1' LESOBL(NB_VARI_FLUENDO3D+8)='WMA2' LESOBL(NB_VARI_FLUENDO3D+9)='WMA3' LESOBL(NB_VARI_FLUENDO3D+10)='WMY1' LESOBL(NB_VARI_FLUENDO3D+11)='WMY2' LESOBL(NB_VARI_FLUENDO3D+12)='WMY3' LESOBL(NB_VARI_FLUENDO3D+13)='EW1' LESOBL(NB_VARI_FLUENDO3D+14)='EW2' LESOBL(NB_VARI_FLUENDO3D+15)='EW3' LESOBL(NB_VARI_FLUENDO3D+16)='NC1' LESOBL(NB_VARI_FLUENDO3D+17)='NC2' LESOBL(NB_VARI_FLUENDO3D+18)='NC3' LESOBL(NB_VARI_FLUENDO3D+19)='WPP1' LESOBL(NB_VARI_FLUENDO3D+20)='WPP2' LESOBL(NB_VARI_FLUENDO3D+21)='WPP3' LESOBL(NB_VARI_FLUENDO3D+22)='RIG1' LESOBL(NB_VARI_FLUENDO3D+23)='RIG2' LESOBL(NB_VARI_FLUENDO3D+24)='RIG3' LESOBL(NB_VARI_FLUENDO3D+25)='W0F1' LESOBL(NB_VARI_FLUENDO3D+26)='W0F2' LESOBL(NB_VARI_FLUENDO3D+27)='W0F3' LESOBL(NB_VARI_FLUENDO3D+28)='LOC1' LESOBL(NB_VARI_FLUENDO3D+29)='LOC2' LESOBL(NB_VARI_FLUENDO3D+30)='LOC3' LESOBL(NB_VARI_FLUENDO3D+31)='SFD1' LESOBL(NB_VARI_FLUENDO3D+32)='SFD2' LESOBL(NB_VARI_FLUENDO3D+33)='SFD3' LESOBL(NB_VARI_FLUENDO3D+34)='WPF1' LESOBL(NB_VARI_FLUENDO3D+35)='WPF2' LESOBL(NB_VARI_FLUENDO3D+36)='WPF3' LESOBL(NB_VARI_FLUENDO3D+37)='WLC1' LESOBL(NB_VARI_FLUENDO3D+38)='WLC2' LESOBL(NB_VARI_FLUENDO3D+39)='WLC3' LESOBL(NB_VARI_FLUENDO3D+40)='SMA1' LESOBL(NB_VARI_FLUENDO3D+41)='SMA2' LESOBL(NB_VARI_FLUENDO3D+42)='SMA3' LESOBL(NB_VARI_FLUENDO3D+43)='WMD1' LESOBL(NB_VARI_FLUENDO3D+44)='WMD2' LESOBL(NB_VARI_FLUENDO3D+45)='WMD3' LESOBL(NB_VARI_FLUENDO3D+46)='PHI1' LESOBL(NB_VARI_FLUENDO3D+47)='PHI2' LESOBL(NB_VARI_FLUENDO3D+48)='PHI3' LESOBL(NB_VARI_FLUENDO3D+49)='CVA1' LESOBL(NB_VARI_FLUENDO3D+50)='CVA2' LESOBL(NB_VARI_FLUENDO3D+51)='CVA3' LESOBL(NB_VARI_FLUENDO3D+52)='WPM1' LESOBL(NB_VARI_FLUENDO3D+53)='WPM2' LESOBL(NB_VARI_FLUENDO3D+54)='WPM3' c fin variables internes fibres romain c ***** variables pour les renforts ***************************** c lignes a copier dans les modeles utilisant Helmholtz (sellier) do i=1,NB_RENF c numero du renfort write (motren1,'(I1)') i c deformation totale motren3='ERT' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+1)=motren4 c defprmation elastique motren3='ERE' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+2)=motren4 c deformations axiale permanente dans les renforts motren3='ERP' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+3)=motren4 c contraintes axiale effective dans renfort motren3='SER' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+4)=motren4 c deformation visqueuse de Maxwell dans le renfort motren3='ERM' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+5)=motren4 c taux de chargement maxi du renfort motren3='MUR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+6)=motren4 c deformation de kelvin des renforts motren3='ERK' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+7)=motren4 c precontrainte imposee (pour detecter les variations imposees) motren3='SPR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+8)=motren4 c Cumul deformations plastiques de traction motren3='EFC' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+9)=motren4 c endommagement de traction du renfort motren3='DRT' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+10)=motren4 c endommagement de traction du renfort motren3='DR1' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+11)=motren4 c endommagement de traction du renfort motren3='DR2' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+12)=motren4 c longueur de l element fini dans la direction du renfort motren3='LER' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+13)=motren4 c contrainte endommagee motren3='SNR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+14)=motren4 c deformation plastique cumulee pour plasticite isotrope motren3='EQR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+15)=motren4 c endommagement de compression du renfort motren3='DRC' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+16)=motren4 c Cumul deformation plastiques de compression motren3='EFT' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+17)=motren4 c coeff de diffusion pour le glissement motren3='DFR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+18)=motren4 c contrainte de cisaillement (valable en non local) motren3='TOR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+19)=motren4 c endommagement de l interface (valable en non local) motren3='DIR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+20)=motren4 c module tangent du renfort motren3='ETR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+21)=motren4 c module secant de l interface motren3='HSR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+22)=motren4 c fonction de refermeture de fissure de renfort motren3='RFR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+23)=motren4 c deformation anelastique totale motren3='EAR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+24)=motren4 c deformation anelastique visqueuse motren3='EVR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+25)=motren4 c source non locale pour le glissement motren3='SHR' motren4=motren3//motren1 c print*,motren4 LESOBL(NDEBUT+(i-1)*NB_VARI_PAR_RENF+26)=motren4 end do NDEBUT=NDEBUT+NB_VARI_RENF c ***** fin des noms de variables pour les renforts ************ c ***** nom des variables pour Helmholtz *********************** c lignes a copier dans les modeles utilisant Helmholtz (sellier) c variables internes pour le non local par Helmholtz c write(*,'(A32,A31,1X,I2)') c # 'Dans IDVAR4 le nombre maximum de', c # 'formulations de Helmholtz est:', c # NB_HELM c write(*,'(A63,1X,I2)') c # 'Nombre de variables H par formulation de Helmholtz:', c # NB_VARI_PAR_HELM c generation des noms des variables internes pour Helmholtz do J=1,NB_HELM mothelm1='H' write (motnum1,'(I1)') J mothelm2=mothelm1//motnum1 C ATTENTION LES VARI SONT NUMEROTÉE DE 0 À NB_VARI_PAR_HELM-1 C la variable HJ0 est mobilisee automatiquement si INCj=1 (cf idmatr) do K=1,NB_VARI_PAR_HELM if (K.le.9) then write (motvec1,'(I1)') K mothelm3=mothelm2//motvec1 LESOBL(NDEBUT+(J-1)*NB_VARI_PAR_HELM+K)=mothelm3 c print*,mothelm3 else if (K.le.99) then write (motvec2,'(I2)') K mothelm4=mothelm2//motvec2 LESOBL(NDEBUT+(J-1)*NB_VARI_PAR_HELM+K)=mothelm4 c print*,mothelm4 else print*,'Trop de Vari(s) pour Helmholtz dans idvar4' end if end do end do c NDEBUT=NDEBUT+NB_VARI_HELM c * fin des noms des variables pour Helmholtz ****************** ELSE PRINT*,'FORMULATION IMPREVUE POUR FLUENDO3D' STOP END IF ELSE PRINT*,'ELEMENT IMPREVU POUR FLUENDO3D' STOP END IF C 32 Modele INCLUSION3D (A.SELLIER et al.) C ========================================== ELSE IF (MATEPL.EQ.188 ) THEN C modeles INCLUSION3D IF (MFR.EQ.1 .OR. MFR.EQ.33) THEN C Elements MASSIF MECA ou MASSIF POREUX uniquement IF (IFOUR.EQ.2 .or.IFOUR.EQ.-1 .or.IFOUR.EQ.0) THEN C Cas TRIDIMENSIONNEL, DEFORMATIONS PLANES ou AXISYMETRIQUES c -coml7 pour l initialisation des conditions intiales c nombre de variables de base du modele ************************* c nombre d inclusions maxi c nombre de variables de base du modele ************************* c nombre d inclusions maxi NBRINC3D=1 c PRINT*,'------------------------------------------------------' c PRINT*,'DANS IDVAR4 POUR INCLUSION3D' c WRITE(*,'(A31,I3)') ' NOMBRE MAXIMUM D INCLUSION(S):',NBRINC3D c *** nombre de variables globales ****************************** c A COPIER DANS CINC3D POUR DECLARER LES COPIES LOCALES DE c CES TABLES c *************************************************************** c nombre de variables globales isotropes NBVARISOG=1 c nombre de variable globales tensorielles NBVARTENG=2 c nombre total de variables globales***************************** NBVIND3D=NBVARISOG+6*NBVARTENG c cas des variables existantes pour toutes les phases *********** c nombre de variable isotropes NBVARISOPP=7 c nombre de variable tensorielle NBVARTENPP=8 c nombre de variables par phase commune a toutes les phases****** NBVPARP3D=NBVARISOPP+6*NBVARTENPP c sous total des varis globales et communes a toutes les pahses * NVTOT1=NBVIND3D+(NBRINC3D+1)*NBVPARP3D c nombre de variables suplementaires que pour les interfaces c isotrope NBVARISOPI=0 c nombre de variables tensorielles par interface NBVARTENPI=12 c nombre total de variables propres aux interfaces*************** NBVPARI3D=NBVARISOPI+6*NBVARTENPI c nombre de variables totales NBROBL=(NVTOT1+NBVPARI3D*NBRINC3D) c WRITE(*,'(A31,I3)') 'NOMBRE DE VARIABLES INTERNES:',NBROBL c print*,'NOM DES VARIABLES INTERNES' c PRINT*,'------------------------------------------------------' c initialisation du segment des noms des variables*************** SEGINI,NOMID c ***** variables globales inclusion3d ************************** c indicateur premier pas (1 si premier pas passé sinon 0) LESOBL(1)='PPAS' c ******* tenseurs globaux ************************************* c print*,1,LESOBL(1) do icomp3d=1,6 c contrainte effective moyenne motinc3='SEM' write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NBVARISOG+icomp3d LESOBL(nv3d)=motinc4 c print*,nv3d,motinc4 end do do icomp3d=1,6 c deformations plastiques localisées macroscopique motinc3='EPT' write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NBVARISOG+6+icomp3d LESOBL(nv3d)=motinc4 c print*,nv3d,motinc4 end do c ***** variables communes a toutes les phases ****************** do IPHASE3D=0,NBRINC3D c print*,'DS IDVAR4 DECLARATION PHASE:',iphase3d c avancement de la reaction chimique de gonflement motinc3='ACH' write (motinc1,'(I1)') iphase3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+1 LESOBL(nv3d)=motinc4 c print*,nv3d,motinc4 c volume neoforme total motinc3='VGT' write (motinc1,'(I1)') iphase3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+2 LESOBL(nv3d)=motinc4 c print*,nv3d,motinc4 c deformation thermique isotrope imposee motinc3='ETH' write (motinc1,'(I1)') iphase3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+3 LESOBL(nv3d)=motinc4 c print*,nv3d,motinc4 c contrainte effective hydrique (biot init phase * pw phase) motinc3='SEW' write (motinc1,'(I1)') iphase3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+4 LESOBL(nv3d)=motinc4 c print*,nv3d,motinc4 c deformation osmotique isotrope du solide lors du sechage motinc3='EPH' write (motinc1,'(I1)') iphase3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+5 LESOBL(nv3d)=motinc4 c print*,nv3d,motinc4 c volume de gel dans les fissures tel que sg=bg*pg*kg(vgt-vgf) motinc3='VGF' write (motinc1,'(I1)') iphase3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+6 LESOBL(nv3d)=motinc4 c print*,nv3d,motinc4 c contrainte poro meca due au gel sg=bg*pg*kg(vgt-vgf) motinc3='SEG' write (motinc1,'(I1)') iphase3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+7 LESOBL(nv3d)=motinc4 c print*,nv3d,motinc4 c ** contraintes effectives radiale dans la phase c (i=0 matrice infini, i>0 interieur de la phase) motinc2='RS' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+NBVARISOPP+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformation elastique (radiale ds inclusion si i>0 00 ds mat si 0) motinc2='RE' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do ICOMP3D=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+NBVARISOPP+6+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformation visqueuse de Maxwell (radiale ds l interface si i>0 00 dans mat si i=0) motinc2='RM' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+NBVARISOPP+12+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations visqueuse de Kelvin (radiale dans l interface si i>0) motinc2='RK' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+NBVARISOPP+18+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations radiales de plasticite en traction c (decollement dans l inclusion si i>0) motinc2='RT' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+NBVARISOPP+24+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations radiales de plasticite en cisaillement c (decollement dans l inclusion si i>0) motinc2='RC' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+NBVARISOPP+30+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations radiales de plasticite localisee dans la phase(decollement) motinc2='RL' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+NBVARISOPP+36+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** contrainte totale moyenne dans la phase (mean stress) pour le critere de la deformation de decollement motinc2='TS' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NBVIND3D+IPHASE3D*NBVPARP3D+NBVARISOPP+42+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do end do c ***** fin des variables communes a toutes les phases ********** c ***** variables associées aux interfaces ********************** do iphase3d=1,NBRINC3D c print*,'DS IDVAR4 VARI INTERFACE DE LA PHASE ',iphase3d c ** contrainte radiale dans l interface motinc2='IS' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** contrainte orthoradiale moyennes dans l interface motinc2='OS' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+6+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformation elastique radiale dans l interface motinc2='IE' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+12+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations elastique orthoradiale dans l interface motinc2='OE' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+18+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations de Maxwell radiale dans l interface motinc2='IM' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+24+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations de Maxwell orthoradiale dans l interface motinc2='OM' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+30+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations de Kelvin radiale dans l interface motinc2='IK' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+36+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations de Kelvin orthoradiale dans l interface motinc2='OK' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+42+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations de plasticite radiale de traction dans l interface motinc2='IT' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+48+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations de plasticite orthoradiale de traction dans l interface motinc2='OT' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+54+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations de plasticite radiale de cisaillement dans l interface motinc2='IC' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+60+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do c ** deformations de plasticite orthoradiale de cisaillement dans l interface motinc2='OC' write (motinc1,'(I1)') iphase3d motinc3=motinc2//motinc1 do icomp3d=1,6 write (motinc1,'(I1)') icomp3d motinc4=motinc3//motinc1 nv3d=NVTOT1+(IPHASE3D-1)*NBVPARI3D+NBVARISOPI+66+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,LESOBL(nv3d) end do end do c fin des variables pour inclusion3d***************************** ELSE PRINT*,'FORMULATION IMPREVUE POUR INCLUSION3D' STOP END IF ELSE PRINT*,'ELEMENT IMPREVUE POUR INCLUSION3D' STOP END IF C 33 Modele ENDO3D (A.SELLIER et al.) C ========================================== ELSE IF (MATEPL.EQ.189 ) THEN C modeles INCLUSION3D IF (MFR.EQ.1 .OR. MFR.EQ.33) THEN C Elements MASSIF MECA ou MASSIF POREUX uniquement IF (IFOUR.EQ.2 .or.IFOUR.EQ.-1 .or.IFOUR.EQ.0) THEN C Cas TRIDIMENSIONNEL, DEFORMATIONS PLANES ou AXISYMETRIQUES c -coml7 pour l initialisation des conditions intiales c ** nombre de variables de base pour la matrice c nombre de variables scalaires NBVSCAL=15 c nombre de variables tensorielles en pseudo vecteur NBVTENS=7 c nombre de variable par pseudo vecteur (<=9) NBVPTENS=6 c nombre de variables locales pour la matrice NB_VARI_ENDO3D=NBVSCAL+NBVPTENS*NBVTENS c ** nombre de variables internes rajoutees pour option du modele c ce nombre doit etre le meme dans idvar4 NB_VARI_SUPP_ENDO3D=0 c ** nombre total de variables internes NBROBL=NB_VARI_ENDO3D+NB_VARI_SUPP_ENDO3D c print*,'DS IDVAR4 POUR ENDO3D NBROBL=',NBROBL SEGINI,NOMID c ** declaration des variables scalaires pour la matrice ******* c indicateur premier pas (1 si premier pas passé sinon 0) LESOBL(1)='PPAS' c Cdp actuel LESOBL(2)='CDP ' c print*,2,LESOBL(2) c pression de consolidation de CC LESOBL(3)='PC' c print*,3,LESOBL(3) c tension limite de CC LESOBL(4)='PT' c print*,4,LESOBL(4) c ouverture de fissure maxi actuelle LESOBL(5)= 'WPL0' c print*,5,LESOBL(5) c erreur sur la dissipation de traction pour ne pas avoir de snap back LESOBL(6)= 'ERGF' c print*,6,LESOBL(6) c endo prepic traction LESOBL(7)= 'DTPP' c print*,7,LESOBL(7) c endo prepic compression LESOBL(8)= 'DCPP' c print*,8,LESOBL(8) c deformation equivalente de cisaillement de DP LESOBL(9)= 'DPEQ' c print*,9,LESOBL(9) c endo maxi compression LESOBL(10)= 'DCOM' c print*,10,LESOBL(10) c deformation equivalente de cisaillement de DP LESOBL(11)= 'DTRA' c print*,11,LESOBL(11) c effet de la temperature sur les parametres de compression LESOBL(12)= 'RTHC' c print*,12,LESOBL(12) c effet de la temperature sur les parametres de traction LESOBL(13)= 'RTHT' c print*,13,LESOBL(13) c effet de la temperature sur les parametres d elasticite LESOBL(14)= 'RTHE' c print*,14,LESOBL(14) c temperature maximale atteinte LESOBL(15)= 'TMAX' c print*,15,LESOBL(15) c ** declaration des variables tensorielles pour la matrice ***** do ITENS=1,NBVTENS c branchement pour nom du pseudo vecteur goto (331,332,333,334,335,336,337) ITENS c 1 contrainte effective matrice 331 motinc3='SEM' goto 3330 c 2 deformations elastiques de la matrice 332 motinc3='EPE' goto 3330 c 3 deformations plastique de traction de la matrice 333 motinc3='EPT' goto 3330 c 4 deformations plastique de cisaillement de la matrice 334 motinc3='EPC' goto 3330 c 5 deformations plastique d effondrement de porosite de la matrice 335 motinc3='EPP' goto 3330 c 6 ouverture de fissure 336 motinc3='WPL' goto 3330 c 7 ouverture maxi 337 motinc3='WPX' goto 3330 c construction du pseudo vecteur 3330 continue do ICOMP3D=1,NBVPTENS write (motinc1,'(I1)') ICOMP3D motinc4=motinc3//motinc1 nv3d=NBVSCAL+(ITENS-1)*NBVPTENS+ICOMP3D LESOBL(nv3d)=motinc4 c print*,nv3d,motinc4 end do end do c fin des variables pour endo3d***************************** ELSE PRINT*,'FORMULATION IMPREVUE POUR ENDO3D' STOP END IF ELSE PRINT*,'ELEMENT IMPREVUE POUR ENDO3D' STOP END IF C 34 Modele FLUISO3D (A.SELLIER et al.) C ========================================== ELSE IF (MATEPL.EQ.190 ) THEN C modeles FLUISO3D IF (MFR.EQ.1 .OR. MFR.EQ.33) THEN C Elements MASSIF MECA ou MASSIF POREUX uniquement IF (IFOUR.EQ.2 .or.IFOUR.EQ.-1 .or.IFOUR.EQ.0) THEN C Cas TRIDIMENSIONNEL, DEFORMATIONS PLANES ou AXISYMETRIQUES c -coml7 pour l initialisation des conditions intiales c ** nombre de variables de base pour la matrice c nombre de variables locales pour la matrice c nombre de variables scalaire par sous type c numero du sous type 1 2 3 4 5 6 7 8 9 c ELA,MAX,FLU,KEL,TRA,DP,CC,RAG,RSI data (VNVARI_I(I,1),I=1,NSTYPEI) /9 ,0 ,2 ,0 ,3 ,2 ,3 ,5 ,5/, c nombre de variables tensorielles par sous type c numero du sous type 1 2 3 4 5 6 7 8 9 c ELA,MAX,FLU,KEL,TRA,DP,CC,RAG,RSI # (VNVARI_I(I,2),I=1,NSTYPEI) /1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1/ N3D=0 print*,'Structure VNVARI des vari pour FLUISO3D dans idvar4' do i=1,NSTYPEI N3D=N3D+(VNVARI_I(i,1)+VNVARI_I(i,2)*NDTENS) print*,i,VNVARI_I(i,1),VNVARI_I(i,2),NDTENS end do c ajout des vari Helmholtz N3D=N3D+NB_VARI_HELM NBROBL=N3D SEGINI,NOMID print*,'DS IDVAR4 POUR FLUISO3D NVARI=',NBROBL c ** declaration des variables scalaires pour la matrice ******* c indicateur premier pas (1 si premier pas passé sinon 0) NUM0=0 do itype=1,NSTYPEI if(itype.eq.1) then c sous type Hoocke et Communs c vari scalaires LESOBL(NUM0+1)='PPAS' LESOBL(NUM0+2)='VWCA' LESOBL(NUM0+3)='PWCA' LESOBL(NUM0+4)='BWCA' LESOBL(NUM0+5)='SWCA' LESOBL(NUM0+6)='DTHE' LESOBL(NUM0+7)='KELA' LESOBL(NUM0+8)='MELA' LESOBL(NUM0+9)='FINR' NUM0=NUM0+VNVARI_I(itype,1) c vari tensorielles motnum2='EL' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VE' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_I(itype,2)*NDTENS else if (itype.eq.2) then c sous type Maxwell consolidant c vari scalaires NUM0=NUM0+VNVARI_I(itype,1) c vari tensorielles motnum2='EM' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VM' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_I(itype,2)*NDTENS else if (itype.eq.3) then c sous type Maxwell Transitoire c vari scalaires LESOBL(NUM0+1)='PF' LESOBL(NUM0+2)='WF' NUM0=NUM0+VNVARI_I(itype,1) c vari tensorielles motnum2='EF' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VF' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_I(itype,2)*NDTENS else if (itype.eq.4) then c sous type Kelvin c vari scalaires NUM0=NUM0+VNVARI_I(itype,1) c vari tensorielles motnum2='EK' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VK' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_I(itype,2)*NDTENS else if (itype.eq.5) then c sous type Rankine (traction localisee) c vari scalaires LESOBL(NUM0+1)='FT1' LESOBL(NUM0+2)='FT2' LESOBL(NUM0+3)='FT3' NUM0=NUM0+VNVARI_I(itype,1) c vari tensorielles motnum2='ET' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VT' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_I(itype,2)*NDTENS else if (itype.eq.6) then c sous type Drucker Prager (cisaillement) c vari scalaires LESOBL(NUM0+1)='FC' LESOBL(NUM0+2)='ECEQ' NUM0=NUM0+VNVARI_I(itype,1) c vari tensorielles motnum2='EC' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VC' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_I(itype,2)*NDTENS else if (itype.eq.7) then c sous type Cam-Clay (consolidation des vides) c vari scalaires LESOBL(NUM0+1)='FCC' LESOBL(NUM0+2)='VCC' LESOBL(NUM0+3)='PCC' NUM0=NUM0+VNVARI_I(itype,1) c vari tensorielles motnum2='EV' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VV' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_I(itype,2)*NDTENS else if (itype.eq.8) then c sous type RAG c vari scalaires LESOBL(NUM0+1)='FR1' LESOBL(NUM0+2)='FR2' LESOBL(NUM0+3)='FR3' LESOBL(NUM0+4)='ARAG' LESOBL(NUM0+5)='PRAG' NUM0=NUM0+VNVARI_I(itype,1) c vari tensorielles motnum2='EG' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VG' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_I(itype,2)*NDTENS else if (itype.eq.9) then c sous type RAG c vari scalaires LESOBL(NUM0+1)='FS1' LESOBL(NUM0+2)='FS2' LESOBL(NUM0+3)='FS3' LESOBL(NUM0+4)='ARSI' LESOBL(NUM0+5)='PRSI' NUM0=NUM0+VNVARI_I(itype,1) c vari tensorielles motnum2='ES' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VS' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_I(itype,2)*NDTENS end if end do NDEBUT=NUM0 c ****** nom des variables pour Helmholtz *********************** c lignes a copier dans les modeles utilisant Helmholtz (sellier) c variables internes pour le non local par Helmholtz c write(*,'(A32,A31,1X,I2)') c # 'Dans IDVAR4 le nombre maximum de', c # 'formulations de Helmholtz est:', c # NB_HELM c write(*,'(A63,1X,I2)') c # 'Nombre de variables H par formulation de Helmholtz:', c # NB_VARI_PAR_HELM c generation des noms des variables internes pour Helmholtz do J=1,NB_HELM mothelm1='H' write (motnum1,'(I1)') J mothelm2=mothelm1//motnum1 C ATTENTION LES VARI SONT NUMEROTÉE DE 0 À NB_VARI_PAR_HELM-1 C la variable HJ0 est mobilisee automatiquement si INCj=1 (cf idmatr) do K=1,NB_VARI_PAR_HELM if (K.le.9) then write (motvec1,'(I1)') K mothelm3=mothelm2//motvec1 LESOBL(NDEBUT+(J-1)*NB_VARI_PAR_HELM+K)=mothelm3 c print*,mothelm3 else if (K.le.99) then write (motvec2,'(I2)') K mothelm4=mothelm2//motvec2 LESOBL(NDEBUT+(J-1)*NB_VARI_PAR_HELM+K)=mothelm4 c print*,mothelm4 else print*,'Trop de Vari(s) pour Helmholtz dans idvar4' end if end do end do c NDEBUT=NDEBUT+NB_VARI_HELM c ** fin des noms des variables pour Helmholtz ****************** NUM0=NDEBUT+NB_VARI_HELM c affichage des variables internes de FLUISO3D DO I=1,NUM0 WRITE(*,'(I3,1X,A4)') I,LESOBL(I) END DO c controle nombre de vari totale de FLUISO3D IF(NUM0.NE.NBROBL) THEN PRINT*,'PB NVARI POUR FLUISO3D DANS IDVAR4' STOP END IF c fin des variables pour FLUISO3D***************************** ELSE PRINT*,'FORMULATION IMPREVUE POUR FLUISO3D' STOP END IF ELSE PRINT*,'ELEMENT IMPREVUE POUR FLUISO3D' STOP END IF C 35 Modele FLUORTO3D (A.SELLIER et al.) C ========================================== ELSE IF (MATEPL.EQ.191 ) THEN C modeles FLUORTHO3D IF (MFR.EQ.1 .OR. MFR.EQ.33) THEN C Elements MASSIF MECA ou MASSIF POREUX uniquement IF (IFOUR.EQ.2 .or.IFOUR.EQ.-1 .or.IFOUR.EQ.0) THEN C Cas TRIDIMENSIONNEL, DEFORMATIONS PLANES ou AXISYMETRIQUES c -coml7 pour l initialisation des conditions intiales c ** nombre de variables de base pour la matrice c nombre de variables locales pour la matrice c nombre de variables scalaire par sous type c numero du sous type 1 2 3 4 5 6 7 8 9 c ELA,MAX,FLU,KEL,TRA,DP,CC,RAG,RSI data (VNVARI_O(I,1),I=1,NSTYPEO) /9 ,0 ,2 ,0 / c ,3 ,2 ,3 /, c nombre de variables tensorielles par sous type c numero du sous type 1 2 3 4 5 6 7 8 9 c ELA,MAX,FLU,KEL,TRA,DP,CC,RAG,RSI # (VNVARI_O(I,2),I=1,NSTYPEO) /1 ,1 ,1 ,1 / c ,1 ,1 ,1 / N3D=0 print*,'Structure VNVARI des vari pour FLUORTHO3D dans idvar4' do i=1,NSTYPEO N3D=N3D+(VNVARI_O(i,1)+VNVARI_O(i,2)*NDTENS) print*,i,VNVARI_O(i,1),VNVARI_O(i,2),NDTENS end do c ajout des vari Helmholtz N3D=N3D+NB_VARI_HELM NBROBL=N3D SEGINI,NOMID print*,'DS IDVAR4 POUR FLUORTHO3D NVARI=',NBROBL c ** declaration des variables scalaires pour la matrice ******* c indicateur premier pas (1 si premier pas passé sinon 0) NUM0=0 do itype=1,NSTYPEO if(itype.eq.1) then c Hoocke et Communs c vari scalaires LESOBL(NUM0+1)='PPAS' LESOBL(NUM0+2)='VWCA' LESOBL(NUM0+3)='PWCA' LESOBL(NUM0+4)='BWCA' LESOBL(NUM0+5)='SWCA' LESOBL(NUM0+6)='DTHE' LESOBL(NUM0+7)='KELA' LESOBL(NUM0+8)='MELA' LESOBL(NUM0+9)='FINR' NUM0=NUM0+VNVARI_O(itype,1) c vari tensorielles motnum2='EL' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VE' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_O(itype,2)*NDTENS else if (itype.eq.2) then c Maxwell consolidant c vari scalaires NUM0=NUM0+VNVARI_O(itype,1) c vari tensorielles motnum2='EM' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VM' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_O(itype,2)*NDTENS else if (itype.eq.3) then c Maxwell Transitoire c vari scalaires LESOBL(NUM0+1)='PF' LESOBL(NUM0+2)='WF' NUM0=NUM0+VNVARI_O(itype,1) c vari tensorielles motnum2='EF' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VF' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_O(itype,2)*NDTENS else if (itype.eq.4) then c Kelvin c vari scalaires NUM0=NUM0+VNVARI_O(itype,1) c vari tensorielles motnum2='EK' c valeurs principales do jdir=1,3 write (motdir1,'(I1)') jdir motnum3=motnum2//motdir1 LESOBL(NUM0+jdir)=motnum3 end do c vecteurs principaux motvec2='VK' do jdir=1,3 write (motdir1,'(I1)') jdir motvec3=motvec2//motdir1 do kdir=1,3 write (motdir1,'(I1)') kdir motvec4=motvec3//motdir1 LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 end do end do NUM0=NUM0+VNVARI_O(itype,2)*NDTENS C else if (itype.eq.5) then C c Rankine (traction localisee) C c vari scalaires C LESOBL(NUM0+1)='FT1' C LESOBL(NUM0+2)='FT2' C LESOBL(NUM0+3)='FT3' C NUM0=NUM0+VNVARI_O(itype,1) C c vari tensorielles C motnum2='ET' C c valeurs principales C do jdir=1,3 C write (motdir1,'(I1)') jdir C motnum3=motnum2//motdir1 C LESOBL(NUM0+jdir)=motnum3 C end do C c vecteurs principaux C motvec2='VT' C do jdir=1,3 C write (motdir1,'(I1)') jdir C motvec3=motvec2//motdir1 C do kdir=1,3 C write (motdir1,'(I1)') kdir C motvec4=motvec3//motdir1 C LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 C end do C end do C NUM0=NUM0+VNVARI_O(itype,2)*NDTENS C else if (itype.eq.6) then C c Drucker Prager (cisaillement) C c vari scalaires C LESOBL(NUM0+1)='FC' C LESOBL(NUM0+2)='ECEQ' C NUM0=NUM0+VNVARI_O(itype,1) C c vari tensorielles C motnum2='EC' C c valeurs principales C do jdir=1,3 C write (motdir1,'(I1)') jdir C motnum3=motnum2//motdir1 C LESOBL(NUM0+jdir)=motnum3 C end do C c vecteurs principaux C motvec2='VC' C do jdir=1,3 C write (motdir1,'(I1)') jdir C motvec3=motvec2//motdir1 C do kdir=1,3 C write (motdir1,'(I1)') kdir C motvec4=motvec3//motdir1 C LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 C end do C end do C NUM0=NUM0+VNVARI_O(itype,2)*NDTENS C else if (itype.eq.7) then C c Cam-Clay (consolidation des vides) C c vari scalaires C LESOBL(NUM0+1)='FCC' C LESOBL(NUM0+2)='VCC' C LESOBL(NUM0+3)='PCC' C NUM0=NUM0+VNVARI_O(itype,1) C c vari tensorielles C motnum2='EV' C c valeurs principales C do jdir=1,3 C write (motdir1,'(I1)') jdir C motnum3=motnum2//motdir1 C LESOBL(NUM0+jdir)=motnum3 C end do C c vecteurs principaux C motvec2='VV' C do jdir=1,3 C write (motdir1,'(I1)') jdir C motvec3=motvec2//motdir1 C do kdir=1,3 C write (motdir1,'(I1)') kdir C motvec4=motvec3//motdir1 C LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 C end do C end do C NUM0=NUM0+VNVARI_O(itype,2)*NDTENS C else if (itype.eq.8) then C c RAG C c vari scalaires C LESOBL(NUM0+1)='FR1' C LESOBL(NUM0+2)='FR2' C LESOBL(NUM0+3)='FR3' C LESOBL(NUM0+4)='ARAG' C LESOBL(NUM0+5)='PRAG' C NUM0=NUM0+VNVARI_O(itype,1) C c vari tensorielles C motnum2='EG' C c valeurs principales C do jdir=1,3 C write (motdir1,'(I1)') jdir C motnum3=motnum2//motdir1 C LESOBL(NUM0+jdir)=motnum3 C end do C c vecteurs principaux C motvec2='VG' C do jdir=1,3 C write (motdir1,'(I1)') jdir C motvec3=motvec2//motdir1 C do kdir=1,3 C write (motdir1,'(I1)') kdir C motvec4=motvec3//motdir1 C LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 C end do C end do C NUM0=NUM0+VNVARI_O(itype,2)*NDTENS C else if (itype.eq.9) then C c DEF C c vari scalaires C LESOBL(NUM0+1)='FS1' C LESOBL(NUM0+2)='FS2' C LESOBL(NUM0+3)='FS3' C LESOBL(NUM0+4)='ARSI' C LESOBL(NUM0+5)='PRSI' C NUM0=NUM0+VNVARI_O(itype,1) C c vari tensorielles C motnum2='ES' C c valeurs principales C do jdir=1,3 C write (motdir1,'(I1)') jdir C motnum3=motnum2//motdir1 C LESOBL(NUM0+jdir)=motnum3 C end do C c vecteurs principaux C motvec2='VS' C do jdir=1,3 C write (motdir1,'(I1)') jdir C motvec3=motvec2//motdir1 C do kdir=1,3 C write (motdir1,'(I1)') kdir C motvec4=motvec3//motdir1 C LESOBL(NUM0+3+(jdir-1)*3+kdir)=motvec4 C end do C end do C NUM0=NUM0+VNVARI_O(itype,2)*NDTENS end if end do NDEBUT=NUM0 c ****** nom des variables pour Helmholtz *********************** c lignes a copier dans les modeles utilisant Helmholtz (sellier) c variables internes pour le non local par Helmholtz c write(*,'(A32,A31,1X,I2)') c # 'Dans IDVAR4 le nombre maximum de', c # 'formulations de Helmholtz est:', c # NB_HELM c write(*,'(A63,1X,I2)') c # 'Nombre de variables H par formulation de Helmholtz:', c # NB_VARI_PAR_HELM c generation des noms des variables internes pour Helmholtz do J=1,NB_HELM mothelm1='H' write (motnum1,'(I1)') J mothelm2=mothelm1//motnum1 C ATTENTION LES VARI SONT NUMEROTÉE DE 0 À NB_VARI_PAR_HELM-1 C la variable HJ0 est mobilisee automatiquement si INCj=1 (cf idmatr) do K=1,NB_VARI_PAR_HELM if (K.le.9) then write (motvec1,'(I1)') K mothelm3=mothelm2//motvec1 LESOBL(NDEBUT+(J-1)*NB_VARI_PAR_HELM+K)=mothelm3 c print*,mothelm3 else if (K.le.99) then write (motvec2,'(I2)') K mothelm4=mothelm2//motvec2 LESOBL(NDEBUT+(J-1)*NB_VARI_PAR_HELM+K)=mothelm4 c print*,mothelm4 else print*,'Trop de Vari(s) pour Helmholtz dans idvar4' end if end do end do c NDEBUT=NDEBUT+NB_VARI_HELM c ** fin des noms des variables pour Helmholtz ****************** NUM0=NDEBUT+NB_VARI_HELM c affichage des variables internes de FLUORTHO3D DO I=1,NUM0 WRITE(*,'(I3,1X,A4)') I,LESOBL(I) END DO c controle nombre de vari totale de FLUORTHO3D IF(NUM0.NE.NBROBL) THEN PRINT*,'PB NVARI POUR FLUORTHO3D DANS IDVAR4' STOP END IF c ** fin des variables pour fluortho3d*************************** ELSE PRINT*,'FORMULATION IMPREVUE POUR FLUORTHO3D' STOP END IF ELSE PRINT*,'ELEMENT IMPREVUE POUR FLUORTHO3D' STOP END IF c ========================================== ENDIF IPCOMP=NOMID IF (IPCOMP.NE.0) THEN SEGDES,NOMID ELSE ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales