Example #1
0
    public void  CalculateModel(EnergyBalanceState s, EnergyBalanceState s1, EnergyBalanceRate r, EnergyBalanceAuxiliary a)
    {
        //- Name: DiffusionLimitedEvaporation -Version: 1.0, -Time step: 1
        //- Description:
        //            * Title: DiffusionLimitedEvaporation Model
        //            * Author: Pierre Martre
        //            * Reference: Modelling energy balance in the wheat crop model SiriusQuality2:
        //            Evapotranspiration and canopy and soil temperature calculations
        //            * Institution: INRA Montpellier
        //            * Abstract: the evaporation from the diffusion limited soil
        //- inputs:
        //            * name: deficitOnTopLayers
        //                          ** description : deficit On TopLayers
        //                          ** variablecategory : auxiliary
        //                          ** datatype : DOUBLE
        //                          ** default : 5341
        //                          ** min : 0
        //                          ** max : 10000
        //                          ** unit : g m-2 d-1
        //                          ** uri : http://www1.clermont.inra.fr/siriusquality/?page_id=547
        //                          ** inputtype : variable
        //            * name: soilDiffusionConstant
        //                          ** description : soil Diffusion Constant
        //                          ** parametercategory : soil
        //                          ** datatype : DOUBLE
        //                          ** default : 4.2
        //                          ** min : 0
        //                          ** max : 10
        //                          ** unit :
        //                          ** uri : http://www1.clermont.inra.fr/siriusquality/?page_id=547
        //                          ** inputtype : parameter
        //- outputs:
        //            * name: diffusionLimitedEvaporation
        //                          ** description : the evaporation from the diffusion limited soil
        //                          ** variablecategory : state
        //                          ** datatype : DOUBLE
        //                          ** min : 0
        //                          ** max : 5000
        //                          ** unit : g m-2 d-1
        //                          ** uri : http://www1.clermont.inra.fr/siriusquality/?page_id=547
        double deficitOnTopLayers = a.deficitOnTopLayers;
        double diffusionLimitedEvaporation;

        if (deficitOnTopLayers / 1000.0d <= 0.0d)
        {
            diffusionLimitedEvaporation = 8.3d * 1000.0d;
        }
        else
        {
            if (deficitOnTopLayers / 1000.0d < 25.0d)
            {
                diffusionLimitedEvaporation = 2.0d * soilDiffusionConstant * soilDiffusionConstant / (deficitOnTopLayers / 1000.0d) * 1000.0d;
            }
            else
            {
                diffusionLimitedEvaporation = 0.0d;
            }
        }
        s.diffusionLimitedEvaporation = diffusionLimitedEvaporation;
    }
Example #2
0
    public void  CalculateModel(EnergyBalanceState s, EnergyBalanceState s1, EnergyBalanceRate r, EnergyBalanceAuxiliary a)
    {
        //- Name: PtSoil -Version: 1.0, -Time step: 1
        //- Description:
        //            * Title: PtSoil EnergyLimitedEvaporation Model
        //            * Author: Pierre Martre
        //            * Reference: Modelling energy balance in the wheat crop model SiriusQuality2:
        //            Evapotranspiration and canopy and soil temperature calculations
        //            * Institution: INRA Montpellier
        //            * Abstract: Evaporation from the soil in the energy-limited stage
        //- inputs:
        //            * name: evapoTranspirationPriestlyTaylor
        //                          ** description : evapoTranspiration Priestly Taylor
        //                          ** variablecategory : rate
        //                          ** datatype : DOUBLE
        //                          ** default : 120
        //                          ** min : 0
        //                          ** max : 1000
        //                          ** unit : g m-2 d-1
        //                          ** uri : http://www1.clermont.inra.fr/siriusquality/?page_id=547
        //                          ** inputtype : variable
        //            * name: Alpha
        //                          ** description : Priestley-Taylor evapotranspiration proportionality constant
        //                          ** parametercategory : constant
        //                          ** datatype : DOUBLE
        //                          ** default : 1.5
        //                          ** min : 0
        //                          ** max : 100
        //                          ** unit :
        //                          ** uri : http://www1.clermont.inra.fr/siriusquality/?page_id=547
        //                          ** inputtype : parameter
        //            * name: tau
        //                          ** description : plant cover factor
        //                          ** parametercategory : species
        //                          ** datatype : DOUBLE
        //                          ** default : 0.9983
        //                          ** min : 0
        //                          ** max : 100
        //                          ** unit :
        //                          ** uri : http://www1.clermont.inra.fr/siriusquality/?page_id=547
        //                          ** inputtype : parameter
        //            * name: tauAlpha
        //                          ** description : Fraction of the total net radiation exchanged at the soil surface when AlpaE = 1
        //                          ** parametercategory : soil
        //                          ** datatype : DOUBLE
        //                          ** default : 0.3
        //                          ** min : 0
        //                          ** max : 1
        //                          ** unit :
        //                          ** uri : http://www1.clermont.inra.fr/siriusquality/?page_id=547
        //                          ** inputtype : parameter
        //- outputs:
        //            * name: energyLimitedEvaporation
        //                          ** description : energy Limited Evaporation
        //                          ** variablecategory : auxiliary
        //                          ** datatype : DOUBLE
        //                          ** min : 0
        //                          ** max : 5000
        //                          ** unit : g m-2 d-1
        //                          ** uri : http://www1.clermont.inra.fr/siriusquality/?page_id=547
        double evapoTranspirationPriestlyTaylor = r.evapoTranspirationPriestlyTaylor;
        double energyLimitedEvaporation;
        double AlphaE;

        if (tau < tauAlpha)
        {
            AlphaE = 1.0d;
        }
        else
        {
            AlphaE = Alpha - ((Alpha - 1.0d) * (1.0d - tau) / (1.0d - tauAlpha));
        }
        energyLimitedEvaporation   = evapoTranspirationPriestlyTaylor / Alpha * AlphaE * tau;
        a.energyLimitedEvaporation = energyLimitedEvaporation;
    }