From 25a5fc7da60c9f7f7a85c99c8cf2fe1d524e8b74 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 7 May 2024 13:46:45 -0400 Subject: [PATCH] use regular lai rather than lai_eff --- .../Land/Noahmp/module_sf_noahmplsm.F90 | 40 +++++++++---------- physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 | 11 ++--- 2 files changed, 22 insertions(+), 29 deletions(-) diff --git a/physics/SFC_Models/Land/Noahmp/module_sf_noahmplsm.F90 b/physics/SFC_Models/Land/Noahmp/module_sf_noahmplsm.F90 index 6a04aabaa..2472f11ba 100644 --- a/physics/SFC_Models/Land/Noahmp/module_sf_noahmplsm.F90 +++ b/physics/SFC_Models/Land/Noahmp/module_sf_noahmplsm.F90 @@ -449,7 +449,7 @@ subroutine noahmp_sflx (parameters, & ghb , irg , irc , irb , tr , evc , & ! out : chleaf , chuc , chv2 , chb2 , fpice , pahv , & pahg , pahb , pah , esnow , canhs , laisun , & - laisha , laisune , laishae , rb , qsfcveg , qsfcbare & + laisha , rb , qsfcveg , qsfcbare & #ifdef CCPP ,errmsg, errflg) #else @@ -594,8 +594,6 @@ subroutine noahmp_sflx (parameters, & real (kind=kind_phys) , intent(out) :: rb !< leaf boundary layer resistance (s/m) real (kind=kind_phys) , intent(out) :: laisun !< sunlit leaf area index (m2/m2) real (kind=kind_phys) , intent(out) :: laisha !< shaded leaf area index (m2/m2) - real (kind=kind_phys) , intent(out) :: laisune !< sunlit leaf area index, one-sided (m2/m2),effective - real (kind=kind_phys) , intent(out) :: laishae !< shaded leaf area index, one-sided (m2/m2),effective real (kind=kind_phys) , intent(out) :: qsfcveg !< effective spec humid over vegetation real (kind=kind_phys) , intent(out) :: qsfcbare !< effective spec humid over bare soil @@ -844,10 +842,11 @@ subroutine noahmp_sflx (parameters, & tv ,tg ,stc ,snowh ,eah ,tah , & !inout sneqvo ,sneqv ,sh2o ,smc ,snice ,snliq , & !inout albold ,cm ,ch ,dx ,dz8w ,q2 , & !inout - ustarx ,tauss , & !inout - laisun ,laisha ,laisune, laishae, rb , & !out + ustarx , & !inout #ifdef CCPP - errmsg ,errflg , & !out + tauss ,laisun ,laisha ,rb , errmsg ,errflg , & !inout +#else + tauss ,laisun ,laisha ,rb , & !inout #endif !jref:start qc ,qsfc ,psfc , & !in @@ -1687,10 +1686,11 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in tv ,tg ,stc ,snowh ,eah ,tah , & !inout sneqvo ,sneqv ,sh2o ,smc ,snice ,snliq , & !inout albold ,cm ,ch ,dx ,dz8w ,q2 , & !inout - ustarx ,tauss , & !inout - laisun ,laisha ,laisune,laishae,rb , & !out + ustarx , & !inout #ifdef CCPP - errmsg ,errflg, & !out + tauss ,laisun ,laisha ,rb ,errmsg ,errflg, & !inout +#else + tauss ,laisun ,laisha ,rb , & !inout #endif !jref:start qc ,qsfc ,psfc , & !in @@ -1879,11 +1879,9 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in real (kind=kind_phys) , intent(inout) :: ch !< sensible heat exchange coefficient real (kind=kind_phys) , intent(inout) :: q1 !< real (kind=kind_phys) , intent(inout) :: ustarx !< friction velocity - real (kind=kind_phys) , intent( out) :: rb !< leaf boundary layer resistance (s/m) - real (kind=kind_phys) , intent( out) :: laisun !< sunlit leaf area index (m2/m2) - real (kind=kind_phys) , intent( out) :: laisha !< shaded leaf area index (m2/m2) - real (kind=kind_phys) , intent( out) :: laisune!< sunlit leaf area index, one-sided (m2/m2),effective - real (kind=kind_phys) , intent( out) :: laishae!< shaded leaf area index, one-sided (m2/m2),effective + real (kind=kind_phys) , intent(inout) :: rb !< leaf boundary layer resistance (s/m) + real (kind=kind_phys) , intent(inout) :: laisun !< sunlit leaf area index (m2/m2) + real (kind=kind_phys) , intent(inout) :: laisha !< shaded leaf area index (m2/m2) #ifdef CCPP character(len=*) , intent(inout) :: errmsg integer , intent(inout) :: errflg @@ -2017,8 +2015,6 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in rb = 0. laisun = 0. laisha = 0. - laisune = 0. - laishae = 0. cdmnv = 0.0 ezpdv = 0.0 @@ -2269,8 +2265,8 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in csigmaf1, & !out !jref:start qc ,qsfc ,psfc , & !in - q2v ,chv2 ,chleaf , chuc , & !inout - rb ,laisune ,laishae ) !out + q2v ,chv2 ,chleaf ,chuc , & + rb) !out ! new coupling code @@ -3719,8 +3715,8 @@ subroutine vege_flux(parameters,nsnow ,nsoil ,isnow ,vegtyp ,veg , & t2mv ,psnsun ,psnsha ,canhs , & !out csigmaf1, & !out qc ,qsfc ,psfc , & !in - q2v ,cah2 ,chleaf ,chuc, & !inout - rb ,laisune ,laishae) !out + q2v ,cah2 ,chleaf ,chuc , & !inout + rb) !out ! -------------------------------------------------------------------------------------------------- ! use newton-raphson iteration to solve for vegetation (tv) and @@ -3845,8 +3841,6 @@ subroutine vege_flux(parameters,nsnow ,nsoil ,isnow ,vegtyp ,veg , & real (kind=kind_phys), intent(out) :: canhs !< canopy heat storage change (w/m2) real (kind=kind_phys), intent(out) :: q2v !< real (kind=kind_phys), intent(out) :: rb !< bulk leaf boundary layer resistance (s/m) - real (kind=kind_phys), intent(out) :: laisune!< sunlit leaf area index, one-sided (m2/m2),effective - real (kind=kind_phys), intent(out) :: laishae!< shaded leaf area index, one-sided (m2/m2),effective real (kind=kind_phys) :: cah !< sensible heat conductance, canopy air to zlvl air (m/s) real (kind=kind_phys) :: u10v !< 10 m wind speed in eastward dir (m/s) real (kind=kind_phys) :: v10v !< 10 m wind speed in eastward dir (m/s) @@ -3942,6 +3936,8 @@ subroutine vege_flux(parameters,nsnow ,nsoil ,isnow ,vegtyp ,veg , & real (kind=kind_phys) :: hcv !canopy heat capacity j/m2/k, C.He added real (kind=kind_phys) :: vaie !total leaf area index + stem area index,effective + real (kind=kind_phys) :: laisune !sunlit leaf area index, one-sided (m2/m2),effective + real (kind=kind_phys) :: laishae !shaded leaf area index, one-sided (m2/m2),effective integer :: k !index integer :: iter !iteration index diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 index 4bed8d4d4..7003add22 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 @@ -620,8 +620,6 @@ subroutine noahmpdrv_run & real (kind=kind_phys) :: snow_sublimation ! out | snow sublimation [W/m2] real (kind=kind_phys) :: lai_sunlit ! out | sunlit leaf area index [m2/m2] real (kind=kind_phys) :: lai_shaded ! out | shaded leaf area index [m2/m2] - real (kind=kind_phys) :: lai_sunlit_eff ! out | sunlit leaf area index, one-sided, effective [m2/m2] - real (kind=kind_phys) :: lai_shaded_eff ! out | shaded leaf area index, one-sided, effective [m2/m2] real (kind=kind_phys) :: leaf_air_resistance ! out | leaf boundary layer resistance [s/m] real (kind=kind_phys) :: canopy_heat_storage ! out | within-canopy heat [W/m2] @@ -1017,8 +1015,7 @@ subroutine noahmpdrv_run & ch_vegetated_2m ,ch_bare_ground_2m ,precip_frozen_frac , & precip_adv_heat_veg ,precip_adv_heat_grd_v ,precip_adv_heat_grd_b , & precip_adv_heat_total ,snow_sublimation ,canopy_heat_storage , & - lai_sunlit ,lai_shaded ,lai_sunlit_eff , & - lai_shaded_eff ,leaf_air_resistance , & + lai_sunlit ,lai_shaded ,leaf_air_resistance , & #ifdef CCPP spec_humid_sfc_veg ,spec_humid_sfc_bare , & errmsg ,errflg ) @@ -1064,11 +1061,11 @@ subroutine noahmpdrv_run & ! total stomatal/canopy resistance Based on Bonan et al. (2011) conductance (1/Rs) equation if(rs_sunlit .le. 0.0 .or. rs_shaded .le. 0.0 .or. & - lai_sunlit_eff .eq. 0.0 .or. lai_shaded_eff .eq. 0.0) then + lai_sunlit .eq. 0.0 .or. lai_shaded .eq. 0.0) then rca(i) = 0.0 else - rca(i) = ((1.0/(rs_sunlit+leaf_air_resistance)*lai_sunlit_eff) + & - ((1.0/(rs_shaded+leaf_air_resistance))*lai_shaded_eff)) + rca(i) = ((1.0/(rs_sunlit+leaf_air_resistance)*lai_sunlit) + & + ((1.0/(rs_shaded+leaf_air_resistance))*lai_shaded)) rca(i) = 1.0/rca(i) !resistance end if