Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add veg and bare qsfc to output #65

Merged
merged 1 commit into from
Apr 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions physics/module_sf_noahmplsm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -442,7 +442,8 @@ subroutine noahmp_sflx (parameters, &
shg , shc , shb , evg , evb , ghv , & ! out :
ghb , irg , irc , irb , tr , evc , & ! out :
chleaf , chuc , chv2 , chb2 , fpice , pahv , &
pahg , pahb , pah , esnow , canhs , laisun , laisha , rb &
pahg , pahb , pah , esnow , canhs , laisun , &
laisha , rb , qsfcveg , qsfcbare &
#ifdef CCPP
,errmsg, errflg)
#else
Expand Down Expand Up @@ -587,6 +588,8 @@ 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) :: qsfcveg !< effective spec humid over vegetation
real (kind=kind_phys) , intent(out) :: qsfcbare !< effective spec humid over bare soil

!jref:start; output
real (kind=kind_phys) , intent(out) :: t2mv !< 2-m air temperature over vegetated part [k]
Expand Down Expand Up @@ -847,7 +850,9 @@ subroutine noahmp_sflx (parameters, &
emissi ,pah ,canhs, &
shg,shc,shb,evg,evb,ghv,ghb,irg,irc,irb,tr,evc,chleaf,chuc,chv2,chb2 ) !out

qsfc = q1 !
qsfcveg = eah*0.622/(sfcprs - 0.378*eah)
qsfcbare = qsfc
qsfc = q1
!jref:end
#ifdef CCPP
if (errflg /= 0) return
Expand Down
16 changes: 13 additions & 3 deletions physics/noahmpdrv.F90
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,10 @@ subroutine noahmpdrv_run &
ch_bare_ground_2m_ccpp, &
precip_adv_heat_veg_ccpp, &
precip_adv_heat_grd_v_ccpp, &
precip_adv_heat_grd_b_ccpp )
precip_adv_heat_grd_b_ccpp, &
spec_humid_sfc_veg_ccpp, &
spec_humid_sfc_bare_ccpp &
)

use machine , only : kind_phys
use funcphys, only : fpvs
Expand Down Expand Up @@ -436,6 +439,8 @@ subroutine noahmpdrv_run &
real(kind=kind_phys), dimension(:) , intent(out), optional :: precip_adv_heat_veg_ccpp
real(kind=kind_phys), dimension(:) , intent(out), optional :: precip_adv_heat_grd_v_ccpp
real(kind=kind_phys), dimension(:) , intent(out), optional :: precip_adv_heat_grd_b_ccpp
real(kind=kind_phys), dimension(:) , intent(out), optional :: spec_humid_sfc_veg_ccpp
real(kind=kind_phys), dimension(:) , intent(out), optional :: spec_humid_sfc_bare_ccpp

!
! --- some new options, hard code for now
Expand Down Expand Up @@ -613,6 +618,8 @@ subroutine noahmpdrv_run &
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]
real (kind=kind_phys) :: spec_humid_sfc_veg ! out | surface specific humidty over vegetation [kg/kg]
real (kind=kind_phys) :: spec_humid_sfc_bare ! out | surface specific humidty over bare soil [kg/kg]

real (kind=kind_phys) :: ustarx ! inout |surface friction velocity
real (kind=kind_phys) :: prslkix ! in exner function
Expand Down Expand Up @@ -997,11 +1004,12 @@ 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 ,leaf_air_resistance , &
#ifdef CCPP
lai_sunlit ,lai_shaded ,leaf_air_resistance , &
spec_humid_sfc_veg ,spec_humid_sfc_bare , &
errmsg ,errflg )
#else
lai_sunlit ,lai_shaded ,leaf_air_resistance )
spec_humid_sfc_veg ,spec_humid_sfc_bare )
#endif

#ifdef CCPP
Expand Down Expand Up @@ -1129,6 +1137,8 @@ subroutine noahmpdrv_run &
if(present(precip_adv_heat_veg_ccpp )) precip_adv_heat_veg_ccpp (i) = precip_adv_heat_veg
if(present(precip_adv_heat_grd_v_ccpp)) precip_adv_heat_grd_v_ccpp(i) = precip_adv_heat_grd_v
if(present(precip_adv_heat_grd_b_ccpp)) precip_adv_heat_grd_b_ccpp(i) = precip_adv_heat_grd_b
if(present(spec_humid_sfc_veg_ccpp )) spec_humid_sfc_veg_ccpp (i) = spec_humid_sfc_veg
if(present(spec_humid_sfc_bare_ccpp )) spec_humid_sfc_bare_ccpp (i) = spec_humid_sfc_bare

wslakexy (i) = lake_water ! not active
fwetxy (i) = canopy_wet_fraction
Expand Down