Class SlimRoots

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.soil.slim.SlimRoots
All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer

public class SlimRoots extends net.simplace.sim.model.FWSimComponent
SlimRoots.java is a SimComponent for the simulation of the growth of seminal and lateral roots in a multiple layer soil profile

The SimComponent SlimRoots estimates the daily increase in the biomass of seminal and lateral roots in a variable number of soil layers based and converts it into root length per layer. The calculations depend on the input of assimilates from the shoot which must be provided by another SimComponent. Before emergency, assimilates can also be supplied by the seeds (SimComponent SeedstoSprout). The assimilates provided by the shoot or the seeds are in the first placed used for the growth of seminals which determine the vertical penetration into the soil. In addition to the supply of assimilates by the shoot, vertical penetration of seminals depends on soil temperature, soil dryness and soil strength which reduce the crop specific maximum daily elongation rate. The remaining assimilates are used for the development of lateral roots.

Growth of seminal roots

The growth of seminals starts in the soil layer where seeds have been placed which is determined by the sowing depth (SEEDD in m).

By default the seed depth is restricted to the depth of first layer. In order to allow higher seed depth, you have to set cAllowSeedDepthInLowerLayers to true.

The assimilates supplied by the shoot (RWRT in g m-2) or the seeds are in the first place used for the growth of seminals. When daily mean soil temperature is above 0 °C, it is assumed that the daily elongation of seminals (in m) is proportional to the mean soil temperature using the RTFAC coefficient of 0.12 m K-1. Below a soil temperature of 0 °C no seminal growth occurs. The temperature dependent daily elongation is then converted into assimilate demand (ASROOT) by applying the specific root weight of seminals (WSROOT in g m-1), which is defined by the user in a separate input file for each crop (SlimFile or SlimProperties).The daily demand of assimilates is limited to the crop-specific maximum elongation rate per day (MaximalSeminalRootLengthPerDay), which can be defined by the user in the same input file. Finally, the demand for assimilates can be further reduced by the effect of soil strength. To account for the soil strength two approaches have been implemented in SlimRoots to calculate a BulkDensitySeminalRootReductionFactor in each soil layer:

  1. Calculation based on soil bulk density, soil texture (sand content) and a soil strength

parameter (Williams and Izaurralde, 2005)

  1. Calculation based on lower and upper bulk density thresholds (Brisson et al. 2003)

The user can chose either of the two methods by specifying the required parameters in the input file SlimProperties or switching them off by supplying negative values for these parameters. The BulkDensitySeminalRootReductionFactor reduces the demand for assimilates by the seminals when soil bulk density increases thus restricting the daily vertical root elongation rate. However, the presence of macropores in a soil layer can counteract the effect of a compacted soil layer. Therefore, SlimRoots offers a routine to account for the effect of soil macropores on the BulkDensitySeminalRootReductionFactor as proposed by Gaiser et al. (2013).

The maximal root depth can be restricted by setting cMaximalRootDepth to the desired value.

Growth of lateral roots

If the demand for assimilates by the seminal roots (ASROOT) is lower than the supply by the shoot (RWRT) the remaining assimilates (ALROOT) are used to produce lateral roots. ALROOT is distributed stepwise to the soil layers which contain seminal roots from the top layer to the deepest soil layer with seminals present.

In each layer, the lateral roots receive PLRASS of the remaining root biomass REMLT. PLRASS is determined each day to distribute nearly all assimilates to the actual rooted layers, leaving a maximum of BiomassLossRateAtPartitioning unused.

\[ \begin{eqnarray} & BiomassLossRateAtPartitioning & = & (1-PLRASS)^{n} \\ \Rightarrow \quad & PLRASS & = & 1 - \sqrt[n]{BiomassLossRateAtPartitioning} \end{eqnarray} \]

where n is the number of layers with roots.

`PLRASS`can be reduced when soil layers are dry by the dryness factor DRYFAC. The dryness factor DRYFAC depends on the soil moisture in each soil layer and is provided by any soil water balance SimComponent. After assimilates have been distributed to seminals and laterals in each soil layer, the root length of seminals and laterals are calculated based on the specific root weight of laterals (WLROOT) and seminals (WSROOT). Finally, the root length density in each layer i (RootLengthDensityPerLayer(i)) can be calculated.

Examples of specific weight of lateral roots for wheat are given in Jamieson & Ewert (1999) and Van Noordwijk and Brouwer (2004) (0.006134 to 0.004065041 g/m). The default values are presently set to 0.015 g m-1 for WSROOT and 0.0035 g m-1 for WLROOT, which can be used for wheat roots (Jamieson & Ewert, 1999).

Calculation of root restriction factor (FRR) for water uptake

Root length density and root age are important factor for the magnitude of crop water uptake. Therefore, SlimRoots calculates a root related restriction factor for soil water uptake (FRR) as

\[ \begin{eqnarray} FRR(i) &=& 1-(e^{-0.3 \cdot RDA4AGE(i)}) & & for & & FRR <=1 \end{eqnarray} \]

where RDA4AGE is depending on the age of the roots and the root length density in layer i with

\[ \begin{eqnarray} RDA4AGE(i) &=& MAX(RD, RD \cdot \frac{YOUTH}{RLAGE(i)}) \end{eqnarray} \]

RD is the root length density (cm cm-3) and RLAGE is the age of the roots in days in layer i. YOUTH is the period in days when roots are considered to be active (the default for YOUTH is set to 50 days).

Death of roots

Root start to decay after a user-defined developments stage (cDeadRootsDevStage) has occurred. In cereal crops, this is usually after anthesis (DVS=1.0). However, drought stress can delay the decay. The accumulated assimilates in the laterals in each layer (ASSLR(i)) are multiplied with a user-defined daily death rate (DailyDeadRootsRate) and then the root length density of the decayed roots is subtracted from the total root length density in each layer.

References:

  • Williams, J.R., Izaurralde, C.A., 2005. The APEX model, Blackland Research Center Reports, Vol. 2. Blackland Research Center, USDA, Temple, Texas, USA.
  • Brisson, N., Gary, C., Justes, E., Roche, R., Mary, B., Ripoche, D., Zimmer, D., Sierra, J., Bertuzzi, P., Burger, P., Bussiere, F., Cabidoche, Y.M., Cellier, P., Debaeke, P., Gaudillere, J.P., Henault, C., Maraux, F., Seguin, B., Sinoquet, H., 2003b. An overview of the crop model STICS. European Journal of Agronomy 18, 309-332.
  • Gaiser, T., Perkons, U., Küpper, P.M., Kautz, T., Uteau-Puschmann, D., Ewert, F., Enders, A., Krauss, G., 2013. Modeling biopore effects on root growth and biomass production on soils with pronounced sub-soil clay accumulation. Ecol. Model. 256, 6-15.
  • Jamieson, P.D., Porter, J.R., Goudriaan, J., Ritchie, J.T., van Keulen, H., Stol, W., 1998. A comparison of the models AFRCWHEAT2, CERES-wheat, Sirius, SUCROS2 and SWHEAT with measurements from wheat grown under drought. Field Crop. Res. 55, 23-44.
  • Jamieson & Ewert (1999), Field Crops Res. 60:269
  • Van Noordwijk and Brouwer (2004) (http://www.worldagroforestrycentre.org/sea/Publications/files/bookchapter/BC0044-04.PDF)
Author:
Gunther Krauss, Andreas Enders, Thomas Gaiser

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcAddRootsOnHarvestToDeadRootsIf true, living root biomass is put to dead roots rateBOOLEAN---true
constantcAllowSeedDepthInLowerLayersIf true, seed depth is not restricted to first layerBOOLEAN---false
constantcBiomassLossRateAtPartitioningRate of root biomass, that is not distributed to lateral rootsDOUBLE1--0.005
constantcBulkDensityBulk density of soil layer iDOUBLEARRAYg/cm30.020.0-
constantcBulkDensityThresholdLowerBelow this soil bulk density the reduction factor for the elongation of seminal roots is 1 (no impedance for root elongation)DOUBLEg/cm30.020.00.05
constantcBulkDensityThresholdMiddleBetween this soil bulk density and the upper threshold the reduction factor for the elongation of seminal roots decreases linearly (increasing impedance for root elongation)DOUBLEg/cm30.020.00.05
constantcBulkDensityThresholdUpperAbove this soil bulk density the reduction factor for the elongation of seminal roots is at its minimum (maximum impedance for root elongation)DOUBLEg/cm30.020.00.05
constantcDailyDeadRootsRateDaily fraction of dying rootsDOUBLE10.00120.00.02
constantcDeadRootsDevStageCrop development stage in DVS when roots start to dieDOUBLE10.00120.00.02
constantcExudateFractionfraction of daily allocated root biomass (RWRT) that is exudated. (Default 0 - no exudates)DOUBLE1--0.0
constantcMacroporeRootGrowthFactorAbove this volumetric fraction of macropores in the soil seminal root elongation is not restricted by soil bulk densityDOUBLEm3/m3--0.0
constantcMacroporeVolumeVolumetric fraction of macropore volume (pores > 2mm) in layer iDOUBLEARRAYm3/m30.0100.0-
constantcMaximalRootDepthMaximal root depthDOUBLEm0.0100.0100.0
constantcMaximalSeminalRootLengthPerDayCrop-specific maximum root elongation rate per dayDOUBLEm/d0.020.00.033
constantcMinimalBDSeminalRootReductionFactorBulk density reduction factor for the elongation of seminal roots when soil bulk density is above the upper threshold (Set to -1 to suppress calculation of the reduction factor by method 1)DOUBLE1-1.01.0-1.0
constantcNSRPPnumber of seminal roots per plantDOUBLE1--5.0
constantcRINPOPnumber of emerged plants per m2DOUBLE1--200.0
constantcRTFACtemperature factor driving penetration of seminal rootsDOUBLE1--0.12
constantcSEEDDSoil depth where seeds have been placedDOUBLEm0.00120.00.02
constantcSandPercentageProportion of sand fraction in the fine earth in soil layer iDOUBLEARRAYg/hg0.0100.0-
constantcSoilLayerDepthDepth of the bottom of each soil layer after soil layer transformationDOUBLEARRAYm---
constantcSoilStrengthParameterParameter to increase sensitivity of the calculation of the bulk density reduction factor for seminar root elongation in Method 2 (Between 1.2 and 2. Set to -1 to suppress calculation of the reduction factor by method 2)DOUBLE1-1.02.0-1.0
constantcWLROOTspecific weight of lateral roots (in g m-1)DOUBLEg/m--0.0035
constantcWSROOTspecific weight of seminal roots in g m-1DOUBLEg/m--0.015
inputiDevStageCrop development stage (DVS)DOUBLE10.03.00.0
inputiDoInitializeSwitch to re-initialize the model with initial values.BOOLEAN1--false
inputiDryFactorDryness factor in each soil layer (input from soil water balance SimComponent)DOUBLEARRAY10.01.0-
inputiIsHarvestFlag to indicate day of harvestBOOLEAN1--false
inputiRWRTDaily rate of biomass partitioned to the rootsDOUBLEg/m20.020.00.0
inputiSoilTemperatureDaily mean temperature in soil layer iDOUBLEARRAY°C-50.050.0-
inputiTMAXDaily maximum air temperature (used if soil temperature is not available)DOUBLE°C-50.050.0-
inputiTMINDaily minimum air temperature (used if soil temperature is not available)DOUBLE°C-50.050.0-
statesLateralRootLengthLength of lateral roots in layer i (in m)DOUBLEARRAYm0.0500.0-
statesRootAgeAge of seminal roots in layer i in daysDOUBLEARRAYd0.0500.0-
statesSEEDDAdjustedDepth of sowing adjusted to layer thickness (Sowing must always occur in the first soil layer)DOUBLEm0.020.00.02
statesSeminalRootDepthActual depth of seminal roots (deepest soil layer with roots)DOUBLEm0.050.00.0
statesSeminalRootLengthLength if seminal roots in layer i (in m)DOUBLEARRAYm0.0500.0-
raterSRERRDaily increment in seminal root depth [m]DOUBLEm/d0.02.00.0
outBiomassBalanceDaily mass balance of biomass partitioned to the rootsDOUBLEg/m2-100000.010000.00.0
outDeadRootRatePerLayerDaily increase of dead root biomass per layerDOUBLEARRAYg/m20.02000.0-
outMD95Actual depth of seminal roots (depth of soil with crop roots) expressed as number of layers - (counting from 1 - 0 means no roots).INT1010000
outRelativeRootLengthPerLayerRelative rootlength in layer i (sum of lat.roots and sem.roots), in relation to the total rootlength in all layersDOUBLEARRAY10.020.0-
outRootLengthDensityPerLayerRootlength per soil volume in layer i (sum of lat.roots and sem.roots divided by soil volume)DOUBLEARRAYcm/cm30.020.0-
outRootRestrictionFactorFactor restricting uptake of water and mineral nitrogen in soil layer i due to root density and root age DOUBLEARRAY10.01.0-
outSeedDepthLayerNumberDepth of seed / (depth where roots start) expressed as number of layers (counting from 0)INT1010000
outSeminalRootDepthLayerNumberLayer number where seminal roots end (counting from 0)INT1010000
outTHICKLLayer thickness in mDOUBLEm0.00120.00.0
outTotalRootBiomassTotal Root Biomass over the soil profileDOUBLEg/m2-10000.010000.00.0
outTotalRootBiomassPerLayerTotal root biomass per soil layerDOUBLEARRAYg/m20.0200.0-
outTotalRootLengthPerLayerTotal root length per layerDOUBLEARRAYm0.020.0-
outUnusedRootBiomassDaily remnant of biomass partitioned to the roots which can not be converted into root growth due to root growth restrictions (is returned to shoot on day i+1)DOUBLEg/m20.0200.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
    called from class.forName()
  • Method Summary

    Modifier and Type
    Method
    Description
    final void
    To model root Density
    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
    process the algorithm and write the results back to VarMap
    protected void
     
    final void
    To model seminal and lateral root growth

    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

    • SlimRoots

      public SlimRoots()
      called from 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()
    • CalculateRootAgeFactor

      public final void CalculateRootAgeFactor()
      To model root Density
    • Root

      public final void Root()
      To model seminal and lateral root growth
    • reInitialize

      protected void reInitialize()
    • 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)
      Specified by:
      clone in class net.simplace.sim.model.FWSimComponent
      See Also:
      • FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)