Download rajout.eso

Back to the list

   1 : C RAJOUT    SOURCE    CHAT      05/01/13    02:44:51     5004           
   2 : C**************************************************************************
   3 : C**************************************************************************
   4 : C****************************                   ***************************
   5 : c************************          RAJOUTE         ***********************
   6 : c****************************                   ***************************
   7 : C**************************************************************************
   8 : C**************************************************************************
   9 : C       cette procedure permet de RAJOUTER un element de fus dans les voisins
  10 : C       de X. Elle decale donc toute la gestion de donnees ,notemment 
  11 : C       NPVOIS(J,1),NPVOIS(J,2) pour J>X,afin de pouvoir inserer l' element
  12 : C       a la position convenable.
  13 : 
  14 : 
  15 :         SUBROUTINE RAJOUT(IFUS,X,NPVOIS,NVOIS,NBENS)
  16 : 
  17 : 
  18 :       IMPLICIT INTEGER(I-N)
  19 :         SEGMENT NPVOIS(0),NVOIS(0)
  20 :         INTEGER NBENS
  21 :         INTEGER X
  22 :         SEGMENT IFUS(0)
  23 : 
  24 :         INTEGER COMPT
  25 : 
  26 :         COMPT=2
  27 :         N=NPVOIS(X)
  28 : C       indice minimal des voisins de X.
  29 : 
  30 : 100     IF (IFUS(1).GE.(COMPT-1)) THEN
  31 :  
  32 :           IF (NPVOIS(X+1).GT.N) THEN
  33 : C         si on n'ecrase pas les voisins du noeud suivant.
  34 :              NVOIS(N)=IFUS(COMPT)
  35 : C            on peut alors rajouter  l'element IFUS(COMPT).
  36 : 
  37 :           ELSE
  38 : C         sinon il faut decaler tous les indicages des noeuds suivants.
  39 :             NVOIS(**)=NVOIS(NPVOIS(2*NBENS))
  40 :             DO 200 I=NPVOIS(2*NBENS)-1,N,-1
  41 :                 NVOIS(I+1)=NVOIS(I)
  42 : 200         CONTINUE
  43 : 
  44 :             DO 250 I= X+1,NBENS
  45 :                 NPVOIS(I)=NPVOIS(I)+1
  46 :                 NPVOIS(I+NBENS)=NPVOIS(I+NBENS)+1
  47 : 250         CONTINUE
  48 : 
  49 :            NVOIS(N)=IFUS(COMPT)
  50 :           ENDIF 
  51 :           N=N+1
  52 :           COMPT=COMPT+1
  53 : 
  54 :         GOTO 100
  55 :         ENDIF
  56 : 
  57 :         NPVOIS(X+NBENS)=N-1
  58 : C       on change l'indice maximal DE NPVOIS.
  59 : 
  60 :         RETURN
  61 :         END
  62 :  

© Cast3M 2003 - All rights reserved.
Disclaimer