      SUBROUTINE  gradconj(  u,  b,  p,  q,  r,  voisin,  &
                             ptabN,  ptabE,  ptabS,  ptabW,  ptabAV,  ptabAR,  &
                             it_max,  prec,  itgc,  rnorm_k,  rnudt2 )
      USE numerics
      IMPLICIT  NONE
      INCLUDE 'comthd.h'
      REAL(rp),  DIMENSION(sx-1:ex+1,sy-1:ey+1,sz-1:ez+1),  INTENT(INOUT)  ::  u
      REAL(rp),  DIMENSION(sx-1:ex+1,sy-1:ey+1,sz-1:ez+1),  INTENT(INOUT)  ::  b
      REAL(rp),  DIMENSION(sx-1:ex+1,sy-1:ey+1,sz-1:ez+1),  INTENT(INOUT)  ::  p
      REAL(rp),  DIMENSION(sx-1:ex+1,sy-1:ey+1,sz-1:ez+1),  INTENT(INOUT)  ::  q
      REAL(rp),  DIMENSION(sx-1:ex+1,sy-1:ey+1,sz-1:ez+1),  INTENT(INOUT)  ::  r
      REAL(rp),  DIMENSION(sy:ey,sz:ez),  INTENT(OUT)  ::  ptabE
      REAL(rp),  DIMENSION(sy:ey,sz:ez),  INTENT(OUT)  ::  ptabW
      REAL(rp),  DIMENSION(sx:ex,sz:ez),  INTENT(OUT)  ::  ptabS
      REAL(rp),  DIMENSION(sx:ex,sz:ez),  INTENT(OUT)  ::  ptabN
      REAL(rp),  DIMENSION(sx-1:ex+1,sy-1:ey+1),  INTENT(OUT)  ::  ptabAV
      REAL(rp),  DIMENSION(sx-1:ex+1,sy-1:ey+1),  INTENT(OUT)  ::  ptabAR
      INTEGER,  PARAMETER  ::  NB_VOISINS  =  6
      INTEGER,  PARAMETER  ::  N=1,  E=2,  S=3,  W=4,  AV=5,  AR=6
      INTEGER,  DIMENSION(NB_VOISINS),  INTENT(IN)  ::  voisin
      REAL(rp),  INTENT(IN)   ::  prec
      REAL(rp),  INTENT(OUT)  ::  rnorm_k
      REAL(rp),  INTENT(IN)   ::  rnudt2
      INTEGER,   INTENT(IN)   ::  it_max
      INTEGER,   INTENT(OUT)  ::  itgc
      END  SUBROUTINE  gradconj

