• No results found

1 SoilWater. Parameters (Inputs) Name Description Units Type Value

N/A
N/A
Protected

Academic year: 2021

Share "1 SoilWater. Parameters (Inputs) Name Description Units Type Value"

Copied!
27
0
0

Loading.... (view fulltext now)

Full text

(1)

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

(2)

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)

(3)

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

(4)

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

(5)

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

(6)

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()

(7)

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)

(8)

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

(9)

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)

(10)

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)

(11)

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.

(12)
(13)

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

(14)

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)

(15)

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()

(16)

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()

(17)

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()

(18)

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

(19)

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()

(20)

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)

(21)

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)

(22)

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

(23)

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)

(24)

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)

(25)

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()

(26)

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)

(27)

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.

References

Related documents

Printed by ARC-ISCW on semi-transparent matt film without topo-cadastral background; relevant topo- cadastral 1:50 000 map (obtainable from Government Printer) should be used as

No.3 IP Fixed Mobile All-IP based FMC Single Platform Box Module Site or Central Office One Cabinet One Site 9KW 3×3KW Smart modularized power management 2KW

Specifically, we presented a P2P streaming protocol used by a participating peer to request a media file from the system; a cluster-based dispersion al- gorithm, which

Motivation Problem statement Simulation scenario Results of performance prediction ConclusionsB. A study on machine learning and regression based models for performance

Please Note: If you book a Royal Caribbean International holiday in conjunction with other services (such as flights, on-shore accommodation and/or ground transfers) which

The Global Education Monitoring Report (GEM) (UNESCO, 2016, 4) ‘starkly’ highlighted three clear messages for the international community, one that there is a realisation

College Mathematics (3 Credits) Biology (6 Credits) Arts and Humanities 3 Arts and Humanities 3 TOTAL 35 20 8.00 **Total up RED # ** Excess credits 0.00 8.00 Analyzing and