--- trunk/dyn3d/convmas.f 2014/03/05 14:57:53 82 +++ trunk/dyn3d/convmas.f 2014/03/26 17:18:58 91 @@ -1,66 +1,45 @@ +module convmas_m -! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/convmas.F,v 1.1.1.1 2004/05/19 -! 12:53:07 lmdzadmin Exp $ - -SUBROUTINE convmas(pbaru, pbarv, convm) - - USE dimens_m - USE paramet_m - USE disvert_m - USE conf_gcm_m - USE filtreg_m, ONLY: filtreg IMPLICIT NONE - ! ======================================================================= - - ! Auteurs: P. Le Van , F. Hourdin . - ! ------- - - ! Objet: - ! ------ - - ! ******************************************************************** - ! .... calcul de la convergence du flux de masse aux niveaux p ... - ! ******************************************************************** +contains + SUBROUTINE convmas(pbaru, pbarv, convm) - ! pbaru et pbarv sont des arguments d'entree pour le s-pg .... - ! ..... convm est un argument de sortie pour le s-pg .... + ! From LMDZ4/libf/dyn3d/convmas.F, version 1.1.1.1, 2004/05/19 12:53:07 - ! le calcul se fait de haut en bas, - ! la convergence de masse au niveau p(llm+1) est egale a 0. et - ! n'est pas stockee dans le tableau convm . + USE dimens_m, ONLY: llm + USE paramet_m, ONLY: ip1jm, ip1jmp1, jjp1, llmm1 + USE filtreg_m, ONLY: filtreg + ! Authors: P. Le Van, F. Hourdin + ! Objet: calcul de la convergence du flux de masse aux niveaux p - ! ======================================================================= + ! Le calcul se fait de haut en bas, la convergence de masse au + ! niveau p(llm+1) est égale à 0 et n'est pas stockée dans le + ! tableau convm. - ! Declarations: - ! ------------- + REAL, INTENT(IN):: pbaru(ip1jmp1, llm), pbarv(ip1jm, llm) + REAL, INTENT(OUT):: convm(ip1jmp1, llm) + ! Local: + INTEGER l, ij - REAL, INTENT (IN) :: pbaru(ip1jmp1, llm), pbarv(ip1jm, llm) - REAL, INTENT (OUT) :: convm(ip1jmp1, llm) - INTEGER l, ij + !----------------------------------------------------------------------- + ! Calcul de - (d(pbaru)/dx + d(pbarv)/dy) : + CALL convflu(pbaru, pbarv, llm, convm) - ! ----------------------------------------------------------------------- - ! .... calcul de - (d(pbaru)/dx + d(pbarv)/dy ) ...... + ! Filtrage : + CALL filtreg(convm, jjp1, llm, 2, 2, .TRUE.) - CALL convflu(pbaru, pbarv, llm, convm) - - ! ----------------------------------------------------------------------- - ! filtrage: - ! --------- - - CALL filtreg(convm, jjp1, llm, 2, 2, .TRUE.) - - ! integration de la convergence de masse de haut en bas ...... - - DO l = llmm1, 1, -1 - DO ij = 1, ip1jmp1 - convm(ij, l) = convm(ij, l) + convm(ij, l+1) + ! Intégration de la convergence de masse de haut en bas : + DO l = llmm1, 1, -1 + DO ij = 1, ip1jmp1 + convm(ij, l) = convm(ij, l) + convm(ij, l+1) + END DO END DO - END DO - RETURN -END SUBROUTINE convmas + END SUBROUTINE convmas + +end module convmas_m