      !***********************************************************************!
      SUBROUTINE  pmv(  a,  b,  scal  )
      !***********************************************************************!
!
      USE numerics
!
      IMPLICIT  NONE
!
      INCLUDE 'comthd.h'
!
!--Declaration des arguments
!
!Vecteur resultat
      REAL(rp),  DIMENSION(sx-1:ex+1,sy-1:ey+1,sz-1:ez+1),  INTENT(OUT)   ::  a
!
!Vecteur en entree
      REAL(rp),  DIMENSION(sx-1:ex+1,sy-1:ey+1,sz-1:ez+1),  INTENT(IN)    ::  b
!
!Scalaire laplacien
      REAL(rp),  INTENT(IN)  ::  scal
!
!--Declaration des variales locales
!
! Poids
      REAL(rp)  ::  c1, c2, c3, c4
!
!Compteurs
      INTEGER   ::  i,  j,  k
!
      !***********************************************************************!
!
      c1 = scal / hx**2
      c2 = scal / hy**2
      c3 = scal / hz**2
      c4 = ( ( hx * hy * hz )**2 - 2.0_rp * scal * ( &
           ( hx * hz ) **2 + ( hx * hy ) **2 + ( hy * hz ) **2 ) ) / (hx * hy * hz )**2
!
      DO  k  =  kmin,  kmax
          DO  j  =  sy,  ey
             DO  i  =  sx,  ex
!
               a(i,j,k) = c4 * b(i,j,k) &
             + c1 * ( b(i+1,j  ,k  ) + b(i-1,j  ,k  ) ) &
             + c2 * ( b(i  ,j+1,k  ) + b(i  ,j-1,k  ) ) &
             + c3 * ( b(i  ,j  ,k+1) + b(i  ,j  ,k-1) )
!
            END  DO
         END  DO
      END  DO
!
      RETURN
      END SUBROUTINE pmv
