!
! $Header$
!
SUBROUTINE divgrad (klevel,h, lh, divgra )
  USE comgeom_mod_h
  USE comdissipn_mod_h
  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
USE paramet_mod_h
IMPLICIT NONE
  !
  !=======================================================================
  !
  !  Auteur :   P. Le Van
  !  ----------
  !
  !                          lh
  !  calcul de  (div( grad ))   de h  .....
  !  h  et lh  sont des arguments  d'entree pour le s-prog
  !  divgra     est  un argument  de sortie pour le s-prog
  !
  !=======================================================================
  !
  !   declarations:
  !   -------------
  !


  !
  INTEGER :: klevel
  REAL :: h( ip1jmp1,klevel ), divgra( ip1jmp1,klevel )
  !
  REAL :: ghy(ip1jm,llm), ghx(ip1jmp1,llm)

  INTEGER :: l,ij,iter,lh
  !
  !
  !
  CALL SCOPY ( ip1jmp1*klevel,h,1,divgra,1 )
  !
  DO iter = 1,lh

  CALL filtreg ( divgra,jjp1,klevel,2,1,.true.,1  )

  CALL    grad (klevel,divgra, ghx  , ghy          )
  CALL  diverg (klevel,  ghx , ghy  , divgra       )

  CALL filtreg ( divgra,jjp1,klevel,2,1,.true.,1)

  DO l = 1,klevel
  DO  ij = 1, ip1jmp1
  divgra( ij,l ) = - cdivh * divgra( ij,l )
  END DO
  END DO
  !
  END DO
  RETURN
END SUBROUTINE divgrad
