C DELIMI SOURCE CHAT 05/01/12 22:41:19 5004 C************************************************************************** C************************************************************************** C**************************** *************************** c************************ ELIMINE *********************** c**************************** *************************** C************************************************************************** C************************************************************************** C elimine NOEUD de NOERES. SUBROUTINE DELIMI(NOEUD,NOERES) IMPLICIT INTEGER(I-N) INTEGER NOEUD SEGMENT NOERES(0) LOGICAL BOOL BOOL=.FALSE. DO 100 J=1,NOERES(1)-1 IF (NOEUD.EQ.NOERES(J+1)) BOOL=.TRUE. IF (BOOL) NOERES(J+1)=NOERES(J+2) C a partir de la position(J+1) ou BOOL est vrai, on decale C tous les noeuds de position superieure. C on enleve ainsi NOEUD. 100 CONTINUE IF (NOEUD.EQ.NOERES(NOERES(1)+1)) BOOL=.TRUE. C si NOEUD est a la derniere position de NOERES, on a bool=vrai. IF (BOOL) THEN NOERES(1)=NOERES(1)-1 ENDIF C dans les cas ou bool est vrai, on desincremente la taille de C NOERES de 1. RETURN END