      SUBROUTINE  u_comm(  u, utabN, utabE, utabS, utabW, utabAV, utabAR, voisin  )
      USE numerics
      IMPLICIT  NONE
      INCLUDE 'comthd.h'
      INCLUDE 'u_comptr.h'
      REAL(rp),  DIMENSION(sx-1:ex+1,sy-1:ey+1,sz-1:ez+1),  INTENT(INOUT)  ::  u
      REAL(rp),  DIMENSION(sy:ey,sz:ez),  INTENT(OUT)  ::  utabE
      REAL(rp),  DIMENSION(sy:ey,sz:ez),  INTENT(OUT)  ::  utabW
      REAL(rp),  DIMENSION(sx:ex,sz:ez),  INTENT(OUT)  ::  utabS
      REAL(rp),  DIMENSION(sx:ex,sz:ez),  INTENT(OUT)  ::  utabN
      REAL(rp),  DIMENSION(sx:ex,sy:ey),  INTENT(OUT)  ::  utabAV
      REAL(rp),  DIMENSION(sx:ex,sy:ey),  INTENT(OUT)  ::  utabAR
      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
      END  SUBROUTINE  u_comm
