iddein
C IDDEIN SOURCE MB234859 25/08/04 21:15:15 12339 C======================================================================= C= RECHERCHE DES NOMS DE COMPOSANTES DE DEFORMATIONS INELASTIQUES = C= -------------------------------------------------------------- = C= = C= Entrees : = C= IPMODL pointeur ACTIF sur objet IMODEL = 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= = 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 C NBROBL = 0 NBRFAC = 0 C IMODEL=IPMODL NOMID =IMODEL.LNOMID(13) C C Ne pas recreer le NOMID si deja present IF (NOMID.NE.0) THEN NBROBL=LESOBL(/2) NBRFAC=LESFAC(/2) IPNOMC=NOMID RETURN ENDIF C MELE=IMODEL.NEFMOD 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)='EIS1' LESOBL(2)='CIZ1' LESOBL(3)='GIXY' LESOBL(4)='EIS2' LESOBL(5)='CIZ2' ENDIF C ================================================================= C FORMULATION MECANIQUE/LIAISON/NAVIER_STOKES/HHO C ================================================================= ELSE IF (MFR2.EQ.2.OR.MFR2.EQ.24.OR.MFR2.EQ.52.OR. & MFR2.EQ.HHO_MFR_ELEMENT) THEN C C Elements MASSIFS (standard,incompressibles,XFEM,Navier_Stokes,HHO) C ================ IF (MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.63.OR. & MFR.EQ.HHO_MFR_ELEMENT) THEN IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='EIXX' LESOBL(2)='EIYY' LESOBL(3)='EIZZ' LESOBL(4)='GIXY' ELSE IF (IFOUR.EQ.0) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='EIRR' LESOBL(2)='EIZZ' LESOBL(3)='EITT' LESOBL(4)='GIRZ' ELSE IF (IFOUR.EQ.1) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='EIRR' LESOBL(2)='EIZZ' LESOBL(3)='EITT' LESOBL(4)='GIRZ' LESOBL(5)='GIRT' LESOBL(6)='GIZT' ELSE IF (IFOUR.EQ.2) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='EIXX' LESOBL(2)='EIYY' LESOBL(3)='EIZZ' LESOBL(4)='GIXY' LESOBL(5)='GIXZ' LESOBL(6)='GIYZ' ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15.AND.MFR.EQ.1) THEN NBROBL=3 SEGINI,NOMID IF (IFOUR.LE.11) THEN LESOBL(1)='EIXX' LESOBL(2)='EIYY' LESOBL(3)='EIZZ' ELSE IF (IFOUR.GE.12.AND.IFOUR.LE.14) THEN LESOBL(1)='EIRR' LESOBL(2)='EIZZ' LESOBL(3)='EITT' ELSE IF (IFOUR.EQ.15) THEN LESOBL(1)='EIRR' C Voi r TC pour LESOBL(2)='EIFF' LESOBL(2)='EIZZ' LESOBL(3)='EITT' ENDIF ENDIF C C Elements COQUES C =============== ELSE IF (MFR.EQ.3.OR.MFR.EQ.39) THEN NPINT=INFMOD(1) IF (NPINT.EQ.0) THEN IF (IFOUR.EQ.2.OR.IFOUR.EQ.1) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='EISS' LESOBL(2)='EITT' LESOBL(3)='GIST' LESOBL(4)='RISS' LESOBL(5)='RITT' LESOBL(6)='RIST' ELSE IF (IFOUR.EQ.0) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='EISS' LESOBL(2)='EITT' LESOBL(3)='RISS' LESOBL(4)='RITT' ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='EISS' LESOBL(2)='EIZZ' LESOBL(3)='RISS' LESOBL(4)='RIZZ' ENDIF ELSE IF (MFR.EQ.3.AND.IFOUR.EQ.2) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='EISS' LESOBL(2)='EITT' LESOBL(3)='EINN' LESOBL(4)='GIST' ENDIF ENDIF C C Elements COQUE EPAISSE C ====================== ELSE IF (MFR.EQ.5) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='EISS' LESOBL(2)='EITT' LESOBL(3)='GIST' LESOBL(4)='GISN' LESOBL(5)='GITN' C C Element de COQUE en CISAILLEMENT TRANSVERSE (tridimensionnel) C =========================================== ELSE IF (MFR.EQ.9) THEN NPINT=INFMOD(1) IF (NPINT.EQ.0) THEN IF (IFOUR.EQ.2) THEN NBROBL=8 SEGINI,NOMID LESOBL(1)='EISS' LESOBL(2)='EITT' LESOBL(3)='GIST' LESOBL(4)='RISS' LESOBL(5)='RITT' LESOBL(6)='RIST' LESOBL(7)='GISN' LESOBL(8)='GITN' ENDIF ENDIF C C Elements POUTRES ET TUYAUX C ========================== ELSE IF (MFR.EQ.7.OR.MFR.EQ.13) THEN IF (IFOUR.EQ.2) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='FEPS' LESOBL(2)='FGXY' LESOBL(3)='FGXZ' LESOBL(4)='FFCX' LESOBL(5)='FFCY' LESOBL(6)='FFCZ' ELSE IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='FEPS' LESOBL(2)='FGXY' LESOBL(3)='FFCZ' ENDIF C C Element LIA2 C ============ ELSE IF (MFR.EQ.51) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='FEPS' LESOBL(2)='FGXY' LESOBL(3)='FGXZ' LESOBL(4)='FFCX' LESOBL(5)='FFCY' LESOBL(6)='FFCZ' C C Element JOINT JOI1 C ================== ELSE IF (MFR.EQ.75) THEN IF (IFOUR.EQ.2) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='FEXX ' LESOBL(2)='FGXY ' LESOBL(3)='FGXZ ' LESOBL(4)='FCXX ' LESOBL(5)='FCXY ' LESOBL(6)='FCXZ ' ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='FEXX ' LESOBL(2)='FGXY ' LESOBL(3)='FCXZ ' ENDIF C C Element JOINT JOI2 C ================= ELSE IF (MFR.EQ.35) THEN IF (IFOUR.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='FRS1' LESOBL(2)='FRS2' LESOBL(3)='FRN ' ELSE IF ((IFOUR.EQ.-3).OR.(IFOUR.EQ.-2).OR.(IFOUR.EQ.-1).OR. & (IFOUR.EQ.0)) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='FRSN' LESOBL(2)='FRN ' ENDIF C C Element BARRE EXCENTREE C ======================= ELSE IF (MFR.EQ.49) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='EISS' C C Element LINESPRING C ================== ELSE IF (MFR.EQ.15) THEN IF (IFOUR.EQ.2) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='EIZZ' LESOBL(2)='GIXZ' LESOBL(3)='GIYZ' LESOBL(4)='RIXX' LESOBL(5)='RIZZ' LESOBL(6)='FDJP' ENDIF C C Element de MEMBRANE C =================== ELSE IF (MFR.EQ.25) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='EISS' LESOBL(2)='EITT' LESOBL(3)='GIST' C C Element UNIAXIALE C ================= ELSE IF (MFR.EQ.27) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='EISS' C C Element TUYAU FISSURE C ===================== ELSE IF (MFR.EQ.17) THEN IF (IFOUR.EQ.2) THEN NBROBL=8 SEGINI,NOMID LESOBL(1)='FEPS' LESOBL(2)='FGXY' LESOBL(3)='FGXZ' LESOBL(4)='FFCX' LESOBL(5)='FFCY' LESOBL(6)='FFCZ' LESOBL(7)='FPS7' LESOBL(8)='FPS8' ENDIF C C Element SECTION/FIBRE C ===================== ELSE IF (MFR.EQ.47) THEN IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='EIXX' LESOBL(2)='GIXY' C*OF LESOBL(3)='GIXZ' ELSE IF (IFOUR.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='EIXX' LESOBL(2)='GIXY' LESOBL(3)='GIXZ' ENDIF C C Element coaxial COS2 C ==================== ELSE IF ( MFR.EQ.78) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='GINT' LESOBL(2)='GINN' LESOBL(3)='GINM' C C Element JOINT CISAILLEMENT C ========================= ELSE IF (MFR.EQ.53) THEN IF ((IFOUR.EQ.-3).OR.(IFOUR.EQ.-2).OR.(IFOUR.EQ.-1)) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='FRS1' LESOBL(2)='FRS2' ENDIF C C Elements JOINT GENERALISE C ========================= ELSE IF (MFR.EQ.55) THEN IF ((IFOUR.EQ.-3).OR.(IFOUR.EQ.-2).OR.(IFOUR.EQ.-1)) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='FRSN' LESOBL(2)='FRN ' LESOBL(3)='EITT' LESOBL(4)='EIZZ' ELSE IF (IFOUR.EQ.2) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='FRS1' LESOBL(2)='FRS2' LESOBL(3)='FRN ' LESOBL(4)='EITT' LESOBL(5)='EIUU' LESOBL(6)='GITU' ENDIF C C Elements ZONE COHESIVE C ========================== ELSE IF (MFR.EQ.77) THEN IF (IFOUR.GT.0) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='FRS1' LESOBL(2)='FRS2' LESOBL(3)='FRN ' ELSE IF (IFOUR.LE.0) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='FRSN' LESOBL(2)='FRN ' ENDIF ENDIF C ================================================================= C FORMULATION THERMIQUE C ================================================================= ELSE IF (MFR2.EQ.29) THEN IF (IFOUR.EQ.2) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='FRDX' LESOBL(2)='FRDY' LESOBL(3)='FRDZ' ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='FRDX' LESOBL(2)='FRDY' ELSE IF (IFOUR.EQ.1.OR.IFOUR.EQ.0) THEN NBROBL=2 SEGINI,NOMID LESOBL(1)='FRDX' LESOBL(2)='FRDY' C*OF LESOBL(1)='FRDR' C*OF LESOBL(2)='FRDZ' ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15) THEN NBROBL=1 SEGINI,NOMID LESOBL(1)='FRDX' ENDIF C ================================================================= C FORMULATION POREUX C ================================================================= ELSE IF (MFR2.EQ.33) THEN C C Elements POREUX C ================ IF (MFR.EQ.33) THEN IF (MELE.GE.79.AND.MELE.LE.83) THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='EIXX' LESOBL(2)='EIYY' LESOBL(3)='EIZZ' LESOBL(4)='GIXY' LESOBL(5)='PIDE' ELSE IF (IFOUR.EQ.0) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='EIRR' LESOBL(2)='EIZZ' LESOBL(3)='EITT' LESOBL(4)='GIRZ' LESOBL(5)='PIDE' ELSE IF (IFOUR.EQ.1) THEN NBROBL=7 SEGINI,NOMID LESOBL(1)='EIRR' LESOBL(2)='EIZZ' LESOBL(3)='EITT' LESOBL(4)='GIRZ' LESOBL(5)='GIRT' LESOBL(6)='GIZT' LESOBL(7)='PIDE' ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN NBROBL=7 SEGINI,NOMID LESOBL(1)='EIXX' LESOBL(2)='EIYY' LESOBL(3)='EIZZ' LESOBL(4)='GIXY' LESOBL(5)='GIXZ' LESOBL(6)='GIYZ' LESOBL(7)='PIDE' ENDIF ELSE IF (MELE.GE.108.AND.MELE.LE.110) THEN IF (IFOUR.EQ.2) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='FRS1' LESOBL(2)='FRS2' LESOBL(3)='FRN ' LESOBL(4)='PIDE' ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN NBROBL=3 SEGINI,NOMID LESOBL(1)='FRSN' LESOBL(2)='FRN ' LESOBL(3)='PIDE' ENDIF ENDIF C C Elements POREUX Type Q C ====================== ELSE IF (MFR.EQ.57) THEN IF (MELE.GE.173.AND.MELE.LE.177) THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='EIXX' LESOBL(2)='EIYY' LESOBL(3)='EIZZ' LESOBL(4)='GIXY' LESOBL(5)='PIDE' LESOBL(6)='QIDE' ELSE IF (IFOUR.EQ.0) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='EIRR' LESOBL(2)='EIZZ' LESOBL(3)='EITT' LESOBL(4)='GIRZ' LESOBL(5)='PIDE' LESOBL(6)='QIDE' ELSE IF (IFOUR.EQ.1) THEN NBROBL=8 SEGINI,NOMID LESOBL(1)='EIRR' LESOBL(2)='EIZZ' LESOBL(3)='EITT' LESOBL(4)='GIRZ' LESOBL(5)='GIRT' LESOBL(6)='GIZT' LESOBL(7)='PIDE' LESOBL(8)='QIDE' ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN NBROBL=8 SEGINI,NOMID LESOBL(1)='EIXX' LESOBL(2)='EIYY' LESOBL(3)='EIZZ' LESOBL(4)='GIXY' LESOBL(5)='GIXZ' LESOBL(6)='GIYZ' LESOBL(7)='PIDE' LESOBL(8)='QIDE' ENDIF ELSE IF (MELE.GE.185.AND.MELE.LE.187) THEN IF (IFOUR.EQ.2) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='FRS1' LESOBL(2)='FRS2' LESOBL(3)='FRN ' LESOBL(4)='PIDE' LESOBL(5)='QIDE' ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN NBROBL=4 SEGINI,NOMID LESOBL(1)='FRSN' LESOBL(2)='FRN ' LESOBL(3)='PIDE' LESOBL(4)='QIDE' ENDIF ENDIF C C Elements POREUX Type R C ====================== ELSE IF (MFR.EQ.59) THEN IF (MELE.GE.178.AND.MELE.LE.182) THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN NBROBL=7 SEGINI,NOMID LESOBL(1)='EIXX' LESOBL(2)='EIYY' LESOBL(3)='EIZZ' LESOBL(4)='GIXY' LESOBL(5)='PIDE' LESOBL(6)='QIDE' LESOBL(7)='TIDE' ELSE IF (IFOUR.EQ.0) THEN NBROBL=7 SEGINI,NOMID LESOBL(1)='EIRR' LESOBL(2)='EIZZ' LESOBL(3)='EITT' LESOBL(4)='GIRZ' LESOBL(5)='PIDE' LESOBL(6)='QIDE' LESOBL(7)='TIDE' ELSE IF (IFOUR.EQ.1) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='EIRR' LESOBL(2)='EIZZ' LESOBL(3)='EITT' LESOBL(4)='GIRZ' LESOBL(5)='GIRT' LESOBL(6)='GIZT' LESOBL(7)='PIDE' LESOBL(8)='QIDE' LESOBL(9)='TIDE' ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.-3) THEN NBROBL=9 SEGINI,NOMID LESOBL(1)='EIXX' LESOBL(2)='EIYY' LESOBL(3)='EIZZ' LESOBL(4)='GIXY' LESOBL(5)='GIXZ' LESOBL(6)='GIYZ' LESOBL(7)='PIDE' LESOBL(8)='QIDE' LESOBL(9)='TIDE' ENDIF ELSE IF (MELE.GE.188.AND.MELE.LE.190) THEN IF (IFOUR.EQ.2) THEN NBROBL=6 SEGINI,NOMID LESOBL(1)='FRS1' LESOBL(2)='FRS2' LESOBL(3)='FRN ' LESOBL(4)='PIDE' LESOBL(5)='QIDE' LESOBL(6)='TIDE' ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN NBROBL=5 SEGINI,NOMID LESOBL(1)='FRSN' LESOBL(2)='FRN ' LESOBL(3)='PIDE' LESOBL(4)='QIDE' LESOBL(5)='TIDE' ENDIF ENDIF ENDIF C ================================================================= ENDIF C IF (NOMID.NE.0) SEGACT,NOMID*NOMOD IPNOMC=NOMID END
© Cast3M 2003 - Tous droits réservés.
Mentions légales