--- trunk/dyn3d/bernoui.f 2014/03/05 14:57:53 82 +++ trunk/Sources/dyn3d/bernoui.f 2015/05/06 15:51:03 137 @@ -1,61 +1,30 @@ +module bernoui_m -! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/bernoui.F,v 1.1.1.1 2004/05/19 -! 12:53:06 lmdzadmin Exp $ - -SUBROUTINE bernoui(ngrid, nlay, pphi, pecin, pbern) - USE dimens_m - USE paramet_m - USE conf_gcm_m - USE filtreg_m, ONLY: filtreg IMPLICIT NONE - ! ======================================================================= - - ! Auteur: P. Le Van - ! ------- - - ! Objet: - ! ------ - ! calcul de la fonction de Bernouilli aux niveaux s ..... - ! phi et ecin sont des arguments d'entree pour le s-pg ....... - ! bern est un argument de sortie pour le s-pg ...... - - ! fonction de Bernouilli = bern = filtre de( geopotentiel + - ! energ.cinet.) - - ! ======================================================================= - - ! ----------------------------------------------------------------------- - ! Decalrations: - ! ------------- +contains + function bernoui(phi, ecin) - ! Arguments: - ! ---------- + ! From LMDZ4/libf/dyn3d/bernoui.F, version 1.1.1.1 2004/05/19 12:53:06 - INTEGER nlay, ngrid - REAL, INTENT (IN) :: pphi(ngrid*nlay), pecin(ngrid*nlay) - REAL pbern(ngrid*nlay) + ! Author: P. Le Van - ! Local: - ! ------ + ! Objet : calcul de la fonction de Bernouilli aux niveaux s. + + USE dimens_m, ONLY: iim, jjm, llm + USE filtreg_scal_m, ONLY: filtreg_scal - INTEGER ijl + REAL, INTENT(IN):: phi(:, :, :), ecin (:, :, :) ! (iim + 1, jjm + 1, llm) - ! ----------------------------------------------------------------------- - ! calcul de Bernouilli: - ! --------------------- + REAL bernoui(iim + 1, jjm + 1, llm) + ! fonction de Bernouilli = filtre de (géopotentiel + énergie cinétique) - DO ijl = 1, ngrid*nlay - pbern(ijl) = pphi(ijl) + pecin(ijl) - END DO + !----------------------------------------------------------------------- - ! ----------------------------------------------------------------------- - ! filtre: - ! ------- + bernoui = phi + ecin + CALL filtreg_scal(bernoui, direct = .true., intensive = .true.) - CALL filtreg(pbern, jjp1, llm, 2, 1, .TRUE.) + END function bernoui - ! ----------------------------------------------------------------------- - RETURN -END SUBROUTINE bernoui +end module bernoui_m