Skip to content
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
18 changes: 13 additions & 5 deletions physics/GFS_surface_generic.F90
Original file line number Diff line number Diff line change
Expand Up @@ -206,12 +206,14 @@ end subroutine GFS_surface_generic_post_finalize
subroutine GFS_surface_generic_post_run (im, cplflx, cplchm, cplwav, lssav, dry, icy, wet, &
dtf, ep1d, gflx, tgrs_1, qgrs_1, ugrs_1, vgrs_1, &
adjsfcdlw, adjsfcdsw, adjnirbmd, adjnirdfd, adjvisbmd, adjvisdfd, adjsfculw, adjsfculw_wat, adjnirbmu, adjnirdfu, &
adjvisbmu, adjvisdfu,t2m, q2m, u10m, v10m, tsfc, tsfc_wat, pgr, xcosz, evbs, evcw, trans, sbsno, snowc, snohf, &
adjvisbmu, adjvisdfu,t2m, q2m, u10m, v10m, tsfc, tsfc_wat, pgr, xcosz, evbs, evcw, trans, sbsno, snowc, snohf,pah,pahi, &
epi, gfluxi, t1, q1, u1, v1, dlwsfci_cpl, dswsfci_cpl, dlwsfc_cpl, dswsfc_cpl, dnirbmi_cpl, dnirdfi_cpl, dvisbmi_cpl, &
dvisdfi_cpl, dnirbm_cpl, dnirdf_cpl, dvisbm_cpl, dvisdf_cpl, nlwsfci_cpl, nlwsfc_cpl, t2mi_cpl, q2mi_cpl, u10mi_cpl, &
v10mi_cpl, tsfci_cpl, psurfi_cpl, nnirbmi_cpl, nnirdfi_cpl, nvisbmi_cpl, nvisdfi_cpl, nswsfci_cpl, nswsfc_cpl, nnirbm_cpl, &
nnirdf_cpl, nvisbm_cpl, nvisdf_cpl, gflux, evbsa, evcwa, transa, sbsnoa, snowca, snohfa, ep, &
runoff, srunoff, runof, drain, lheatstrg, h0facu, h0facs, zvfun, hflx, evap, hflxq, hffac, errmsg, errflg)
nnirdf_cpl, nvisbm_cpl, nvisdf_cpl, gflux, evbsa, evcwa, transa, sbsnoa, snowca, snohfa, paha,ep,ecan,etran,edir,waxy, &
runoff, srunoff, runof, drain, tecan,tetran,tedir,twa,lheatstrg, h0facu, h0facs, zvfun, hflx, evap, hflxq, hffac, &
errmsg, errflg)


implicit none

Expand All @@ -222,13 +224,13 @@ subroutine GFS_surface_generic_post_run (im, cplflx, cplchm, cplwav, lssav, dry,

real(kind=kind_phys), dimension(:), intent(in) :: ep1d, gflx, tgrs_1, qgrs_1, ugrs_1, vgrs_1, adjsfcdlw, adjsfcdsw, &
adjnirbmd, adjnirdfd, adjvisbmd, adjvisdfd, adjsfculw, adjsfculw_wat, adjnirbmu, adjnirdfu, adjvisbmu, adjvisdfu, &
t2m, q2m, u10m, v10m, tsfc, tsfc_wat, pgr, xcosz, evbs, evcw, trans, sbsno, snowc, snohf
t2m, q2m, u10m, v10m, tsfc, tsfc_wat, pgr, xcosz, evbs, evcw, trans, sbsno, snowc, snohf,pah,ecan,etran,edir,waxy

real(kind=kind_phys), dimension(:), intent(inout) :: epi, gfluxi, t1, q1, u1, v1, dlwsfci_cpl, dswsfci_cpl, dlwsfc_cpl, &
dswsfc_cpl, dnirbmi_cpl, dnirdfi_cpl, dvisbmi_cpl, dvisdfi_cpl, dnirbm_cpl, dnirdf_cpl, dvisbm_cpl, dvisdf_cpl, &
nlwsfci_cpl, nlwsfc_cpl, t2mi_cpl, q2mi_cpl, u10mi_cpl, v10mi_cpl, tsfci_cpl, psurfi_cpl, nnirbmi_cpl, nnirdfi_cpl, &
nvisbmi_cpl, nvisdfi_cpl, nswsfci_cpl, nswsfc_cpl, nnirbm_cpl, nnirdf_cpl, nvisbm_cpl, nvisdf_cpl, gflux, evbsa, &
evcwa, transa, sbsnoa, snowca, snohfa, ep
evcwa, transa, sbsnoa, snowca, snohfa, ep, paha,tecan,tetran,tedir,twa,pahi

real(kind=kind_phys), dimension(:), intent(inout) :: runoff, srunoff
real(kind=kind_phys), dimension(:), intent(in) :: drain, runof
Expand Down Expand Up @@ -258,6 +260,7 @@ subroutine GFS_surface_generic_post_run (im, cplflx, cplchm, cplwav, lssav, dry,
do i=1,im
epi(i) = ep1d(i)
gfluxi(i) = gflx(i)
pahi(i) = pah(i)
t1(i) = tgrs_1(i)
q1(i) = qgrs_1(i)
u1(i) = ugrs_1(i)
Expand Down Expand Up @@ -346,11 +349,16 @@ subroutine GFS_surface_generic_post_run (im, cplflx, cplchm, cplwav, lssav, dry,
snowca(i) = snowca(i) + snowc(i) * dtf
snohfa(i) = snohfa(i) + snohf(i) * dtf
ep(i) = ep(i) + ep1d(i) * dtf
paha(i) = paha(i) + pah(i) * dtf

! --- ... total runoff is composed of drainage into water table and
! runoff at the surface and is accumulated in unit of meters
runoff(i) = runoff(i) + (drain(i)+runof(i)) * dtf
srunoff(i) = srunoff(i) + runof(i) * dtf
tecan(i) = tecan(i) + ecan(i) * dtf
tetran(i) = tetran(i) + etran(i) * dtf
tedir(i) = tedir(i) + edir(i) * dtf
twa(i) = waxy(i)
enddo
endif

Expand Down
99 changes: 99 additions & 0 deletions physics/GFS_surface_generic.meta
Original file line number Diff line number Diff line change
Expand Up @@ -797,6 +797,24 @@
kind = kind_phys
intent = in
optional = F
[pah]
standard_name = total_precipitation_advected_heat
long_name = precipitation advected heat - total
units = W m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = in
optional = F
[pahi]
standard_name = instantaneous_total_precipitation_advected_heat
long_name = instantaneous precipitation advected heat - total
units = W m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = in
optional = F
[epi]
standard_name = instantaneous_surface_potential_evaporation
long_name = instantaneous sfc potential evaporation
Expand Down Expand Up @@ -1184,6 +1202,15 @@
kind = kind_phys
intent = inout
optional = F
[paha]
standard_name = cumulative_precipitation_advected_heat_flux_multiplied_by_timestep
long_name = cumulative precipitation advected heat flux multiplied by timestep
units = W m-2 s
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = inout
optional = F
[ep]
standard_name = cumulative_surface_upward_potential_latent_heat_flux_multiplied_by_timestep
long_name = cumulative surface upward potential latent heat flux multiplied by timestep
Expand All @@ -1193,6 +1220,42 @@
kind = kind_phys
intent = inout
optional = F
[ecan]
standard_name = evaporation_of_intercepted_water
long_name = evaporation of intercepted water
units = kg m-2 s-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = in
optional = F
[etran]
standard_name = transpiration_rate
long_name = transpiration rate
units = kg m-2 s-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = in
optional = F
[edir]
standard_name = soil_surface_evaporation_rate
long_name = soil surface evaporation rate
units = kg m-2 s-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = in
optional = F
[waxy]
standard_name = water_storage_in_aquifer
long_name = water storage in aquifer
units = mm
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = in
optional = F
[runoff]
standard_name = total_runoff
long_name = total water runoff
Expand Down Expand Up @@ -1229,6 +1292,42 @@
kind = kind_phys
intent = in
optional = F
[tecan]
standard_name = total_evaporation_of_intercepted_water
long_name = total evaporation of intercepted water
units = kg m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = inout
optional = F
[tetran]
standard_name = total_transpiration_rate
long_name = total transpiration rate
units = kg m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = inout
optional = F
[tedir]
standard_name = total_soil_surface_evaporation_rate
long_name = total soil surface evaporation rate
units = kg m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = inout
optional = F
[twa]
standard_name = total_water_storage_in_aquifer
long_name = total water storage in aquifer
units = kg m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = inout
optional = F
[lheatstrg]
standard_name = flag_for_canopy_heat_storage_in_land_surface_scheme
long_name = flag for canopy heat storage parameterization
Expand Down
13 changes: 11 additions & 2 deletions physics/sfc_noahmp_drv.F90
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,9 @@ subroutine noahmpdrv_run &

! --- outputs:
sncovr1, qsurf, gflux, drain, evap, hflx, ep, runoff, &
cmm, chh, evbs, evcw, sbsno, snowc, stm, snohf, &
smcwlt2, smcref2, wet1, t2mmp, q2mp, errmsg, errflg)
cmm, chh, evbs, evcw, sbsno, pah, ecan, etran, edir,snowc, &
stm, snohf,smcwlt2, smcref2, wet1, t2mmp, q2mp, &
errmsg, errflg)

use machine , only : kind_phys
use funcphys, only : fpvs
Expand Down Expand Up @@ -288,6 +289,10 @@ subroutine noahmpdrv_run &
real(kind=kind_phys), dimension(:) , intent(out) :: evbs ! direct soil evaporation [m/s]
real(kind=kind_phys), dimension(:) , intent(out) :: evcw ! canopy water evaporation [m/s]
real(kind=kind_phys), dimension(:) , intent(out) :: sbsno ! sublimation/deposit from snopack [W/m2]
real(kind=kind_phys), dimension(:) , intent(out) :: pah ! precipitation advected heat - total (w/m2)
real(kind=kind_phys), dimension(:) , intent(out) :: ecan ! evaporation of intercepted water (mm/s)
real(kind=kind_phys), dimension(:) , intent(out) :: etran ! transpiration rate (mm/s)
real(kind=kind_phys), dimension(:) , intent(out) :: edir ! soil surface evaporation rate (mm/s)
real(kind=kind_phys), dimension(:) , intent(out) :: snowc ! fractional snow cover [-]
real(kind=kind_phys), dimension(:) , intent(out) :: stm ! total soil column moisture content [mm]
real(kind=kind_phys), dimension(:) , intent(out) :: snohf ! snow/freezing-rain latent heat flux [W/m2]
Expand Down Expand Up @@ -924,6 +929,7 @@ subroutine noahmpdrv_run &
gflux (i) = -1.0*ground_heat_total ! opposite sign to be consistent with noah
snohf (i) = snowmelt_out * con_hfus ! only snow that exits pack
sbsno (i) = snow_sublimation
pah (i) = precip_adv_heat_total

cmxy (i) = cm_noahmp
chxy (i) = ch_noahmp
Expand All @@ -943,6 +949,9 @@ subroutine noahmpdrv_run &
waxy (i) = aquifer_water
wtxy (i) = saturated_water
qsnowxy (i) = snowfall
ecan (i) = evaporation_canopy
etran (i) = transpiration
edir (i) = evaporation_soil
drain (i) = runoff_baseflow
runoff (i) = runoff_surface

Expand Down
36 changes: 36 additions & 0 deletions physics/sfc_noahmp_drv.meta
Original file line number Diff line number Diff line change
Expand Up @@ -1195,6 +1195,42 @@
kind = kind_phys
intent = out
optional = F
[pah]
standard_name = total_precipitation_advected_heat
long_name = precipitation advected heat - total
units = W m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = out
optional = F
[ecan]
standard_name = evaporation_of_intercepted_water
long_name = evaporation of intercepted water
units = kg m-2 s-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = out
optional = F
[etran]
standard_name = transpiration_rate
long_name = transpiration rate
units = kg m-2 s-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = out
optional = F
[edir]
standard_name = soil_surface_evaporation_rate
long_name = soil surface evaporation rate
units = kg m-2 s-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = out
optional = F
[snowc]
standard_name = surface_snow_area_fraction
long_name = surface snow area fraction
Expand Down