Class WaterBalance
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
Introduction
The sim components in the package lintul5 implement the Lintul5 algorithms from (L5). They are designed to reproduce same results (up to rounding errors) as the original FST program.
The original model is subdivided into multiple sim components (which should be used in the following order to be as close as possible to the original algorithm).
- Irradiation
- PotentialEvapoTranspiration
- WaterBalance
- Phenology
- RadiationUseEfficiency
- Lintul5
Daylength calculation is performed by the transformer component AstronomicParametersTransformer
WaterBalance component calculates the water balance part
Description
The component calculates water balance corresponding to the original model's WATBALS() routine.
It takes inputs from the components PotentialEvapoTranspiration, Phenology and Lintul5.
It's outputs are used by Lintul5.
For documentation of the algorithms please consult the orginal documentation (L5)
Changes to original
Control / Program flow
Has additional inputs iDoSow and iDoHarvest. The main routine starts running when iDoSow is true and runs every day until iDoHarvest is true.
- On iDoSow the model is (re)initialized and then the calculation is performed.
- On iDoHarvest all the outputs/states/rates are reset to their defaults (mostly 0). No further calculation is
performed.
Scale factors for calibration
As some parameters are given as interpolation tables, there have been added additional scale factors to make these values changeable for calibrations:
- cScaleFactorIRR
References
(L5) Joost Wolf, [https://models.pps.wur.nl/system/files/LINTUL5-report-vs1_0.zip User guide for LINTUL5], Wageningen UR, Wageningen, 2012
- Author:
- G. Krauss
- See Also:
Component Variables
Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
---|---|---|---|---|---|---|---|
constant | cCFEV | correction factor of time course of soil evaporation (value between 1 and about 4) | DOUBLE | 1 | 1.0 | 4.0 | 2.0 |
constant | cCRAIRC | critical soil air content for aeration | DOUBLE | 1 | 0.0 | 1.0 | 0.07 |
constant | cDEPNR | crop group number for soil water depletion | DOUBLE | 1 | - | - | 4.5 |
constant | cIAIRDU | air ducts in roots present (=1) or not (=0) | BOOLEAN | 1 | - | - | false |
constant | cIOPT | indicates optimal (=1), water limited (=2), water and N limited (=3) and NPK limited (=4) | INT | 1 | 1 | 4 | 4 |
constant | cIRRI | automatic irrigation (=1), actual irrigation from table (=2) or non irrigated(=0) | INT | 1 | 0 | 2 | 0 |
constant | cIRRTAB | table with effective applications of irrigation water as function of day number | DOUBLEARRAY | mm/d | - | - | - |
constant | cKSUB | maximal percolation rate from lower zone to deeper soil layers | DOUBLE | mm/d | - | - | 10.0 |
constant | cRDI | Initial rooting depth | DOUBLE | m | 0.0 | 2.0 | 0.1 |
constant | cRDMCR | crop-specific maximum rooting depth | DOUBLE | m | 0.0 | 10.0 | 1.25 |
constant | cRDMSO | maximum rooting depth as determined by soil structure | DOUBLE | m | 0.0 | 10.0 | 1.5 |
constant | cRUNFR | average fraction of precipitation lost by runoff | DOUBLE | 1 | 0.0 | 1.0 | 0.0 |
constant | cSM0 | soil moisture content at saturation | DOUBLE | m3/m3 | 0.0 | 1.0 | 0.45 |
constant | cSMDRY | soil moisture content at airdry (pF= 6.0) | DOUBLE | m3/m3 | 0.0 | 1.0 | 0.15 |
constant | cSMFC | soil moisture content at field capacity (pF= 2.3) | DOUBLE | m3/m3 | 0.0 | 1.0 | 0.35 |
constant | cSMI | soil moisture content in initial root zone at planting or emergence | DOUBLE | m3/m3 | 0.0 | 1.0 | 0.3 |
constant | cSMLOWI | initial soil moisture content in lower zone at planting or emergence | DOUBLE | m3/m3 | 0.0 | 1.0 | 0.3 |
constant | cSMW | soil moisture content at wilting point (pF= 4.2) | DOUBLE | m3/m3 | 0.0 | 1.0 | 0.2 |
constant | cScaleFactorIRR | Scales the y-values of IRRTAB (for sensitivity analysis / calibration) | DOUBLE | 1 | - | - | 1.0 |
input | iDoHarvest | harvesting | BOOLEAN | 1 | - | - | false |
input | iDoSow | sowing | BOOLEAN | 1 | - | - | false |
input | iEMERG | has emerged | BOOLEAN | 1 | - | - | false |
input | iIrrigation | Daily irrigation | DOUBLE | mm/d | - | - | 0.0 |
input | iPotentialSoilEvaporation | Potential evaporation | DOUBLE | mm/d | - | - | 0.0 |
input | iPotentialTranspiration | Potential transpiration | DOUBLE | mm/d | - | - | 0.0 |
input | iRAIN | precipitation (output of routine WEATHR) | DOUBLE | mm/d | - | - | 0.0 |
input | iRD | actual rooting depth | DOUBLE | m | - | - | 0.0 |
input | iRR | root growth rate | DOUBLE | m/d | - | - | 0.0 |
input | iReferenceCropEvapotranspirationCo2Corrected | potential transpiration of crop (with CO2 correction for C3 crop) (ETC) | DOUBLE | mm/d | - | - | 0.0 |
input | iWithCrop | if crop is present | BOOLEAN | 1 | - | - | true |
state | sCumulativeActualSoilEvaporation | cumulative soil evaporation | DOUBLE | mm | - | - | 0.0 |
state | sCumulativeActualTranspiration | cumulative crop transpiration | DOUBLE | mm | - | - | 0.0 |
state | sDIRRO | - | DOUBLE | - | - | 0.0 | |
state | sDSLR | counter of the days since last rain | DOUBLE | 1 | 0.0 | - | 0.0 |
state | sSMACT | actual soil moisture content in rooted zone | DOUBLE | mm3/mm3 | -1.0E-7 | 1.0 | 0.0 |
state | sSMACTL | actual soil moisture content in lower zone | DOUBLE | mm3/mm3 | -1.0E-7 | 1.0 | 0.0 |
state | sTDRAIN | cumulative drainage to the sub-soil | DOUBLE | mm | - | - | 0.0 |
state | sTIRR | cumulative irrigation | DOUBLE | mm | - | - | 0.0 |
state | sTRAIN | cumulative precipitation | DOUBLE | mm | - | - | 0.0 |
state | sTRUNOF | cumulative surface runoff | DOUBLE | mm | - | - | 0.0 |
state | sTWDR | cumulative water added to the rooted zone by root growth | DOUBLE | mm | - | - | 0.0 |
state | sWAVT | total available water in rooted zone | DOUBLE | mm | - | - | 0.0 |
state | sWAVTL | total available water in lower zone (below rooted zone) | DOUBLE | mm | - | - | 0.0 |
state | sWTOT | amount of total water in rooted zone | DOUBLE | mm | - | - | 0.0 |
state | sWTOTL | amount of total water in lower zone (below rooted zone) | DOUBLE | mm | - | - | 0.0 |
state | sWTOTLN | new amount of total water in lower zone (below rooted zone) | DOUBLE | mm | - | - | 0.0 |
state | sWTOTN | new amount of total water in rooted zone | DOUBLE | mm | - | - | 0.0 |
rate | rActualSoilEvaporation | actual soil evaporation | DOUBLE | mm/d | - | - | 0.0 |
rate | rActualTranspiration | actual transpiration rate | DOUBLE | mm/d | - | - | 0.0 |
rate | rDIRR | effective application of irrigation water | DOUBLE | mm/d | - | - | 0.0 |
rate | rDWAT | change in available water in rooted zone | DOUBLE | mm/d | - | - | 0.0 |
rate | rDWATL | change in available water in lower zone | DOUBLE | mm/d | - | - | 0.0 |
rate | rDWOT | change in total water in rooted zone | DOUBLE | mm/d | - | - | 0.0 |
rate | rDWOTL | change in total water in lower zone | DOUBLE | mm/d | - | - | 0.0 |
rate | rPERC3 | percolation from lower zone to deeper soil layers | DOUBLE | mm/d | - | - | 0.0 |
rate | rRAIN0 | precipitation in previous day | DOUBLE | mm/d | - | - | 0.0 |
rate | rRIRR | daily irrigation infiltrated | DOUBLE | mm/d | - | - | 0.0 |
rate | rRUNOF | water loss by surface runoff | DOUBLE | mm/d | - | - | 0.0 |
rate | rWDR | change in total water in the rooted zone by root growth | DOUBLE | mm/d | - | - | 0.0 |
rate | rWDRA | change in available water in the rooted zone by root growth | DOUBLE | mm/d | - | - | 0.0 |
out | RDM | soil/crop related maximal rooting depth | DOUBLE | m | 0.0 | - | 0.0 |
out | SMCR | critical moisture content in rooted zone | DOUBLE | mm3/mm3 | -1.0E-7 | 1.0 | 0.0 |
out | TRANRF | reduction factor for crop growth due to drought/wetness | DOUBLE | 1 | 0.0 | 1.0 | 0.0 |
out | WBAL | balance for checking soil water balance in rooted zone | DOUBLE | mm/d | - | - | 0.0 |
out | WBALL | balance for checking soil water balance in lower zone | DOUBLE | mm/d | - | - | 0.0 |
-
Nested Class Summary
Nested classes/interfaces inherited from class net.simplace.sim.model.FWSimComponent
net.simplace.sim.model.FWSimComponent.TEST_STATE
-
Field Summary
Fields inherited from class net.simplace.sim.model.FWSimComponent
iFieldMap, iFrequence, iInputMap, iJexlRule, iMasterComponentGroup, iName, iOrderNumber, isComponentGroup, iSimComponentElement, iSimModel, iVarMap
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected net.simplace.sim.model.FWSimComponent
clone
(net.simplace.sim.util.FWSimVarMap aVarMap) Create the FWSimVariables as interface for this SimComponentfillTestVariables
(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.protected void
init()
initializes the fields by getting input and output FWSimVariables from VarMapprotected void
protected void
process()
process the algorithm and write the results back to VarMapprotected void
void
WATBALS()
Methods inherited from class net.simplace.sim.model.FWSimComponent
addVariable, bind, checkCondition, createSimComponent, createSimComponent, createSimComponent, createSimComponent, doProcess, getConstantVariables, getContentType, getCreateFormXML, getDescription, getEditFormXML, getFieldMap, getFrequence, getFrequenceRuleScript, getInputs, getInputVariables, getMasterComponentGroup, getName, getOrderNumber, getOutputVariables, getVariable, getVariableField, getVarMap, initialize, isConditionCheck, isVariableAvailable, performLinks, performLinks, readInputs, removeVariable, reset, runComponentTest, setVariablesDefault, toComponentLinkingXML, toDocXML, toGroupXML, toOutputDefinitionXML, toResourcesDataXML, toResourcesDefinitionXML, toString, toXML, writeVarInfos
-
Constructor Details
-
WaterBalance
public WaterBalance(String aName, HashMap<String, net.simplace.sim.util.FWSimVariable<?>> aFieldMap, HashMap<String, String> aInputMap, org.jdom2.Element aSimComponentElement, net.simplace.sim.util.FWSimVarMap aVarMap, int aOrderNumber) - Parameters:
aName
-aFieldMap
-aInputMap
-aSimComponentElement
-aVarMap
-aOrderNumber
-
-
WaterBalance
public WaterBalance()Empty constructor used by class.forName()
-
-
Method Details
-
createVariables
Create the FWSimVariables as interface for this SimComponent- Specified by:
createVariables
in interfacenet.simplace.sim.util.FWSimFieldContainer
- Specified by:
createVariables
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.createVariables()
-
init
protected void init()initializes the fields by getting input and output FWSimVariables from VarMap- Specified by:
init
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.init()
-
initValues
protected void initValues() -
resetOnHarvest
protected void resetOnHarvest() -
process
protected void process()process the algorithm and write the results back to VarMap- Specified by:
process
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.process()
-
WATBALS
public void WATBALS() -
fillTestVariables
public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> fillTestVariables(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.- Specified by:
fillTestVariables
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
net.simplace.sim.util.FWSimFieldContainer#fillTestVariables(int aParamIndex, TEST_STATE aDefineOrCheck)
-
clone
protected net.simplace.sim.model.FWSimComponent clone(net.simplace.sim.util.FWSimVarMap aVarMap) - Specified by:
clone
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)
-