1 SoilWater
The SoilWater module is a cascading water balance model that owes much to its precursors in CERES (Jones and Kiniry, 1986) and PERFECT(Littleboy et al, 1992). The algorithms for redistribution of water throughout the soil profile have been inherited from the CERES family of models. The water characteristics of the soil are specified in terms of the lower limit (ll15), drained upper limit(dul) and saturated(sat) volumetric water contents. Water movement is described using separate algorithms for saturated or unsaturated flow. It is notable that redistribution of solutes, such as nitrate- and urea-N, is carried out in this module. Modifications adopted from
PERFECT include: * the effects of surface residues and crop cover on modifying runoff and reducing potential soil evaporation, * small rainfall events are lost as first stage evaporation rather than by the slower process of second stage evaporation, and * specification of the second stage evaporation coefficient(cona) as an input parameter, providing more flexibility for describing differences in long term soil drying due to soil texture and environmental effects. The module is interfaced with SurfaceOrganicMatter and crop modules so that simulation of the soil water balance responds to change in the status of surface residues and crop cover(via tillage, decomposition and crop growth). Enhancements beyond CERES and PERFECT include: * the specification of swcon for each layer, being the proportion of soil water above dul that drains in one day * isolation from the code of the coefficients determining diffusivity as a function of soil water (used in calculating unsaturated
flow).Choice of diffusivity coefficients more appropriate for soil type have been found to improve model performance. * unsaturated flow is permitted to move water between adjacent soil layers until some nominated gradient in soil water content is achieved, thereby accounting for the effect of gravity on the fully drained soil water profile. SoilWater is called by APSIM on a daily basis, and typical of such models, the various processes are calculated consecutively. This contrasts with models such as SWIM that solve simultaneously a set of differential equations that describe the flow processes.
Parameters (Inputs)
Name Description Units Type Value
RunoffModel.CNReductionForCover.EffectiveCoverMultiplier.XValue.FixedValue Gets the value. double 0 RunoffModel.CNReductionForCover.EffectiveCoverMultiplier.XValue.Units Gets the optional units String
RunoffModel.CNReductionForCover.EffectiveCoverMultiplier.XYPairs.X Gets or sets the x. double[] System.Double[] RunoffModel.CNReductionForCover.EffectiveCoverMultiplier.XYPairs.Y Gets or sets the y. double[] System.Double[]
RunoffModel.CNReductionForTillage.tillageCnCumWater The amount of rain required to cease curve number
reduction. double 0
RunoffModel.CNReductionForTillage.tillageCnRed The amount to reduce curve number by the day after
tillage (0-100). double 0
Properties (Outputs)
Name Description Units Type Settable?
CatchmentArea Catchment area for later flow calculations (m2).Catchment area for lateral flow calculations
m2 double True
CN2Bare Runoff Curve Number (CN) for bare soil with average moistureRunoff Curve Number (CN) for bare soil with average moisture
Name Description Units Type Settable? CNCov Gets or sets the cn cov.Cover for max curve number
reduction double True
CNRed Gets or sets the cn red.Max. reduction in curve
number due to cover double True
Depth Depth strings. Wrapper around Thickness.Depth cm String[] True DiffusConst Constant in the soil water diffusivity calculation
(mm2/day)Constant in the soil water diffusivity calculation
mm2/day double True
DiffusSlope Effect of soil water storage above the lower limit on soil water diffusivity (/mm)Effect of soil water storage above the lower limit on soil water diffusivity
/mm double True
DischargeWidth Basal width of the downslope boundary of the catchment for lateral flow calculations (m).Basal width of the downslope boundary of the catchment for lateral flow calculations
m double True
Drainage Drainage (mm). double False
Eo Gets potential evapotranspiration of the whole
soil-plant system (mm) double True
Eos Gets potential evaporation from soil surface (mm) double False Es Gets the actual (realised) soil water evaporation (mm) double False ESW Gets extractable soil water relative to LL15(mm) double[] False
Evaporation Evaporation (mm). double False
Flow Flow. Water moving up (mm). double[] True
FlowNH4 Amount of N leaching as NH4 from each soil layer (kg
/ha) double[] True
FlowNO3 Amount of N leaching as NO3 from each soil layer (kg /ha)
double[] True
FlowUrea Amount of N leaching as urea from each soil layer (kg /ha)
Name Description Units Type Settable?
Flux Flux. Water moving down (mm). double[] True
Infiltration Infiltration (mm). double True
KLAT Lateral saturated hydraulic conductivity (KLAT).Lateral saturated hydraulic conductivity (KLAT) Lateral flow soil water conductivity constant for each soil layer. At thicknesses specified in "SoilWater" node of GUI. Use Soil.KLAT for KLAT in standard thickness
mm/d double[] True
LateralFlow Lateral flow (mm). double[] False
LateralOutflow Amount of water moving laterally out of the profile
(mm) double[] False
LayerThickness This is the layer thickness that the model exicutes on double[] True LeachNH4 Amount of N leaching as NH4-N from the deepest soil
layer (kg /ha) double False
LeachNO3 Amount of N leaching as NO3-N from the deepest soil
layer (kg /ha) double False
LeachUrea Amount of N leaching as urea-N from the deepest soil
layer (kg /ha) double False
PAW Plant available water SW-LL15 (mm/mm). mm/mm double[] False PAWmm Plant available water SW-LL15 (mm). mm double[] False
Pond Pond. double False
PotentialInfiltration This is set by Microclimate and is rainfall less that intercepted by the canopy and residue components
double True
PotentialRunoff Gets todays potential runoff (mm). double False PrecipitationInterception This is set by Microclimate and is rainfall less that
intercepted by the canopy and residue components double True Properties Provides access to the soil properties. Soil False
Runoff Runoff (mm). double True
Name Description Units Type Settable? Salb Fraction of incoming radiation reflected from bare
soilFraction of incoming radiation reflected from bare soil
double True
SoluteFlowEfficiency The efficiency (0-1) that solutes move up with water. double[] True SoluteFluxEfficiency The efficiency (0-1) that solutes move down with
water. double[] True
SummerCona Drying coefficient for stage 2 soil water evaporation in summer (a.k.a. ConA)Drying coefficient for stage 2 soil water evaporation in summer (a.k.a. ConA)
double True
SummerDate Start date for switch to summer parameters for soil water evaporation (dd-mmm)Start date for switch to summer parameters for soil water evaporation
dd-mmm String True
SummerU Cummulative soil water evaporation to reach the end of stage 1 soil water evaporation in summer (a.k.a. U)Cummulative soil water evaporation to reach the end of stage 1 soil water evaporation in summer (a.k.a. U)
mm double True
SW Amount of water in the soil (mm/mm). double[] True
SWCON Fractional amount of water above DUL that can drain under gravity per day.Fractional amount of water above DUL that can drain under gravity per day (SWCON) Between (SAT and DUL) soil water conductivity constant for each soil layer. At thicknesses specified in "SoilWater" node of GUI. Use Soil.SWCON for SWCON in standard thickness
/d double[] True
SWmm Gets soil water content (mm) double[] False
T Time since start of second stage evaporation (days). double False Thickness Soil layer thickness for each layer (mm).Soil layer
thickness for each layer
mm double[] True
Water Amount of water in the soil (mm). double[] True
Name Description Units Type Settable? WinterCona Drying coefficient for stage 2 soil water evaporation in
winter (a.k.a. ConA)Drying coefficient for stage 2 soil water evaporation in winter (a.k.a. ConA)
double True
WinterDate Start date for switch to winter parameters for soil water evaporation (dd-mmm)Start date for switch to winter parameters for soil water evaporation
dd-mmm String True
WinterU Cummulative soil water evaporation to reach the end of stage 1 soil water evaporation in winter (a.k.a. U).Cummulative soil water evaporation to reach the end of stage 1 soil water evaporation in winter (a.k.a. U).
mm double True
Links (Dependencies)
Name Type IsOptional?
cl ISolute True
evaporationModel EvaporationModel False
initial Sample False
lateralFlowModel LateralFlowModel False
nh4 ISolute False
no3 ISolute False
runoffModel RunoffModel False
saturatedFlow SaturatedFlowModel False
soil Soil False
soilPhysical IPhysical False
summary ISummary False
unsaturatedFlow UnsaturatedFlowModel False
Name Type IsOptional? waterTableModel WaterTableModel False
Methods (callable from manager)
Name Description
ClearChildLists void ClearChildLists()
Equals boolean Equals(Object obj)
FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllChildren IEnumerable`1 FindAllChildren() FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren() FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllInScope IEnumerable`1 FindAllInScope() FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope() FindAllSiblings IEnumerable`1 FindAllSiblings()
Name Description FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings() FindAncestor IModel FindAncestor(String name)
FindAncestor T FindAncestor()
FindAncestor T FindAncestor(String name) FindByPath IVariable FindByPath(String path, boolean ignoreCase) FindChild IModel FindChild(String name)
FindChild T FindChild()
FindChild T FindChild(String name)
FindDescendant IModel FindDescendant(String name)
FindDescendant T FindDescendant()
FindDescendant T FindDescendant(String name) FindInScope IModel FindInScope(String name)
FindInScope T FindInScope()
FindInScope T FindInScope(String name)
FindSibling IModel FindSibling(String name)
FindSibling T FindSibling()
FindSibling T FindSibling(String name)
Name Description GetModelParameterNames
StringList GetModelParameterNames()
GetType Type GetType()
IsChildAllowable boolean IsChildAllowable(Type type)
OnCreated void OnCreated()
OnPreLink void OnPreLink()
ParentAllDescendants void ParentAllDescendants() RemoveWater void RemoveWater(double[] amountToRemove)
Remove water from the profile
Reset void Reset()
SetWaterTable void SetWaterTable(double InitialDepth)
Sets the water table.
Tillage void Tillage(TillageType Data)
Perform tillage
Tillage void Tillage(String tillageType)
Perform tillage
ToString String ToString()
2 LateralFlowModel
Lateral movement of water is calculated from a user specified lateral inflow ('InFlow'). Lateral Outflow is the flow that occurs as a result of the soil water going above DUL and the soil being on a slope. So if there is no slope and the water goes above DUL there is no lateral outflow. KLAT is just the lateral resistance of the soil to this flow. It is a soil water conductivity. The calculation of lateral outflow on a layer basis is now performed using the equation: Lateral flow for a layer = KLAT * d * s / (1 + s2
DUL. (Note this allows lateral flow in any "saturated" layer, not just those inside a water table.) s = slope(m / m) L = catchment discharge width. Basically, it's the width of the downslope boundary of the catchment. (m) A = catchment area. (m2) NB. with Lateral Inflow it is assumed that ALL the water goes straight into the layer.
Irrespective of the layers ability to hold it. It is like an irrigation. KLAT has no effect and does not alter the amount of water coming into the layer. KLAT only alters the amount of water flowing out of the layer
Properties (Outputs)
Name Description Units Type Settable?
InFlow The amount of incoming water (mm) double[] True OutFlow The amount of outgoing water (mm). double[] True
Links (Dependencies)
Name Type IsOptional?
field Zone False
soilPhysical IPhysical False soilWater WaterBalance False
Methods (callable from manager)
Name Description
Calculate void Calculate()
ClearChildLists void ClearChildLists()
Equals boolean Equals(Object obj)
FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllChildren IEnumerable`1 FindAllChildren() FindAllChildren IEnumerable`1 FindAllChildren(String name)
Name Description FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren() FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllInScope IEnumerable`1 FindAllInScope() FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope() FindAllSiblings IEnumerable`1 FindAllSiblings() FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings() FindAncestor IModel FindAncestor(String name)
FindAncestor T FindAncestor()
FindAncestor T FindAncestor(String name) FindByPath IVariable FindByPath(String path, boolean ignoreCase) FindChild IModel FindChild(String name)
FindChild T FindChild()
FindChild T FindChild(String name)
FindDescendant IModel FindDescendant(String name)
Name Description FindDescendant T FindDescendant(String name) FindInScope IModel FindInScope(String name)
FindInScope T FindInScope()
FindInScope T FindInScope(String name)
FindSibling IModel FindSibling(String name)
FindSibling T FindSibling()
FindSibling T FindSibling(String name)
GetHashCode int32 GetHashCode()
GetType Type GetType()
IsChildAllowable boolean IsChildAllowable(Type type)
OnCreated void OnCreated()
OnPreLink void OnPreLink()
ParentAllDescendants void ParentAllDescendants()
ToString String ToString()
3 RunoffModel
Runoff from rainfall is calculated using the USDA-Soil Conservation Service procedure known as the curve number technique. The procedure uses total precipitation from one or more storms occurring on a given day to estimate runoff. The relation excludes duration of rainfall as an explicit variable, and so rainfall intensity is ignored. When irrigation is applied it can optionally be included in the runoff calculation. This flag (willRunoff) can be set when applying irrigation. Figure: Runoff response curves (ie runoff as a function of total daily rainfall) are specified by numbers from 0 (no runoff) to 100 (all runoff). Response curves for three runoff curve numbers for rainfall varying between 0 and 100 mm per day. The user supplies a curve number for average antecedent rainfall conditions (CN2Bare). From this value the wet (high runoff potential) response curve and the dry (low runoff potential) response curve are calculated. The SoilWater module will then use the family of curves between these two extremes for calculation of runoff depending on the daily moisture status of the soil. The effect of soil moisture on runoff is confined to the effective hydraulic depth as specified in the module's ini file and is calculated to give extra weighting to layers closer to the soil surface. Figure: Runoff response curves (ie runoff as a function of total daily rainfall) are specified by numbers from 0 (no runoff) to 100 (all runoff). Figure: Residue cover effect on runoff curve number where bare soil curve number is 75 and total reduction in curve number is 20 at 80% cover. Surface residues inhibit the transport of water across the soil surface during runoff events and so different families of response curves are used according to the amount of crop and residue cover.The extent of the effect on runoff is specified by a threshold surface cover (CNCov), above which there is no effect, and the corresponding curve number reduction (CNRed). Tillage of the soil surface also reduces runoff potential, and a similar modification of Curve Number is used to represent this process. A tillage event is directed to the module, specifying cn_red, the CN reduction, and cn_rain, the rainfall amount required to remove the tillage roughness. CN2 is immediately reduced and increases linearly with cumulative rain, ie.roughness is smoothed out by rain.
Properties (Outputs)
Name Description Units Type Settable?
CumWaterSinceTillage Running total of cumulative rainfall since last tillage event. Used for tillage CN reduction
(mm). double True
TillageCnCumWater Cumulative rainfall below which tillage reduces CN (mm). double True
TillageCnRed Reduction in CN due to tillage() double True
Links (Dependencies)
Name Type IsOptional?
cnReductionForCover IFunction False cnReductionForTillage IFunction False
soil WaterBalance False
soilPhysical IPhysical False
summary ISummary False
Name Description
ClearChildLists void ClearChildLists()
Equals boolean Equals(Object obj)
FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllChildren IEnumerable`1 FindAllChildren() FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren() FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllInScope IEnumerable`1 FindAllInScope() FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope() FindAllSiblings IEnumerable`1 FindAllSiblings() FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings() FindAncestor IModel FindAncestor(String name)
Name Description
FindAncestor T FindAncestor()
FindAncestor T FindAncestor(String name) FindByPath IVariable FindByPath(String path, boolean ignoreCase) FindChild IModel FindChild(String name)
FindChild T FindChild()
FindChild T FindChild(String name)
FindDescendant IModel FindDescendant(String name)
FindDescendant T FindDescendant()
FindDescendant T FindDescendant(String name) FindInScope IModel FindInScope(String name)
FindInScope T FindInScope()
FindInScope T FindInScope(String name)
FindSibling IModel FindSibling(String name)
FindSibling T FindSibling()
FindSibling T FindSibling(String name)
GetHashCode int32 GetHashCode()
GetType Type GetType()
IsChildAllowable boolean IsChildAllowable(Type type)
OnCreated void OnCreated()
OnPreLink void OnPreLink()
ParentAllDescendants void ParentAllDescendants()
Name Description Value double Value(int32 arrayIndex)
Calculate and return the runoff (mm).
4 SaturatedFlowModel
When water content in any layer is below SAT but above DUL, a fraction of the water drains to the next deepest layer each day. Flux = SWCON x (SW - DUL) Infiltration or water movement into any layer that exceeds the saturation capacity of the layer automatically cascades to the next layer.
Properties (Outputs)
Name Description Units Type Settable?
backedUpSurface Amount of water (mm) backed up. double True Values Perform the movement of water. double[] False
Links (Dependencies)
Name Type IsOptional?
soil WaterBalance False
soilPhysical IPhysical False
Methods (callable from manager)
Name Description
ClearChildLists void ClearChildLists()
Equals boolean Equals(Object obj)
FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors()
Name Description FindAllChildren IEnumerable`1 FindAllChildren() FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren() FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllInScope IEnumerable`1 FindAllInScope() FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope() FindAllSiblings IEnumerable`1 FindAllSiblings() FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings() FindAncestor IModel FindAncestor(String name)
FindAncestor T FindAncestor()
FindAncestor T FindAncestor(String name) FindByPath IVariable FindByPath(String path, boolean ignoreCase) FindChild IModel FindChild(String name)
FindChild T FindChild()
Name Description FindDescendant IModel FindDescendant(String name)
FindDescendant T FindDescendant()
FindDescendant T FindDescendant(String name) FindInScope IModel FindInScope(String name)
FindInScope T FindInScope()
FindInScope T FindInScope(String name)
FindSibling IModel FindSibling(String name)
FindSibling T FindSibling()
FindSibling T FindSibling(String name)
GetHashCode int32 GetHashCode()
GetType Type GetType()
IsChildAllowable boolean IsChildAllowable(Type type)
OnCreated void OnCreated()
OnPreLink void OnPreLink()
ParentAllDescendants void ParentAllDescendants()
ToString String ToString()
5 UnsaturatedFlowModel
For water contents below DUL, movement depends upon the water content gradient between adjacent layers and the diffusivity, which is a function of the average water contents of the two layers. Unsaturated flow may occur both towards the surface and downwards, but cannot move water out of the bottom of the deepest layer in the profile. Flow between adjacent layers ceases at a soil water gradient (gravity_gradient) specified in the SoilWater ini file. The diffusivity is defined by two parameters set by the user (diffus_const, diffus_slope) in the SoilWater parameter set (Default values, from CERES, are 88 and 35.4, but 40 and 16 have been found to be more appropriate for describing water movement in cracking clay soils). Diffusivity = diffus_const x exp(diffus_slope x thet_av) where thet_av is the average of SW - LL15 across the two layers. Flow = Diffusivity x Volumetric Soil Water Gradient
Name Description Units Type Settable? Values Calculate unsaturated flow below drained upper limit. double[] False
Links (Dependencies)
Name Type IsOptional?
soil WaterBalance False
soilPhysical IPhysical False
Methods (callable from manager)
Name Description
ClearChildLists void ClearChildLists()
Equals boolean Equals(Object obj)
FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllChildren IEnumerable`1 FindAllChildren() FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren() FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants()
Name Description FindAllInScope IEnumerable`1 FindAllInScope() FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope() FindAllSiblings IEnumerable`1 FindAllSiblings() FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings() FindAncestor IModel FindAncestor(String name)
FindAncestor T FindAncestor()
FindAncestor T FindAncestor(String name) FindByPath IVariable FindByPath(String path, boolean ignoreCase) FindChild IModel FindChild(String name)
FindChild T FindChild()
FindChild T FindChild(String name)
FindDescendant IModel FindDescendant(String name)
FindDescendant T FindDescendant()
FindDescendant T FindDescendant(String name) FindInScope IModel FindInScope(String name)
FindInScope T FindInScope()
FindInScope T FindInScope(String name)
FindSibling IModel FindSibling(String name)
Name Description
FindSibling T FindSibling(String name)
GetHashCode int32 GetHashCode()
GetType Type GetType()
IsChildAllowable boolean IsChildAllowable(Type type)
OnCreated void OnCreated()
OnPreLink void OnPreLink()
ParentAllDescendants void ParentAllDescendants()
ToString String ToString()
6 EvaporationModel
Soil evaporation is assumed to take place in two stages: the constant and the falling rate stages. In the first stage the soil is sufficiently wet for water to be transported to the surface at a rate at least equal to the potential evaporation rate. Potential evapotranspiration is calculated using an equilibrium evaporation concept as modified by Priestly and Taylor(1972). Once the water content of the soil has decreased below a threshold value the rate of supply from the soil will be less than potential evaporation (second stage evaporation). These behaviors are described in SoilWater through the use of two parameters: U and CONA. The parameter U (as from CERES) represents the amount of cumulative evaporation before soil supply decreases below atmospheric demand. The rate of soil evaporation during the second stage is specified as a function of time since the end of first stage evaporation. The parameter CONA (from PERFECT) specifies the change in cumulative second stage evaporation against the square root of time. i.e. Es = CONA t1/2Water lost by evaporation is removed from the surface layer of the soil profile thus this layer can dry
below the wilting point or lower limit (LL) to a specified air-dry water content (air_dry). Figure: Cumulative Soil Evaporation through time for U = 6 mm and CONA = 3.5. For t <= t1Es = Eos For t > t1Es = U x t + CONA x Sqrt(t-t1)
Properties (Outputs)
Name Description Units Type Settable?
CONA CONA that was used. double False
Eo Atmospheric potential evaporation (mm) double True Eos Eo reduced due to shading (mm). double True
Es Es - actual evaporation (mm). double True
U U that was used. double False
Links (Dependencies)
Name Type IsOptional?
canopies ICanopyList False
clock IClock False
soilPhysical IPhysical False
surfaceOrganicMatter ISurfaceOrganicMatter False waterBalance WaterBalance False
Name Type IsOptional?
weather IWeather False
Methods (callable from manager)
Name Description
CalcEoReducedDueToShading void CalcEoReducedDueToShading()
CalcEs void CalcEs()
Calculate double Calculate()
ClearChildLists void ClearChildLists()
Equals boolean Equals(Object obj)
FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllChildren IEnumerable`1 FindAllChildren() FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren() FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllInScope IEnumerable`1 FindAllInScope() FindAllInScope IEnumerable`1 FindAllInScope(String name)
Name Description FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope() FindAllSiblings IEnumerable`1 FindAllSiblings() FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings() FindAncestor IModel FindAncestor(String name)
FindAncestor T FindAncestor()
FindAncestor T FindAncestor(String name) FindByPath IVariable FindByPath(String path, boolean ignoreCase) FindChild IModel FindChild(String name)
FindChild T FindChild()
FindChild T FindChild(String name)
FindDescendant IModel FindDescendant(String name)
FindDescendant T FindDescendant()
FindDescendant T FindDescendant(String name) FindInScope IModel FindInScope(String name)
FindInScope T FindInScope()
FindInScope T FindInScope(String name)
FindSibling IModel FindSibling(String name)
FindSibling T FindSibling()
FindSibling T FindSibling(String name)
Name Description
GetType Type GetType()
Initialise void Initialise()
IsChildAllowable boolean IsChildAllowable(Type type)
OnCreated void OnCreated()
OnPreLink void OnPreLink()
ParentAllDescendants void ParentAllDescendants()
ToString String ToString()
7 WaterTableModel
Water table is the depth (in mm) below the ground surface of the first layer which is above saturation. Properties (Outputs)
Name Description Units Type Settable?
Depth Depth of water table (mm) double True
Links (Dependencies)
Name Type IsOptional?
soil WaterBalance False
soilPhysical IPhysical False
Methods (callable from manager)
Name Description
Calculate void Calculate()
Name Description
Equals boolean Equals(Object obj)
FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors(String name) FindAllAncestors IEnumerable`1 FindAllAncestors() FindAllChildren IEnumerable`1 FindAllChildren() FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren(String name) FindAllChildren IEnumerable`1 FindAllChildren() FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants(String name) FindAllDescendants IEnumerable`1 FindAllDescendants() FindAllInScope IEnumerable`1 FindAllInScope() FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope(String name) FindAllInScope IEnumerable`1 FindAllInScope() FindAllSiblings IEnumerable`1 FindAllSiblings() FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings(String name) FindAllSiblings IEnumerable`1 FindAllSiblings() FindAncestor IModel FindAncestor(String name)
Name Description FindAncestor T FindAncestor(String name) FindByPath IVariable FindByPath(String path, boolean ignoreCase) FindChild IModel FindChild(String name)
FindChild T FindChild()
FindChild T FindChild(String name)
FindDescendant IModel FindDescendant(String name)
FindDescendant T FindDescendant()
FindDescendant T FindDescendant(String name) FindInScope IModel FindInScope(String name)
FindInScope T FindInScope()
FindInScope T FindInScope(String name)
FindSibling IModel FindSibling(String name)
FindSibling T FindSibling()
FindSibling T FindSibling(String name)
GetHashCode int32 GetHashCode()
GetType Type GetType()
IsChildAllowable boolean IsChildAllowable(Type type)
OnCreated void OnCreated()
OnPreLink void OnPreLink()
ParentAllDescendants void ParentAllDescendants()
Set void Set(double initialDepth)
Sets the water table.