prcont
C PRCONT SOURCE GOUNAND 21/04/07 21:15:06 10943 ************************************************************************ * NOM : PRCONT * DESCRIPTION : Construit le contour d'un objet maillage * (fonctionne suivant un principe inspire de TRAC) ************************************************************************ * APPELE PAR : pilot.eso ************************************************************************ * ENTREES :: aucune * SORTIES :: aucune ************************************************************************ * SYNTAXE (GIBIANE) : * * GEO1 = CONTOUR ('NOID') (|'EXTE'|) GEO2 ; * |'INTE'| * |'TOUT'| * ************************************************************************ SUBROUTINE PRCONT IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO -INC CCGEOME -INC SMELEME -INC SMCOORD -INC CCASSIS SEGMENT ICPR(nbpts) SEGMENT IDCP(ITE) SEGMENT KON(NBCON,NMAX,3) CHARACTER*8 CHAIN1 PARAMETER(NMOT1=3,NMOT2=1) CHARACTER*4 LMOT1(NMOT1),LMOT2(NMOT2) DATA LMOT1/'EXTE','INTE','TOUT'/ DATA LMOT2/'NOID'/ * +---------------------------------------------------------------+ * | L E C T U R E D E S A R G U M E N T S | * +---------------------------------------------------------------+ * LECTURE DES MOTS-CLES FACULTATIFS IF (IMOT1.EQ.0) IMOT1=1 * LECTURE DU MAILLAGE IF (IERR.NE.0) RETURN IPT8=MELEME * ON VA VERIFIER QUE LE CONTOUR DEMANDE N'A PAS DEJA ETE CONSTRUIT IF (LISREF(/1).EQ.1.AND.IMOT1.EQ.1) THEN IPT1=LISREF(1) RETURN ENDIF * +---------------------------------------------------------------+ * | C O N N E C T I V I T E D U M A I L L A G E | * +---------------------------------------------------------------+ * * REMPLISSAGE DES TABLEAUX DE CORRESPONDANCE LOCALE/GLOBALE AVEC * SEULEMENT LES NOEUDS SOMMETS (i.e. PAS DE NOEUDS MILIEUX) * ************************************************************** igr=nbpts+1 SEGINI,ICPR ITE=0 IPT1=MELEME DO 3 I=1,MAX(1,LISOUS(/1)) IF (LISOUS(/1).NE.0) THEN IPT1=LISOUS(I) ENDIF K=IPT1.ITYPEL * Le test ci-dessous filtre les elements non surfaciques IF (K.NE.KSURF(K)) GOTO 8 * Parcours des noeuds situes aux sommets de tous les elements IDEP=NSPOS(K) IF (NBSOM(K).GT.0) THEN IFEP=IDEP+NBSOM(K)-1 ELSE * Cas particulier de l'element POLYgone IFEP=IDEP+IPT1.NUM(/1)-1 ENDIF IF (IFEP.LT.IDEP) GOTO 8 DO 4 JJ=IDEP,IFEP J=IBSOM(JJ) DO 401 K=1,IPT1.NUM(/2) IPOIT=IPT1.NUM(J,K) IF (ICPR(IPOIT).NE.0) GOTO 7 ITE=ITE+1 ICPR(IPOIT)=ITE 7 CONTINUE 401 CONTINUE 4 CONTINUE 8 CONTINUE 3 CONTINUE * IF (ITE.EQ.0) THEN SEGSUP,ICPR RETURN ENDIF * SEGINI,IDCP DO 40 I=1,ICPR(/1) IF (ICPR(I).EQ.0) GOTO 40 IDCP(ICPR(I))=I 40 CONTINUE SEGSUP,IDCP SEGSUP,ICPR IF (IERR.NE.0) RETURN MELEME=MELCON * ON INSCRIT SEULEMENT LE CONTOUR EXTERIEUR DANS LES * REFERENCES DU MAILLAGE INITIAL IF (IPT8.LISREF(/1).EQ.0.AND.IMOT1.EQ.1) THEN NBREF=1 NBNN=IPT8.NUM(/1) NBELEM=IPT8.NUM(/2) NBSOUS=IPT8.LISOUS(/1) SEGADJ,IPT8 IPT8.LISREF(1)=MELEME ENDIF SEGACT,IPT8*NOMOD RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales