@@ -17,6 +17,8 @@ module CanopyFluxesMod
1717 use elm_varctl , only : use_hydrstress
1818 use elm_varpar , only : nlevgrnd, nlevsno
1919 use elm_varcon , only : namep
20+ use elm_varcon , only : mm_epsilon
21+ use elm_varcon , only : pa_to_kpa
2022 use pftvarcon , only : crop, nfixer
2123 use decompMod , only : bounds_type
2224 use PhotosynthesisMod , only : Photosynthesis, PhotosynthesisTotal, Fractionation, PhotoSynthesisHydraulicStress
@@ -318,6 +320,9 @@ subroutine CanopyFluxes(bounds, num_nolakeurbanp, filter_nolakeurbanp, &
318320 ! Indices for raw and rah
319321 integer , parameter :: above_canopy = 1 ! Above canopy
320322 integer , parameter :: below_canopy = 2 ! Below canopy
323+
324+ ! Lower bound for VPD (based on CLM)
325+ real (r8 ), parameter :: vpd_min = 50._r8
321326 !- -----------------------------------------------------------------------------
322327
323328 associate( &
@@ -863,15 +868,15 @@ subroutine CanopyFluxes(bounds, num_nolakeurbanp, filter_nolakeurbanp, &
863868 ! Done each iteration to account for differences in eah, tv.
864869
865870 svpts(p) = el(p) ! Pa
866- eah(p) = forc_pbot(t) * qaf(p) / 0.622_r8 ! Pa
871+ eah(p) = forc_pbot(t) * qaf(p) / mm_epsilon ! Pa
867872 rhaf(p) = eah(p)/ svpts(p)
868873
869874 ! variables for history fields
870875 rah_above(p) = rah(p,above_canopy)
871876 raw_above(p) = raw(p,above_canopy)
872877 rah_below(p) = rah(p,below_canopy)
873878 raw_below(p) = raw(p,below_canopy)
874- vpd(p) = max ((svpts(p) - eah(p)), 50._r8 ) * 0.001_r8 ! kPa
879+ vpd(p) = max ((svpts(p) - eah(p)), vpd_min ) * pa_to_kpa ! kPa
875880 end do
876881
877882 ! Modification for shrubs proposed by X.D.Z
0 commit comments