Class WaterBalance

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.models.lintul5.WaterBalance
All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer

public class WaterBalance extends net.simplace.sim.model.FWSimComponent
Lintul5 - Simple generic model for simulation of crop growth - Biomass and NPK part

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

  1. Irradiation
  2. PotentialEvapoTranspiration
  3. WaterBalance
  4. Phenology
  5. RadiationUseEfficiency
  6. 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 TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcCFEVcorrection factor of time course of soil evaporation (value between 1 and about 4)DOUBLE11.04.02.0
constantcCRAIRCcritical soil air content for aerationDOUBLE10.01.00.07
constantcDEPNRcrop group number for soil water depletionDOUBLE1--4.5
constantcIAIRDUair ducts in roots present (=1) or not (=0)BOOLEAN1--false
constantcIOPTindicates optimal (=1), water limited (=2), water and N limited (=3) and NPK limited (=4)INT1144
constantcIRRIautomatic irrigation (=1), actual irrigation from table (=2) or non irrigated(=0)INT1020
constantcIRRTABtable with effective applications of irrigation water as function of day numberDOUBLEARRAYmm/d---
constantcKSUBmaximal percolation rate from lower zone to deeper soil layersDOUBLEmm/d--10.0
constantcRDIInitial rooting depthDOUBLEm0.02.00.1
constantcRDMCRcrop-specific maximum rooting depthDOUBLEm0.010.01.25
constantcRDMSOmaximum rooting depth as determined by soil structureDOUBLEm0.010.01.5
constantcRUNFRaverage fraction of precipitation lost by runoffDOUBLE10.01.00.0
constantcSM0soil moisture content at saturationDOUBLEm3/m30.01.00.45
constantcSMDRYsoil moisture content at airdry (pF= 6.0)DOUBLEm3/m30.01.00.15
constantcSMFCsoil moisture content at field capacity (pF= 2.3)DOUBLEm3/m30.01.00.35
constantcSMIsoil moisture content in initial root zone at planting or emergenceDOUBLEm3/m30.01.00.3
constantcSMLOWIinitial soil moisture content in lower zone at planting or emergenceDOUBLEm3/m30.01.00.3
constantcSMWsoil moisture content at wilting point (pF= 4.2)DOUBLEm3/m30.01.00.2
constantcScaleFactorIRRScales the y-values of IRRTAB (for sensitivity analysis / calibration)DOUBLE1--1.0
inputiDoHarvestharvestingBOOLEAN1--false
inputiDoSowsowingBOOLEAN1--false
inputiEMERGhas emergedBOOLEAN1--false
inputiIrrigationDaily irrigationDOUBLEmm/d--0.0
inputiPotentialSoilEvaporationPotential evaporationDOUBLEmm/d--0.0
inputiPotentialTranspirationPotential transpirationDOUBLEmm/d--0.0
inputiRAINprecipitation (output of routine WEATHR)DOUBLEmm/d--0.0
inputiRDactual rooting depthDOUBLEm--0.0
inputiRRroot growth rateDOUBLEm/d--0.0
inputiReferenceCropEvapotranspirationCo2Correctedpotential transpiration of crop (with CO2 correction for C3 crop) (ETC)DOUBLEmm/d--0.0
inputiWithCropif crop is presentBOOLEAN1--true
statesCumulativeActualSoilEvaporationcumulative soil evaporationDOUBLEmm--0.0
statesCumulativeActualTranspirationcumulative crop transpirationDOUBLEmm--0.0
statesDIRRO-DOUBLE--0.0
statesDSLRcounter of the days since last rainDOUBLE10.0-0.0
statesSMACTactual soil moisture content in rooted zoneDOUBLEmm3/mm3-1.0E-71.00.0
statesSMACTLactual soil moisture content in lower zoneDOUBLEmm3/mm3-1.0E-71.00.0
statesTDRAINcumulative drainage to the sub-soilDOUBLEmm--0.0
statesTIRRcumulative irrigationDOUBLEmm--0.0
statesTRAINcumulative precipitationDOUBLEmm--0.0
statesTRUNOFcumulative surface runoffDOUBLEmm--0.0
statesTWDRcumulative water added to the rooted zone by root growthDOUBLEmm--0.0
statesWAVTtotal available water in rooted zoneDOUBLEmm--0.0
statesWAVTLtotal available water in lower zone (below rooted zone)DOUBLEmm--0.0
statesWTOTamount of total water in rooted zoneDOUBLEmm--0.0
statesWTOTLamount of total water in lower zone (below rooted zone)DOUBLEmm--0.0
statesWTOTLNnew amount of total water in lower zone (below rooted zone)DOUBLEmm--0.0
statesWTOTNnew amount of total water in rooted zoneDOUBLEmm--0.0
raterActualSoilEvaporationactual soil evaporationDOUBLEmm/d--0.0
raterActualTranspirationactual transpiration rateDOUBLEmm/d--0.0
raterDIRReffective application of irrigation waterDOUBLEmm/d--0.0
raterDWATchange in available water in rooted zoneDOUBLEmm/d--0.0
raterDWATLchange in available water in lower zoneDOUBLEmm/d--0.0
raterDWOTchange in total water in rooted zoneDOUBLEmm/d--0.0
raterDWOTLchange in total water in lower zoneDOUBLEmm/d--0.0
raterPERC3percolation from lower zone to deeper soil layersDOUBLEmm/d--0.0
raterRAIN0precipitation in previous dayDOUBLEmm/d--0.0
raterRIRRdaily irrigation infiltratedDOUBLEmm/d--0.0
raterRUNOFwater loss by surface runoffDOUBLEmm/d--0.0
raterWDRchange in total water in the rooted zone by root growthDOUBLEmm/d--0.0
raterWDRAchange in available water in the rooted zone by root growthDOUBLEmm/d--0.0
outRDMsoil/crop related maximal rooting depthDOUBLEm0.0-0.0
outSMCRcritical moisture content in rooted zoneDOUBLEmm3/mm3-1.0E-71.00.0
outTRANRFreduction factor for crop growth due to drought/wetnessDOUBLE10.01.00.0
outWBALbalance for checking soil water balance in rooted zoneDOUBLEmm/d--0.0
outWBALLbalance for checking soil water balance in lower zoneDOUBLEmm/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

    Constructors
    Constructor
    Description
    Empty constructor used by class.forName()
    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)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected net.simplace.sim.model.FWSimComponent
    clone(net.simplace.sim.util.FWSimVarMap aVarMap)
     
    HashMap<String,net.simplace.sim.util.FWSimVariable<?>>
    Create the FWSimVariables as interface for this SimComponent
    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.
    protected void
    initializes the fields by getting input and output FWSimVariables from VarMap
    protected void
     
    protected void
    process the algorithm and write the results back to VarMap
    protected void
     
    void
     

    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • 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

      public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> createVariables()
      Create the FWSimVariables as interface for this SimComponent
      Specified by:
      createVariables in interface net.simplace.sim.util.FWSimFieldContainer
      Specified by:
      createVariables in class net.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 class net.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 class net.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 class net.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 class net.simplace.sim.model.FWSimComponent
      See Also:
      • FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)