Skip to content

Commit

Permalink
add veg and bare qsfc to output
Browse files Browse the repository at this point in the history
  • Loading branch information
barlage committed Apr 18, 2023
1 parent f5f98c4 commit a405865
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
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

0 comments on commit a405865

Please sign in to comment.