Download poiele.eso

Back to the list

   1 : C POIELE    SOURCE    CHAT      06/03/29    21:29:07     5360           
   2 :       SUBROUTINE POIELE(MCLAS,MCLPO1,MCENT,MPOIEL)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)
   5 : C***********************************************************************
   6 : C NOM         : POIELE
   7 : C DESCRIPTION : Construit le MELEME de correspondance Point-Elément.
   8 : C               Les éléments du MELEME sont de type POLY. Ils ont pour 
   9 : C               premier point les points de MCLPO1. Les points suivants
  10 : C               sont les points centre des éléments auxquels appartient
  11 : C               le point de MCLPO1 considéré.
  12 : C LANGAGE     : ESOPE
  13 : C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/TTMF)
  14 : C               mél : gounand@semt2.smts.cea.fr
  15 : C***********************************************************************
  16 : C APPELES          : POINBL : maillage de points -> LISTENTI de
  17 : C                             nb d'éléments auxquels ils appartiennent
  18 : C                    POELEM : maillage de points -> MLELEM contenant les
  19 : C                             points et les centres d'éléments auxquels 
  20 : C                             ils appartiennent.
  21 : C                    LE2MEL : MLELEM (liste indexée d'éléments) 
  22 : C                             -> MELEME 
  23 : C APPELES (E/S)    : -
  24 : C APPELES (BLAS)   : -
  25 : C APPELES (CALCUL) : -
  26 : C APPELE PAR       : LEKTAB
  27 : C***********************************************************************
  28 : C SYNTAXE GIBIANE    : -
  29 : C ENTREES            : MCLAS (type MELEME)  : maillage de classe de 
  30 : C                                             points (sommet, face) par
  31 : C                                             élément (MMAIL,ELTFA)
  32 : C                      MCLPO1 (type MELEME) : maillage de points
  33 : C                                             correspondant à MCLAS
  34 : C                      MCENT (type MELEME)  : maillage des points
  35 : C                                             centre
  36 : C ENTREES/SORTIES    : -
  37 : C SORTIES            : MPOIEL (type MELEME) : maillage de 
  38 : C                                             connectivités
  39 : C                                             point-élément
  40 : C CODE RETOUR (IRET) : -
  41 : C***********************************************************************
  42 : C VERSION    : v1, 06/10/98, version initiale
  43 : C HISTORIQUE : v1, 06/10/98, création
  44 : C HISTORIQUE :
  45 : C HISTORIQUE :
  46 : C***********************************************************************
  47 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  48 : C en cas de modification de ce sous-programme afin de faciliter
  49 : C la maintenance !
  50 : C***********************************************************************
  51 : -INC CCOPTIO
  52 : -INC SMELEME
  53 :       POINTEUR MCLAS.MELEME
  54 :       POINTEUR MCLPO1.MELEME
  55 :       POINTEUR MCENT.MELEME
  56 :       POINTEUR MPOIEL.MELEME
  57 : -INC SMLENTI
  58 :       POINTEUR PONBEL.MLENTI
  59 : *
  60 : *     Segment MLELEM
  61 : *
  62 :       SEGMENT MLELEM
  63 :       INTEGER INDEX(NBL+1)
  64 :       INTEGER LESPOI(NBTPOI)
  65 :       ENDSEGMENT
  66 : *
  67 : *     LISTE SEQUENTIELLE INDEXEE D'ELEMENTS
  68 : *
  69 : *     NBL      : NOMBRE D'ELEMENTS
  70 : *     NBTPOI   : NOMBRE TOTAL DE POINTS REFERENCEES 
  71 : *     INDEX(I) : INDICE DU 1ER POINT DU IEME ELEMENT 
  72 : *                DANS LE TABLEAU LESPOI
  73 : *     LESPOI(INDEX(I) -> INDEX(I+1)-1) : NUMERO DES NOEUDS
  74 : *                DU IEME ELEMENT
  75 : *
  76 :       POINTEUR LEPOEL.MLELEM
  77 :       INTEGER IMPR,IRET
  78 : *
  79 : * Executable statements
  80 : *
  81 :       IMPR=IIMPI
  82 :       IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans poiele.eso' 
  83 : *
  84 : *  Pour dimensionner le tableau LESPOI et remplir le tableau
  85 : *  INDEX du segment LEPOEL (type MLELEM), on construit d'abord :
  86 : *               PONBEL(NOPOI1)
  87 : *  NOPOI1 : indice du point considéré dans MCLPO1
  88 : *  PONBEL(NOPOI1) : nombre d'éléments contenant le point considéré
  89 : *
  90 : *  In PONBEL : new temporary object PONBEL.MLENTI (SEGINI)
  91 : *
  91 :       CALL POINBL(MCLAS,MCLPO1,
  92 :      $     PONBEL,IMPR,IRET)
  93 :       IF (IRET.NE.0) GOTO 9999
  94 : *
  95 : *  On construit la liste séquentielle indexée d'éléments LEPOEL.
  96 : *  NOPOI1 : indice du point considéré dans MCLPO1
  97 : *  LEPOEL.LESPOI(LEPOEL.INDEX(NOPOI1)) :
  98 : *           contient le numéro du point considéré
  99 : *  LEPOEL.LESPOI(LEPOEL.INDEX(NOPOI1)+1 -> LEPOEL.INDEX(NOPOI1+1)-1) :
 100 : *           contient les numéro des points centre des éléments 
 101 : *           contenant le point considéré (!)
 102 : *  
 103 : *  In POELEM : new temporary object LEPOEL.MLELEM (SEGINI)
 104 : *
 104 :       CALL POELEM(MCLAS,MCLPO1,MCENT,PONBEL,
 105 :      $     LEPOEL,IMPR,IRET)
 106 :       IF (IRET.NE.0) GOTO 9999
 107 :       SEGSUP PONBEL
 108 : *
 109 : *  A partir de LEPOEL, on peut construire la structure MELEME 
 110 : *  correspondante : elle est constituée d'éléments de type POLY. 
 111 : *  En gros, on regroupe les éléments qui ont le meme nombre de points.
 112 : *
 113 : *  In LE2MEL : new object MPOIEL.MELEME (SEGINI-SEGDES)
 114 : *
 114 :       CALL LE2MEL(LEPOEL,
 115 :      $     MPOIEL,IMPR,IRET)
 116 :       IF (IRET.NE.0) GOTO 9999
 117 : *
 118 : *  Suppressions d'objets temporaires
 119 : *
 120 :       SEGSUP LEPOEL
 121 : *
 122 : * Normal termination
 123 : *
 124 :       RETURN
 125 : *
 126 : * Format handling
 127 : *
 128 :  4000  FORMAT (A,'(1..',I8,')')
 129 :  5000  FORMAT (8(1X,I8))
 130 : *
 131 : * Error handling
 132 : *
 133 :  9999 CONTINUE
 134 :       WRITE(IOIMP,*) 'An error was detected in subroutine poiele'
 135 :       MPOIEL=0
 135 :       call erreur(5)
 136 :       RETURN
 137 : *
 138 : * End of subroutine POIELE
 139 : *
 140 :       END
 141 : 
 142 :  
 143 :  
 144 :  

© Cast3M 2003 - All rights reserved.
Disclaimer