module watercommon_h implicit none real, parameter :: T_coup = 234.0 real, parameter :: T_h2O_ice_liq = 273.16 real, parameter :: T_h2O_ice_clouds = T_h2O_ice_liq-15. real, parameter :: mH2O = 18.01528 ! benjamin additions real, parameter :: RLVTT = 2.257E+6 ! Latent heat of vaporization (J kg-1) real, parameter :: RLSTT = 2.257E+6 ! 2.591E+6 in reality ! Latent heat of sublimation (J kg-1) real, parameter :: RLFTT = 3.334E+5 ! Latent heat of fusion (J kg-1) ! entails an energy sink but better description of albedo real, parameter :: rhowater = 1.0E+3 ! mass of water (kg/m^3) real, parameter :: rhowaterice = 9.2E+2 ! mass of water (kg/m^3) real, parameter :: capcal_h2o_liq = 4181.3 ! specific heat capacity of liquid water J/kg/K real, parameter :: mx_eau_sol = 150 ! mass of water (kg/m^2) real, save :: epsi, RCPD, RCPV, RV, RVTMP2 real, save :: RETV real, save :: RLvCp !$OMP THREADPRIVATE(epsi,RCPD,RCPV,RV,RVTMP2) contains !================================================================== subroutine su_watercycle use comcstfi_mod, only: r, cpp, mugaz implicit none !================================================================== ! ! Purpose ! ------- ! Set up relevant constants and parameters for the water cycle, and water cloud properties ! ! Authors ! ------- ! Robin Wordsworth (2010) ! Jeremy Leconte (2012) ! !================================================================== epsi = mH2O / mugaz RCPD = cpp !RV = 1000.*R/mH2O RV = 1000.*8.314/mH2O ! caution! R is R/mugaz already! RCPV = 1.88e3 ! specific heat capacity of water vapor at 350K RVTMP2 = RCPV/RCPD-1. ! not currently used... ! AB : initializations added for the thermal plume model RETV = RV / r - 1. RLvCp = RLVTT / RCPD end subroutine su_watercycle !================================================================== subroutine Psat_water(T,p,psat,qsat) implicit none !================================================================== ! Purpose ! ------- ! Compute the saturation vapor pressure and mass mixing ratio at saturation (kg/kg) ! for a given pressure (Pa) and temperature (K) ! Based on the Tetens formula from L.Li physical parametrization manual ! ! Authors ! ------- ! Jeremy Leconte (2012) ! !================================================================== ! input real, intent(in) :: T, p ! output real psat,qsat ! JL12 variables for tetens formula real,parameter :: Pref_solid_liquid=611.14 real,parameter :: Trefvaporization=35.86 real,parameter :: Trefsublimation=7.66 real,parameter :: Tmin=8. real,parameter :: r3vaporization=17.269 real,parameter :: r3sublimation=21.875 ! checked vs. old watersat data 14/05/2012 by JL. if (T.gt.T_h2O_ice_liq) then psat = Pref_solid_liquid*Exp(r3vaporization*(T-T_h2O_ice_liq)/(T-Trefvaporization)) ! liquid / vapour else if (T.lt.Tmin) then print*, "careful, T