idprim
C IDPRIM SOURCE OF166741 24/10/07 21:15:27 12016 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======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO C==DEB= FORMULATION HHO == Include specifique ========================== -INC CCHHOPA C==FIN= FORMULATION HHO ================================================ -INC SMMODEL -INC SMLMOTS CHARACTER*16 NOM16 CHARACTER*(LOCOMP) CCOMP EXTERNAL LONG NOMID =0 NBROBL=0 NBRFAC=0 IMODEL=IPMODE C Recuperation de IFOUR dans CCOPTIO.INC IFOU = IFOUR MELE =NEFMOD C Le IMODEL doit etre actif NOMID = IMODEL.LNOMID(1) C S'ils sont deja presents dans le IMODEL on ne les refait pas... IF(NOMID .NE. 0 .AND. (MFR .EQ. MFR0))THEN NBROBL=LESOBL(/2) NBRFAC=LESFAC(/2) IPNOMC = NOMID RETURN ENDIF C Sinon on les determine MFR = MFR0 C Cas particuliers de la THERMIQUE, DIFFUSION, METALLURGIE NOM16=FORMOD(1) IF(NOM16 .EQ. 'THERMIQUE ') GOTO 1001 IF(NOM16 .EQ. 'DIFFUSION ') GOTO 1002 IF(NOM16 .EQ. 'METALLURGIE ') GOTO 1003 * formulation thermohydrique IF (MFR.EQ.65) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='PG ' LESOBL(2)='PC ' LESOBL(3)='T ' * * 0/ MACRO ELEMENT * ELSEIF (MFR.EQ.61)THEN C IF (IFOU.EQ.-1.OR.IFOU.EQ.-2) THEN * * 0-A/ CONTRAINTES PLANES - DEFORMATIONS PLANES * NBROBL=5 SEGINI NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='RZ ' LESOBL(4)='UM ' LESOBL(5)='RM ' ENDIF C 1 - Elements COQUE (3), COQUE EPAISSE (5), POUTRE (7), COQUE en C CISAILLEMENT TRANSVERSE (9), TUYAU (13), LINESPRING (15), TUYAU C FISSURE (17), Barre excentree BAEX (49), LIA2 (51), JOI1(75) 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.OR.MFR.EQ.74) THEN C ===== C 1.1 - Tridimensionnel C ===== IF (IFOU.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 ' C ===== C 1.2 - Fourier C ===== ELSE IF (IFOU.EQ.1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' LESOBL(4)='RT ' C ===== C 1.3 - Axisymetrie C ===== ELSE IF (IFOU.EQ.0) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='RT ' C ===== C 1.4 - Bidimensionnel PLAN (CP/DP) C ===== ELSE IF (IFOU.EQ.-1.OR.IFOU.EQ.-2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='RZ ' C ===== C 1.5 - Bidimensionnel PLAN GENE C ===== ELSE IF (IFOU.EQ.-3) THEN C Ici il faut distinguer les formulations : IF (MFR.EQ.03 .OR. MFR.EQ.05) 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 2 - Elements LIQUIDE C ====================== ELSE IF (MFR.EQ.11) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' C 3 - Elements TUYAU ACOUSTIQUE PUR C =================================== ELSE IF (MFR.EQ.41) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='PI ' LESOBL(2)='P ' C 4 - Element de RACCORD LITU C ============================= ELSE 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 5 - Elements HOMOGENEISE C ========================== ELSE IF (MFR.EQ.37) THEN C ===== C 5.1 - Fourier C ===== IF (IFOU.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 ' C ===== C 5.2 - Axisymetrie C ===== ELSE IF (IFOU.EQ.0) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' LESOBL(3)='UR ' LESOBL(4)='RT ' C ===== C 5.3 - Tridimensionnel C ===== ELSE IF (IFOU.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 ' C ===== C 5.4 - Bidimensionnel PLAN (DP/CP/DPGE) C ===== ELSE NBROBL=4 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' LESOBL(3)='UX ' LESOBL(4)='UY ' ENDIF C 6 - Element de SURFACE LIBRE C ============================== ELSE IF (MFR.EQ.23) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' LESOBL(3)='UZ ' C 7 - Element JOINT (35),JOINT CISAILLEMENT (53),JOINT GENERALISE (55) C COS2 (78) C ===================================================================== ELSE IF (MFR.EQ.35.OR.MFR.EQ.53.OR.MFR.EQ.55.OR.MFR.EQ.78) THEN C ===== C 7.1 - Tridimensionnel C ===== IF (IFOU.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' C ===== C 7.2 - Bidimensionnel PLAN (CP/DP/DPGE) C ===== ELSE IF (IFOU.EQ.-1.OR.IFOU.EQ.-2.OR.IFOU.EQ.-3) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' C ===== C 7.3 - Axisymetrie C ===== ELSE IF (IFOU.EQ.0) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' ENDIF C 8 - Elements MASSIFS, de MEMBRANE (25), UNIAXIALE (27), C NAVIER_STOKES(52) C ======================================================== ELSE IF (MFR.EQ.1.OR.MFR.EQ.25.OR.MFR.EQ.27.OR.MFR.EQ.31.OR. $ MFR.EQ.72.OR.MFR.EQ.52) THEN C ===== C 8.1 - Bidimensionnel PLAN (CP/DP) C ===== IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' C ===== C 8.2 - Axisymetrie C ===== ELSE IF (IFOU.EQ.0) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' C ===== C 8.3 - Fourier C ===== ELSE IF (IFOU.EQ.1) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' C ===== C 8.4 - Tridimensionnel C ===== ELSE IF (IFOU.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' C ===== C 8.5 - Bidimensionnel PLAN DPGE C ===== ELSE IF (IFOU.EQ.-3) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='RY ' LESOBL(5)='RX ' C ===== C 8.6 - Unidimensionnel (1D) C ===== ELSE IF (IFOU.GE.3.AND.IFOU.LE.15.AND.MFR.EQ.1) THEN IF (IFOU.LE.6) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='UX ' ELSE IF (IFOU.EQ.7.OR.IFOU.EQ.8) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' ELSE IF (IFOU.EQ.9.OR.IFOU.EQ.10) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UZ ' ELSE IF (IFOU.EQ.11) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' ELSE IF (IFOU.EQ.12.OR.IFOU.EQ.13.OR.IFOU.EQ.15) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='UR ' ELSE IF (IFOU.EQ.14) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' ENDIF ENDIF C 10 - Formulation POREUX C ========================= ELSE IF (MFR.EQ.33) THEN C ====== C 10.1 - Bidimensionnel PLAN (CP/DP) C ====== IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='P ' C ====== C 10.2 - Axisymetrie C ====== ELSE IF (IFOU.EQ.0) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='P ' C ====== C 10.3 - Fourier C ====== ELSE IF (IFOU.EQ.1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' LESOBL(4)='P ' C ====== C 10.4 - Tridimensionnel et bidimensionnel DEFO PLAN GENE C ====== ELSE IF (IFOU.EQ.2.OR.IFOU.EQ.-3) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='P ' ENDIF C 11 - Formulation POREUX type Q C ================================ ELSE IF (MFR.EQ.57) THEN C ====== C 11.1 - Bidimensionnel PLAN (CP/DP) C ====== IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='P ' LESOBL(4)='PQ ' C ====== C 11.2 - Axisymetrie C ====== ELSE IF (IFOU.EQ.0) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='P ' LESOBL(4)='PQ ' C ====== C 11.3 - Fourier C ====== ELSE IF (IFOU.EQ.1) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' LESOBL(4)='P ' LESOBL(5)='PQ ' C ====== C 11.4 - Tridimensionnel et bidimensionnel DEFO PLAN GENE C ====== ELSE IF (IFOU.EQ.2.OR.IFOU.EQ.-3) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' LESOBL(4)='P ' LESOBL(5)='PQ ' ENDIF C 12 - Formulation POREUX type R C ================================ ELSE IF (MFR.EQ.59) THEN C ====== C 12.1 - Bidimensionnel PLAN (CP/DP) C ====== IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='P ' LESOBL(4)='PQ ' LESOBL(5)='TP ' C ====== C 12.2 - Axisymetrie C ====== ELSE IF (IFOU.EQ.0) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='P ' LESOBL(4)='PQ ' LESOBL(5)='TP ' C ====== C 12.3 - Fourier C ====== ELSE IF (IFOU.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 ' C ====== C 12.4 - Tridimensionnel et bidimensionnel DEFO PLAN GENE C ====== ELSE IF(IFOU.EQ.2.OR.IFOU.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 C 13 - Elements de RACCORD C ========================== ELSE IF (MFR.EQ.19.OR.MFR.EQ.21) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='P ' LESOBL(2)='PI ' C 14 - Element de RACCORD MASSIF (2e serie de composantes) C ========================================================== ELSE IF (MFR.EQ.1019) THEN C ====== C 14.1 - Bidimensionnel PLAN (CP/DP) C ====== IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' C ====== C 14.2 - Axisymetrie C ====== ELSE IF (IFOU.EQ.0) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' C ====== C 14.3 - Fourier C ====== ELSE IF (IFOU.EQ.1) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' C ====== C 14.4 - Tridimensionnel et bidimensionnel DEFO PLAN GENE C ====== ELSE IF (IFOU.EQ.2.OR.IFOU.EQ.-3) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='UZ ' ENDIF C 15 - Element de RACCORD COQUE (2e serie de composantes) C ========================================================= ELSE IF (MFR.EQ.1021) THEN C ====== C 15.1 - Bidimensionnel PLAN (CP/DP) C ====== IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UX ' LESOBL(2)='UY ' LESOBL(3)='RZ ' C ====== C 15.2 - Axisymetrie C ====== ELSE IF (IFOU.EQ.0) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='RT ' C ====== C 15.3 - Fourier C ====== ELSE IF (IFOU.EQ.1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UR ' LESOBL(2)='UZ ' LESOBL(3)='UT ' LESOBL(4)='RT ' C ====== C 15.4 - Tridimensionnel et bidimensionnel DEFO PLAN GENE C ====== ELSE IF (IFOU.EQ.2.OR.IFOU.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 C 16 - Element 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 17 - Element POI1 materiau MODAL C =================== ELSE IF (MFR.EQ.26) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='ALFA' C 18 - Element POI1 materiau STATIQUE C =================== ELSE IF (MFR.EQ.28) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='BETA' C 19 - Element XFEM (xfem meca rupture) C =================== ELSEIF(MFR.EQ.63) THEN CTY - Element XQ4R (xfem meca rupture en 2D) IF(IFOU.EQ.-2.OR.IFOU.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 (IFOU.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 C 20 - Elements de zones cohesives C ================================== ELSEIF(MFR.EQ.77) THEN C - Element ZCO2 (xfem meca rupture en 2D) IF(IFOU.EQ.-2.OR.IFOU.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 (IFOU.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 21 - Formulation ELECTROSTATIQUE (base MASSIF) C ================================== ELSE IF (MFR.EQ.71) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='VEL ' C=DEB==== FORMULATION HHO ============================================== C Pour l'instant HHO en MECANIQUE seulement en 2D PLAN (CP/DP) et 3D ELSE IF (MFR.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 - IFOU not implemented' RETURN END IF j1 = n_d_c + 1 n_o_f = n_o_f - 1 IF (IFOU.EQ.-2 .OR. IFOU.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 (IFOU.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=FIN==== FORMULATION HHO ============================================== ENDIF C Par DEFAUT : segment VIDE C =========================== IF (NOMID.EQ.0) THEN SEGINI,NOMID ELSE 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 SEGACT,NOMID*NOMOD IPNOMC=NOMID RETURN C 9 - Formulation THERMIQUE C =========================== 1001 CONTINUE C Cas des COQUES 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 * *--- TOUS LES CAS SAUF COQUES ET COQUES EPAISSES * ELSE NBROBL=1 SEGINI NOMID LESOBL(1)='T ' ENDIF SEGACT,NOMID*NOMOD IPNOMC=NOMID RETURN C 22 - Formulation DIFFUSION C =========================== 1002 CONTINUE C Recuperation du LISTMOTS dans IVAMOD(1) MLMOT1=IVAMOD(1) C Recuperation de l'inconnue PRIMALE IF (NBCHAR .GT. 4) THEN RETURN ENDIF C Cas des COQUES 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 Cas des autres elements ELSE NBROBL = 1 SEGINI NOMID LESOBL(1)=CCOMP ENDIF SEGACT,NOMID*NOMOD IPNOMC=NOMID RETURN C 23 - Formulation METALLURGIE C ================================== 1003 CONTINUE NBROBL=0 NBRFAC=0 SEGINI NOMID SEGACT,NOMID*NOMOD IPNOMC=NOMID RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales