Hydrologic Model
The hydrologic component of HydroPol2D governs the partitioning of atmospheric input into interception, throughfall, infiltration, evapotranspiration, snow accumulation and melt, vadose-zone storage, groundwater recharge, and groundwater feedback to the land surface.
At the cell scale, the hydrologic model determines how much water:
- is temporarily stored by the canopy,
- reaches the ground surface,
- infiltrates into the soil,
- remains stored in the vadose zone,
- recharges groundwater,
- returns to the surface through exfiltration,
- or is removed by evaporation and transpiration.
These processes are evaluated sequentially within each time step and provide the hydrologic forcing for the hydrodynamic model.
1. Conceptual Hydrologic Balanceβ
At the conceptual level, the hydrologic balance of a grid cell may be written as
where:
- is surface water depth
- is effective rainfall reaching the ground
- is snowmelt contribution
- is groundwater exfiltration to the surface
- is infiltration rate
- is evaporation rate from surface storage
- is transpiration rate
- and are additional imposed source and sink terms
Not all terms are active simultaneously. Their activation depends on the selected forcing configuration and model flags. Nevertheless, this balance provides the conceptual framework used to organize all vertical fluxes acting on a grid cell.
2. Canopy Interception, Throughfall, and Stemflowβ
HydroPol2D represents canopy interception using a storage-based interception model in which gross precipitation is partitioned into:
- canopy storage,
- throughfall,
- canopy evaporation,
- and stemflow.
The interception routine receives:
- gross precipitation ,
- potential evaporation ,
- leaf area index ,
- previous canopy storage ,
- canopy storage coefficient ,
and returns updated canopy storage , throughfall , evaporation from intercepted water , and stemflow .
This interception step controls how much of the atmospheric water input is temporarily retained by vegetation and how much is transferred to the ground surface during the current time step.
2.1 Maximum canopy storageβ
The maximum interception storage is computed as
where:
- is maximum canopy water storage
- is canopy storage coefficient
- is leaf area index
This relation implies that vegetation with larger leaf area can store more intercepted water.
2.2 Stemflowβ
The code includes a stemflow routine based on a delay function. The intermediate expressions are
and
where:
- is stemflow delay
- is the maximum delay parameter
- is the stemflow decay coefficient
- is the stemflow fraction
- is stemflow
In the current HydroPol2D implementation, stemflow is deactivated by explicitly imposing
Therefore, stemflow does not currently contribute to the surface-water balance, although the structure of the routine is retained in the code.
2.3 Evaporation from interception storageβ
The fraction of canopy storage exposed to evaporation is defined as
and the canopy evaporation is then computed as
subject to the constraint
where:
- is the fraction of canopy storage filled at the beginning of the time step
- is evaporation from interception storage
- is potential evaporation over the time step
This formulation assumes that canopy evaporation is proportional to the fraction of storage occupied at the beginning of the time step, while also enforcing that evaporation cannot exceed the water actually available in precipitation plus stored interception water.
2.4 Interception storage updateβ
The canopy storage increment is computed as
and the provisional storage becomes
Throughfall is then computed as the excess above the canopy storage capacity:
Finally, the canopy storage is truncated at its maximum admissible value:
where:
- is the canopy storage increment over the time step
- is provisional canopy storage before truncation
- is throughfall
- is final canopy storage
This sequence reflects the physical assumption that precipitation first fills canopy storage. Once the canopy reaches its storage capacity, the excess water is released as throughfall.
2.5 Effective rainfall passed to the surfaceβ
The rainfall available to the land surface is defined as
where:
- is effective rainfall reaching the ground
- is direct throughfall
- is stemflow
Under the current implementation, since stemflow is deactivated, effective rainfall is equal to throughfall. In practical terms, represents the amount of liquid water transferred from the atmosphereβcanopy system to the land surface during the time step, prior to hydrodynamic routing.
If the interception routine is disabled, then no canopy storage is resolved and precipitation reaches the surface directly, so that
2.6 Rainfall applicationβ
For validated applications, precipitation entering the interception module is applied over the active model cell as:
where is the aggregated rainfall depth over the model time step.
3. Potential Evapotranspiration and Evaporationβ
HydroPol2D computes spatially distributed reference evapotranspiration using a PenmanβMonteith formulation. Meteorological station data are first interpolated over the grid using inverse distance weighting, and the interpolated fields are then used to compute both reference evapotranspiration and an evaporation-like term .
The quantity is used as the standard reference evapotranspiration, while is used in the interception routine to estimate evaporation from intercepted canopy water.
3.1 Spatial interpolation of meteorological forcingβ
At each time step, the following fields are interpolated from available stations:
- maximum air temperature
- minimum air temperature
- mean air temperature
- wind speed at
- relative humidity
- soil heat flux
For a generic variable , the interpolated field at location is written conceptually as
with
where:
- is the value observed at station
- is the distance from station to location
- is the inverse-distance weighting power parameter
Only stations with complete data at the current time step are retained in the interpolation. This procedure yields spatially distributed forcing fields that are then used in the evapotranspiration calculations.
3.2 PenmanβMonteith equationβ
The reference evapotranspiration is computed as
and the evaporation-like term is
where:
- is reference evapotranspiration
- is potential evaporation without aerodynamic surface resistance in the denominator
- is the slope of the saturation vapor pressure curve
- is net radiation
- is soil heat flux
- is the psychrometric constant
- is wind speed at
- is saturation vapor pressure
- is actual vapor pressure
- is mean air temperature
These are the algebraic forms implemented in the current code. The difference between and lies in the denominator, which makes an evaporation-like term more directly suited to canopy interception losses.
3.3 Supporting radiation and atmospheric termsβ
HydroPol2D computes the auxiliary PenmanβMonteith terms using astronomical and thermodynamic relationships.
Solar declination is computed as
Relative EarthβSun distance is
Extraterrestrial radiation is then computed as
Incoming solar radiation is estimated as
Clear-sky radiation is
Net shortwave radiation is
Net longwave radiation is
Net radiation is then
The slope of the saturation vapor pressure curve is computed as
Atmospheric pressure is estimated as
and the psychrometric constant is
where:
- is day of year
- is solar declination
- is relative EarthβSun distance
- is extraterrestrial radiation
- is sunrise hour angle
- is latitude
- is incoming solar radiation
- is the empirical radiation coefficient in the Hargreaves-type incoming radiation estimate
- is clear-sky solar radiation
- is the terrain elevation
- is net shortwave radiation
- is land-surface albedo
- is net longwave radiation
- is the StefanβBoltzmann constant
- is atmospheric pressure
These expressions are explicitly implemented in the evapotranspiration routine and evaluated in matrix form over the computational domain.
3.4 Direct evaporation and transpiration forcingβ
HydroPol2D can also use externally supplied raster fields of evaporation and transpiration. In that configuration, the model bypasses the internal PenmanβMonteith calculation and applies prescribed and fields directly in the hydrologic mass balance.
4. Infiltrationβ
The infiltration module computes the transfer of water from the surface to the vadose zone using a Darcy-based formulation coupled with van GenuchtenβMualem constitutive relationships. The formulation is designed to approximate Richards-type unsaturated flow behavior while maintaining compatibility with the storage-based structure of HydroPol2D.
At each time step, infiltration is controlled by three simultaneous constraints:
- the availability of water at the surface,
- the hydraulic capacity of the soil,
- the remaining storage capacity of the vadose zone.
The final infiltration rate is determined as the minimum among these competing limits.
Current layered vadose structureβ
The current implementation represents the soil and shallow groundwater column with four conceptual zones:
- a near-surface layer, with a default target thickness of ;
- a root-zone layer, whose depth is assigned from land use / land cover;
- a transmission-zone layer, which occupies any remaining vadose thickness below the root zone;
- a groundwater zone, whose top is the current water-table depth.
The layer geometry is recomputed from soil depth, land-surface elevation, and groundwater head. The fallback rules are intentionally conservative:
- if the LULC root depth is shallower than the near-surface target, the explicit root-zone layer collapses and roots are represented within the near-surface layer;
- if bedrock is shallower than the requested root depth, root depth is truncated to available soil depth;
- if the water table is shallower than the requested root depth, vadose root storage is truncated at the water table;
- if the water table reaches the surface, all vadose layers have zero thickness and groundwater feedback occurs through saturation/exfiltration logic.
The same base soil hydraulic parameters are assigned to the near-surface, root-zone, and transmission-zone layers, while saturated hydraulic conductivity can be adjusted by layer multipliers:
Ks_multiplier_near_surface,Ks_multiplier_root_zone,Ks_multiplier_transmission.
This keeps the parameterization practical: the soil table defines the base physical soil behavior, LULC defines root-zone depth, and multipliers allow vertical contrasts when data or calibration support them.
4.1 Water-table-controlled unsaturated storageβ
The vertical structure of the soil column is dynamically linked to the groundwater table. The saturated thickness above the base of the soil profile is computed as
and the depth to the water table below the land surface is
where:
- is groundwater head
- is land surface elevation
- is soil depth
- is water-table depth below the surface
Under the current implementation, vadose storage is tracked as active water above residual content. The conceptual maximum storage available in the unsaturated zone is therefore
and the remaining storage capacity is
where:
- is maximum vadose storage
- is current vadose storage
- is residual water content
- is saturated water content
This formulation ensures that the available storage dynamically responds to groundwater fluctuations. As the water table rises, decreases and the vadose storage capacity shrinks accordingly. In the default layered implementation, this same logic is applied through the summed capacities of the near-surface, root-zone, and transmission-zone stores after truncation by the current water-table position.
4.2 Representative water content and effective saturationβ
The representative volumetric water content in the vadose zone is approximated as
subject to
The effective saturation is then defined as
where:
- is volumetric water content
- is residual water content
- is effective saturation
This effective saturation is used to evaluate both matric suction and hydraulic conductivity. In the default layered implementation, the same constitutive form is evaluated separately for each vadose layer; the single-state expression above is the conceptual equivalent for the legacy fallback formulation.
4.3 Matric pressure headβ
The matric pressure head is computed using the van Genuchten retention curve:
with
where:
- is matric pressure head
- is inverse air-entry parameter
- is van Genuchten shape parameter
At near-saturated conditions, the model imposes
to prevent numerical instability.
4.4 Unsaturated hydraulic conductivityβ
The unsaturated hydraulic conductivity is computed as
with
where:
- is unsaturated hydraulic conductivity
- is saturated hydraulic conductivity
- is pore-connectivity parameter
If is not provided, a default value of is used.
4.5 Darcy-based infiltration capacityβ
The infiltration capacity represents the maximum flux that can be transmitted into the soil given the current hydraulic state. In the current code, this is not based on a single value alone. Instead, HydroPol2D uses:
- a representative bucket suction based on the current vadose storage,
- a within-step near-surface wetting predictor,
- and a weighted near-surface conductivity that blends saturated entry conductivity with the conductivity of the wetted top layer.
The temporary wetting predictor is
where:
- is the within-step candidate wetting depth
- is the remaining storage deficit of the near-surface layer
- is the predicted water content at the bottom of the near-surface layer
The effective entry conductivity is then evaluated as
where is the near-surface conductivity weight. The infiltration capacity is then computed as
where:
- is infiltration capacity
- is surface ponding head
- is near-surface resistance length (default )
- is maximum driving head difference (typically )
This formulation accounts for both gravity-driven and capillary-driven infiltration while also approximating rapid wetting at the surface boundary. The wetting predictor does not add water to the soil state by itself; only the accepted infiltration flux updates vadose storage.
4.6 Supply-limited and storage-limited infiltrationβ
The water available for infiltration is determined from the effective surface water depth. When interception is inactive:
The corresponding supply-limited infiltration rate is
where:
- is effective ponded water depth
- is time step in hours
The storage-limited infiltration rate is
The actual infiltration rate is then
Additional constraints are applied:
- over impervious cells
- when
Thus, infiltration is simultaneously supply-limited, capacity-limited, and storage-limited. In layered mode, acceptance is additionally constrained by the explicit near-surface storage deficit before water can continue to drain downward through the deeper vadose layers.
4.7 Vadose storage updateβ
The infiltrated depth over the time step is
and the vadose storage is updated as
subject to
In the default layered implementation, the accepted infiltration first fills the near-surface store and the total vadose storage is then synchronized across:
- near-surface storage,
- root-zone storage,
- transmission-zone storage.
The scalar expression above is therefore the conceptual summary of a layered update rather than the only internal representation.β
5. Snow Accumulation, Melt, and Sublimationβ
When snow modeling is active, precipitation is partitioned into rainfall and snowfall, and snowpack evolution is explicitly tracked through snow water equivalent (SWE), density, and depth.
5.1 Rainβsnow partitioningβ
The current implementation partitions precipitation using a linear temperature ramp between fixed thresholds of and :
The snowfall and rainfall partitions are then
where is the temperature-dependent snow fraction .
5.2 Snow water equivalentβ
The evolution of snow water equivalent is
where:
- is snow water equivalent
- is sublimation
5.3 Snowmeltβ
Snowmelt is computed as a degree-day plus radiative-energy term:
where:
- is degree-day factor
- is snow albedo that can be either assumed as constant or entered as spatial input in the
General_Data.xlsx. - is the net shortwave-radiation term used by the current routine
The current snow parameters must be edited in the function HydroPol2D_Preprocessing.m.
5.4 Snow density and depthβ
Snow density evolves as
subject to
Snow depth is
5.5 Sublimationβ
where:
- is sublimation coefficient
- is wind speed , taken as the wind speed at height.
- is saturation specific humidity at the snow surface
- is ambient air specific humidity
In the current implementation, is estimated internally from the available temperature fields rather than read as a fully independent humidity forcing, and the sublimation flux is clipped to remain nonnegative and not exceed the available snow water equivalent.β
5.6 Surface-water update under snow conditionsβ
otherwise
where:
- is surface water depth at the current time step
- is surface water depth at the previous time step
6. Vadose Storage, Recharge, and Groundwater Feedbackβ
6.1 Default layered vadose structureβ
The current default formulation is a layered vadose system, not a single recharge bucket. Water is tracked in:
- a near-surface layer,
- a root-zone layer,
- a transmission layer,
- and a groundwater-coupling interface below the transmission layer.
For a generic vadose layer with active storage and thickness ,
The resulting unsaturated conductivity governs downward drainage from one layer to the next over the current time step, subject to the available storage capacity in the receiving layer.
6.2 Downward drainage and rechargeβ
In the default pathway:
- near-surface drainage moves first to the root zone when root storage exists,
- root-zone drainage moves to the transmission zone when transmission storage exists,
- transmission-zone drainage becomes recharge to groundwater.
Conceptually, the groundwater recharge over a time step can be summarized as
with optional direct drainage from higher layers only where the lower vadose layers are absent. This layered cascade is the canonical HydroPol2D recharge story. The older single-bucket Darcy closure remains available only as a fallback formulation and should not be treated as the default theory path.
6.3 Optional capillary rise and asynchronous groundwater couplingβ
When flag_capillary_rise = 1, shallow groundwater can return water upward into available vadose storage. The implemented capillary-rise logic increases with:
- shallower water-table depth,
- larger storage deficit in the receiving layer,
- and larger layer conductivity.
The net vadose-groundwater exchange accumulated by the groundwater scheduler is therefore
where:
- is total downward recharge from layered drainage
- is upward capillary-rise exchange
This net exchange is accumulated every surface-water step, while the saturated groundwater heads can be updated on a slower asynchronous schedule.
6.4 Saturation excess and groundwater exfiltrationβ
After the groundwater update, HydroPol2D recomputes the vadose capacity using the updated water-table position. Any water that no longer fits in the unsaturated zone is returned to the surface as saturation excess:
Groundwater head that rises above the local surface also generates exfiltration:
where is specific yield. The full canonical groundwater formulation, including the asynchronous scheduler and Boussinesq lateral flow solver, is documented on the Groundwater Model page.
7. Summaryβ
The hydrologic model in HydroPol2D integrates:
- canopy interception,
- PenmanβMonteith evapotranspiration,
- Darcy-based infiltration with weighted near-surface conductivity,
- snow accumulation and melt,
- layered vadose storage and groundwater coupling,
into a unified, mass-consistent framework that resolves vertical water fluxes at the grid-cell scale and provides the hydrologic forcing for the hydrodynamic model.