Download nuenul.eso

Back to the list

   1 : C NUENUL    SOURCE    CHAT      05/01/13    02:02:55     5004           
   2 : C      
   3 : C
   4 :       SUBROUTINE NUENUL(ITRNOE,NBNMAX,NBE,NUM,NBENUL,IERR)
   5 : C     *****************************************************************
   6 : C     OBJET NUENUL : PROPOSE UNE RENUMEROTATION POUR METTRE EN FIN LES 
   7 : C     OBJET          ELEMENTS NULS.
   8 : C              
   9 : C     EN ENTREE:
  10 : C      ITRNOE: LES NOEUDS DES ELEMENTS DU MAILLAGE
  11 : C      NBNMAX: NOMBRE MAXIMUM DE NOEUDS PAR ELEMENT
  12 : C      NBE   : NOMBRE D'ELEMENTS
  13 : C
  14 : C     EN SORTIE:
  15 : C       NBENUL : NOMBRE D'ELEMENTS NULS
  16 : C       NUM    : NOUVELLE NUMEROTATION 
  17 : C                NUM(I) =  NOUVEAU NUMERO DE L'ELEMENT I
  18 : C                NUM EST UN TABLEAU DE TAILLE NBE
  19 : C
  20 : C
  21 : C     CONDITION D'APPLICATION : TOUT MAILLAGE
  22 : C     REMARQUE : IDEM NUNISO => UTILITAIRE SUR LES TABLEAUX ?
  23 : C     *****************************************************************
  24 :       IMPLICIT INTEGER(I-N)
  25 :       INTEGER    ITRNOE(*),NBNMAX,NBE
  26 :       INTEGER    NUM(*),NBENUL,IERR
  27 : C
  28 :       INTEGER I
  29 : C
  30 :       NBENUL = 0
  31 :       I = 1 
  32 :    10 IF(I.GT.(NBE-NBENUL))GOTO 9999
  33 : C     --- LE NOEUD EST ISOLE ---
  34 :       IF( ITRNOE((I-1)*NBNMAX+1).EQ.0 )THEN
  35 : C
  36 : C       --- RECHERCHE D'UN NOEUD (A LA FIN) POUR PERMUTER ---
  37 :    20   IF( ITRNOE((NBE-NBENUL-1)*NBNMAX+1).EQ. 0 )THEN
  38 :            NUM(NBE-NBENUL) = NBE-NBENUL
  39 :            NBENUL = NBENUL + 1
  40 : C          --- TOUS LES NOEUDS SONT ISOLES ---
  41 :            IF( NBENUL.EQ.NBE )GOTO 9999
  42 : C          --- ON A TROUVE TOUS LES NOEUDS ISOLES ---
  43 :            IF( I.GT.(NBE-NBENUL))GOTO 9999
  44 :            GOTO 20  
  45 :         ENDIF
  46 : C
  47 : C       --- ON A LE NOEUD POUR PERMUTER ---
  48 :         NUM(NBE-NBENUL) = I
  49 :         NUM(I) = NBE-NBENUL
  50 :         NBENUL = NBENUL + 1
  51 :       ELSE
  52 :         NUM(I) = I
  53 :       ENDIF
  54 :       I = I + 1
  55 :       GOTO 10
  56 : C      
  57 :  9999 END
  58 :  
  59 :  

© Cast3M 2003 - All rights reserved.
Disclaimer