Skip to content

Commit

Permalink
Vertical water flux for alquimia transport
Browse files Browse the repository at this point in the history
  • Loading branch information
bsulman committed Jun 5, 2024
1 parent 25bf8a9 commit da4a727
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions components/elm/src/biogeophys/SoilHydrologyMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1096,6 +1096,7 @@ subroutine Drainage(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, filte
qflx_qrgwl => col_wf%qflx_qrgwl , & ! Output: [real(r8) (:) ] qflx_surf at glaciers, wetlands, lakes (mm H2O /s)
qflx_rsub_sat => col_wf%qflx_rsub_sat , & ! Output: [real(r8) (:) ] soil saturation excess [mm h2o/s]
qflx_drain_perched => col_wf%qflx_drain_perched , & ! Output: [real(r8) (:) ] perched wt sub-surface runoff (mm H2O /s)
qflx_drain_vr => col_wf%qflx_drain_vr , & ! Output: [real(r8) (:) ] sub-surface runoff (mm H2O /time step)

h2osoi_liq => col_ws%h2osoi_liq , & ! Output: [real(r8) (:,:) ] liquid water (kg/m2)
h2osoi_ice => col_ws%h2osoi_ice & ! Output: [real(r8) (:,:) ] ice lens (kg/m2)
Expand Down Expand Up @@ -1125,6 +1126,7 @@ subroutine Drainage(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, filte
rsub_top(c) = 0._r8
fracice_rsub(c) = 0._r8
qflx_qrgwl(c) = 0._r8
qflx_drain_vr(c,:) = 0._r8
end do

! The layer index of the first unsaturated layer, i.e., the layer right above
Expand Down Expand Up @@ -1210,6 +1212,7 @@ subroutine Drainage(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, filte
rsub_top_tot = rsub_top_tot - rsub_top_layer

h2osoi_liq(c,k) = h2osoi_liq(c,k) + rsub_top_layer
qflx_drain_vr(c,k) = qflx_drain_vr(c,k) - rsub_top_layer

if (rsub_top_tot >= 0.) then
zwt(c) = zwt(c) - rsub_top_layer/eff_porosity(c,k)/1000._r8
Expand Down Expand Up @@ -1294,6 +1297,7 @@ subroutine Drainage(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, filte
rsub_top_tot = rsub_top_tot - rsub_top_layer

h2osoi_liq(c,k) = h2osoi_liq(c,k) + rsub_top_layer
qflx_drain_vr(c,k) = qflx_drain_vr(c,k) - rsub_top_layer

if (rsub_top_tot >= 0.) then
zwt_perched(c) = zwt_perched(c) - rsub_top_layer/eff_porosity(c,k)/1000._r8
Expand Down Expand Up @@ -1385,6 +1389,7 @@ subroutine Drainage(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, filte
rsub_top_layer=max(rsub_top_tot,-(s_y*(zi(c,nlevbed) - zwt(c))*1.e3))
rsub_top_layer=min(rsub_top_layer,0._r8)
h2osoi_liq(c,nlevbed) = h2osoi_liq(c,nlevbed) + rsub_top_layer
qflx_drain_vr(c,nlevbed) = qflx_drain_vr(c,nlevbed) - rsub_top_layer
rsub_top_tot = rsub_top_tot - rsub_top_layer
if (rsub_top_tot >= 0.) then
zwt(c) = zwt(c) - rsub_top_layer/s_y/1000._r8
Expand Down Expand Up @@ -1436,6 +1441,7 @@ subroutine Drainage(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, filte
rsub_top_layer=min(rsub_top_layer,0._r8)
if (use_vsfm) rsub_top_layer = 0._r8
h2osoi_liq(c,j) = h2osoi_liq(c,j) + rsub_top_layer
qflx_drain_vr(c,j) = qflx_drain_vr(c,j) - rsub_top_layer

rsub_top_tot = rsub_top_tot - rsub_top_layer

Expand Down Expand Up @@ -1520,6 +1526,7 @@ subroutine Drainage(bounds, num_hydrologyc, filter_hydrologyc, num_urbanc, filte
! use original code to send water to drainage (non-h2osfc case)
qflx_rsub_sat(c) = xs1(c) / dtime
endif
qflx_drain_vr(c,1) = qflx_drain_vr(c,1) - xs1(c)
endif

if (use_vsfm) qflx_rsub_sat(c) = 0._r8
Expand Down

0 comments on commit da4a727

Please sign in to comment.