!$gpum horizontal klon MODULE lmdz_call_reevap CONTAINS SUBROUTINE call_reevap(klon, klev, abortphy, flag_inhib_tend, itap, & temp, qv, ql, qi, paprs, & d_temp_eva, d_qv_eva, d_ql_eva, d_qi_eva & #ifdef ISO ,xtv,xtl,xti,d_xtv_eva,d_xtl_eva,d_xti_eva & #endif ) USE lmdz_reevap, ONLY: reevap USE add_phys_tend_mod, ONLY: add_phys_tend, prt_enerbil #ifdef ISO USE infotrac_phy, ONLY: ntiso #endif IMPLICIT NONE !============================================================================ ! call_reevap in the main interface between the LMDZ physics monitor physiq_mod ! and the reevap routine ! ! contact: Etienne Vignon etienne.vignon@lmd.ipsl.fr !============================================================================ !====================================================================== ! Declarations !====================================================================== ! Input variables: !----------------- INTEGER, INTENT(IN) :: klon, klev ! horizontal and vertical dimensions INTEGER, INTENT(IN) :: abortphy, flag_inhib_tend, itap ! flag and physics time counter for add_phys_tend REAL, DIMENSION(klon, klev), INTENT(IN) :: temp ! temperature [K] REAL, DIMENSION(klon, klev), INTENT(IN) :: qv ! specific humidity (vapor) [kg/kg] REAL, DIMENSION(klon, klev), INTENT(IN) :: ql ! specific liquid water [kg/kg] REAL, DIMENSION(klon, klev), INTENT(IN) :: qi ! specific ice water [kg/kg] REAL, DIMENSION(klon, klev + 1), INTENT(IN) :: paprs ! pressure at layers bottom interface [Pa] #ifdef ISO REAL, DIMENSION(ntiso,klon,klev), INTENT(IN) :: xtv ! isotopic ratios REAL, DIMENSION(ntiso,klon,klev), INTENT(IN) :: xtl REAL, DIMENSION(ntiso,klon,klev), INTENT(IN) :: xti #endif ! Output variables: !----------------- REAL, DIMENSION(klon, klev), INTENT(OUT) :: d_temp_eva ! temperature increment due to evap. [K] REAL, DIMENSION(klon, klev), INTENT(OUT) :: d_qv_eva ! specific humidity increment due to evap [kg/kg] REAL, DIMENSION(klon, klev), INTENT(OUT) :: d_ql_eva ! specific liquid water increment due to evap [kg/kg] REAL, DIMENSION(klon, klev), INTENT(OUT) :: d_qi_eva ! specific ice water increment due to evap [kg/kg] #ifdef ISO REAL, DIMENSION(ntiso,klon,klev), INTENT(OUT) :: d_xtv_eva ! isotopic increments REAL, DIMENSION(ntiso,klon,klev), INTENT(OUT) :: d_xtl_eva REAL, DIMENSION(ntiso,klon,klev), INTENT(OUT) :: d_xti_eva #endif ! Local variables: !---------------- REAL, DIMENSION(klon, klev) :: du0, dv0, dqbs0 !====================================================================== ! call reevap routine !====================================================================== CALL reevap(klon, klev, temp, qv, ql, qi, & & d_temp_eva, d_qv_eva, d_ql_eva, d_qi_eva & #ifdef ISO ,xtv,xtl,xti,d_xtv_eva,d_xtl_eva,d_xti_eva & #endif ) !====================================================================== ! add tendencies !====================================================================== du0(:, :) = 0. dv0(:, :) = 0. dqbs0(:, :) = 0. CALL add_phys_tend & (du0, dv0, d_temp_eva, d_qv_eva, d_ql_eva, d_qi_eva, dqbs0, paprs, & 'eva', abortphy, flag_inhib_tend, itap, 0 & #ifdef ISO ,d_xtv_eva,d_xtl_eva,d_xti_eva & #endif ) CALL prt_enerbil('eva', itap) END SUBROUTINE call_reevap END MODULE lmdz_call_reevap