hydrology_soilWaterBalance {medfate}R Documentation

Soil water balance

Description

Function hydrology_soilWaterBalance estimates water balance of soil layers given water inputs/outputs, including the simulation of water movement within the soil.

Usage

hydrology_soilWaterBalance(
  soil,
  soilFunctions,
  rainfallInput,
  rainfallIntensity,
  snowmelt,
  sourceSink,
  runon = 0,
  lateralFlows = NULL,
  waterTableDepth = NA_real_,
  infiltrationMode = "GreenAmpt1911",
  infiltrationCorrection = 5,
  soilDomains = "buckets",
  nsteps = 24L,
  max_nsubsteps = 3600L,
  modifySoil = TRUE
)

Arguments

soil

Object of class soil.

soilFunctions

Soil water retention curve and conductivity functions, either 'SX' (for Saxton) or 'VG' (for Van Genuchten).

rainfallInput

Amount of water from rainfall event (after excluding interception), in mm.

rainfallIntensity

Rainfall intensity, in mm/h.

snowmelt

Amount of water originated from snow melt, in mm.

sourceSink

Local source/sink term for each soil layer (from soil evaporation or plant transpiration/redistribution) as mm/day.

runon

Surface water amount running on the target area from upslope (in mm).

lateralFlows

Lateral source/sink terms for each soil layer (interflow/to from adjacent locations) as mm/day.

waterTableDepth

Water table depth (in mm). When not missing, capillarity rise will be allowed if lower than total soil depth.

infiltrationMode

Infiltration model, either "GreenAmpt1911" or "Boughton1989"

infiltrationCorrection

Correction for saturated conductivity, to account for increased infiltration due to macropore presence

soilDomains

Either "buckets" (multi-bucket domain), "single" (for single-domain Richards) or "dual" (for dual-permeability model).

nsteps

Number of time steps per day

max_nsubsteps

Maximum number of substeps per time step

modifySoil

Boolean flag to indicate that the input soil object should be modified during the simulation.

Details

The multi-bucket model adds/substracts water to each layer and if content is above field capacity the excess percolates to the layer below. If there is still an excess for the bottom layer, the model will progressively fill upper layers (generating saturation excess if the first layer becomes saturated). Every day the some layers are over field capacity, the model simulates deep drainage.

The single-domain model simulates water flows by solving Richards's equation using the predictor-corrector method, as described in Bonan et al. (2019).

The dual-permeability model is an implementation of the model MACRO 5.0 (Jarvis et al. 1991; Larsbo et al. 2005).

Both the multi-bucket and the single-domain model can apply a correction to the infiltration rate to account for macroporosity in infiltration. In the dual-permeability model extra infiltration through macropores is simulated explicitly.

Value

Returns a named vector with different elements, depending on soilDomains.

If soilDomains == "buckets":

If soilDomains == "single" the named vector contains the following additional elements:

If soilDomains == "dual" the named vector contains the following additional elements:

Author(s)

Miquel De Cáceres Ainsa, CREAF

María González Sanchís, UPV-CTFC

References

Bonan, G. (2019). Climate change and terrestrial ecosystem modeling. Cambridge University Press, Cambridge, UK.

Jarvis, N.J., Jansson, P‐E., Dik, P.E. & Messing, I. (1991). Modelling water and solute transport in macroporous soil. I. Model description and sensitivity analysis. Journal of Soil Science, 42, 59–70.

Larsbo, M., Roulier, S., Stenemo, F., Kasteel, R. & Jarvis, N. (2005). An Improved Dual‐Permeability Model of Water Flow and Solute Transport in the Vadose Zone. Vadose Zone Journal, 4, 398–406.

See Also

spwb, hydrology_waterInputs, hydrology_infiltration

Examples

# Define soil parameters
spar <- defaultSoilParams(4)

# Initializes soil hydraulic parameters
examplesoil <- soil(spar)

# Water balance in a multi-bucket model
hydrology_soilWaterBalance(examplesoil, "VG", 10, 5, 0, c(-1,-1,-1,-1), 
                           soilDomains = "buckets", modifySoil = FALSE)
                           
# Water balance in a single-domain model (Richards equation)
hydrology_soilWaterBalance(examplesoil, "VG", 10, 5, 0, c(-1,-1,-1,-1), 
                           soilDomains = "single", modifySoil = FALSE)
                    
# Water balance in a dual-permeability model (MACRO)
hydrology_soilWaterBalance(examplesoil, "VG", 10, 5, 0, c(-1,-1,-1,-1), 
                           soilDomains = "dual", modifySoil = FALSE)
  

[Package medfate version 4.7.0 Index]