[updated 8.Sep.2008]

Librairie glonum > Fichier glnsaf.f

Qui appelle glnsaf ?

line
      SUBROUTINE GLNSAF (NBSOMX,LGSOEL,NBSOAX,NBAREX,LGAREL
     &                  ,NBSOFX,NBFACX,LGFAEL,LGWOR4,NIVIMP,IMPFCH)
line
  Auteur : D.Martin & O.deBayser (Decembre 1988)
  Refonte complete : D.Martin (Octobre 1995)
  Derniere modification : D.Martin (6 Septembre 2001)
  Version 1.1.1
 
  Tableau de numerotations globales des sommets, des aretes, des faces
  des elements d'un maillage pour la construction de la numerotation
  des noeuds du maillage pour toutes les interpolations.
 
 -- Arguments d'entree --
  NBSOMX nombre maximum des sommets des elements du maillage
  LGSOEL longueur du tableau recepteur de la numerotation globale des sommets
         du maillage (si le maillage n'est pas d'ordre 1)
  NBSOAX nombre maximum de sommets des aretes des elements du maillage
  NBAREX nombre maximum d'aretes des elements du maillage
  LGAREL longueur du tableau recepteur de la numerotation globale des aretes
         de tous les elements du maillage
  NBSOFX nombre maximum de sommets des faces des elements du maillage
  NBFACX nombre maximum de faces des elements du maillage
  LGFAEL longueur du tableau recepteur de la numerotation globale des faces
         de tous les elements du maillage
  LGWOR4 longueur du tableau conenant des tableau de numerotations temporaires
  NIVIMP niveau d'impression
  IMPFCH unite d'impression
line
      IMPLICIT NONE
      INTEGER  NBSOMX,LGSOEL,NBSOAX,NBAREX,LGAREL,NBSOFX,NBFACX
     &        ,LGFAEL,LGWOR4,NIVIMP,IMPFCH
 
      INCLUDE 'ALLOC'
      INCLUDE 'CONTEX'
 
      INTEGER  MCNENG,MCBLOK,MCSOEL,MCAREL,MCFAEL,MCWOR4
      INTEGER  ADPRBO,ADSOBO,ADNUSO,ADNUFA,ADDLFA,ADDUDL,ADRGDL,ADDLIN
      CHARACTER ERCODE*120
      COMMON/FORMAH/ERCODE
line
      CALL PRFXMJ (1,'*GlNsaf*')

      Calculs de adresses relatives des sous-tableaux temporaires
      places dans '$WORK$':
      NUPRBO,NUSOBO,NGNEBO,NUNEBO,NUDLBO,NEDUDL,IRGDLN,NDLINN
      (cf. procedures GLNUSO & GLNUFA)
 
      ADPRBO = 0
      ADSOBO = ADPRBO+NBTPTG
      ADNUSO = ADSOBO+MAX (LGSOEL,NBSOAX*LGAREL,NBSOFX*LGFAEL)
      ADNUFA = ADNUSO+NBSOMX
      ADDLFA = ADNUFA+NBPTFX
      ADDUDL = ADDLFA+NBPTFX
      ADRGDL = ADDUDL+NBPTFX
      ADDLIN = ADRGDL+NBPTFX
      LGWOR4 = ADDLIN+NBPTFX
 
      Tableau de numerotation globale des sommets (NUGSOL)
      IF (LGSOEL.GT.0) CALL TBCREE ('#GNEEL',1,1,LGSOEL,'c')
      Tableau de numerotation globale des aretes (NUGARL)
      IF (LGAREL.GT.0) CALL TBCREE ('#GAREL',1,1,LGAREL,'c')
      Tableau de numerotation globale des faces (NUGFAL)
      IF (LGFAEL.GT.0) CALL TBCREE ('#GFAEL',1,1,LGFAEL,'c')
      Tableau de travail
      CALL TBCREE ('$WORK$',4,1,LGWOR4,'c')
      Tableau de numerotation globale du maillage
      CALL TBRR1  (ERCODE,'#GNEEL',NIVENG,MCNENG)
      Tableau #LOKEL de description des elements du maillage
      IF (NBBBLK.GT.1) CALL TBAR1  (ERCODE,'#LOKEL',1,MCBLOK)
      CALL TBAR2  (ERCODE,'#GNEEL',NIVENG,MCNENG,'$WORK$',4,MCWOR4)
 
      Numerotation des sommets
 
      IF (LGSOEL.GT.0) THEN
         Mise a zero du tableau du tableau NUPRBO contenant
         le numero du premier noeud porte par un point donne
         et du tableau NUBOSO chainant les aretes
         CALL TBAR1  (ERCODE,'#GNEEL',1,MCSOEL)
         CALL TAZERO (NBTPTG+LGSOEL,'E',MCWOR4,AST,IST,RST,CST)         !utilite
         NBTSOG=0
         CALL GLNUSO (NBPTEX,IST(MCNENG),NBTEL,NBBBLK,NU1BLK,IST(MCBLOK)
     &               ,NBTSOG,NBSOMX,IST(MCSOEL),IST(MCWOR4+ADPRBO)
     &               ,IST(MCWOR4+ADDUDL)
     &               ,IST(MCWOR4+ADRGDL),IST(MCWOR4+ADDLIN))            !glonum
      ELSE
         LGSOEL=NBSOMX*NBTEL
      ENDIF
 
      Numerotation des aretes (2D ou 3D)
 
      IF (LGAREL.GT.0) THEN
         Mise a zero du tableau du tableau NUPRBO contenant
         le numero de la premiere arete contenant un point donne
         et du tableau NUBOSO chainant les aretes
         CALL TBAR1  (ERCODE,'#GAREL',1,MCAREL)
         CALL TAZERO (NBTPTG+NBSOAX*LGAREL,'E',MCWOR4,AST,IST,RST,CST)  !utilite
         NBTARG=0
         CALL GLNUFA (1,NBPTEX,IST(MCNENG),NBTEL,NBBBLK,NU1BLK
     &               ,IST(MCBLOK),NBTARG,NBAREX,IST(MCAREL)
     &               ,IST(MCWOR4+ADPRBO)
     &               ,NBSOAX,IST(MCWOR4+ADSOBO),IST(MCWOR4+ADNUSO)
     &               ,IST(MCWOR4+ADNUFA),IST(MCWOR4+ADDLFA)
     &               ,IST(MCWOR4+ADDUDL),IST(MCWOR4+ADRGDL)
     &               ,IST(MCWOR4+ADDLIN),NIVIMP,IMPFCH)                 !glonum
      ENDIF
 
      Numerotation des faces (en 3D)
 
      IF (LGFAEL.GT.0) THEN
         Mise a zero du tableau du tableau NUPRBO contenant
         le numero de la premiere face contenant un point donne
         et du tableau NUBOSO chainant les faces
         CALL TBAR1  (ERCODE,'#GFAEL',1,MCFAEL)
         CALL TAZERO (NBTPTG+NBSOFX*LGFAEL,'E',MCWOR4,AST,IST,RST,CST)  !utilite
         NBTFAG=0
         CALL GLNUFA (2,NBPTEX,IST(MCNENG),NBTEL,NBBBLK,NU1BLK
     &               ,IST(MCBLOK),NBTFAG,NBFACX,IST(MCFAEL)
     &               ,IST(MCWOR4+ADPRBO)
     &               ,NBSOFX,IST(MCWOR4+ADSOBO),IST(MCWOR4+ADNUSO)
     &               ,IST(MCWOR4+ADNUFA),IST(MCWOR4+ADDLFA)
     &               ,IST(MCWOR4+ADDUDL),IST(MCWOR4+ADRGDL)
     &               ,IST(MCWOR4+ADDLIN),NIVIMP,IMPFCH)                 !glonum
      ENDIF
      CALL PRFXMJ (-1,'*GlNsaf*')
line
                                                                    END !GlNsaf
line
top

glnsaf est appelé dans

top