! $Header$ SUBROUTINE gradiv(klevel, xcov, ycov, ld, gdx, gdy) ! ! Auteur : P. Le Van ! ! *************************************************************** ! ! ld ! calcul de (grad (div) ) du vect. v .... ! ! xcov et ycov etant les composant.covariantes de v ! **************************************************************** ! xcov , ycov et ld sont des arguments d'entree pour le s-prog ! gdx et gdy sont des arguments de sortie pour le s-prog ! ! USE lmdz_filtreg, ONLY: filtreg USE lmdz_ssum_scopy, ONLY: scopy IMPLICIT NONE ! include "dimensions.h" include "paramet.h" include "comdissipn.h" INTEGER :: klevel ! REAL :: xcov(ip1jmp1, klevel), ycov(ip1jm, klevel) REAL :: gdx(ip1jmp1, klevel), gdy(ip1jm, klevel) REAL :: div(ip1jmp1, llm) INTEGER :: l, ij, iter, ld ! ! ! CALL SCOPY(ip1jmp1 * klevel, xcov, 1, gdx, 1) CALL SCOPY(ip1jm * klevel, ycov, 1, gdy, 1) ! DO iter = 1, ld ! CALL diverg(klevel, gdx, gdy, div) CALL filtreg(div, jjp1, klevel, 2, 1, .TRUE., 2) CALL grad(klevel, div, gdx, gdy) ! DO l = 1, klevel DO ij = 1, ip1jmp1 gdx(ij, l) = - gdx(ij, l) * cdivu END DO DO ij = 1, ip1jm gdy(ij, l) = - gdy(ij, l) * cdivu END DO END DO ! END DO RETURN END SUBROUTINE gradiv