C ICGPRC    SOURCE    CHAT      05/01/13    00:28:09     5004
      SUBROUTINE ICGPRC(X,Y,P,KA,NEL,NNZ)
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C                                                                   C
C  Effectue une rsolution par descente remonte de la matrice      C
C  de prconditionnement.                                           C
C  La matrice est stocke en mode compress dans P.                 C
C                                                                   C
C +---------------------------------------------------------------+ C
C ! DESCRIPTION DES ARGUMENTS                                     ! C
C !---------------------------------------------------------------! C
C !                                                               ! C
C +----------+------+---------------------------------------------+ C
C ! NOM      ! MODE ! DESCRIPTION                                 ! C
C +----------+------+---------------------------------------------+ C
C ! X        ! ---> ! Solution                                    ! C
C +----------+------+---------------------------------------------+ C
C ! Y        ! <--- ! Second membre                               ! C
C +----------+------+---------------------------------------------+ C
C ! P        ! <--- ! La matrice de prconditionnement            ! C
C +----------+------+---------------------------------------------+ C
C ! KA       ! <--- ! Le tableau d'indexage correspondant         ! C
C +----------+------+---------------------------------------------+ C
C ! NEL      ! <--- ! Nombre de lignes de la matrice              ! C
C +----------+------+---------------------------------------------+ C
C ! NNZ      ! <--- ! Nombre de colonnes (nombre maxi de voisins) ! C
C +----------+------+---------------------------------------------+ C
C !                                                               ! C
C ! MODE = ---> VARIABLE ECRITE (SORTIE)                          ! C
C ! MODE = <--- VARIABLE LUE    (ENTREE)                          ! C
C ! MODE = <--> VARIABLE LUE ET ECRITE                            ! C
C !                                                               ! C
C +---------------------------------------------------------------+ C
C !                                                               ! C
C ! CONTACT : Franois Thomas  69 08 24 64 ou 76 96               ! C
C !                                                               ! C
C +---------------------------------------------------------------+ C
C !                                                               ! C
C ! RELATIONS AVEC D'AUTRES MODULES                               ! C
C !                                                               ! C
C +---------------------------------------------------------------+ C
C !                                                               ! C
C ! MODIFICATIONS                                                 ! C
C !                                                               ! C
C ! 11/03/92 : Cration                                           ! C
C !                                                               ! C
C +---------------------------------------------------------------+ C
C                                                                   C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
      DIMENSION X(NEL)
      DIMENSION Y(NEL)
      DIMENSION P(NEL,NNZ)
      DIMENSION KA(NEL,NNZ)
C
      DO 8 I=1,NEL
         X(I)=Y(I)
 8    CONTINUE

      DO 10 I=1,NEL
         S=0.D0
         DO 11 IKA=2,NNZ
            K=KA(I,IKA)
            IF(K.LT.I) S=S+P(I,IKA)*X(K)
 11      CONTINUE
 1       X(I)=X(I)-S
 10   CONTINUE

      DO 20 I=1,NEL
         X(I)=X(I)*P(I,1)
 20   CONTINUE

      DO 30 II=0,NEL-1
         I=NEL-II
         S=0.D0
         DO 31 IKA=2,NNZ
            K=KA(I,IKA)
            IF(K.GT.I) S=S+P(I,IKA)*X(K)
 31      CONTINUE
         X(I)=X(I)-S
 30   CONTINUE

      RETURN
      END


