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

public class EvapTran extends net.simplace.sim.model.FWSimComponent
EvapTran.java estimates the potential actual crop transpiration and soil evaporation

EvapTran.java estimates the potential actual crop transpiration and soil evaporation based on the potential values considering the crop available soil water content and the crop water demand at a given day as a function of LAI . It is important to note that in this SimComponent (which is the original subroutine of the Lintul2 model), the soil is considered as being composed of one soil layer only. The thickness of the soil layer is flexible and depends on the current rooting depth, thus soil layer thickness changes during the growing cycle according to the depth development of the crop roots. This also implies that the model and the water balance components are only meaningful when a crop is present and are only calculated with the objective to estimate water supply to the crop. Any information about water balance components like run-off, deep percolation or soil water content should not be used for other purposes (like the assessment of nitrogen leaching or soil erosion) and any model solution, which uses this SimComponent, should only run single year simulations. In the case of multiple year simulations, the initial soil moisture content (WCI) of SimComponent MUST be reinitialized with a best guess value.

The calculation of daily amount of the crop available soil water content (WAC in mm) requires the definition of soil properties related to water retention characteristics. The following soil hydraulic properties are required as input parameters averaged over the whole rootable soil profile (in m3 m-3) : WCAD = Soil water content after air drying WCWP = Soil water content at wilting point defined at a soil matric potential of -15 bar WCFC = Soil water content at field capacity defined at a soil matric potential of -0.33 bar WCWET = Critical soil water content for transpiration reduction due to waterlogging/oxygen deficiency in the root zone (usually a value between WCFC and WCST WCST = Soil water content at saturation of the soil with water WCI =Initial soil water content (at start of the simulation run). In the case of multiple year runs, this value should be re-initialized each year on the day of sowing/planting (see explanation above)

The total soil water content (GlobalWaterContent) at the beginning of each day is obtained from the SimComponent DrunIRR. This SimComponent then calculates daily soil evaporation (EVAP) and crop transpiration (TRAN).

Soil Evporation

Evaporation (EVAP) from the soil surface is important under incomplete soil cover. Evaporation decreases when soil water content becomes lower than field capacity (WC < WCFC), but continues at a decreasing rate, until the soil is airdry (WC = WCAD).

\[ \begin{eqnarray} EVAP &=& PEVAP \cdot MAX(0, MIN(1, \frac{WC-WCAD}{WCFC-WCAD})) \end{eqnarray} \]

Crop transpiration

Under ample water supply, the rate of water uptake by the crop follows the potential transpiration rate (PTRAN) very closely. In this case, actual crop transpiration (TRAN) is considered to be equal to the potential crop transpiration. SIMPLACE offers different SimComponents to estimate PTRAN, e.g. modified Penman method, FAO dual coefficient method. However, if the water content in the soil (WC) decreases below a critical level (WCCR), the crop water uptake by the roots cannot meet the crop demand, and actual transpiration (TRAN, mm d-1) becomes less than the potential rate PTRAN (closing of stomata is observed). The critical soil water level (WCCR, m3 m-3) lies between the wilting point and field capacity (WCWP < WCCR < WCFC). WCCR is variable and depends on crop status and atmospheric conditions (daily potential transpiration rates PTRAN). WCCR is higher, when much water is needed by a high potential transpiration rate. WCCR also depends on genetic crop characteristics expressed in the so-called 'transpirational constant' (TRANCO, mm d-1). Thus WCCR is calculated as

\[ \begin{eqnarray} WCCR &=& WCWP + MAX(0.01, \frac{PTRAN}{PTRAN+TRANCO} \cdot (WCFC-WCWP)) \end{eqnarray} \]

On the other hand, if soil water content WC exceeds a threshold WCWET, oxygen content in the soil pore volume may decrease below a critical level and cause reduction of water uptake by the roots.

In the model reduction of crop water uptake is expressed by the reduciton factor FR:

TRAN = PTRAN x FR

If soil water content (WC) is between WCWET and WCCR, crop water uptake is not limited and FR is equal to 1. However, if soil water content is above WCWET, FR is reduced by the following equation

\[ \begin{eqnarray} FR &=& \frac{WCST-WC}{WCST-WCWET} \end{eqnarray} \]

If soil water content (WC) is below WCCR and above WCWP then FR is calculated as:

\[ \begin{eqnarray} FR &=& \frac{WC-WCWP}{WCCR-WCWP} \end{eqnarray} \]

Finally, the sum of TRAN and EVAP is compared to the amount of available soil water (difference between actual amount of soil water content (WA in mm) and amount of water at air dry conditions (WAAD in mm) and reduced in case the sum of water demand from crop transpiration (TRAN) and soil evaporation (EVAP) exceeds the amount of available soil water (WA minus WAAD).

The output variables TRAn and EVAP are then available for the SimComponent LintulDrunIRR and LintulWaterStress.

References: van Oijen, M. and P. Leffelaar. 2008. Lintul-2: water limited crop growth: A simple general crop growth model for water-limited growing conditions. Waageningen University, The Netherlands.

Author:
Gunther Krauss, Andreas Enders, Thomas Gaiser

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcTRANCO Transpiration constant (Crop characteristic indicating the level of drought tolerance)DOUBLEmm/d0.020.08.0
constantcWCADSoil water content after air dryingDOUBLEm3/m30.01.00.025
constantcWCFCSoil water content at field capacityDOUBLEm3/m30.01.00.23
constantcWCSTSoil water content at saturation of the soil with waterDOUBLEm3/m30.01.00.4
constantcWCWETCritical soil water content for transpiration reduction due to waterlogging/oxygen deficiency in the root zoneDOUBLEm3/m30.01.00.35
constantcWCWPSoil water content at wilting pointDOUBLEm3/m30.01.00.075
constantcWaterContentInitialInitial soil water content (at start of the simulation run); in the case of multiple year runs, this value should be re-initialized each year on day of the sowing/plantingDOUBLEm3/m30.01.00.23
inputiDoHarvestTrue if plant is harvestedBOOLEAN1--false
inputiDoSowTrue if plant is sownBOOLEAN1--false
inputiGlobalWaterContentActual amount of water stored over the soil root zoneDOUBLEmm0.025.00.0
inputiPotentialSoilEvaporationDaily potential soil evaporationDOUBLEmm/d0.020.0-
inputiPotentialTranspirationDaily potential transpirationDOUBLEmm/d0.020.0-
inputiRootDepthRoot depth at a given dayDOUBLEm0.020.00.0
outActualSoilEvaporationDaily actual evaporationDOUBLEmm/d0.020.00.0
outActualTranspirationDaily actual transpirationDOUBLEmm/d0.020.00.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()
  • Method Summary

    Modifier and Type
    Method
    Description
    protected net.simplace.sim.model.FWSimComponent
    clone(net.simplace.sim.util.FWSimVarMap aVarMap)
    creates a clone from this SimComponent for use in other threads
    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
    Process the algorithm and write the results back to VarMap

    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

    • EvapTran

      public EvapTran()
      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()
    • 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()
    • 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)
      creates a clone from this SimComponent for use in other threads
      Specified by:
      clone in class net.simplace.sim.model.FWSimComponent
      See Also:
      • FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)