--- trunk/libf/dyn3d/laplacien.f 2012/01/30 14:37:26 60 +++ trunk/libf/dyn3d/laplacien.f90 2012/04/20 14:58:43 61 @@ -1,44 +1,33 @@ -! -! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/laplacien.F,v 1.1.1.1 2004/05/19 12:53:06 lmdzadmin Exp $ -! - SUBROUTINE laplacien ( klevel, teta, divgra ) -c -c P. Le Van -c -c ************************************************************ -c .... calcul de (div( grad )) de teta ..... -c ************************************************************ -c klevel et teta sont des arguments d'entree pour le s-prog -c divgra est un argument de sortie pour le s-prog -c - use grad_m, only: grad - use dimens_m - use paramet_m - use comgeom - use filtreg_m, only: filtreg - use divergf_m, only: divergf - - IMPLICIT NONE -c - -c -c ......... variables en arguments .............. -c - INTEGER, intent(in):: klevel - REAL teta( ip1jmp1,klevel ), divgra( ip1jmp1,klevel ) -c -c ............ variables locales .............. -c - REAL ghy(ip1jm,llm), ghx(ip1jmp1,llm) -c ....................................................... - - -c - CALL SCOPY ( ip1jmp1 * klevel, teta, 1, divgra, 1 ) - - CALL filtreg( divgra, jjp1, klevel, 2, 1, .TRUE., 1 ) - CALL grad ( klevel,divgra, ghx , ghy ) - CALL divergf ( klevel, ghx , ghy , divgra ) +module laplacien_m - RETURN - END + IMPLICIT NONE + +contains + + SUBROUTINE laplacien(klevel, teta) + + ! From LMDZ4/libf/dyn3d/laplacien.F, version 1.1.1.1 2004/05/19 12:53:06 + ! P. Le Van + ! Calcul de div(grad) de teta. + + use grad_m, only: grad + use filtreg_m, only: filtreg + use divergf_m, only: divergf + USE dimens_m, ONLY: llm + USE paramet_m, ONLY: ip1jm, ip1jmp1, jjp1 + + INTEGER, intent(in):: klevel + REAL, intent(inout):: teta(ip1jmp1, klevel) + + ! Variables locales: + REAL ghy(ip1jm, llm), ghx(ip1jmp1, llm) + + !----------------------------------------------------------------- + + CALL filtreg(teta, jjp1, klevel, 2, 1, .TRUE., 1) + CALL grad(klevel, teta, ghx, ghy) + CALL divergf(klevel, ghx, ghy, teta) + + END SUBROUTINE laplacien + +end module laplacien_m