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