prex1d
C PREX1D SOURCE BP208322 16/11/18 21:20:07 9177 C======================================================================= C= P R E X 1 D = C= ----------- = C= Ce sousprogramme determine les "extremites" d'un maillage 1D. = C= Il est l'image en 1D des sousprogrammes PRCONT (2D) et PRENVE (3D).= C= Il est appele par les operateurs FLUX et PRESSION. = C======================================================================= SUBROUTINE PREX1D IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCGEOME -INC SMELEME -INC SMLENTI C* IF (IDIM.NE.1) THEN C* CALL ERREUR(xx) C* RETURN C* ENDIF C= Travail sur un maillage avec des SEG2 et/ou des POI C= C'est suffisant pour recuperer les points extremites CALL CHANLI IF (IERR.NE.0) RETURN IF (IERR.NE.0) RETURN C= On determine les composantes connexes du maillage C= CCON cree un nouveau maillage, meme si ipmail est elementaire. C= On peut donc detruire les maillages pointes dans ilect. IF (IERR.NE.0) RETURN C= On a alors au plus extremites = dimension de ilect * 2 MLENT1=ilect SEGACT,MLENT1 IG=MLENT1.LECT(/1) JG=2*IG SEGINI,MLENTI NBEXT=0 C= Recuperation des points extremites C= On ordonne le maillage de SEG2. C= Dans le cas ou la composante connexe retournee par CCON contient C= plusieurs objets (normalement 2 de type POI1 et SEG2), les elements C= POI1 sont en fait des noeuds inclus dans le maillage SEG2, qui ne C= necessitent donc pas de traitement. DO i=1,IG IPT1=MLENT1.LECT(i) SEGACT,IPT1 NSous=IPT1.LISOUS(/1) IF (NSous.NE.0) THEN C* MELEME=0 DO j=1,NSous IPT2=IPT1.LISOUS(j) SEGACT,IPT2 IF (IPT2.ITYPEL.EQ.2) MELEME=IPT2 SEGDES,IPT2 ENDDO C* IF (MELEME.EQ.0) --> ERREUR (a finir) SEGACT,MELEME ELSE MELEME=IPT1 ENDIF IF (ITYPEL.EQ.1) THEN NBEXT=NBEXT+1 LECT(NBEXT)=NUM(1,1) ELSE IF (ITYPEL.EQ.2) THEN SEGACT,MELEME NBEXT=NBEXT+1 LECT(NBEXT)=NUM(1,1) NBEXT=NBEXT+1 LECT(NBEXT)=NUM(2,NUM(/2)) ENDIF SEGSUP,IPT1 ENDDO C= Initialisation du maillage de POI1 resultat NBNN=1 NBELEM=NBEXT NBSOUS=0 NBREF=0 SEGINI,MELEME C= Remplissage du maillage ITYPEL=1 DO i=1,NBEXT NUM(1,i)=LECT(i) ICOLOR(i)=IDCOUL ENDDO SEGDES,MELEME C= Ecriture du maillage resultat ipmail=MELEME C= Un peu de menage SEGSUP,MLENT1,MLENTI RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales