idprim
C IDPRIM SOURCE MB234859 25/08/04 21:15:20 12339 C======================================================================= C= DEFINITION DES NOMS DE COMPOSANTES PRIMALES = C= ------------------------------------------- = C= = C= Entrees : = C= IPMODE Pointeur sur un MMODEL.KMODEL = C= MFR0 Numero de Formulation = C= - Sert seulement si different de celui calcule avec IMODEL = C= = C= Sorties : = C= IPNOMC pointeur de type NOMID sur les listes de noms de = C= composantes OBLigatoires et FACultatives = C= NBROBL Nombre de composantes OBLIGATOIRES = C= NBRFAC Nombre de composantes FACULTATIVES = C= = C= Remarque : Voir INOMID ou CCOPTIO pour signification IFOUR = C======================================================================= C C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C -INC PPARAM -INC CCOPTIO C==DEB= FORMULATION HHO == Include specifique ========================== -INC CCHHOPA C==FIN= FORMULATION HHO ================================================ -INC SMMODEL -INC SMLMOTS C CHARACTER*(LOCOMP) CCOMP EXTERNAL LONG C NBROBL=0 NBRFAC=0 C IMODEL=IPMODE MELE =IMODEL.NEFMOD NOMID =IMODEL.LNOMID(1) C C Ne pas recreer le NOMID si deja present IF(NOMID.NE.0 .AND. (MFR.EQ.MFR0))THEN NBROBL=LESOBL(/2) NBRFAC=LESFAC(/2) IPNOMC=NOMID RETURN ENDIF C MFR =MFR0 MFR2=NUMFOR(IMODEL) * * MACRO ELEMENT * IF (MFR.EQ.61)THEN IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='RZ ' LESOBL(4)='UM ' LESOBL(5)='RM ' ENDIF C ================================================================= C FORMULATION THERMOHYDRIQUE C ================================================================= ELSE IF (MFR2.EQ.65) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='PG ' LESOBL(2)='PC ' LESOBL(3)='T ' C ================================================================= C FORMULATION MECANIQUE/CHARGEMENT/LIAISON/MELANGE/NAVIER_STOKES C ================================================================= ELSE IF (MFR2.EQ.2.OR.MFR2.EQ.72.OR.MFR2.EQ.24.OR.MFR2.EQ.38 & .OR. MFR2.EQ.52) THEN C C Cas particuliers C ================ IF (MFR.EQ.26) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='ALFA' ELSE IF (MFR.EQ.28) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='BETA' C C Elements MASSIFS, MEMBRANE, UNIAXIALE C ===================================== ELSE IF (MFR.EQ.1 .OR. MFR.EQ.25 .OR. MFR.EQ.27 .OR. MFR.EQ.31 & .OR. MFR.EQ.52) THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' ELSE IF (IFOUR.EQ.0) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' ELSE IF (IFOUR.EQ.1) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' ELSE IF (IFOUR.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' ELSE IF (IFOUR.EQ.-3) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='RY ' LESOBL(5)='RX ' ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15.AND.MFR.EQ.1) THEN IF (IFOUR.LE.6) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='UX ' ELSE IF (IFOUR.EQ.7.OR.IFOUR.EQ.8) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' ELSE IF (IFOUR.EQ.9.OR.IFOUR.EQ.10) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UZ ' ELSE IF (IFOUR.EQ.11) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' ELSE IF (IFOUR.EQ.12.OR.IFOUR.EQ.13.OR.IFOUR.EQ.15) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='UR ' ELSE IF (IFOUR.EQ.14) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' ENDIF ENDIF C C Elements COQUE/POUTRE/TUYAU C =========================== ELSE IF (MFR.EQ.3 .OR. MFR.EQ.5 .OR. MFR.EQ.7 .OR. MFR.EQ.9 & .OR. MFR.EQ.13 .OR. MFR.EQ.15.OR. MFR.EQ.17 .OR. MFR.EQ.49 & .OR. MFR.EQ.51 .OR. MFR.EQ.75) THEN IF (IFOUR.EQ.2) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='RX ' LESOBL(5)='RY ' LESOBL(6)='RZ ' ELSE IF (IFOUR.EQ.1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' LESOBL(4)='RT ' ELSE IF (IFOUR.EQ.0) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='RT ' ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='RZ ' ELSE IF (IFOUR.EQ.-3) THEN IF (MFR.EQ.3 .OR. MFR.EQ.5) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='RZ ' LESOBL(4)='UZ ' LESOBL(5)='RY ' LESOBL(6)='RX ' ELSE NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='RZ ' ENDIF ENDIF C C Element JOINT, JOINT CISAILLEMENT,JOINT GENERALISE, COS2 C =============================================================== ELSE IF (MFR.EQ.35.OR.MFR.EQ.53.OR.MFR.EQ.55.OR.MFR.EQ.78) THEN IF (IFOUR.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' ELSE IF (IFOUR.EQ.0) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' ENDIF C C Elements HOMOGENEISE C ===================== ELSE IF (MFR.EQ.37) THEN IF (IFOUR.EQ.1) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' LESOBL(3)='UR ' LESOBL(4)='RT ' LESOBL(5)='UT ' LESOBL(6)='RR ' ELSE IF (IFOUR.EQ.0) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' LESOBL(3)='UR ' LESOBL(4)='RT ' ELSE IF (IFOUR.EQ.2) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' LESOBL(3)='UX ' LESOBL(4)='RY ' LESOBL(5)='UY ' LESOBL(6)='RX ' ELSE NBROBL=4 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' LESOBL(3)='UX ' LESOBL(4)='UY ' ENDIF C C Elements TUYO C ============= ELSE IF (MFR.EQ.39) THEN NBROBL=6+9 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='RX ' LESOBL(5)='RY ' LESOBL(6)='RZ ' LESOBL(7)='W0 ' LESOBL(8)='U1 ' LESOBL(9)='U2 ' LESOBL(10)='U3 ' LESOBL(11)='U4 ' LESOBL(12)='W1 ' LESOBL(13)='W2 ' LESOBL(14)='W3 ' LESOBL(15)='W4 ' C C Elements ZONE_COHESIVE C ====================== ELSE IF (MFR.EQ.77) THEN C Element ZCO2 (xfem meca rupture en 2D) IF(IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=2 NBRFAC=18 SEGINI,NOMID LESOBL(1)='AX ' LESOBL(2)='AY ' LESFAC(1)='UX ' LESFAC(2)='UY ' LESFAC(3)='B1X ' LESFAC(4)='B1Y ' LESFAC(5)='C1X ' LESFAC(6)='C1Y ' LESFAC(7)='D1X ' LESFAC(8)='D1Y ' LESFAC(9)='E1X ' LESFAC(10)='E1Y ' LESFAC(11)='B2X ' LESFAC(12)='B2Y ' LESFAC(13)='C2X ' LESFAC(14)='C2Y ' LESFAC(15)='D2X ' LESFAC(16)='D2Y ' LESFAC(17)='E2X ' LESFAC(18)='E2Y ' C Elements ZCO3 et ZCO4 (xfem meca rupture en 3D) ELSE IF (IFOUR.EQ.2) THEN NBROBL=3 NBRFAC=27 SEGINI,NOMID LESOBL(1)='AX ' LESOBL(2)='AY ' LESOBL(3)='AZ ' LESFAC(1)='UX ' LESFAC(2)='UY ' LESFAC(3)='UZ ' LESFAC(4)='B1X ' LESFAC(5)='B1Y ' LESFAC(6)='B1Z ' LESFAC(7)='C1X ' LESFAC(8)='C1Y ' LESFAC(9)='C1Z ' LESFAC(10)='D1X ' LESFAC(11)='D1Y ' LESFAC(12)='D1Z ' LESFAC(13)='E1X ' LESFAC(14)='E1Y ' LESFAC(15)='E1Z ' LESFAC(16)='B2X ' LESFAC(17)='B2Y ' LESFAC(18)='B2Z ' LESFAC(19)='C2X ' LESFAC(20)='C2Y ' LESFAC(21)='C2Z ' LESFAC(22)='D2X ' LESFAC(23)='D2Y ' LESFAC(24)='D2Z ' LESFAC(25)='E2X ' LESFAC(26)='E2Y ' LESFAC(27)='E2Z ' ENDIF C C Element XFEM C ============ ELSE IF (MFR.EQ.63) THEN CTY Element XQ4R (xfem meca rupture en 2D) IF(IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=2 NBRFAC=18 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESFAC(1)='AX ' LESFAC(2)='AY ' LESFAC(3)='B1X ' LESFAC(4)='B1Y ' LESFAC(5)='C1X ' LESFAC(6)='C1Y ' LESFAC(7)='D1X ' LESFAC(8)='D1Y ' LESFAC(9)='E1X ' LESFAC(10)='E1Y ' LESFAC(11)='B2X ' LESFAC(12)='B2Y ' LESFAC(13)='C2X ' LESFAC(14)='C2Y ' LESFAC(15)='D2X ' LESFAC(16)='D2Y ' LESFAC(17)='E2X ' LESFAC(18)='E2Y ' CTY Element XC8R (xfem meca rupture en 3D) ELSE IF (IFOUR.EQ.2) THEN NBROBL=3 NBRFAC=27 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESFAC(1)='AX ' LESFAC(2)='AY ' LESFAC(3)='AZ ' LESFAC(4)='B1X ' LESFAC(5)='B1Y ' LESFAC(6)='B1Z ' LESFAC(7)='C1X ' LESFAC(8)='C1Y ' LESFAC(9)='C1Z ' LESFAC(10)='D1X ' LESFAC(11)='D1Y ' LESFAC(12)='D1Z ' LESFAC(13)='E1X ' LESFAC(14)='E1Y ' LESFAC(15)='E1Z ' LESFAC(16)='B2X ' LESFAC(17)='B2Y ' LESFAC(18)='B2Z ' LESFAC(19)='C2X ' LESFAC(20)='C2Y ' LESFAC(21)='C2Z ' LESFAC(22)='D2X ' LESFAC(23)='D2Y ' LESFAC(24)='D2Z ' LESFAC(25)='E2X ' LESFAC(26)='E2Y ' LESFAC(27)='E2Z ' ENDIF ENDIF C ================================================================= C FORMULATION LIQUIDE C ================================================================= ELSE IF (MFR2.EQ.11) THEN C C Elements LIQUIDE C ================ IF (MFR.EQ.11) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' C C Elements TUYAU ACOUSTIQUE PUR C ============================= ELSE IF (MFR.EQ.41) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='PI ' LESOBL(2)='P ' C C Elements SURFACE LIBRE C ====================== ELSE IF (MFR.EQ.23) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' LESOBL(3)='UZ ' ENDIF C ================================================================= C FORMULATION MECANIQUE+LIQUID C ================================================================= ELSE IF (MFR2.EQ.44) THEN C C Element de RACCORD LITU C ======================= IF (MFR.EQ.43) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='PI ' LESOBL(5)='P ' C C Element de RACCORD C ================== ELSE IF (MFR.EQ.19.OR.MFR.EQ.21) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' C C Element de RACCORD MASSIF (2e serie de composantes) C ==================================================== ELSE IF (MFR.EQ.1019) THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' ELSE IF (IFOUR.EQ.0) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' ELSE IF (IFOUR.EQ.1) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' ENDIF C C Element de RACCORD COQUE (2e serie de composantes) C ================================================== ELSE IF (MFR.EQ.1021) THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='RZ ' ELSE IF (IFOUR.EQ.0) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='RT ' ELSE IF (IFOUR.EQ.1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' LESOBL(4)='RT ' ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='RX ' LESOBL(5)='RY ' LESOBL(6)='RZ ' ENDIF ENDIF C ================================================================= C FORMULATION POREUX C ================================================================= ELSE IF (MFR2.EQ.33) THEN C C Element POREUX C ============== IF (MFR.EQ.33) THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='P ' ELSE IF (IFOUR.EQ.0) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='P ' ELSE IF (IFOUR.EQ.1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' LESOBL(4)='P ' ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='P ' ENDIF C C Element POREUX type Q C ===================== ELSE IF (MFR.EQ.57) THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='P ' LESOBL(4)='PQ ' ELSE IF (IFOUR.EQ.0) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='P ' LESOBL(4)='PQ ' ELSE IF (IFOUR.EQ.1) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' LESOBL(4)='P ' LESOBL(5)='PQ ' ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='P ' LESOBL(5)='PQ ' ENDIF C C Element POREUX type R C ===================== ELSE IF (MFR.EQ.59) THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='P ' LESOBL(4)='PQ ' LESOBL(5)='TP ' ELSE IF (IFOUR.EQ.0) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='P ' LESOBL(4)='PQ ' LESOBL(5)='TP ' ELSE IF (IFOUR.EQ.1) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' LESOBL(4)='P ' LESOBL(5)='PQ ' LESOBL(6)='TP ' ELSE IF(IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='P ' LESOBL(5)='PQ ' LESOBL(6)='TP ' ENDIF ENDIF C ================================================================= C FORMULATION ELECTROSTATIQUE C ================================================================= ELSE IF (MFR2.EQ.71) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='VEL ' C ================================================================= C FORMULATION HHO (SEULEMENT 2D (CP/DP) et 3D C ================================================================= ELSE IF (MFR2.EQ.HHO_MFR_ELEMENT) THEN i_d_c = IDIM n_o_c = ABS(imodel.INFMOD(12)) n_d_c = n_o_c * i_d_c n_o_f = ABS(imodel.INFMOD( 9)) n_d_f = n_o_f * i_d_c NBROBL = n_d_c + n_d_f NBRFAC = 0 SEGINI,NOMID j1 = 1 n_o_c = n_o_c - 1 IF (IFOUR.EQ.-2 .OR. IFOUR.EQ.-1) THEN DO i = 0, n_o_c c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'UX_HC_',i c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'UY_HC_',i WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'UXC',i,' ' END DO ELSE IF (IFOUR.EQ.2) THEN DO i = 0, n_o_c c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'UX_HC_',i c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'UY_HC_',i c*** WRITE(LESOBL(j3+i),'(A6,I2.2)') 'UZ_HC_',i WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'UXC',i,' ' WRITE(LESOBL(j3+i),'(A3,I1.1,A4)') 'UZC',i,' ' END DO ELSE write(ioimp,*) 'IDPRIM - HHO - IFOUR not implemented' RETURN END IF j1 = n_d_c + 1 n_o_f = n_o_f - 1 IF (IFOUR.EQ.-2 .OR. IFOUR.EQ.-1) THEN DO i = 0, n_o_f c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'UX_HF_',i c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'UY_HF_',i WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'UXF',i,' ' END DO ELSE IF (IFOUR.EQ.2) THEN DO i = 0, n_o_f c*** WRITE(LESOBL(j1+i),'(A6,I2.2)') 'UX_HF_',i c*** WRITE(LESOBL(j2+i),'(A6,I2.2)') 'UY_HF_',i c*** WRITE(LESOBL(j3+i),'(A6,I2.2)') 'UZ_HF_',i WRITE(LESOBL(j1+i),'(A3,I1.1,A4)') 'UXF',i,' ' WRITE(LESOBL(j3+i),'(A3,I1.1,A4)') 'UZF',i,' ' END DO END IF C ================================================================= C FORMULATION THERMIQUE C ================================================================= ELSE IF (MFR2.EQ.29) THEN C C Elements COQUE C ============== IF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN NPINT=infmod(1) IF(NPINT.EQ.0) THEN NBROBL=3 SEGINI NOMID LESOBL(1)='TINF ' LESOBL(2)='T ' LESOBL(3)='TSUP ' ELSE NBROBL = 1 SEGINI NOMID LESOBL(1)='T ' ENDIF C C Autres elements C =============== ELSE NBROBL=1 SEGINI NOMID LESOBL(1)='T ' ENDIF C ================================================================= C FORMULATION DIFFUSION C ================================================================= ELSE IF (MFR2.EQ.73) THEN C C Recuperation du LISTMOTS dans IVAMOD(1) MLMOT1=IVAMOD(1) C Recuperation de l'inconnue PRIMALE IF (NBCHAR .GT. 4) THEN RETURN ENDIF C C Elements COQUE C ============== IF (MFR.EQ.3 .OR. MFR.EQ.5 .OR. MFR.EQ.9) THEN NPINT=infmod(1) IF(NPINT.EQ.0) THEN NBROBL=3 SEGINI NOMID LESOBL(1)=CCOMP(1:NBCHAR)//'IN ' LESOBL(2)=CCOMP LESOBL(3)=CCOMP(1:NBCHAR)//'SU ' ELSE NBROBL = 1 SEGINI NOMID LESOBL(1)=CCOMP ENDIF C C Autres elements C =============== ELSE NBROBL = 1 SEGINI NOMID LESOBL(1)=CCOMP ENDIF C ================================================================= C FORMULATION CHANGEMENT_PHASE C ================================================================= ELSE IF (MFR2.EQ.30) THEN C IF (IMODEL.CMATEE.EQ.'CHPH_PAR') THEN NBROBL=1 NBRFAC=0 SEGINI,NOMID MLMOT1=IMODEL.IVAMOD(1) ELSE IF (IMODEL.CMATEE.EQ.'CHPH_SOL')THEN NBROBL=2 NBRFAC=0 SEGINI,NOMID MLMOT1=IMODEL.IVAMOD(1) ENDIF C ================================================================= ENDIF C IF (NOMID.NE.0) THEN if (ifomod.eq.6) then nbrfa0 = nbrfac NBRFAC = NBROBL + (nbrfa0*2) segadj nomid do imo = 1,nbrobl lesfac(nbrfa0 + imo)(2:4) = lesobl(imo)(1:3) lesfac(nbrfa0 + imo)(1:1) = 'I' enddo do imo = 1,nbrfa0 lesfac(nbrfa0+nbrobl+imo)(2:4) = lesfac(imo)(1:3) lesfac(nbrfa0+nbrobl+imo)(1:1) = 'I' enddo endif ENDIF C IF (NOMID.NE.0) SEGACT,NOMID*NOMOD IPNOMC=NOMID END
© Cast3M 2003 - Tous droits réservés.
Mentions légales