idgrad
C IDGRAD SOURCE OF166741 24/05/06 21:15:18 11082 C======================================================================= C= RECHERCHE DES NOMS DE COMPOSANTES DE GRADIENTS = C= ---------------------------------------------- = C= = C= Entrees : = C= MFR Numero de la FORMULATION element fini = C= IFOU valeur de IFOUR de CCOPTIO = 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 C==DEB= FORMULATION HHO == Include specifique ========================== -INC CCHHOPA C==FIN= FORMULATION HHO ================================================ -INC SMMODEL CHARACTER*(LOCOMP) CCOMP EXTERNAL LONG NBROBL=0 NBRFAC=0 NOMID =0 C FORMULATION THERMOHYDRIQUE C ========================== IF (MFR.EQ.65) THEN C ===== C Tridimensionnel C ===== IF (IFOU.EQ.2) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='PG,X ' LESOBL(2)='PG,Y ' LESOBL(3)='PG,Z ' LESOBL(4)='PC,X ' LESOBL(5)='PC,Y ' LESOBL(6)='PC,Z ' LESOBL(7)='T,X ' LESOBL(8)='T,Y ' LESOBL(9)='T,Z ' C ===== C Bidimensionnel PLAN (DP/CP/DPGE) C ===== ELSE IF (IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='PG,X ' LESOBL(2)='PG,Y ' LESOBL(3)='PC,X ' LESOBL(4)='PC,Y ' LESOBL(5)='T,X ' LESOBL(6)='T,Y ' C ===== C Axisymetrie et Fourier C ===== ELSE IF (IFOU.EQ.0.OR.IFOU.EQ.1) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='PG,R ' LESOBL(2)='PG,Z ' LESOBL(3)='PC,R ' LESOBL(4)='PC,Z ' LESOBL(5)='T,R ' LESOBL(6)='T,Z ' ENDIF C 1A- Element JOINT JOI1 C ======================= ELSEIF (MFR.EQ.75) THEN C ===== C 1A.1 - Tridimensionnel et Bidimensionnel PLAN DPGE C ===== IF (IFOU.EQ.2 .OR. IFOU.EQ.-3) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='UX,X ' LESOBL(2)='UX,Y ' LESOBL(3)='UX,Z ' LESOBL(4)='UY,X ' LESOBL(5)='UY,Y ' LESOBL(6)='UY,Z ' LESOBL(7)='UZ,X ' LESOBL(8)='UZ,Y ' LESOBL(9)='UZ,Z ' C ===== C 1A.2 - Bidimensionnel PLAN (CP/DP) et Axisymetrie C ===== ELSE IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UX,X ' LESOBL(2)='UX,Y ' LESOBL(3)='UY,X ' LESOBL(4)='UY,Y ' C ===== C 1A.3 - Axisymetrie C ===== ELSE IF (IFOU.EQ.0) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='UR,R ' LESOBL(2)='UR,Z ' LESOBL(3)='UZ,R ' LESOBL(4)='UZ,Z ' ENDIF C 1B- Element JOINT JOI2 C ======================= ELSEIF (MFR.EQ.35) THEN C ===== C 1B.1 - Tridimensionnel et Bidimensionnel PLAN DPGE C ===== IF (IFOU.EQ.2 .OR. IFOU.EQ.-3) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='U1,N ' LESOBL(2)='U2,N ' LESOBL(3)='UN,N ' C ===== C 1A.2 - Bidimensionnel PLAN (CP/DP) et Axisymetrie C ===== ELSE IF (IFOU.EQ.-2.OR.IFOU.EQ.-1.OR.IFOU.EQ.0) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='US,N ' LESOBL(2)='UN,N ' ENDIF C 2 - Elements MASSIFS (standard,incompressibles,XFEM,Navier_Stokes,HHO) C ====================== ELSE IF (MFR.EQ.1 .OR. MFR.EQ.31 .OR. MFR.EQ.63 .OR. & MFR.EQ.52 .OR. MFR.EQ.HHO_MFR_ELEMENT) THEN C ===== C 2.1 - Bidimensionnel PLAN (CP/DP/DPGE) et Tridimensionnel C ===== IF (IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1.OR.IFOU.EQ.2) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='UX,X ' LESOBL(2)='UX,Y ' LESOBL(3)='UX,Z ' LESOBL(4)='UY,X ' LESOBL(5)='UY,Y ' LESOBL(6)='UY,Z ' LESOBL(7)='UZ,X ' LESOBL(8)='UZ,Y ' LESOBL(9)='UZ,Z ' C ===== C 2.2 - 2D Axisymetrie et Fourier C ===== ELSE IF (IFOU.EQ.0.OR.IFOU.EQ.1) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='UR,R ' LESOBL(2)='UR,Z ' LESOBL(3)='UR,T ' LESOBL(4)='UZ,R ' LESOBL(5)='UZ,Z ' LESOBL(6)='UZ,T ' LESOBL(7)='UT,R ' LESOBL(8)='UT,Z ' LESOBL(9)='UT,T ' C ===== C 2.3 - Massif Unidimensionnel (1D) PLAN et AXIS/SPHE C ===== ELSE IF (MFR.EQ.1 .AND. (IFOU.GE.3.AND.IFOU.LE.15)) THEN NBROBL=9 SEGINI,NOMID IF (IFOU.GE.3.AND.IFOU.LE.11) THEN LESOBL(1)='UX,X ' LESOBL(2)='UX,Y ' LESOBL(3)='UX,Z ' LESOBL(4)='UY,X ' LESOBL(5)='UY,Y ' LESOBL(6)='UY,Z ' LESOBL(7)='UZ,X ' LESOBL(8)='UZ,Y ' LESOBL(9)='UZ,Z ' ELSE LESOBL(1)='UR,R ' LESOBL(2)='UR,Z ' LESOBL(3)='UR,T ' LESOBL(4)='UZ,R ' LESOBL(5)='UZ,Z ' LESOBL(6)='UZ,T ' LESOBL(7)='UT,R ' LESOBL(8)='UT,Z ' LESOBL(9)='UT,T ' ENDIF ENDIF C 3 - Elements COQUES C ===================== ELSE IF (MFR.EQ.3) THEN C ===== C 3.1 - Tridimensionnel C ===== IF (IFOU.EQ.2) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='UX,X' LESOBL(2)='UX,Y' LESOBL(3)='UX,Z' LESOBL(4)='UY,X' LESOBL(5)='UY,Y' LESOBL(6)='UY,Z' LESOBL(7)='UZ,X' LESOBL(8)='UZ,Y' LESOBL(9)='UZ,Z' C ===== C 3.2 - Axisymetrie, Fourier, Bidimensionnel PLAN (CP/DP) C ===== ELSE IF (IFOU.EQ.1.OR.IFOU.EQ.0.OR. . IFOU.EQ.-1.OR.IFOU.EQ.-2.or.ifou.eq.-3) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='UU,S' LESOBL(2)='UU,T' LESOBL(3)='UU,N' LESOBL(4)='UV,S' LESOBL(5)='UV,T' LESOBL(6)='UV,N' LESOBL(7)='UW,S' LESOBL(8)='UW,T' LESOBL(9)='UW,N' ENDIF C 4 - Elements COQUES EPAISSES (COQ6,COQ8) C ============================== ELSE IF (MFR.EQ.5) THEN C ===== C 4.1 - Tridimensionnel C ===== IF (IFOU.EQ.2) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='UX,X' LESOBL(2)='UX,Y' LESOBL(3)='UX,Z' LESOBL(4)='UY,X' LESOBL(5)='UY,Y' LESOBL(6)='UY,Z' LESOBL(7)='UZ,X' LESOBL(8)='UZ,Y' LESOBL(9)='UZ,Z' C ===== C 4.2 - Axisymetrie et Fourier C ===== ELSE IF (IFOU.EQ.1.OR.IFOU.EQ.0) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='UR,R' LESOBL(2)='UR,Z' LESOBL(3)='UR,T' LESOBL(4)='UZ,R' LESOBL(5)='UZ,Z' LESOBL(6)='UZ,T' LESOBL(7)='UT,R' LESOBL(8)='UT,Z' LESOBL(9)='UT,T' ENDIF C 5 - Element de COQUE en CISAILLEMENT TRANSVERSE (tridimensionnel) C ================================================= ELSE IF (MFR.EQ.9) THEN IF (IFOU.EQ.2) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='UX,X' LESOBL(2)='UX,Y' LESOBL(3)='UX,Z' LESOBL(4)='UY,X' LESOBL(5)='UY,Y' LESOBL(6)='UY,Z' LESOBL(7)='UZ,X' LESOBL(8)='UZ,Y' LESOBL(9)='UZ,Z' ENDIF C 6 - Formulation THERMIQUE MASSIF C ================================== ELSE IF (MFR.EQ.29) THEN C ===== C 6.1 - Tridimensionnel C ===== IF (IFOU.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='T,X ' LESOBL(2)='T,Y ' LESOBL(3)='T,Z ' C ===== C 6.2 - Bidimensionnel PLAN (DP/CP/DPGE) C ===== ELSE IF (IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='T,X ' LESOBL(2)='T,Y ' C ===== C 6.3 - Axisymetrie et Fourier C ===== ELSE IF (IFOU.EQ.0.OR.IFOU.EQ.1) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='T,R ' LESOBL(2)='T,Z ' C ===== C 6.4 - Unidimensionnel (1D) C ===== ELSE IF (IFOU.GE.3.AND.IFOU.LE.11) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='T,X ' ELSE IF (IFOU.GE.12.AND.IFOU.LE.15) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='T,R ' ENDIF C 7 - Formulation THERMIQUE COQUE C ================================= ELSE IF (MFR.EQ.39) THEN C ===== C 7.1 - Tridimensionnel C ===== IF (IFOU.EQ.2) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='T,X ' LESOBL(2)='T,Y ' C ===== C 7.2 - Axisymetrie et Fourier C ===== ELSE IF (IFOU.EQ.0) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='T,Z ' ENDIF C 8 - Formulation MAGNETODYNAMIQUE COQUE (tridimensionnel) C ======================================== ELSE IF (MFR.EQ.69) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='FC,X ' LESOBL(2)='FC,Y ' LESOBL(3)='FC,Z ' C 9 - formulation XFEM meca rupt C ===================================== c ELSE IF (MFR.EQ.63) THEN CTY - Element XQ4R (xfem meca rupture en 2D) c IF(IFOU.EQ.-2.OR.ifou.EQ.-1) then c NBROBL=4 c NBRFAC=36 c NBRFAC=20 c SEGINI,NOMID c LESOBL(1)='UX,X' c LESOBL(2)='UX,Y' c LESOBL(3)='UY,X' c LESOBL(4)='UY,Y' c LESFAC(1)='AX,X' c LESFAC(2)='AX,Y' c LESFAC(3)='AY,X' c LESFAC(4)='AY,Y' c LESFAC(5)='B1XX' c LESFAC(6)='B1XY' c LESFAC(7)='B1YX' c LESFAC(8)='B1YY' c LESFAC(9)='C1XX' c LESFAC(10)='C1XY' c LESFAC(11)='C1YX' c LESFAC(12)='C1YY' c LESFAC(13)='D1XX' c LESFAC(14)='D1XY' c LESFAC(15)='D1YX' c LESFAC(16)='D1YY' c LESFAC(17)='E1XX' c LESFAC(18)='E1XY' c LESFAC(19)='E1YX' c LESFAC(20)='E1YY' c LESFAC(21)='B2XX' c LESFAC(22)='B2XY' c LESFAC(23)='B2YX' c LESFAC(24)='B2YY' c LESFAC(25)='C2XX' c LESFAC(26)='C2XY' c LESFAC(27)='C2YX' c LESFAC(28)='C2YY' c LESFAC(29)='D2XX' c LESFAC(30)='D2XY' c LESFAC(31)='D2YX' c LESFAC(32)='D2YY' c LESFAC(33)='E2XX' c LESFAC(34)='E2XY' c LESFAC(35)='E2YX' c LESFAC(36)='E2YY' c ELSE IF (IFOU.EQ.2) THEN CTY - Element XC8R (xfem meca rupture en 3D) c NBROBL=9 c NBRFAC=45 c NBRFAC=81 c SEGINI,NOMID c LESOBL(1)='UX,X' c LESOBL(2)='UX,Y' c LESOBL(3)='UX,Z' c LESOBL(4)='UY,X' c LESOBL(5)='UY,Y' c LESOBL(6)='UY,Z' c LESOBL(7)='UZ,X' c LESOBL(8)='UZ,Y' c LESOBL(9)='UZ,Z' c LESFAC(1)='AX,X' c LESFAC(2)='AX,Y' c LESFAC(3)='AX,Z' c LESFAC(4)='AY,X' c LESFAC(5)='AY,Y' c LESFAC(6)='AY,Z' c LESFAC(7)='AZ,X' c LESFAC(8)='AZ,Y' c LESFAC(9)='AZ,Z' c LESFAC(10)='B1XX' c LESFAC(11)='B1XY' c LESFAC(12)='B1XZ' c LESFAC(13)='B1YX' c LESFAC(14)='B1YY' c LESFAC(15)='B1YZ' c LESFAC(16)='B1ZX' c LESFAC(17)='B1ZY' c LESFAC(18)='B1ZZ' c LESFAC(19)='C1XX' c LESFAC(20)='C1XY' c LESFAC(21)='C1XZ' c LESFAC(22)='C1YX' c LESFAC(23)='C1YY' c LESFAC(24)='C1YZ' c LESFAC(25)='C1ZX' c LESFAC(26)='C1ZY' c LESFAC(27)='C1ZZ' c LESFAC(28)='D1XX' c LESFAC(29)='D1XY' c LESFAC(30)='D1XZ' c LESFAC(31)='D1YX' c LESFAC(32)='D1YY' c LESFAC(33)='D1YZ' c LESFAC(34)='D1ZX' c LESFAC(35)='D1ZY' c LESFAC(36)='D1ZZ' c LESFAC(37)='E1XX' c LESFAC(38)='E1XY' c LESFAC(39)='E1XZ' c LESFAC(40)='E1YX' c LESFAC(41)='E1YY' c LESFAC(42)='E1YZ' c LESFAC(43)='E1ZX' c LESFAC(44)='E1ZY' c LESFAC(45)='E1ZZ' c LESFAC(46)='B2XX' c LESFAC(47)='B2XY' c LESFAC(48)='B2XZ' c LESFAC(49)='B2YX' c LESFAC(50)='B2YY' c LESFAC(51)='B2YZ' c LESFAC(52)='B2ZX' c LESFAC(53)='B2ZY' c LESFAC(54)='B2ZZ' c LESFAC(55)='C2XX' c LESFAC(56)='C2XY' c LESFAC(57)='C2XZ' c LESFAC(58)='C2YX' c LESFAC(59)='C2YY' c LESFAC(60)='C2YZ' c LESFAC(61)='C2ZX' c LESFAC(62)='C2ZY' c LESFAC(63)='C2ZZ' c LESFAC(64)='D2XX' c LESFAC(65)='D2XY' c LESFAC(66)='D2XZ' c LESFAC(67)='D2YX' c LESFAC(68)='D2YY' c LESFAC(69)='D2YZ' c LESFAC(70)='D2ZX' c LESFAC(71)='D2ZY' c LESFAC(72)='D2ZZ' c LESFAC(73)='E2XX' c LESFAC(74)='E2XY' c LESFAC(75)='E2XZ' c LESFAC(76)='E2YX' c LESFAC(77)='E2YY' c LESFAC(78)='E2YZ' c LESFAC(79)='E2ZX' c LESFAC(80)='E2ZY' c LESFAC(81)='E2ZZ' c ENDIF C 10- Formulation MECANIQUE POUTRES ET TUYAUX C ============================================ ELSE IF (MFR.EQ.7 .OR. MFR.EQ.13) THEN C ====== C 10.1 - Tridimensionnel C ====== IF (IFOU.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='U,S ' LESOBL(2)='V,S ' LESOBL(3)='W,S ' C ====== C 10.2 - Autres cas C ====== ELSE NBROBL=2 SEGINI,NOMID LESOBL(1)='U,S ' LESOBL(2)='V,S ' ENDIF C 11 - Formulation ELECTROSTATIQUE (base MASSIF) C ================================== ELSE IF (MFR.EQ.71) THEN C ====== C 11.1 - Tridimensionnel C ====== IF (IFOU.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='VE,X ' LESOBL(2)='VE,Y ' LESOBL(3)='VE,Z ' C ====== C 11.2 - Bidimensionnel PLAN (DP/CP/DPGE) C ====== ELSE IF (IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='VE,X ' LESOBL(2)='VE,Y ' C ====== C 11.3 - Axisymetrie et Fourier C ====== ELSE IF (IFOU.EQ.0.OR.IFOU.EQ.1) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='VE,R ' LESOBL(2)='VE,Z ' C ====== C 11.4 - Unidimensionnel (1D) C ====== ELSE IF (IFOU.GE.3.AND.IFOU.LE.11) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='VE,X ' ELSE IF (IFOU.GE.12.AND.IFOU.LE.15) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='VE,R ' ENDIF C 12 - Formulation DIFFUSION C ============================ ELSE IF ((MFR.EQ.73) .OR. (MFR.EQ.76) .OR. (MFR.EQ.74)) THEN NOMID = IPNOMC C Recuperation de l'inconnue PRIMALE dans le NOMID CCOMP =NOMID.LESOBL(1) C Formulation DIFFUSION (Massif) IF(MFR.EQ.73)THEN C ====== C 12.1 - Tridimensionnel C ====== IF (IFOU.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)=CCOMP(1:NBCHAR)//',X' LESOBL(2)=CCOMP(1:NBCHAR)//',Y' LESOBL(3)=CCOMP(1:NBCHAR)//',Z' C ====== C 12.2 - Bidimensionnel PLAN (DP/CP/DPGE) C ====== ELSE IF (IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)=CCOMP(1:NBCHAR)//',X' LESOBL(2)=CCOMP(1:NBCHAR)//',Y' C ====== C 12.3 - Axisymetrie et Fourier C ====== ELSE IF (IFOU.EQ.0.OR.IFOU.EQ.1) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)=CCOMP(1:NBCHAR)//',R' LESOBL(2)=CCOMP(1:NBCHAR)//',Z' C ====== C 12.4 - Unidimensionnel (1D) C ====== ELSE IF (IFOU.GE.3.AND.IFOU.LE.11) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)=CCOMP(1:NBCHAR)//',X' ELSE IF (IFOU.GE.12.AND.IFOU.LE.15) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)=CCOMP(1:NBCHAR)//',R' ELSE RETURN ENDIF C Formulation DIFFUSION (TUY2, TUY3, BARR) ELSE IF(MFR.EQ.76)THEN NBROBL=1 SEGINI,NOMID LESOBL(1)=CCOMP(1:NBCHAR)//',S' C Formulation DIFFUSION (COQUES) ELSE IF(MFR.EQ.74)THEN C ===== C 12.5 - Tridimensionnel C ===== IF (IFOU.EQ.2) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)=CCOMP(1:NBCHAR)//',X ' LESOBL(2)=CCOMP(1:NBCHAR)//',Y ' C ===== C 12.6 - Axisymetrie et Fourier C ===== ELSE IF (IFOU.EQ.0) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)=CCOMP(1:NBCHAR)//',Z ' ELSE RETURN ENDIF ENDIF C 13 - Formulation ZONE COHESIVE C ================================ ELSE IF (MFR.EQ.77) THEN C ===== C 13.1 - Tridimensionnel C ===== IF (IFOU.EQ.2) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='AX,X ' LESOBL(2)='AX,Y ' LESOBL(3)='AX,Z ' LESOBL(4)='AY,X ' LESOBL(5)='AY,Y ' LESOBL(6)='AY,Z ' LESOBL(7)='AZ,X ' LESOBL(8)='AZ,Y ' LESOBL(9)='AZ,Z ' C ===== C 13.2 - Bidimensionnel PLAN (CP/DP/DPGE) C ===== ELSE IF (IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='AX,X ' LESOBL(2)='AX,Y ' LESOBL(3)='AY,X ' LESOBL(4)='AY,Y ' ENDIF C 14 - Formulation THERMIQUE TUY2, TUY3, BARR C =========================================== ELSE IF (MFR.EQ.40) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='T,S ' ENDIF C Par DEFAUT : segment VIDE C =========================== IF (NOMID.EQ.0) SEGINI,NOMID SEGACT,NOMID*NOMOD IPNOMC=NOMID RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales