Download empele.eso

Back to the list

   1 : C EMPELE    SOURCE    CHAT      07/10/29    21:18:58     5940           
   2 :       SUBROUTINE EMPELE(I,ITELAC,INUMAT,ICONVE,LISTMA,ICONNT)
   3 : 
   4 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
   5 : C
   6 : C  But : Empiler correctement dans le segment LISTMA 
   7 : C        l'élément qui vient d'être lu
   8 : C
   9 : C  Appelé par : LIRAVS
  10 : C
  11 : C  Paramètres :
  12 : C
  13 : C     I      : numéro global de l'élément (entrée)
  14 : C
  15 : C     ITELAC : ITYPEL de l'élément (entrée)
  16 : C  
  17 : C     INUMAT : numéro du matériau de l'élément (entrée)
  18 : C  
  19 : C     ICONVE : tableau de conversion des connectivités (entrée)
  20 : C
  21 : C     LISTMA : segment LISTMA (entrée et sortie)
  22 : C
  23 : C     ICONNT : connectivités du nouvel élément (entrée)
  24 : C
  25 : C Auteur : Michel Bulik
  26 : C          Octobre 1994
  27 : C
  28 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  29 : 
  30 :       IMPLICIT INTEGER(I-N)
  31 : -INC CCGEOME
  32 : -INC SMELEME
  33 : 
  34 :       INTEGER I,ITELAC,INUMAT,ICONVE(*),ICONNT(*)
  35 : 
  36 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  37 : 
  38 :       SEGMENT LISTMA
  39 :          POINTEUR PTMA(NBSZEL).MELEME
  40 :          INTEGER  MATER(NBSZEL)
  41 :          INTEGER  TYPDEL(NBSZEL)
  42 :          INTEGER  NUMEMA(NOMBEL)
  43 :          INTEGER  NUMELE(NOMBEL)
  44 :       ENDSEGMENT
  45 : 
  46 : C
  47 : C   Description du segment LISTMA (LISTe des MAillages)
  48 : C
  49 : C   Paramètres :   NBSZEL - NomBre de Sous Zones ELémentaires
  50 : C                  NOMBEL - NOMBre total des ELéments
  51 : C
  52 : C   Tableaux   :   PTMA   - PoinTeurs sur des MAillages élémentaires
  53 : C                  MATER  - numéros des MATERiaux des sous-zones
  54 : C                  TYPDEL - TYPes Des ELéments des sous-zones (=ITYPEL)
  55 : C                  NUMEMA - NUMEros des MAillages auquels appartiennent
  56 : C                           les éléments (1..NBSZEL)
  57 : C                  NUMELE - le NUMéro de l'ELEment dans sa sous zone
  58 : C
  59 : C   Remarque : On ne touche pas à son état (actif ou non) dans cette
  60 : C              subroutine, on s'en occupe dans LIRAVS
  61 : C
  62 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  63 : 
  64 :       NBSZEL = LISTMA.MATER(/1)
  65 :       NOMBEL = LISTMA.NUMEMA(/1)
  66 : 
  67 : C       ... Boucle sur les sous-zones existantes ...
  68 :             DO 5400 K=1,NBSZEL
  69 : C          ... On vérifie si l'élément appartient à une d'elles ...
  70 :                IF(ITELAC.EQ.(LISTMA.TYPDEL(K)).AND.
  71 :      &                  INUMAT.EQ.(LISTMA.MATER(K))) THEN
  72 : C             ... Si OUI, on l'empile là où il faut ...
  73 :                   IPT3=LISTMA.PTMA(K)
  74 :                   SEGACT IPT3
  75 :                   NBELEM=IPT3.NUM(/2)
  76 :                   NBELEM=NBELEM+1
  77 :                   NBNN=IPT3.NUM(/1)
  78 :                   NBSOUS=0
  79 :                   NBREF=0
  80 :                   SEGADJ IPT3
  81 :                   IPT3.ICOLOR(NBELEM)=MOD(K-1,7)+1
  82 :                   LISTMA.NUMEMA(I)=K
  83 :                   GOTO 5401
  84 :                ENDIF
  85 :  5400       CONTINUE
  86 : C       ... Sinon (c.à.d. on n'a pas trouvé) -> nouveau maillage ...
  87 :             NBSZEL=NBSZEL+1
  88 :             SEGADJ LISTMA
  89 :             LISTMA.TYPDEL(NBSZEL)=ITELAC
  90 :             LISTMA.MATER(NBSZEL)=INUMAT
  91 :             NBNN=NBNNE(ITELAC)
  92 :             NBELEM=1
  93 :             NBSOUS=0
  94 :             NBREF=0
  95 :             SEGINI IPT3
  96 :             LISTMA.PTMA(NBSZEL)=IPT3
  97 :             IPT3.ITYPEL=ITELAC
  98 : C       ... Les couleurs des nouveaux maillages valent 1, 2, ..., 7, 1, etc
  99 :             IPT3.ICOLOR(NBELEM)=MOD(NBSZEL-1,7)+1
 100 :             LISTMA.NUMEMA(I)=NBSZEL
 101 :  5401       CONTINUE
 102 : C       ... Partie commune dans les deux cas ...
 103 :             LISTMA.NUMELE(I)=NBELEM
 104 :             DO 5402 K=1,NBNN
 105 :                IPT3.NUM(K,NBELEM)=ICONNT(ICONVE(K))
 106 :  5402       CONTINUE
 107 :             SEGDES IPT3
 108 : 
 109 :       RETURN
 110 :       END
 111 :  
 112 :  
 113 :  
 114 :  
 115 :  
 116 :  
 117 :  

© Cast3M 2003 - All rights reserved.
Disclaimer