rpelen
C RPELEN SOURCE CHAT 05/01/13 03:06:46 5004 $ LELEM, $ IMPR,IRET) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C*********************************************************************** C NOM : RPELEN C DESCRIPTION : On repère les éléments d'un maillage qui contiennent (au C moins) un point d'une liste de points. C C On repère les éléments de MTOUT qui contiennent au moins C un point tel que KRPOIN(po_elem).NE.0 C C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELES : NBDEL C APPELE PAR : PROMAT C*********************************************************************** C ENTREES : MTOUT, KRPOIN C SORTIES : LELEM C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 02/02/2000, version initiale C HISTORIQUE : v1, 02/02/2000, création C HISTORIQUE : C HISTORIQUE : C*********************************************************************** C Prière de PRENDRE LE TEMPS de compléter les commentaires C en cas de modification de ce sous-programme afin de faciliter C la maintenance ! C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC SMELEME POINTEUR MTOUT.MELEME POINTEUR SOUMT.MELEME -INC SMLENTI POINTEUR KRPOIN.MLENTI INTEGER JG POINTEUR LELEM.MLENTI * INTEGER IMPR,IRET * INTEGER NEL,NNO,NSOUS,NELMT INTEGER IEL,INO,ISOUS,IELMT INTEGER IELEM,NUNO * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans rpelen.eso' IF (IRET.NE.0) GOTO 9999 JG=NELMT SEGINI LELEM SEGACT KRPOIN SEGACT MTOUT * Parcourons le maillage IELMT=0 IELEM=0 NSOUS=MAX(1,MTOUT.LISOUS(/1)) DO 1 ISOUS=1,NSOUS IF (NSOUS.EQ.1) THEN SOUMT=MTOUT ELSE SOUMT=MTOUT.LISOUS(ISOUS) SEGACT SOUMT ENDIF NNO=SOUMT.NUM(/1) NEL=SOUMT.NUM(/2) DO 12 IEL=1,NEL INO=1 IELMT=IELMT+1 122 CONTINUE NUNO=SOUMT.NUM(INO,IEL) IF (KRPOIN.LECT(NUNO).NE.0) THEN IELEM=IELEM+1 LELEM.LECT(IELEM)=IELMT ELSE INO=INO+1 IF (INO.LE.NNO) GOTO 122 ENDIF 12 CONTINUE IF (NSOUS.NE.1) THEN SEGDES SOUMT ENDIF 1 CONTINUE SEGDES MTOUT SEGDES KRPOIN JG=IELEM SEGADJ,LELEM SEGDES LELEM * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine rpelen' RETURN * * End of subroutine RPELEN * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales