poiele
C POIELE SOURCE CHAT 06/03/29 21:29:07 5360 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C*********************************************************************** C NOM : POIELE C DESCRIPTION : Construit le MELEME de correspondance Point-Elément. C Les éléments du MELEME sont de type POLY. Ils ont pour C premier point les points de MCLPO1. Les points suivants C sont les points centre des éléments auxquels appartient C le point de MCLPO1 considéré. C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/TTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELES : POINBL : maillage de points -> LISTENTI de C nb d'éléments auxquels ils appartiennent C POELEM : maillage de points -> MLELEM contenant les C points et les centres d'éléments auxquels C ils appartiennent. C LE2MEL : MLELEM (liste indexée d'éléments) C -> MELEME C APPELES (E/S) : - C APPELES (BLAS) : - C APPELES (CALCUL) : - C APPELE PAR : LEKTAB C*********************************************************************** C SYNTAXE GIBIANE : - C ENTREES : MCLAS (type MELEME) : maillage de classe de C points (sommet, face) par C élément (MMAIL,ELTFA) C MCLPO1 (type MELEME) : maillage de points C correspondant à MCLAS C MCENT (type MELEME) : maillage des points C centre C ENTREES/SORTIES : - C SORTIES : MPOIEL (type MELEME) : maillage de C connectivités C point-élément C CODE RETOUR (IRET) : - C*********************************************************************** C VERSION : v1, 06/10/98, version initiale C HISTORIQUE : v1, 06/10/98, 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 MCLAS.MELEME POINTEUR MCLPO1.MELEME POINTEUR MCENT.MELEME POINTEUR MPOIEL.MELEME -INC SMLENTI POINTEUR PONBEL.MLENTI * * Segment MLELEM * SEGMENT MLELEM INTEGER INDEX(NBL+1) INTEGER LESPOI(NBTPOI) ENDSEGMENT * * LISTE SEQUENTIELLE INDEXEE D'ELEMENTS * * NBL : NOMBRE D'ELEMENTS * NBTPOI : NOMBRE TOTAL DE POINTS REFERENCEES * INDEX(I) : INDICE DU 1ER POINT DU IEME ELEMENT * DANS LE TABLEAU LESPOI * LESPOI(INDEX(I) -> INDEX(I+1)-1) : NUMERO DES NOEUDS * DU IEME ELEMENT * POINTEUR LEPOEL.MLELEM INTEGER IMPR,IRET * * Executable statements * IMPR=IIMPI IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans poiele.eso' * * Pour dimensionner le tableau LESPOI et remplir le tableau * INDEX du segment LEPOEL (type MLELEM), on construit d'abord : * PONBEL(NOPOI1) * NOPOI1 : indice du point considéré dans MCLPO1 * PONBEL(NOPOI1) : nombre d'éléments contenant le point considéré * * In PONBEL : new temporary object PONBEL.MLENTI (SEGINI) * $ PONBEL,IMPR,IRET) IF (IRET.NE.0) GOTO 9999 * * On construit la liste séquentielle indexée d'éléments LEPOEL. * NOPOI1 : indice du point considéré dans MCLPO1 * LEPOEL.LESPOI(LEPOEL.INDEX(NOPOI1)) : * contient le numéro du point considéré * LEPOEL.LESPOI(LEPOEL.INDEX(NOPOI1)+1 -> LEPOEL.INDEX(NOPOI1+1)-1) : * contient les numéro des points centre des éléments * contenant le point considéré (!) * * In POELEM : new temporary object LEPOEL.MLELEM (SEGINI) * $ LEPOEL,IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SEGSUP PONBEL * * A partir de LEPOEL, on peut construire la structure MELEME * correspondante : elle est constituée d'éléments de type POLY. * En gros, on regroupe les éléments qui ont le meme nombre de points. * * In LE2MEL : new object MPOIEL.MELEME (SEGINI-SEGDES) * $ MPOIEL,IMPR,IRET) IF (IRET.NE.0) GOTO 9999 * * Suppressions d'objets temporaires * SEGSUP LEPOEL * * Normal termination * RETURN * * Format handling * 4000 FORMAT (A,'(1..',I8,')') 5000 FORMAT (8(1X,I8)) * * Error handling * 9999 CONTINUE WRITE(IOIMP,*) 'An error was detected in subroutine poiele' MPOIEL=0 RETURN * * End of subroutine POIELE * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales