      !***********************************************************************!
      SUBROUTINE  prodscal(  rnorm,  a,  b  )
      !***********************************************************************!
!
      USE numerics
!
      IMPLICIT  NONE
!
!Valeur du produit scalaire
      REAL(rp),  INTENT(OUT)   ::  rnorm
!
!Solution  u  a  l'iteration  it  et  it+1
      REAL(rp),  DIMENSION(  sx-1:ex+1,  sy-1:ey+1,  sz-1:ez+1),  INTENT(IN)  ::  a
      REAL(rp),  DIMENSION(  sx-1:ex+1,  sy-1:ey+1,  sz-1:ez+1),  INTENT(IN)  ::  b
!
!--Declaration des variales locales
!
!Compteurs
      INTEGER   ::  i,  j,  k
!
      !***********************************************************************!
!
!Calcul du produit scalaire
!$OMP DO REDUCTION( +:rnorm )
      DO  k  =  sz,  ez
         DO  j  =  sy,  ey
            DO  i  =  sx,  ex
               rnorm = rnorm + a(i,j,k) * b(i,j,k)
            END  DO
         END  DO
      END  DO
!$OMP END DO
!
      RETURN
      END  SUBROUTINE  prodscal
