      !***********************************************************************!
      SUBROUTINE  pmv(  a,  b  )
      !***********************************************************************!
!
      USE numerics
!
      IMPLICIT  NONE
!
!--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

!--Declaration des variales locales
!
! Poids
      REAL(rp)  ::  den
      REAL(rp)  ::  c1, c2, c3, c4
!
!Compteurs
      INTEGER   ::  i,  j,  k
!
!
      !***********************************************************************!
!
      c1 = rlambda / hx**2
      c2 = rlambda / hy**2
      c3 = rlambda / hz**2
      c4 = one + 2.0_rp * (c1 + c2 + c3)
!
!$OMP DO
      DO  k  =  sz,  ez
          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
!$OMP END DO
!
      RETURN
      END SUBROUTINE pmv
