C IDMATR SOURCE BP208322 13/10/02 21:15:10 7830 SUBROUTINE IDMATR(MFR,IPMODL,IPNOMC,NBROBL,NBRFAC) *--------------------------------------------------------------------* * Noms de composantes de mat{riaux * *--------------------------------------------------------------------* * * * ENTREES: * * MFR Num{ro de formulation * * IPMODL objet mod}le {l{mentaire ( segment actif ) * * * * SORTIES: * * IPNOMC pointeur sur les listes de noms de composantes * * obligatoires et facultatives * * * * NBROBL nombre de composantes obligatoires * * * * NBRFAC nombre de composantes facultatives * * * *--------------------------------------------------------------------* * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCOPTIO -INC SMLMOTS -INC SMMODEL POINTEUR NOMID1.NOMID ,nomid2.nomid * LOGICAL lozut CHARACTER*16 MOMODL(100) * IMODEL=IPMODL * Le segment existe-t-il deja? IF (lnomid(6).NE.0) THEN nomid = lnomid(6) SEGACT,nomid nbrobl = lesobl(/2) nbrfac = lesfac(/2) SEGDES,nomid IF (nbrobl+nbrfac.EQ.0) GOTO 765 SEGINI,nomid1=nomid SEGDES,nomid1 ipnomc=nomid1 RETURN ENDIF 765 CONTINUE NBROBL=0 NBRFAC=0 NOMID=0 MOOBL=0 MOFAC=0 JGN=8 * NMAT=MATMOD(/2) NFOR=FORMOD(/2) MELE=NEFMOD *-------------------------------------------------------------------- * CAS DE LA FORMULATION THERMOHYDRIQUE *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ithehy,'THERMOHYDRIQUE') IF( ithehy.ne.0) then if ( matmod(1).eq.'SCHREFLER') then JGM = 20 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='KGG' MOTS(2)='KGC' MOTS(3)='KGT' MOTS(4)='KCG' MOTS(5)='KCC' MOTS(6)='KCT' MOTS(7)='KTG' MOTS(8)='KTC' MOTS(9)='KTT' MOTS(10)='CGG' MOTS(11)='CGC' MOTS(12)='CGT' MOTS(13)='CCG' MOTS(14)='CCC' MOTS(15)='CCT' MOTS(16)='CTG' MOTS(17)='CTC' MOTS(18)='CTT' MOTS(19)='KTGG' MOTS(20)='KTCG' GO TO 9999 else GO TO 99 endif ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION LIQUIDE ET ELEMENT DE RACCORD LITU *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ILIQU,'LIQUIDE') IF (ILIQU.NE.0) THEN IF (MFR.NE.41.AND.MFR.NE.43) THEN JGM = 6 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='RHO ' MOTS(2)='CSON' MOTS(3)='RORF' MOTS(4)='CREF' MOTS(5)='LCAR' MOTS(6)='G ' GOTO 9999 ELSEIF (MFR.EQ.41) THEN JGM = 5 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='RHO ' MOTS(2)='CSON' MOTS(3)='RORF' MOTS(4)='CREF' MOTS(5)='LCAR' GOTO 9999 ELSE JGM = 3 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='RHO ' MOTS(2)='LCAR' MOTS(3)='RORF' GOTO 9999 ENDIF ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION THERMIQUE ( I. E. CONDUCTION ) * CAS DE LA FORMULATION DARCY *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ITHER,'THERMIQUE') CALL PLACE(FORMOD,NFOR,IDARCY,'DARCY') ITHFL = ITHER + IDARCY IF (ITHFL.NE.0) THEN CALL PLACE(MATMOD,NMAT,IORTH,'ORTHOTROPE') CALL PLACE(MATMOD,NMAT,IANIS,'ANISOTROPE') IF(IORTH.EQ.0.AND.IANIS.EQ.0)THEN JGM = 1 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='K ' ELSEIF ( IORTH.NE.0) THEN * ELEMENTS COQUES IF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN JGM=5 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='K1 ' MOTS(2)='K2 ' MOTS(3)='K3 ' MOTS(4)='V1X ' MOTS(5)='V1Y ' ELSEIF (MFR.EQ.1.OR.MFR.EQ.45) THEN * ELEMENTS MASSIFS IF (IDIM.EQ.2) THEN IF (IFOMOD.EQ.1) THEN * ELEMENT MASSIF DE FOURIER JGM=5 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='K1 ' MOTS(2)='K2 ' MOTS(3)='V1X ' MOTS(4)='V1Y ' MOTS(5)='K3 ' ELSE JGM=4 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='K1 ' MOTS(2)='K2 ' MOTS(3)='V1X ' MOTS(4)='V1Y ' ENDIF ELSEIF (IDIM.EQ.3) THEN JGM=9 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='K1 ' MOTS(2)='K2 ' MOTS(3)='K3 ' MOTS(4)='V1X ' MOTS(5)='V1Y ' MOTS(6)='V1Z ' MOTS(7)='V2X ' MOTS(8)='V2Y ' MOTS(9)='V2Z ' ENDIF ENDIF ELSEIF (IANIS.NE.0) THEN IF( MFR.EQ.1.OR.MFR.EQ.45) THEN * ELEMENTS MASSIFS IF (IDIM.EQ.2) THEN IF (IFOMOD.EQ.1) THEN * ELEMENT MASSIF DE FOURIER JGM=6 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='K11 ' MOTS(2)='K22 ' MOTS(3)='K21 ' MOTS(4)='V1X ' MOTS(5)='V1Y ' MOTS(6)='K33 ' ELSE JGM=5 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='K11 ' MOTS(2)='K22 ' MOTS(3)='K21 ' MOTS(4)='V1X ' MOTS(5)='V1Y ' ENDIF ELSEIF (IDIM.EQ.3) THEN JGM=12 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='K11 ' MOTS(2)='K22 ' MOTS(3)='K33 ' MOTS(4)='K21 ' MOTS(5)='K31 ' MOTS(6)='K32 ' MOTS(7)='V1X ' MOTS(8)='V1Y ' MOTS(9)='V1Z ' MOTS(10)='V2X ' MOTS(11)='V2Y ' MOTS(12)='V2Z ' ENDIF ENDIF ENDIF * IF (IDARCY.EQ.0) THEN CALL PLACE(MATMOD,NMAT,IPHA,'PHASE') IF(IPHA.NE.0) THEN * JGM=3 * SEGINI MLMOTS * MOFAC=MLMOTS * MOTS(1)='RHO ' * MOTS(2)='C ' * MOTS(3)='H ' * ELSE IJGI=JGM JGM=JGM+4 SEGADJ MLMOTS MOTS(IJGI+1)='RHO ' MOTS(IJGI+2)='C ' MOTS(IJGI+3)='QLAT' MOTS(IJGI+4)='TPHA' JGM=1 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='H ' GOTO 9999 ENDIF CALL PLACE(MATMOD,NMAT,ICONV,'CONVECTION') if ( iconv.ne.0) then JGM = 1 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='H ' GOTO 9999 ENDIF call place(MATMOD,NMAT,IADVE,'ADVECTION') if(iadve.ne.0) then call iddepl(mfr,ifour,nomid2,nob,nfa) write(6,*) ' nomid2 nob nfa ' , nomid2,nob,nfa segact nomid2 mlmots=moobl jgm= nob+3 segini mlmots mofac=mlmots mots(1)='RHO' mots(2)='C' mots(3)='VITE' do iyt=1,nob mots(3+iyt)=nomid2.lesobl(iyt) enddo GO TO 9999 endif CALL PLACE(MATMOD,NMAT,iraye,'RAYONNEMENT') if(iraye.ne.0)then call place (matmod,nmat,icave,'CAVITE') call place(matmod,nmat,ifacaf,'FAC_A_FAC') call place (matmod,nmat,iinfi,'INFINI') if(icave.ne.0) then IF(MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN JGM=2 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='EINF' MOTS(2)='ESUP' jgm=1 else jgm=1 segini mlmots moobl=mlmots mots(1)='EMIS' endif jgm=2 segini mlmots mots(1)='CABS' mots(2)='TABS' mofac=mlmots elseif(ifacaf.ne.0) then JGM=1 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='EMIS' elseif (iinfi.ne.0) then IF(MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN JGM=2 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='EINF' MOTS(2)='ESUP' jgm=1 ELSE JGM=1 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='EMIS' ENDIF jgm=1 segini mlmots mofac=mlmots mots(1)='E_IN' endif GOTO 9999 endif JGM=3 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='C ' MOTS(3)='H ' ENDIF ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION CONVECTION *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ICONV,'CONVECTION') IF (ICONV.NE.0) THEN JGM = 1 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='H ' GOTO 9999 ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION MECANIQUE *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ICONV,'MECANIQUE') IF (ICONV.NE.0) THEN * CALL MODLIN(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,ICONV,MATMOD(1)) IF (ICONV.EQ.0) GOTO 99 IF (NMAT.GE.2) THEN CALL MODELA(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(2)) if ((IPLAC.EQ.9.OR.IPLAC.EQ.10).AND.NMAT.GT.2) then INMAT = 3 goto 19 endif IF (IPLAC.NE.0) THEN INMAT=3 IF (IPLAC.EQ.1) THEN INMAT=3 GOTO 10 ENDIF IF (IPLAC.EQ.2) THEN * * MATERIAU ELASTIQUE ORTHOTROPE * IF (MFR.EQ.75) THEN * * JOINT UNIDIMENSIONNEL JOI1 * IF(IFOUR.EQ.2)THEN JGM=12 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='V1X ' MOTS(2)='V1Y ' MOTS(3)='V1Z ' MOTS(4)='V2X ' MOTS(5)='V2Y ' MOTS(6)='V2Z ' MOTS(7)='KN ' MOTS(8)='KS1 ' MOTS(9)='KS2' MOTS(10)='QN ' MOTS(11)='QS1 ' MOTS(12)='QS2 ' * JGM=10 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='MASS' MOTS(2)='JX' MOTS(3)='JY' MOTS(4)='JZ' MOTS(5)='ALPN' MOTS(6)='ALP1' MOTS(7)='ALP2' MOTS(8)='ALQN' MOTS(9)='ALQ1' MOTS(10)='ALQ2' * ELSEIF(IFOUR.EQ.-2.OR.IFOUR.EQ.-1)THEN JGM=5 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='V1X ' MOTS(2)='V1Y ' MOTS(3)='KN ' MOTS(4)='KS ' MOTS(5)='QS' * JGM=6 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='MASS' MOTS(2)='JZ' MOTS(4)='ALPN' MOTS(5)='ALPS' MOTS(6)='ALQS' ENDIF * ELSEIF (MFR.EQ.3) THEN * * COQUES MINCES * JGM=6 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='NU12' MOTS(4)='G12 ' MOTS(5)='V1X ' MOTS(6)='V1Y ' * IF(IFOUR.EQ.-2) THEN JGM=4 ELSE JGM=3 ENDIF SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='ALP1' MOTS(2)='ALP2' MOTS(3)='RHO ' IF(IFOUR.EQ.-2) MOTS(4)='DIM3' ELSEIF (MFR.EQ.9.OR.MFR.EQ.5) THEN * * COQUES AVEC CISAILLEMENT TRANSVERSE * JGM=8 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='NU12' MOTS(4)='G12 ' MOTS(5)='G23 ' MOTS(6)='G13 ' MOTS(7)='V1X ' MOTS(8)='V1Y ' * JGM=3 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' ELSEIF (MFR.EQ.1.OR.MFR.EQ.31) THEN * * ELEMENTS MASSIFS * IF(IDIM.EQ.3)THEN * ELEMENTS 3D JGM=15 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='YG3 ' MOTS(4)='NU12' MOTS(5)='NU23' MOTS(6)='NU13' MOTS(7)='G12 ' MOTS(8)='G23 ' MOTS(9)='G13 ' MOTS(10)='V1X ' MOTS(11)='V1Y ' MOTS(12)='V1Z ' MOTS(13)='V2X ' MOTS(14)='V2Y ' MOTS(15)='V2Z ' * JGM=4 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='ALP3' ELSEIF (IDIM.EQ.2) THEN IF(IFOUR.EQ.-2)THEN * CONTRAINTE PLANE JGM=9 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='NU12' MOTS(4)='G12 ' MOTS(5)='V1X ' MOTS(6)='V1Y ' MOTS(7)='YG3 ' MOTS(8)='NU23' MOTS(9)='NU13' * JGM=4 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='DIM3' ELSEIF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN * DEFORMATION PLANE ,AXISYMETRIE JGM=9 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='YG3 ' MOTS(4)='NU12' MOTS(5)='NU23' MOTS(6)='NU13' MOTS(7)='G12 ' MOTS(8)='V1X ' MOTS(9)='V1Y ' * JGM=4 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='ALP3' ELSEIF (IFOUR.EQ.1) THEN * AXISYMETRIE DE FOURIER JGM=11 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='YG3 ' MOTS(4)='NU12' MOTS(5)='NU23' MOTS(6)='NU13' MOTS(7)='G12 ' MOTS(8)='G23 ' MOTS(9)='G13 ' MOTS(10)='V1X ' MOTS(11)='V1Y ' * JGM=4 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='ALP3' ENDIF ELSEIF (IDIM.EQ.1) THEN C= Dans le cas UNID SPHErique, on doit avoir YG2=YG3 et NU12=NU13 C= et dans le cas thermomecanique ALP2=ALP3. JGM=6 SEGINI,MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='YG3 ' MOTS(4)='NU12' MOTS(5)='NU23' MOTS(6)='NU13' MOOBL=MLMOTS IF (IFOUR.EQ.6) THEN JGM=2 SEGINI,MLMOTS ELSEIF (IFOUR.EQ.5.OR.IFOUR.EQ.10) THEN JGM=3 SEGINI,MLMOTS MOTS(3)='ALP3' ELSEIF (IFOUR.EQ.4.OR.IFOUR.EQ.8.OR. . IFOUR.EQ.13) THEN JGM=3 SEGINI,MLMOTS MOTS(3)='ALP2' ELSE JGM=4 SEGINI,MLMOTS MOTS(3)='ALP2' MOTS(4)='ALP3' ENDIF MOTS(1)='RHO ' MOTS(2)='ALP1' MOFAC=MLMOTS ENDIF ELSEIF (MFR.EQ.35) THEN * ELEMENTS JOINTS IF (IFOUR.EQ.2) THEN JGM=5 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='KS1 ' MOTS(2)='KS2 ' MOTS(3)='KN ' MOTS(4)='V1X ' MOTS(5)='V1Y ' * JGM=2 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALPN' ENDIF ENDIF ELSEIF (IPLAC.EQ.3)THEN * * MATERIAU ANISOTROPE ELASTIQUE * IF(MFR.EQ.75)THEN * * JOINT UNIDIMESIONNEL JOI1 * IF (IFOUR.EQ.2) THEN JGM=27 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='V1X ' MOTS(2)='V1Y ' MOTS(3)='V1Z ' MOTS(4)='V2X ' MOTS(5)='V2Y ' MOTS(6)='V2Z ' MOTS(7)='D11 ' MOTS(8)='D22 ' MOTS(9)='D33 ' MOTS(10)='D44 ' MOTS(11)='D55 ' MOTS(12)='D66 ' MOTS(13)='D21 ' MOTS(14)='D31 ' MOTS(15)='D32 ' MOTS(16)='D41 ' MOTS(17)='D42 ' MOTS(18)='D43 ' MOTS(19)='D51 ' MOTS(20)='D52 ' MOTS(21)='D53 ' MOTS(22)='D54 ' MOTS(23)='D61 ' MOTS(24)='D62 ' MOTS(25)='D63 ' MOTS(26)='D64 ' MOTS(27)='D65 ' * JGM=10 SEGINI MLMOTS MOFAC=MLMOTS * MASS: masse totale de l'élément joint MOTS(1)='MASS' MOTS(2)='JX' MOTS(3)='JY' MOTS(4)='JZ' MOTS(5)='ALP1' MOTS(6)='ALP2' MOTS(7)='ALP3' MOTS(8)='ALQ1' MOTS(9)='ALQ2' MOTS(10)='ALQ3' * ELSEIF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN JGM=8 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='V1X ' MOTS(2)='V1Y ' MOTS(3)='D11 ' MOTS(4)='D22 ' MOTS(5)='D33 ' MOTS(6)='D21 ' MOTS(7)='D31 ' MOTS(8)='D32 ' * JGM=5 SEGINI MLMOTS MOFAC=MLMOTS * MASS: masse totale de l'élément joint MOTS(1)='MASS' MOTS(2)='JZ' MOTS(3)='ALP1' MOTS(4)='ALP2' MOTS(5)='ALQ3' ENDIF ENDIF * * * ELEMENTS MASSIFS * IF(MFR.EQ.1.OR.MFR.EQ.31)THEN IF(IDIM.EQ.3)THEN * ELEMENTS 3D JGM=27 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='D11 ' MOTS(2)='D21 ' MOTS(3)='D22 ' MOTS(4)='D31 ' MOTS(5)='D32 ' MOTS(6)='D33 ' MOTS(7)='D41 ' MOTS(8)='D42 ' MOTS(9)='D43 ' MOTS(10)='D44 ' MOTS(11)='D51 ' MOTS(12)='D52 ' MOTS(13)='D53 ' MOTS(14)='D54 ' MOTS(15)='D55 ' MOTS(16)='D61 ' MOTS(17)='D62 ' MOTS(18)='D63 ' MOTS(19)='D64 ' MOTS(20)='D65 ' MOTS(21)='D66 ' MOTS(22)='V1X ' MOTS(23)='V1Y ' MOTS(24)='V1Z ' MOTS(25)='V2X ' MOTS(26)='V2Y ' MOTS(27)='V2Z ' * JGM=7 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='ALP3' MOTS(5)='AL12' MOTS(6)='AL13' MOTS(7)='AL23' ELSEIF (IDIM.EQ.2) THEN IF (IFOUR.EQ.-2) THEN * CONTRAINTE PLANE JGM=12 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='D11 ' MOTS(2)='D21 ' MOTS(3)='D22 ' MOTS(4)='D41 ' MOTS(5)='D42 ' MOTS(6)='D44 ' MOTS(7)='V1X ' MOTS(8)='V1Y ' MOTS(9)='D31 ' MOTS(10)='D32 ' MOTS(11)='D33 ' MOTS(12)='D43 ' * JGM=5 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='AL12' MOTS(5)='DIM3' ELSEIF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN * DEFORMATION PLANE ,AXISYMETRIE JGM=12 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='D11 ' MOTS(2)='D21 ' MOTS(3)='D22 ' MOTS(4)='D31 ' MOTS(5)='D32 ' MOTS(6)='D33 ' MOTS(7)='D41 ' MOTS(8)='D42 ' MOTS(9)='D43 ' MOTS(10)='D44 ' MOTS(11)='V1X ' MOTS(12)='V1Y ' * JGM=5 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='AL12' MOTS(5)='ALP3' ELSEIF (IFOUR.EQ.1) THEN * AXISYMETRIE DE FOURIER JGM=15 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='D11 ' MOTS(2)='D21 ' MOTS(3)='D22 ' MOTS(4)='D31 ' MOTS(5)='D32 ' MOTS(6)='D33 ' MOTS(7)='D41 ' MOTS(8)='D42 ' MOTS(9)='D43 ' MOTS(10)='D44 ' MOTS(11)='D55 ' MOTS(12)='D65 ' MOTS(13)='D66 ' MOTS(14)='V1X ' MOTS(15)='V1Y ' * JGM=5 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='AL12' MOTS(5)='ALP3' ENDIF ENDIF ENDIF ELSEIF (IPLAC.EQ.4) THEN IF (MFR.EQ.33) THEN * * MILIEU POREUX ISOTROPE * JGM=12 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1) ='YOUN' MOTS(2) ='NU ' MOTS(3) ='RHO ' MOTS(4) ='ALPH' MOTS(5) ='COB ' MOTS(6) ='MOB ' MOTS(7) ='ALPM' MOTS(8) ='PERM' MOTS(9) ='VISC' MOTS(10)='KF ' MOTS(11)='RHOF' MOTS(12)='ALPF' * IF (IFOUR.EQ.-2) THEN JGM=1 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='DIM3' ENDIF ENDIF ELSEIF (IPLAC.EQ.5) THEN IF (MFR.EQ.37) THEN * * MILIEU HOMOGENEISE * JGM=16 SEGINI MLMOTS MOOBL=MLMOTS MOTS( 1)='B11 ' MOTS( 2)='B22 ' MOTS( 3)='B12 ' MOTS( 4)='ROF ' MOTS( 5)='ROS ' MOTS( 6)='YOUN' MOTS( 7)='CSON' MOTS( 8)='RORF' MOTS( 9)='CREF' MOTS(10)='LCAR' MOTS(11)='E111' MOTS(12)='E112' MOTS(13)='E121' MOTS(14)='E122' MOTS(15)='E221' MOTS(16)='E222' ENDIF ELSEIF (IPLAC.EQ.6) THEN C C MATERIAU ELASTIQUE UNIDIRECTIONNEL C IF ((MFR.EQ.1.OR.MFR.EQ.31).AND.IDIM.EQ.3) THEN JGM=7 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YOUN' MOTS(2)='V1X ' MOTS(3)='V1Y ' MOTS(4)='V1Z ' MOTS(5)='V2X ' MOTS(6)='V2Y ' MOTS(7)='V2Z ' ELSE JGM=3 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YOUN' MOTS(2)='V1X ' MOTS(3)='V1Y ' ENDIF * IF((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31).AND. . IFOUR.EQ.-2) THEN JGM=3 ELSE JGM=2 ENDIF SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALPH' IF((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31).AND + .IFOUR.EQ.-2) MOTS(3)='DIM3' ELSEIF (IPLAC.EQ.7) THEN C C MODELE ET MATERIAU DE LA SECTION DU MODELE A FIBRE C JGM=2 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='MODS' MOTS(2)='MATS' JGM=1 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='MANO' C ---- IPLAC 8: Ajout� par Jiang, 22/08/1995 et fleuret 28/05/96 ELSEIF (IPLAC.EQ.8) THEN C C MODELE ET MATERIAU POUR LE CABLE PRECONTRAINT C JGM=1 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YOUN' JGM=8 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='FF' MOTS(2)='PHIF' MOTS(3)='GANC' MOTS(4)='RMU0' MOTS(5)='FPRG' MOTS(6)='RH10' MOTS(7)='ALPH' MOTS(8)='RHO ' C --- Fin de modification 08/1995 ELSEIF (IPLAC.EQ.9) THEN C C MODAL C JGM=3 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='FREQ' MOTS(2)='MASS' MOTS(3)='DEFO' JGM = 9 SEGINI MLMOTS MOFAC = MLMOTS MOTS(1) = 'AMOR' MOTS(2) = 'CGRA' MOTS(3) = 'MADE' MOTS(4) = 'RICR' MOTS(5) = 'MAIB' MOTS(6) = 'MACR' MOTS(7) = 'AMCR' MOTS(8) = 'ALP0' MOTS(9) = 'ECRO' ELSEIF (IPLAC.EQ.10) THEN C C STATIQUE C JGM=3 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='DEFO' MOTS(2)='RIDE' MOTS(3)='MADE' JGM = 8 SEGINI MLMOTS MOFAC = MLMOTS MOTS(1) = 'AMOR' MOTS(2) = 'RICR' MOTS(3) = 'MAIA' MOTS(4) = 'MAIB' MOTS(5) = 'MACR' MOTS(6) = 'AMCR' MOTS(7) = 'BET0' MOTS(8) = 'ECRO' ELSEIF (IPLAC.EQ.11) THEN C C ZONE_COHESIVE C JGM=2 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='KS' MOTS(2)='KN' ENDIF INMAT=3 GOTO 20 ELSE INMAT=2 GOTO 10 ENDIF ENDIF INMAT=0 10 CONTINUE * * MATERIAU ELASTIQUE ISOTROPE * IF (MFR.EQ.35) THEN * VALABLE EN 2D COMME EN 3D JGM=2 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='KS ' MOTS(2)='KN ' * * JGM=2 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALPN' * * * JOINT CISAILLEMENT (2D) * ELSEIF (MFR.EQ.53) THEN * VALABLE EN 2D "COMME EN 3D" JGM=1 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='KS ' * JGM=2 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALPN' * * TOUS LES AUTRES CAS * ELSE JGM=2 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YOUN' MOTS(2)='NU ' * IF((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.63).AND. . IFOUR.EQ.-2) THEN JGM=4 ELSE JGM=3 ENDIF C C JGM = JGM + 1 C * SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALPH' IF((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.63).AND. . IFOUR.EQ.-2) THEN MOTS(3)='DIM3' MOTS(4)='VISQ' ELSE MOTS(3)='VISQ' ENDIF ENDIF * IF (INMAT.EQ.0) GOTO 9999 * 19 CONTINUE 20 CONTINUE DO jm = 1,matmod(/2) IF (matmod(jm).eq.'IMPEDANCE') THEN imate = imatee * if (imate.eq.0) goto 99 JGM = 0 SEGINI MLMOTS MOOBL = MLMOTS JGM = 0 SEGINI MLMOTS MOFAC = MLMOTS IF (imate.eq.31) THEN *IMPE_ELAS MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = JGM0+1 SEGADJ MLMOTS MOTS(JGM0 + 1) ='RAID' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = JGM0+2 SEGADJ MLMOTS MOTS(JGM0+1) = 'MASS' MOTS(JGM0+2) = 'AMOR' GOTO 22 ELSEIF (imate.eq.32.or.imate.eq.33) THEN *IMPE_VOIGT ou IMPE_MAXW MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = JGM0+2 SEGADJ MLMOTS MOTS(JGM0 + 1) ='RAID' MOTS(JGM0 + 2) ='VISC' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = JGM0+2 SEGADJ MLMOTS MOTS(JGM0+1) = 'MASS' MOTS(JGM0+2) = 'AMOR' GOTO 22 ELSEIF (imate.eq.34) then *IMPE_COMPLEXE MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+1 SEGADJ MLMOTS MOTS(JGM0 + 1) ='MOCO' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+3 SEGADJ MLMOTS MOTS(JGM0+1) = 'RAID' MOTS(JGM0+2) = 'AMOR' MOTS(JGM0+3) = 'MASS' GOTO 22 ELSE ENDIF 22 CONTINUE if (mele.eq.29) then MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+1 SEGADJ MLMOTS MOTS(JGM0+1) = 'CPLE' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+2 SEGADJ MLMOTS MOTS(JGM0+1) = 'INER' MOTS(JGM0+2) = 'AROT' endif GOTO 9999 ENDIF ENDDO * IF (NMAT.GE.INMAT) THEN CALL MODNLI(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.1) THEN INMAT=INMAT+1 CALL MODPLA(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.0) THEN * ISOTROPE IPLAC=1 * ELSE * INMAT=INMAT+1 ENDIF CALL IDPLAS(MFR,MOOBL,MOFAC,IPLAC,IRET) ELSEIF (IPLAC.EQ.2) THEN INMAT=INMAT+1 CALL MODFLU(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.0) THEN * NORTON IPLAC=1 * ELSE * INMAT=INMAT+1 ENDIF CALL IDFLUA(MFR,MOOBL,MOFAC,IPLAC,IRET) ELSEIF (IPLAC.EQ.3) THEN INMAT=INMAT+1 CALL MODVIS(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.0) THEN * CHABOCHE IPLAC=2 * ELSE * INMAT=INMAT+1 ENDIF C C Cas particulier des modeles GATT_MONERIE et UO2 C 'RHO ' et 'ALPH' sont obligatoires C C IF (IPLAC.EQ.18.OR.IPLAC.EQ.19) THEN MLMOTS=MOOBL JGA=MOTS(/2) JGM=JGA+2 SEGADJ MLMOTS MOTS(JGA+1)='RHO ' MOTS(JGA+2)='ALPH' MLMOTS=MOFAC JGA=MOTS(/2) JGM=JGA-2 IF (JGM.GT.0) THEN DO 200 I=1,JGM MOTS(I)=MOTS(I+2) 200 CONTINUE ENDIF SEGADJ MLMOTS C === C Modeles SYMONDS & COWPER SYCO1 et SYCO2 C === ELSEIF (IPLAC.EQ.28) THEN MLMOTS=MOOBL JGA=MOTS(/2) JGM=JGA+1 SEGADJ MLMOTS MOTS(JGA+1)='TRAC' SEGADJ MLMOTS ELSEIF (IPLAC.EQ.29) THEN MLMOTS=MOOBL JGA=MOTS(/2) JGM=JGA+1 SEGADJ MLMOTS MOTS(JGA+1)='TRAC' SEGADJ MLMOTS ENDIF CALL IDVISC(MFR,MOOBL,MOFAC,IPLAC,IRET) C ELSEIF (IPLAC.EQ.4) THEN INMAT=INMAT+1 CALL MODEND(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.0) THEN * MAZARS IPLAC=1 * ELSE * INMAT=INMAT+1 ENDIF CALL IDENDO(MFR,MOOBL,MOFAC,IPLAC,IRET) ELSEIF (IPLAC.EQ.5) THEN INMAT=INMAT+1 CALL MODPLE(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.0) THEN * TRIAXIAL P/Y IPLAC=1 * ELSE * INMAT=INMAT+1 ENDIF CALL IDPLEN(MFR,MOOBL,MOFAC,IPLAC,IRET) ELSEIF (IPLAC.EQ.6) THEN INMAT=INMAT+1 CALL MODENL(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.0) THEN * ISOTROPE IPLAC=1 * ELSE * INMAT=INMAT+1 ENDIF CALL IDELNL(MFR,MOOBL,MOFAC,IPLAC,IRET) ELSEIF (IPLAC.EQ.7) THEN C Pas de composantes supplementaires pour une loi 'VISCO_EXTERNE' IRET = 1 ELSE GOTO 99 ENDIF C IRET code retour de IDPLAS,IDFLUA,IDVISC,IDENDO,IDPLEN,IDELNL C IF (IRET.EQ.0) GOTO 99 * * En cas de creation de materiaux combinant plusieurs materiaux * deja existant Ex ELASTIQUE ISOTROPE PLASTIQUE PARFAIT FLUAGE N * GOTO 20 * GOTO 9999 ENDIF GOTO 9999 ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION POREUX *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ICONV,'POREUX') IF (ICONV.NE.0) THEN * CALL MODLIN(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,ICONV,MATMOD(1)) IF (ICONV.EQ.0) GOTO 99 * * D'ABORD : CAS NON ISOTROPE * IF (NMAT.GE.2) THEN CALL MODELA(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(2)) IF (IPLAC.NE.0) THEN INMAT=3 IF (IPLAC.EQ.1) THEN INMAT=3 GOTO 30 ENDIF IF (IPLAC.EQ.2) THEN * * MATERIAU ELASTIQUE ORTHOTROPE * IF (MFR.EQ.33) THEN * * ELEMENTS MASSIFS * IF(IDIM.EQ.3)THEN * ELEMENTS 3D JGM=19 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='YG3 ' MOTS(4)='NU12' MOTS(5)='NU23' MOTS(6)='NU13' MOTS(7)='G12 ' MOTS(8)='G23 ' MOTS(9)='G13 ' MOTS(10)='V1X ' MOTS(11)='V1Y ' MOTS(12)='V1Z ' MOTS(13)='V2X ' MOTS(14)='V2Y ' MOTS(15)='V2Z ' MOTS(16)='COB1' MOTS(17)='COB2' MOTS(18)='COB3' MOTS(19)='MOB ' * JGM=12 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='ALP3' MOTS(5)='ALPM' MOTS(6)='PER1' MOTS(7)='PER2' MOTS(8)='PER3' MOTS(9)='VISC' MOTS(10)='KF ' MOTS(11)='RHOF' MOTS(12)='ALPF' ELSEIF (IDIM.EQ.2) THEN IF(IFOUR.EQ.-2)THEN * CONTRAINTE PLANE JGM=12 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='NU12' MOTS(4)='G12 ' MOTS(5)='V1X ' MOTS(6)='V1Y ' MOTS(7)='COB1' MOTS(8)='COB2' MOTS(9)='MOB ' MOTS(10)='YG3 ' MOTS(11)='NU23' MOTS(12)='NU13' * JGM=11 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='ALPM' MOTS(5)='PER1' MOTS(6)='PER2' MOTS(7)='VISC' MOTS(8)='KF ' MOTS(9)='RHOF' MOTS(10)='ALPF' MOTS(11)='DIM3' ELSEIF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN * DEFORMATION PLANE ,AXISYMETRIE JGM=13 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='YG3 ' MOTS(4)='NU12' MOTS(5)='NU23' MOTS(6)='NU13' MOTS(7)='G12 ' MOTS(8)='V1X ' MOTS(9)='V1Y ' MOTS(10)='COB1' MOTS(11)='COB2' MOTS(12)='COB3' MOTS(13)='MOB ' * JGM=11 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='ALP3' MOTS(5)='ALPM' MOTS(6)='PER1' MOTS(7)='PER2' MOTS(8)='VISC' MOTS(9)='KF ' MOTS(10)='RHOF' MOTS(11)='ALPF' * ELSEIF (IFOUR.EQ.1) THEN * AXISYMETRIE DE FOURIER JGM=15 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YG1 ' MOTS(2)='YG2 ' MOTS(3)='YG3 ' MOTS(4)='NU12' MOTS(5)='NU23' MOTS(6)='NU13' MOTS(7)='G12 ' MOTS(8)='G23 ' MOTS(9)='G13 ' MOTS(10)='V1X ' MOTS(11)='V1Y ' MOTS(12)='COB1' MOTS(13)='COB2' MOTS(14)='COB3' MOTS(15)='MOB ' * JGM=12 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='ALP3' MOTS(5)='ALPM' MOTS(6)='PER1' MOTS(7)='PER2' MOTS(8)='PER3' MOTS(9)='VISC' MOTS(10)='KF ' MOTS(11)='RHOF' MOTS(12)='ALPF' ENDIF ENDIF ELSE * * CAS NON PREVU * IRET=0 GO TO 99 ENDIF ELSEIF (IPLAC.EQ.3)THEN * * MATERIAU ANISOTROPE ELASTIQUE * IF(MFR.EQ.33)THEN * * ELEMENTS MASSIFS * IF(IDIM.EQ.3)THEN * ELEMENTS 3D JGM=34 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='D11 ' MOTS(2)='D21 ' MOTS(3)='D22 ' MOTS(4)='D31 ' MOTS(5)='D32 ' MOTS(6)='D33 ' MOTS(7)='D41 ' MOTS(8)='D42 ' MOTS(9)='D43 ' MOTS(10)='D44 ' MOTS(11)='D51 ' MOTS(12)='D52 ' MOTS(13)='D53 ' MOTS(14)='D54 ' MOTS(15)='D55 ' MOTS(16)='D61 ' MOTS(17)='D62 ' MOTS(18)='D63 ' MOTS(19)='D64 ' MOTS(20)='D65 ' MOTS(21)='D66 ' MOTS(22)='V1X ' MOTS(23)='V1Y ' MOTS(24)='V1Z ' MOTS(25)='V2X ' MOTS(26)='V2Y ' MOTS(27)='V2Z ' MOTS(28)='COB1' MOTS(29)='COB2' MOTS(30)='COB3' MOTS(31)='CO12' MOTS(32)='CO13' MOTS(33)='CO23' MOTS(34)='MOB ' * JGM=18 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='ALP3' MOTS(5)='AL12' MOTS(6)='AL13' MOTS(7)='AL23' MOTS(8)='ALPM' MOTS(9 )='PER1' MOTS(10)='PER2' MOTS(11)='PER3' MOTS(12)='PE12' MOTS(13)='PE13' MOTS(14)='PE23' MOTS(15)='VISC' MOTS(16)='KF ' MOTS(17)='RHOF' MOTS(18)='ALPF' ELSEIF (IDIM.EQ.2) THEN IF (IFOUR.EQ.-2) THEN * CONTRAINTE PLANE JGM=16 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='D11 ' MOTS(2)='D21 ' MOTS(3)='D22 ' MOTS(4)='D41 ' MOTS(5)='D42 ' MOTS(6)='D44 ' MOTS(7)='V1X ' MOTS(8)='V1Y ' MOTS(9 )='COB1' MOTS(10)='COB2' MOTS(11)='CO12' MOTS(12)='MOB ' MOTS(13)='D31 ' MOTS(14)='D32 ' MOTS(15)='D33 ' MOTS(16)='D43 ' * JGM=13 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='AL12' MOTS(5)='ALPM' MOTS(6)='PER1' MOTS(7)='PER2' MOTS(8)='PE12' MOTS(9)='VISC' MOTS(10)='KF ' MOTS(11)='RHOF' MOTS(12)='ALPF' MOTS(13)='DIM3' * ELSEIF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN * DEFORMATION PLANE ,AXISYMETRIE JGM=17 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='D11 ' MOTS(2)='D21 ' MOTS(3)='D22 ' MOTS(4)='D31 ' MOTS(5)='D32 ' MOTS(6)='D33 ' MOTS(7)='D41 ' MOTS(8)='D42 ' MOTS(9)='D43 ' MOTS(10)='D44 ' MOTS(11)='V1X ' MOTS(12)='V1Y ' MOTS(13)='COB1' MOTS(14)='COB2' MOTS(15)='CO12' MOTS(16)='COB3' MOTS(17)='MOB ' * JGM=13 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='AL12' MOTS(5)='ALP3' MOTS(6)='ALPM' MOTS(7)='PER1' MOTS(8)='PER2' MOTS(9)='PE12' MOTS(10)='VISC' MOTS(11)='KF ' MOTS(12)='RHOF' MOTS(13)='ALPF' * ELSEIF (IFOUR.EQ.1) THEN * AXISYMETRIE DE FOURIER JGM=20 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='D11 ' MOTS(2)='D21 ' MOTS(3)='D22 ' MOTS(4)='D31 ' MOTS(5)='D32 ' MOTS(6)='D33 ' MOTS(7)='D41 ' MOTS(8)='D42 ' MOTS(9)='D43 ' MOTS(10)='D44 ' MOTS(11)='D55 ' MOTS(12)='D65 ' MOTS(13)='D66 ' MOTS(14)='V1X ' MOTS(15)='V1Y ' MOTS(16)='COB1' MOTS(17)='COB2' MOTS(18)='CO12' MOTS(19)='COB3' MOTS(20)='MOB ' * JGM=14 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALP1' MOTS(3)='ALP2' MOTS(4)='AL12' MOTS(5)='ALP3' MOTS(6)='ALPM' MOTS(7)='PER1' MOTS(8)='PER2' MOTS(9)='PE12' MOTS(10)='PER3' MOTS(11)='VISC' MOTS(12)='KF ' MOTS(13)='RHOF' MOTS(14)='ALPF' ENDIF ENDIF ELSE * * CAS NON PREVU * IRET=0 GO TO 99 ENDIF ELSEIF (IPLAC.EQ.6) THEN C C MATERIAU ELASTIQUE UNIDIRECTIONNEL C IF(MFR.EQ.33)THEN IF (IDIM.EQ.3) THEN JGM=9 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YOUN' MOTS(2)='V1X ' MOTS(3)='V1Y ' MOTS(4)='V1Z ' MOTS(5)='V2X ' MOTS(6)='V2Y ' MOTS(7)='V2Z ' MOTS(8)='COB ' MOTS(9)='MOB ' ELSE JGM=5 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YOUN' MOTS(2)='V1X ' MOTS(3)='V1Y ' MOTS(4)='COB ' MOTS(5)='MOB ' ENDIF * IF(IFOUR.EQ.-2) THEN JGM=9 ELSE JGM=8 ENDIF SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHO ' MOTS(2)='ALPH' MOTS(3)='ALPM' MOTS(4)='PERM' MOTS(5)='VISC' MOTS(6)='KF ' MOTS(7)='RHOF' MOTS(8)='ALPF' IF(IFOUR.EQ.-2) MOTS(9)='DIM3' ELSE * * CAS NON PREVU * IRET=0 GO TO 99 ENDIF * ENDIF INMAT=3 GOTO 40 ELSE INMAT=2 GOTO 30 ENDIF ENDIF INMAT=0 30 CONTINUE * * CAS MATERIAU POREUX ELASTIQUE ISOTROPE * IF(MELE.GE.79.AND.MELE.LE.83)THEN * JGM=4 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1) ='YOUN' MOTS(2) ='NU ' MOTS(3) ='COB ' MOTS(4) ='MOB ' * IF(IFOUR.EQ.-2) THEN JGM=9 ELSE JGM=8 ENDIF SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHOF' MOTS(2)='ALPF' MOTS(3)='ALPM' MOTS(4)='PERM' MOTS(5)='VISC' MOTS(6)='KF ' MOTS(7)='RHO ' MOTS(8)='ALPH' IF(IFOUR.EQ.-2) MOTS(9)='DIM3' * ELSEIF(MELE.GE.108.AND.MELE.LE.110)THEN * * CAS DES JOINTS POREUX ISOTROPES (VALABLE EN 2D COMME EN 3D) * JGM=4 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='KS ' MOTS(2)='KN ' MOTS(3)='COB ' MOTS(4)='MOB ' * JGM=4 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='PERT' MOTS(2)='PERH' MOTS(3)='PERB' MOTS(4)='VISC' * ELSEIF(MELE.GE.173.AND.MELE.LE.177)THEN * JGM=10 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1) ='YOUN' MOTS(2) ='NU ' MOTS(3) ='COP1' MOTS(4) ='COP2' MOTS(5) ='CPP1' MOTS(6) ='CPP2' MOTS(7) ='KK11' MOTS(8) ='KK12' MOTS(9) ='KK21' MOTS(10)='KK22' * IF(IFOUR.EQ.-2) THEN JGM=9 ELSE JGM=8 ENDIF SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHOF' MOTS(2)='ALPF' MOTS(3)='ALPM' MOTS(4)='PK11' MOTS(5)='PK12' MOTS(6)='PK21' MOTS(7)='PK22' MOTS(8)='ALPH' IF(IFOUR.EQ.-2) MOTS(9)='DIM3' * ELSEIF(MELE.GE.185.AND.MELE.LE.187)THEN * * CAS DES JOINTS POREUX ISOTROPES (VALABLE EN 2D COMME EN 3D) * JGM=4 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='KS ' MOTS(2)='KN ' MOTS(3)='COB ' MOTS(4)='MOB ' * JGM=4 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='PERT' MOTS(2)='PERH' MOTS(3)='PERB' MOTS(4)='VISC' * ELSEIF(MELE.GE.178.AND.MELE.LE.182)THEN * JGM=17 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='YOUN' MOTS(2)='NU ' MOTS(3)='COP1' MOTS(4)='COP2' MOTS(5)='COP3' MOTS(6)='CPP1' MOTS(7)='CPP2' MOTS(8)='CPP3' MOTS(9)='KK11' MOTS(10)='KK12' MOTS(11)='KK13' MOTS(12)='KK21' MOTS(13)='KK22' MOTS(14)='KK23' MOTS(15)='KK31' MOTS(16)='KK32' MOTS(17)='KK33' * IF(IFOUR.EQ.-2) THEN JGM=15 ELSE JGM=14 ENDIF SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='RHOF' MOTS(2)='ALPF' MOTS(3)='ALPM' MOTS(4)='PK11' MOTS(5)='PK12' MOTS(6)='PK13' MOTS(7)='PK21' MOTS(8)='PK22' MOTS(9)='PK23' MOTS(10)='PK31' MOTS(11)='PK32' MOTS(12)='PK33' MOTS(13)='RHO ' MOTS(14)='ALPH' IF(IFOUR.EQ.-2) MOTS(15)='DIM3' * ELSEIF(MELE.GE.188.AND.MELE.LE.190)THEN * * CAS DES JOINTS POREUX ISOTROPES (VALABLE EN 2D COMME EN 3D) * JGM=4 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='KS ' MOTS(2)='KN ' MOTS(3)='COB ' MOTS(4)='MOB ' * JGM=4 SEGINI MLMOTS MOFAC=MLMOTS MOTS(1)='PERT' MOTS(2)='PERH' MOTS(3)='PERB' MOTS(4)='VISC' * * ENDIF * IF (INMAT.EQ.0) GOTO 9999 * 40 CONTINUE IF (NMAT.GE.INMAT) THEN CALL MODNLI(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.1) THEN INMAT=INMAT+1 CALL MODPLA(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.0) THEN * ISOTROPE IPLAC=1 * ELSE * INMAT=INMAT+1 ENDIF CALL IDPLAS(MFR,MOOBL,MOFAC,IPLAC,IRET) IF (IRET.EQ.0) GOTO 99 ELSEIF (IPLAC.EQ.2) THEN INMAT=INMAT+1 CALL MODFLU(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.0) THEN * NORTON IPLAC=1 * ELSE * INMAT=INMAT+1 ENDIF CALL IDFLUA(MFR,MOOBL,MOFAC,IPLAC,IRET) IF (IRET.EQ.0) GOTO 99 ELSEIF (IPLAC.EQ.3) THEN INMAT=INMAT+1 CALL MODVIS(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.0) THEN * CHABOCHE IPLAC=2 * ELSE * INMAT=INMAT+1 ENDIF CALL IDVISC(MFR,MOOBL,MOFAC,IPLAC,IRET) IF (IRET.EQ.0) GOTO 99 ELSEIF (IPLAC.EQ.4) THEN INMAT=INMAT+1 CALL MODEND(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(INMAT)) IF (IPLAC.EQ.0) THEN * MAZARS IPLAC=1 * ELSE * INMAT=INMAT+1 ENDIF CALL IDENDO(MFR,MOOBL,MOFAC,IPLAC,IRET) IF (IRET.EQ.0) GOTO 99 ELSE GOTO 99 ENDIF * * En cas de creation de materiaux combinant plusieurs materiaux * deja existant Ex ELASTIQUE ISOTROPE PLASTIQUE PARFAIT FLUAGE N * GOTO 40 * GOTO 9999 ENDIF GOTO 9999 ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION FROTTEMENT *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ICONV,'CONTACT') IF (ICONV.NE.0) THEN * INMAT=0 iplla=0 CALL MODFRO(MOMODL,NMOD) do iou=1,matmod(/2) CALL PLACE(MOMODL(4),2,IPLAC,MATMOD(iou)) iplla=max( iplac,iplla) enddo IF(IPlla.EQ.0) GO TO 99 CALL IDFRO(MOOBL,MOFAC,IPlla,IRET) IF (IRET.EQ.0) GOTO 99 * GOTO 9999 ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION RAYONNEMENT *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ICONV,'RAYONNEMENT') IF (ICONV.NE.0) THEN * IF(MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN JGM=2 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='EINF' MOTS(2)='ESUP' ELSE * JGM=1 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='EMIS' ENDIF * GOTO 9999 ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION MAGNETODYNAMIQUE *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ICONV,'MAGNETODYNAMIQUE') IF (ICONV.NE.0) THEN * * FORMULATION EN COQUES IF(MFR.EQ.3) THEN CALL PLACE(MATMOD,NMAT,ISOT,'ISOTROPE') IF(ISOT.NE.0) THEN JGM=3 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='ETA' MOTS(2)='PERM' MOTS(3)='EPAI' ELSE CALL PLACE(MATMOD,NMAT,IORTH,'ORTHOTROPE') IF(IORTH.NE.0) THEN JGM=4 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='ETA1' MOTS(2)='ETA2' MOTS(3)='PERM' MOTS(4)='EPAI' ENDIF ENDIF ENDIF * GOTO 9999 ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION FISSURE *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ICONV,'FISSURE') IF (ICONV.NE.0) THEN * * si POISEU_BLASIUS ou POISEU_COLEBROOK ou par defaut JGM=1 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='RUGO' * si FROTTEMENT1 ou FROTTEMENT2 CALL PLACE(MATMOD,NMAT,IFT1,'FROTTEMENT1') CALL PLACE(MATMOD,NMAT,IFT2,'FROTTEMENT2') IF(IFT1.NE.0.OR.IFT2.NE.0) THEN JGM=7 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='RUGO' MOTS(2)='REC' MOTS(3)='FK' MOTS(4)='FA' MOTS(5)='FB' MOTS(6)='FC' MOTS(7)='FD' ELSE * si FROTTEMENT3 ou FROTTEMENT4 CALL PLACE(MATMOD,NMAT,IFT1,'FROTTEMENT3') CALL PLACE(MATMOD,NMAT,IFT2,'FROTTEMENT4') IF(IFT1.NE.0.OR.IFT2.NE.0) THEN JGM=2 SEGINI MLMOTS MOOBL=MLMOTS MOTS(1)='RUGO' MOTS(2)='FK' ENDIF ENDIF * GOTO 9999 ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION MELANGE *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ICONV,'MELANGE') IF (ICONV.NE.0) THEN CALL MODMEL(MOMODL,NMOD) CALL PLACE(MOMODL,NMOD,IPLAC,MATMOD(1)) * write(6,*) ' iplac' , iplac if (iplac.eq.0) goto 99 INMAT=1 * * a priori elements massifs ou coques : pas de verif * JGM = 0 SEGINI MLMOTS MOOBL = MLMOTS SEGINI MLMOTS MOFAC = MLMOTS IF (IPLAC.NE.3.AND.IPLAC.NE.4) THEN CALL IDMETA(MFR,MOOBL,MOFAC,IPLAC,IRET) IF (IRET.EQ.0) GOTO 99 * construit les noms de composante en PARALLELE ou en SERIE ELSEIF (iplac.eq.3.or.iplac.eq.4) THEN mlmots = moobl segsup mlmots jgm = ivamod(/1) * write(6,*) ' jgm ', jgm segini mlmots kc1 = 0 do ic1 = 1,jgm if (tymode(ic1).eq.'IMODEL') then imode2 = ivamod(ic1) segact imode2 lozut = .false. * write(6,*) ' imode2.phamod(1:4) ',imode2.phamod(1:4) if (kc1.ge.1) then do kkc1 = 1, kc1 if (imode2.conmod(17:20).eq.mots(kkc1)) lozut = .true. enddo endif if (.not.lozut) then kc1 = kc1 + 1 mots(kc1) = imode2.conmod(17:20) endif segdes imode2 endif enddo jgm = kc1 segadj mlmots moobl = mlmots ENDIF * GOTO 9999 ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION LIAISON *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,ICONV,'LIAISON') IF (ICONV.NE.0) THEN iplac = imatee if (iplac.eq.0) goto 99 * JGM = 0 SEGINI MLMOTS MOOBL = MLMOTS SEGINI MLMOTS MOFAC = MLMOTS * 'SORT' facultatif dans tous les cas * IF (iplac.EQ.1) THEN *PO_PL_FL MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+7 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='INER' MOTS(JGM0 + 3) ='CONV' MOTS(JGM0 + 4) ='VISC' MOTS(JGM0 + 5) ='PELO' MOTS(JGM0 + 6) ='PRAP' MOTS(JGM0 + 7) ='JFLU' ELSEIF (iplac.eq.2) then *PO_PL_FR MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+7 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='RAID' MOTS(JGM0 + 3) ='JEU' MOTS(JGM0 + 4) ='GLIS' MOTS(JGM0 + 5) ='ADHE' MOTS(JGM0 + 6) ='RTAN' MOTS(JGM0 + 7) ='ATAN' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+2 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' MOTS(JGM0+2) = 'LOIC' ELSEIF (iplac.eq.3) then *PO_PL MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+3 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='RAID' MOTS(JGM0 + 3) ='JEU' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+4 SEGADJ MLMOTS MOTS(JGM0+1) = 'LOIC' MOTS(JGM0+2) = 'PERM' MOTS(JGM0 + 3) ='SPLA' MOTS(JGM0 + 4) ='AMOR' ELSEIF (iplac.eq.4) then *PO_PO_FR MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+8 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='RAID' MOTS(JGM0 + 3) ='JEU' MOTS(JGM0 + 4) ='POIB' MOTS(JGM0 + 5) ='ADHE' MOTS(JGM0 + 6) ='RTAN' MOTS(JGM0 + 7) ='ATAN' MOTS(JGM0 + 8) ='GLIS' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+3 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' MOTS(JGM0+2) = 'LOIC' MOTS(JGM0+3) = 'MODE' ELSEIF (iplac.eq.5) then *PO_PO_DP MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+6 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='ECRO' MOTS(JGM0 + 3) ='JEU' MOTS(JGM0 + 4) ='POIB' MOTS(JGM0 + 5) ='PERM' MOTS(JGM0 + 6) = 'LOIC' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+1 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' ELSEIF (iplac.eq.6) then *PO_PO_RP MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+6 SEGADJ MLMOTS MOTS(JGM0 + 1) ='AXRO' MOTS(JGM0 + 2) ='ECRO' MOTS(JGM0 + 3) ='JEU' MOTS(JGM0 + 4) ='POIB' MOTS(JGM0 + 5) ='PERM' MOTS(JGM0 + 6) = 'LOIC' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+2 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' MOTS(JGM0+2) = 'ELAS' ELSEIF (iplac.eq.7) then *PO_PO MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+5 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='RAID' MOTS(JGM0 + 3) ='JEU' MOTS(JGM0 + 4) ='POIB' MOTS(JGM0 + 5) ='PERM' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+2 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' MOTS(JGM0+2) = 'LOIC' ELSEIF (iplac.eq.8) then *PO_CE_MO MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+8 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='RAID' MOTS(JGM0 + 3) ='PCER' MOTS(JGM0 + 4) ='RAYO' MOTS(JGM0 + 5) ='GLIS' MOTS(JGM0 + 6) ='ADHE' MOTS(JGM0 + 7) ='RTAN' MOTS(JGM0 + 8) ='ATAN' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+2 SEGADJ MLMOTS MOTS(JGM0+1) = 'CINT' MOTS(JGM0+2) = 'AMOR' ELSEIF (iplac.eq.9) then *PO_CE_FR MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+8 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='RAID' MOTS(JGM0 + 3) ='EXCE' MOTS(JGM0 + 4) ='RAYO' MOTS(JGM0 + 5) ='GLIS' MOTS(JGM0 + 6) ='ADHE' MOTS(JGM0 + 7) ='RTAN' MOTS(JGM0 + 8) ='ATAN' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+2 SEGADJ MLMOTS MOTS(JGM0+1) = 'CINT' MOTS(JGM0+2) = 'AMOR' ELSEIF (iplac.eq.10) then *PO_CE MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+4 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='RAID' MOTS(JGM0 + 3) ='EXCE' MOTS(JGM0 + 4) ='RAYO' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+1 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' ELSEIF (iplac.eq.11) then *CE_PL_FR MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+8 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='RAID' MOTS(JGM0 + 3) ='JEU' MOTS(JGM0 + 4) ='RAYS' MOTS(JGM0 + 5) ='GLIS' MOTS(JGM0 + 6) ='ADHE' MOTS(JGM0 + 7) ='RTAN' MOTS(JGM0 + 8) ='ATAN' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+1 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' ELSEIF (iplac.eq.12) then *CE_CE_FR MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+9 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='RAID' MOTS(JGM0 + 3) ='EXCE' MOTS(JGM0 + 4) ='RAYS' MOTS(JGM0 + 5) ='GLIS' MOTS(JGM0 + 6) ='ADHE' MOTS(JGM0 + 7) ='RTAN' MOTS(JGM0 + 8) ='ATAN' MOTS(JGM0 + 9) ='RAYB' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+2 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' MOTS(JGM0+2) = 'CINT' ELSEIF (iplac.eq.13.or.iplac.eq.14) then *PR_PR_IN ou PR_PR_EX MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+5 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='RAID' MOTS(JGM0 + 3) ='PFIX' MOTS(JGM0 + 4) ='PMOB' MOTS(JGM0 + 5) ='ERAI' ELSEIF (iplac.eq.15) then *LI_LI_FR MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+9 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='LIMA' MOTS(JGM0 + 3) ='LIES' MOTS(JGM0 + 4) ='RAID' MOTS(JGM0 + 5) ='GLIS' MOTS(JGM0 + 6) ='ADHE' MOTS(JGM0 + 7) ='RTAN' MOTS(JGM0 + 8) ='ATAN' MOTS(JGM0 + 9) ='JEU' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+3 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' MOTS(JGM0+2) = 'RECH' MOTS(JGM0+3) = 'SYME' ELSEIF (iplac.eq.16) then *LI_CE_FR MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+8 SEGADJ MLMOTS MOTS(JGM0 + 1) ='NORM' MOTS(JGM0 + 2) ='LIMA' MOTS(JGM0 + 3) ='LIES' MOTS(JGM0 + 4) ='RAID' MOTS(JGM0 + 5) ='GLIS' MOTS(JGM0 + 6) ='ADHE' MOTS(JGM0 + 7) ='RTAN' MOTS(JGM0 + 8) ='ATAN' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+5 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' MOTS(JGM0+2) = 'RECH' MOTS(JGM0+3) = 'RAYO' MOTS(JGM0+4) = 'ACTN' MOTS(JGM0+5) = 'INVE' ELSEIF (iplac.eq.17) then *PA_FL_RO MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+10 SEGADJ MLMOTS MOTS(JGM0 + 1) ='LONG' MOTS(JGM0 + 2) ='RAYO' MOTS(JGM0 + 3) ='VISC' MOTS(JGM0 + 4) ='RHOF' MOTS(JGM0 + 5) ='PADM' MOTS(JGM0 + 6) ='VROT' MOTS(JGM0 + 7) ='EPSI' MOTS(JGM0 + 8) ='PHII' MOTS(JGM0 + 9) ='AFFI' MOTS(JGM0 + 10) ='TLOB' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+1 SEGADJ MLMOTS MOTS(JGM0+1) = 'AMOR' ELSEIF (iplac.eq.23) then *NEWMARK MODAL MLMOTS = MOOBL JGM0 = MOTS(/2) JGM = MOTS(/2)+1 SEGADJ MLMOTS MOTS(JGM0 + 1) ='JEU' MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = MOTS(/2)+3 SEGADJ MLMOTS MOTS(JGM0+1) = 'EXCE' MOTS(JGM0+2) = 'FROT' MOTS(JGM0+3) = 'MOFR' ENDIF * * 'SORT' facultatif dans tous les cas MLMOTS = MOFAC JGM0 = MOTS(/2) JGM = JGM0+1 SEGADJ MLMOTS MOTS(JGM0+1) = 'SORT' * GOTO 9999 ENDIF *-------------------------------------------------------------------- * CAS DE LA FORMULATION ELECTROSTATIQUE *-------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,IELEC,'ELECTROSTATIQUE') IF (IELEC.NE.0) THEN C -- Permittivite isotrope IF (IMATEE.EQ.1) THEN C* IF (CMATEE.EQ.'ISOTROPE') THEN C* IF (MATMOD(1).EQ.'ISOTROPE ') THEN JGM = 1 SEGINI,MLMOTS MOOBL = MLMOTS MOTS(1)='PEL ' C -- Permittivite orthotrope ELSEIF (IMATEE.EQ.2) THEN C* ELSEIF (CMATEE.EQ.'ORTHOTRO') THEN C* ELSEIF (MATMOD(1).EQ.'ORTHOTROPE ') THEN C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE IF (IDIM.EQ.2) THEN IF (IFOMOD.NE.1) THEN JGM = 4 SEGINI,MLMOTS MOOBL = MLMOTS MOTS(1) = 'PE1 ' MOTS(2) = 'PE2 ' MOTS(3) = 'V1X ' MOTS(4) = 'V1Y ' C ---- Elements massifs bidimensionnels FOURIER ELSE JGM = 5 SEGINI,MLMOTS MOOBL = MLMOTS MOTS(1) = 'PE1 ' MOTS(2) = 'PE2 ' MOTS(3) = 'PE3 ' MOTS(4) = 'V1X ' MOTS(5) = 'V1Y ' ENDIF C ---- Elements massifs TRIDimensionnels ELSEIF (IDIM.EQ.3) THEN JGM = 9 SEGINI,MLMOTS MOOBL = MLMOTS MOTS(1) = 'PE1 ' MOTS(2) = 'PE2 ' MOTS(3) = 'PE3 ' MOTS(4) = 'V1X ' MOTS(5) = 'V1Y ' MOTS(6) = 'V1Z ' MOTS(7) = 'V2X ' MOTS(8) = 'V2Y ' MOTS(9) = 'V2Z ' ENDIF C -- Permittivite anisotrope ELSEIF (IMATEE.EQ.3) THEN C* ELSEIF (CMATEE.EQ.'ANISOTRO') THEN C* ELSEIF (MATMOD(1).EQ.'ANISOTROPE ') THEN C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE IF (IDIM.EQ.2) THEN IF (IFOMOD.NE.1) THEN JGM = 5 SEGINI,MLMOTS MOOBL = MLMOTS MOTS(1) = 'PE11 ' MOTS(2) = 'PE22 ' MOTS(3) = 'PE21 ' MOTS(4) = 'V1X ' MOTS(5) = 'V1Y ' C ---- Elements massifs bidimensionnels FOURIER ELSE JGM = 6 SEGINI,MLMOTS MOOBL=MLMOTS MOTS(1) = 'PE11 ' MOTS(2) = 'PE22 ' MOTS(3) = 'PE21 ' MOTS(4) = 'PE33 ' MOTS(5) = 'V1X ' MOTS(6) = 'V1Y ' ENDIF C ---- Elements massifs TRIDimensionnels ELSEIF (IDIM.EQ.3) THEN JGM = 12 SEGINI,MLMOTS MOOBL = MLMOTS MOTS( 1) = 'PE11 ' MOTS( 2) = 'PE22 ' MOTS( 3) = 'PE33 ' MOTS( 4) = 'PE21 ' MOTS( 5) = 'PE31 ' MOTS( 6) = 'PE32 ' MOTS( 7) = 'V1X ' MOTS( 8) = 'V1Y ' MOTS( 9) = 'V1Z ' MOTS(10) = 'V2X ' MOTS(11) = 'V2Y ' MOTS(12) = 'V2Z ' ENDIF ELSE CALL ERREUR(5) RETURN ENDIF ENDIF * *----------------------------------------------------------------------- * CAS DE LA FORMULATION 'DIFFUSION' *----------------------------------------------------------------------- CALL PLACE(FORMOD,NFOR,IDIFF,'DIFFUSION') IF (IDIFF.NE.0) THEN IMATE = IMATEE IPLAC = INATUU C -- Diffusion lineaire (composantes obligatoires) CALL IDDILI(IMATE,0, MOOBL,NBROBL,NBRFAC) IF (MOOBL.EQ.0) GOTO 99 C -- "Capacite" si necessaire JGM = 1 SEGINI,MLMOTS MOFAC = MLMOTS C*8 MOTS(1) = 'CDIFF ' MOTS(1) = 'CDIF ' C -- Modeles non lineaires de diffusion CALL IDDIFF(IMATE,MOOBL,MOFAC,IPLAC,IRET) IF (IRET.EQ.0) GOTO 99 GOTO 9999 ENDIF * *-------------------------------------------------------------------- 9999 CONTINUE C IF (MOOBL.NE.0) THEN MLMOTS=MOOBL NBROBL=MOTS(/2) C*? if (nbrobl.lt.0) goto 99 ENDIF IF (MOFAC.NE.0) THEN MLMOTS=MOFAC NBRFAC=MOTS(/2) C*? if (nbrfac.lt.0) goto 99 ENDIF SEGINI,NOMID MLMOTS=MOOBL DO 100 IO=1,NBROBL LESOBL(IO)=MOTS(IO) 100 CONTINUE SEGSUP,MLMOTS MLMOTS=MOFAC DO 110 IO=1,NBRFAC LESFAC(IO)=MOTS(IO) 110 CONTINUE SEGSUP,MLMOTS IPNOMC=NOMID SEGDES,NOMID RETURN * * SI PROBLEME , ON SORT AVEC IPNOMC A 0 * 99 IPNOMC=0 RETURN END