! $Header$ SUBROUTINE divgrad(klevel, h, lh, divgra) USE lmdz_filtreg, ONLY: filtreg USE lmdz_ssum_scopy, ONLY: scopy 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: ! ------------- ! include "dimensions.h" include "paramet.h" include "comgeom.h" include "comdissipn.h" ! 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