Skip to content

Commit

Permalink
use regular lai rather than lai_eff
Browse files Browse the repository at this point in the history
  • Loading branch information
grantfirl committed May 7, 2024
1 parent 68ea163 commit 25a5fc7
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 29 deletions.
40 changes: 18 additions & 22 deletions physics/SFC_Models/Land/Noahmp/module_sf_noahmplsm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down
11 changes: 4 additions & 7 deletions physics/SFC_Models/Land/Noahmp/noahmpdrv.F90
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down Expand Up @@ -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 )
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit 25a5fc7

Please sign in to comment.