Commit ab4d57a9 authored by lmanceau's avatar lmanceau
Browse files

Change effect of VPD on senescence

parent 5b21b101
......@@ -27,6 +27,44 @@ namespace SiriusQuality_SiriusQuality_WheatLAIConsole
#region Mandatory Inputs
//Day length
double[] dayLength = {10.0052945442884,10.0052945442884,10.0052945442884,10.0139104462397,10.0233122402434,
10.0334914903785,10.0444391333569,10.0561455070354,10.068600380348,
10.0817929844744,10.095712045061,10.1103458153076,10.1256821097334,
10.1417083384383,10.1584115416786,10.1757784245815,10.1937953918264,
10.2124485821326,10.2317239023971,10.2516070613364,10.2720836024985,
10.2931389365167,10.3147583724929,10.3369271484054,10.3596304604487,
10.3828534912248,10.4065814367157,10.4307995319776,10.4554930755092,
10.4806474522565,10.5062481552253,10.532280805683,10.5587311719413,
10.5855851867169,10.6128289630776,10.6404488089871,10.668431240468,
10.6967629934088,10.7254310340464,10.7544225681574,10.7837250489997,
10.8133261840447,10.8432139405467,10.8733765499956,10.9038025115028,
10.9344805941694,10.9653998384891,10.9965495568354,11.0279193330853,
11.0594990214305,11.0912787444262,11.1232488903271,11.1554001097586,
11.187723311771,11.2202096593215,11.2528505642288,11.285637681642,
11.3185629040652,11.3516183549751,11.3847963820701,11.4180895501843,
11.4514906339006,11.4849926098934,11.5185886490295,11.5522721082558,
11.5860365222989,11.6198755951989,11.6537831917021,11.6877533285313};
//Average VPD during day lenght
double[] aVPDDayLength={5.8521136691862,9.2812404248864,10.5261030668773,8.04832177390623,5.32567915609264,
6.35202931652587,6.15232697123855,4.54627610321671,4.7679094152577,
7.24254313002404,6.40056737004099,3.25516080311114,6.48049388072438,
7.32673888637624,3.8913040923298,6.4949856038,6.19977461486736,
7.16625966122168,5.99067436380593,5.90197544264138,5.83286442274416,
6.9380966744038,7.52849863067124,8.72096600759605,9.10323349918442,
9.92432506269381,11.0540743970033,11.3529298646687,10.4774312818567,
9.91458120263031,10.4980080099099,8.39593156661427,9.8246022071914,
7.35020277452601,8.36985209855394,9.79722763735625,10.7457587934543,
10.914326738274,11.7551869139363,11.7611084976393,4.81324460265559,
7.32210664707522,5.52092280057855,7.78591030145762,8.22710108304724,
7.66506733061231,2.72937156575133,6.16214366314782,5.77720254827412,
8.58683967368903,6.98245474093706,8.99404813922909,6.74930490468564,
7.40385078048467,8.40407739112208,9.03680568767012,7.12603218684561,
8.22772325621351,11.5287632343011,8.76365299890893,5.290277878976,
6.63974065368514,8.86554220957467,11.2990944758063,11.3105615441122,
12.4964709408077,13.9079098855892,14.9841831577357,15.9724953514339};
//Number of emerged leaves on main-stem
double[] LeafNumber = {0.557647985230187,1.09043931678266,1.43970520699377,1.80873341576133,2.2345041114049,2.75499969754529,
3.34348137255173,3.58343237845917,3.82804047067294,4.07389109047749,4.20521958723891,
......@@ -434,7 +472,8 @@ namespace SiriusQuality_SiriusQuality_WheatLAIConsole
//Call of the component
wheatlaiwrapper_.Estimate(HasNewLeafAppeared, roundedFinalLeafNumber, FinalLeafNumber[iday], LeafNumber[iday],
newLeafLastPhytoNum, newLeafindex, FPAW[iday], false, cumulTTShoot, deltaTTShoot[iday],
deltaTTSenescence[iday], AllLeaves, VPDairCanopy[iday], tilleringProfile[iday], leafTillerNumberArray[iday]);
deltaTTSenescence[iday], AllLeaves, VPDairCanopy[iday], tilleringProfile[iday], leafTillerNumberArray[iday],
dayLength[iday], aVPDDayLength[iday]);
......@@ -523,7 +562,8 @@ namespace SiriusQuality_SiriusQuality_WheatLAIConsole
string il = countlayer.ToString();
string GAI = "";
if (leaflayer.GAI != 0) GAI = leaflayer.GAI.ToString().Substring(0, 5);
if (leaflayer.GAI != 0 && leaflayer.GAI.ToString().Length>=5) GAI = leaflayer.GAI.ToString().Substring(0, 5);
else if(leaflayer.GAI != 0) GAI = leaflayer.GAI.ToString().Substring(0, leaflayer.GAI.ToString().Length);
else GAI = leaflayer.GAI.ToString();
List<LeafState> LLS = wheatlaiwrapper_.getLeafStateList();
string S = LLS[countlayer - 1].ToString();
......
......@@ -107,7 +107,7 @@ namespace SiriusQuality_SiriusQuality_WheatLAIConsole
public void Estimate(bool newLeafHasAppeared, int roundedFinalNumber, double finalLeafNumber, double leafNumber,
int newLeafLastPhytoNum, int newLeafindex,double FPAW, bool isPotentialLAI, double cumulTTShoot, double deltaTTShoot, double deltaTTSenescence, List<LeafLayer> All, double VPDairCanopy,
List<double> tilleringProfile, List<double> leafTillerNumberArray)
List<double> tilleringProfile, List<double> leafTillerNumberArray,double dayLength, double aVPDDayLength)
{
//Valorize inputs
......@@ -116,6 +116,8 @@ namespace SiriusQuality_SiriusQuality_WheatLAIConsole
wheatLaistate_.finalLeafNumber = finalLeafNumber;
wheatLaistate_.leafNumber = leafNumber;
wheatLaistate_.FPAW = FPAW;
wheatLaistate_.dayLength = dayLength;
wheatLaistate_.avHourVPDDay = aVPDDayLength;
wheatLaistate_.isPotentialLAI = isPotentialLAI ? 1 : 0;
wheatLaistate_.cumulTTShoot = cumulTTShoot;
wheatLaistate_.deltaTTShoot = deltaTTShoot;
......
......@@ -677,48 +677,62 @@ namespace SiriusQualityWheatLAI.Strategies
private void CalculateModel(SiriusQualityWheatLAI.WheatLAIState wheatlaistate,SiriusQualityWheatLAI.WheatLeafState wheatleafstate,SiriusQualityWheatLAI.WheatLeafState wheatleafstate1,CRA.AgroManagement.ActEvents actevents)
{
{
//GENERATED CODE END - PLACE YOUR CUSTOM CODE BELOW - Section1
//Code written below will not be overwritten by a future code generation
if (wheatlaistate.isPotentialLAI==1)
{
wheatlaistate.DEF = 1;
wheatlaistate.DSF = 1;
}
else
{
wheatlaistate.DEF = CalculateDF(LowerFPAWexp, UpperFPAWexp, 0, 1, wheatlaistate.FPAW, wheatlaistate.VPDairCanopy);
wheatlaistate.DSF = CalculateDF(LowerFPAWsen, UpperFPAWsen, MaxDSF, 1, wheatlaistate.FPAW, wheatlaistate.VPDairCanopy);
}
//GENERATED CODE END - PLACE YOUR CUSTOM CODE BELOW - Section1
//Code written below will not be overwritten by a future code generation
if (wheatlaistate.isPotentialLAI == 1)
{
wheatlaistate.DEF = 1;
wheatlaistate.DSF = 1;
}
else
{
wheatlaistate.DEF = CalculateDEF(LowerFPAWexp, UpperFPAWexp, 0, 1, wheatlaistate.FPAW, wheatlaistate.avHourVPDDay, wheatlaistate.dayLength);
wheatlaistate.DSF = CalculateDF(LowerFPAWsen, UpperFPAWsen, MaxDSF, 1, wheatlaistate.FPAW);
}
//End of custom code. Do not place your custom code below. It will be overwritten by a future code generation.
//PLACE YOUR CUSTOM CODE ABOVE - GENERATED CODE START - Section1
}
#endregion
#endregion
//GENERATED CODE END - PLACE YOUR CUSTOM CODE BELOW - Section2
//Code written below will not be overwritten by a future code generation
private double CalculateDF(double lowerFPAW, double upperFPAW, double maxDF, double minDF, double FPAW, double VPDairCanopy)
{
// VPD choking function
double vpdSF = (VPDairCanopy - UpperVPD) / (LowerVPD - UpperVPD);
if (VPDairCanopy < LowerVPD) vpdSF = 1;
if (VPDairCanopy > UpperVPD) vpdSF = 0;
// soil moisture choking function
double pawSF = (FPAW - lowerFPAW) / (upperFPAW - lowerFPAW);
if (FPAW > upperFPAW) pawSF = 1;
if (FPAW < lowerFPAW) pawSF = 0;
return maxDF + (minDF - maxDF) * pawSF * vpdSF;
}
//End of custom code. Do not place your custom code below. It will be overwritten by a future code generation.
//PLACE YOUR CUSTOM CODE ABOVE - GENERATED CODE START - Section2
}
//GENERATED CODE END - PLACE YOUR CUSTOM CODE BELOW - Section2
//Code written below will not be overwritten by a future code generation
private double CalculateDF(double lowerFPAW, double upperFPAW, double maxDF, double minDF, double FPAW)
{
double pawSF = (FPAW - lowerFPAW) / (upperFPAW - lowerFPAW);
if (FPAW > upperFPAW) pawSF = 1;
if (FPAW < lowerFPAW) pawSF = 0;
return maxDF + (minDF - maxDF) * pawSF;
}
private double CalculateDEF(double lowerFPAW, double upperFPAW, double maxDF, double minDF, double FPAW, double avHourVPDDay, double dayLength)
{
double LowerVPD = 12.5; //hPa
double UpperVPD = 53.2; //hPa
double Rvpd = Math.Max(0.0, Math.Min(1.0, (avHourVPDDay - UpperVPD) / (LowerVPD - UpperVPD)));
double VPDsf = Rvpd * (dayLength / 24.0) + (1 - (dayLength / 24.0));
//Console.WriteLine(VPDsf+ " " + Rvpd + " " + dayLength);
double pawSF = (FPAW - lowerFPAW) / (upperFPAW - lowerFPAW);
if (FPAW > upperFPAW) pawSF = 1;
if (FPAW < lowerFPAW) pawSF = 0;
return (maxDF + (minDF - maxDF) * pawSF) * VPDsf;
}
//End of custom code. Do not place your custom code below. It will be overwritten by a future code generation.
//PLACE YOUR CUSTOM CODE ABOVE - GENERATED CODE START - Section2
}
}
......@@ -594,22 +594,22 @@ namespace SiriusQualityWheatLAI.Strategies
/// </summary>
public void Estimate(SiriusQualityWheatLAI.WheatLAIState wheatlaistate,SiriusQualityWheatLAI.WheatLeafState wheatleafstate,SiriusQualityWheatLAI.WheatLeafState wheatleafstate1,CRA.AgroManagement.ActEvents actevents)
{
try
{
CalculateModel(wheatlaistate,wheatleafstate,wheatleafstate1,actevents);
try
{
CalculateModel(wheatlaistate, wheatleafstate, wheatleafstate1, actevents);
//Uncomment the next line to use the trace
//TraceStrategies.TraceEvent(System.Diagnostics.TraceEventType.Verbose, 1005,"Strategy: " + this.GetType().Name + " - Model executed");
}
catch (Exception exception)
{
//Uncomment the next line to use the trace
//TraceStrategies.TraceEvent(System.Diagnostics.TraceEventType.Error, 1003, "Strategy: " + this.GetType().Name + " - Unhandled exception running model");
//Uncomment the next line to use the trace
//TraceStrategies.TraceEvent(System.Diagnostics.TraceEventType.Verbose, 1005,"Strategy: " + this.GetType().Name + " - Model executed");
}
catch (Exception exception)
{
//Uncomment the next line to use the trace
//TraceStrategies.TraceEvent(System.Diagnostics.TraceEventType.Error, 1003, "Strategy: " + this.GetType().Name + " - Unhandled exception running model");
string msg = "Error in component SiriusQualityWheatLAI.Strategies, strategy: " + this.GetType().Name + ": Unhandled exception running model. "+exception.GetType().FullName+" - "+exception.Message;
throw new Exception(msg, exception);
}
}
string msg = "Error in component SiriusQualityWheatLAI.Strategies, strategy: " + this.GetType().Name + ": Unhandled exception running model. " + exception.GetType().FullName + " - " + exception.Message;
throw new Exception(msg, exception);
}
}
......
......@@ -713,22 +713,22 @@ namespace SiriusQualityWheatLAI.Strategies
/// </summary>
public void Estimate(SiriusQualityWheatLAI.WheatLAIState wheatlaistate,SiriusQualityWheatLAI.WheatLeafState wheatleafstate,SiriusQualityWheatLAI.WheatLeafState wheatleafstate1,CRA.AgroManagement.ActEvents actevents)
{
try
{
CalculateModel(wheatlaistate,wheatleafstate,wheatleafstate1,actevents);
try
{
CalculateModel(wheatlaistate, wheatleafstate, wheatleafstate1, actevents);
//Uncomment the next line to use the trace
//TraceStrategies.TraceEvent(System.Diagnostics.TraceEventType.Verbose, 1005,"Strategy: " + this.GetType().Name + " - Model executed");
}
catch (Exception exception)
{
//Uncomment the next line to use the trace
//TraceStrategies.TraceEvent(System.Diagnostics.TraceEventType.Error, 1003, "Strategy: " + this.GetType().Name + " - Unhandled exception running model");
//Uncomment the next line to use the trace
//TraceStrategies.TraceEvent(System.Diagnostics.TraceEventType.Verbose, 1005,"Strategy: " + this.GetType().Name + " - Model executed");
}
catch (Exception exception)
{
//Uncomment the next line to use the trace
//TraceStrategies.TraceEvent(System.Diagnostics.TraceEventType.Error, 1003, "Strategy: " + this.GetType().Name + " - Unhandled exception running model");
string msg = "Error in component SiriusQualityWheatLAI.Strategies, strategy: " + this.GetType().Name + ": Unhandled exception running model. "+exception.GetType().FullName+" - "+exception.Message;
throw new Exception(msg, exception);
}
}
string msg = "Error in component SiriusQualityWheatLAI.Strategies, strategy: " + this.GetType().Name + ": Unhandled exception running model. " + exception.GetType().FullName + " - " + exception.Message;
throw new Exception(msg, exception);
}
}
......
......@@ -272,6 +272,46 @@
<Description>List of Thermal times since emergence of this leaf Layer</Description>
<URL>http://</URL>
</VarInfoVariables>
<VarInfoVariables>
<Name>dayLength</Name>
<MinValue>0</MinValue>
<MaxValue>24</MaxValue>
<DefaultValue>12</DefaultValue>
<Units>h</Units>
<Type>double</Type>
<Description>Lenght of the day</Description>
<URL>http://</URL>
</VarInfoVariables>
<VarInfoVariables>
<Name>avHourVPDDay</Name>
<MinValue>0</MinValue>
<MaxValue>100</MaxValue>
<DefaultValue>0</DefaultValue>
<Units>hPa</Units>
<Type>double</Type>
<Description>Average VPD during the day</Description>
<URL>http://</URL>
</VarInfoVariables>
<VarInfoVariables>
<Name>availableN</Name>
<MinValue>0</MinValue>
<MaxValue>1000</MaxValue>
<DefaultValue>10</DefaultValue>
<Units>g/m²</Units>
<Type>double</Type>
<Description>Available Nitrogen of the day</Description>
<URL>http://</URL>
</VarInfoVariables>
<VarInfoVariables>
<Name>incDeltaArea</Name>
<MinValue>0</MinValue>
<MaxValue>1000</MaxValue>
<DefaultValue>0</DefaultValue>
<Units>m²/m²</Units>
<Type>double</Type>
<Description>Actual increase in Area of the day</Description>
<URL>http://</URL>
</VarInfoVariables>
<Description>
<DomainClassNameSpace>SiriusQualityWheatLAI</DomainClassNameSpace>
<DomainTypeName>WheatLAIState</DomainTypeName>
......
......@@ -9,15 +9,15 @@
//------------------------------------------------------------------------------
///
/// This class was created from file C:\Users\mancealo\Documents\GitSiriusCode\SiriusCode\Development2\Code\SiriusQuality-WheatLAI\XML\SiriusQualityWheatLAI_WheatLAIState.xml
/// This class was created from file C:\Users\loicm\GitSiriusCode\siriusquality-bioma-wheatpotentiallai-component\SiriusQuality-WheatLAI\XML\SiriusQualityWheatLAI_WheatLAIState.xml
/// The tool used was: DCC - Domain Class Coder, http://components.biomamodelling.org/, DCC
///
/// Loic Manceau
/// loic.manceau@inra.fr
/// INRA
/// loic.manceau@inrae.fr
/// INRAE
///
///
/// 10/4/2018 11:31:58 AM
/// 20/10/2020 13:24:50
///
namespace SiriusQualityWheatLAI
{
......@@ -82,9 +82,13 @@ namespace SiriusQualityWheatLAI
private System.Collections.Generic.List<double> _TT = new List<double>();
private double _incDeltaArea;
private double _dayLength;
private double _avHourVPDDay;
private double _availableN;
private double _incDeltaArea;
#endregion
#region Private field for properties
......@@ -100,64 +104,52 @@ namespace SiriusQualityWheatLAI
public WheatLAIState(WheatLAIState toCopy)
{
_newLeafHasAppeared = toCopy.newLeafHasAppeared;
_leafNumber = toCopy.leafNumber;
_finalLeafNumber = toCopy.finalLeafNumber;
_roundedFinalLeafNumber = toCopy.roundedFinalLeafNumber;
_phytonum = toCopy.phytonum;
_index = toCopy.index;
_FPAW = toCopy.FPAW;
_isPotentialLAI = toCopy.isPotentialLAI;
_VPDairCanopy = toCopy.VPDairCanopy;
_DSF = toCopy.DSF;
_DEF = toCopy.DEF;
_dayLength = toCopy._dayLength;
_avHourVPDDay = toCopy._avHourVPDDay;
_newLeafHasAppeared = toCopy.newLeafHasAppeared;
_leafNumber = toCopy.leafNumber;
_finalLeafNumber = toCopy.finalLeafNumber;
_roundedFinalLeafNumber = toCopy.roundedFinalLeafNumber;
_phytonum = toCopy.phytonum;
_index = toCopy.index;
_FPAW = toCopy.FPAW;
_isPotentialLAI = toCopy.isPotentialLAI;
_VPDairCanopy = toCopy.VPDairCanopy;
_DSF = toCopy.DSF;
_DEF = toCopy.DEF;
_cumulTTShoot = toCopy.cumulTTShoot;
_deltaTTShoot = toCopy.deltaTTShoot;
_deltaTTSenescence = toCopy.deltaTTSenescence;
_incDeltaAreaLimitSF = toCopy.incDeltaAreaLimitSF;
_potentialIncDeltaArea = toCopy.potentialIncDeltaArea;
_incDeltaArea = toCopy._incDeltaArea;
_availableN = toCopy._availableN;
_cumulTTShoot = toCopy.cumulTTShoot;
System.Collections.Generic.List<double> _tilleringProfile = new List<double>();
for (int i = 0; i < toCopy._tilleringProfile.Count; i++) _tilleringProfile.Add(toCopy._tilleringProfile[i]);
System.Collections.Generic.List<double> _leafTillerNumberArray = new List<double>();
for (int i = 0; i < toCopy._leafTillerNumberArray.Count; i++) _leafTillerNumberArray.Add(toCopy._leafTillerNumberArray[i]);
System.Collections.Generic.List<double> _MaximumPotentialLaminaeAI = new List<double>();
for (int i = 0; i < toCopy._MaximumPotentialLaminaeAI.Count; i++) _MaximumPotentialLaminaeAI.Add(toCopy._MaximumPotentialLaminaeAI[i]);
System.Collections.Generic.List<double> _MaximumPotentialSheathAI = new List<double>();
for (int i = 0; i < toCopy._MaximumPotentialSheathAI.Count; i++) _MaximumPotentialSheathAI.Add(toCopy._MaximumPotentialSheathAI[i]);
System.Collections.Generic.List<double> _WaterLimitedPotDeltaAIList = new List<double>();
for (int i = 0; i < toCopy._WaterLimitedPotDeltaAIList.Count; i++) _WaterLimitedPotDeltaAIList.Add(toCopy._WaterLimitedPotDeltaAIList[i]);
_previousIndex = toCopy._previousIndex;
System.Collections.Generic.List<double> _TTgroSheathList = new List<double>();
for (int i = 0; i < toCopy._TTgroSheathList.Count; i++) _TTgroSheathList.Add(toCopy._TTgroSheathList[i]);
System.Collections.Generic.List<double> _TT = new List<double>();
for (int i = 0; i < toCopy._TT.Count; i++) _TTgroSheathList.Add(toCopy._TT[i]);
_deltaTTShoot = toCopy.deltaTTShoot;
_deltaTTSenescence = toCopy.deltaTTSenescence;
_incDeltaAreaLimitSF = toCopy.incDeltaAreaLimitSF;
_potentialIncDeltaArea = toCopy.potentialIncDeltaArea;
System.Collections.Generic.List<double> _tilleringProfile = new List<double>(toCopy._tilleringProfile);
System.Collections.Generic.List<double> _leafTillerNumberArray = new List<double>(toCopy._leafTillerNumberArray);
System.Collections.Generic.List<double> _MaximumPotentialLaminaeAI = new List<double>(toCopy._MaximumPotentialLaminaeAI);
System.Collections.Generic.List<double> _MaximumPotentialSheathAI = new List<double>(toCopy._MaximumPotentialSheathAI);
System.Collections.Generic.List<double> _WaterLimitedPotDeltaAIList = new List<double>(toCopy._WaterLimitedPotDeltaAIList);
System.Collections.Generic.List<double> _TTgroSheathList = new List<double>(toCopy._TTgroSheathList);
System.Collections.Generic.List<double> _TT = new List<double>(toCopy._TT);
_previousIndex = toCopy._previousIndex;
_incDeltaArea = toCopy._incDeltaArea;
_availableN = toCopy._availableN;
}
#endregion
#region Public properties
/// <summary>0: if no leaf has appeared, 1 if a leaf has just appeared</summary>
#region Public properties
/// <summary>0: if no leaf has appeared, 1 if a leaf has just appeared</summary>
public int newLeafHasAppeared
{
get
......@@ -469,16 +461,29 @@ namespace SiriusQualityWheatLAI
}
}
/// <summary>Actual increase in Area of the day</summary>
public double incDeltaArea
/// <summary>Lenght of the day</summary>
public double dayLength
{
get
{
return this._incDeltaArea;
return this._dayLength;
}
set
{
this._incDeltaArea = value;
this._dayLength = value;
}
}
/// <summary>Average VPD during the day</summary>
public double avHourVPDDay
{
get
{
return this._avHourVPDDay;
}
set
{
this._avHourVPDDay = value;
}
}
......@@ -494,6 +499,19 @@ namespace SiriusQualityWheatLAI
this._availableN = value;
}
}
/// <summary>Actual increase in Area of the day</summary>
public double incDeltaArea
{
get
{
return this._incDeltaArea;
}
set
{
this._incDeltaArea = value;
}
}
#endregion
#region IDomainClass members
......@@ -552,8 +570,10 @@ namespace SiriusQualityWheatLAI
_previousIndex = default(System.Int32);
_TTgroSheathList = new List<double>();
_TT = new List<double>();
_incDeltaArea = default(System.Double);
_dayLength = default(System.Double);
_avHourVPDDay = default(System.Double);
_availableN = default(System.Double);
_incDeltaArea = default(System.Double);
// Returns true if everything is ok
return true;
}
......
......@@ -9,15 +9,15 @@
//------------------------------------------------------------------------------
///
/// This class was created from file C:\Users\mancealo\Documents\GitSiriusCode\SiriusCode\Development2\Code\SiriusQuality-WheatLAI\XML\SiriusQualityWheatLAI_WheatLAIState.xml
/// This class was created from file C:\Users\loicm\GitSiriusCode\siriusquality-bioma-wheatpotentiallai-component\SiriusQuality-WheatLAI\XML\SiriusQualityWheatLAI_WheatLAIState.xml
/// The tool used was: DCC - Domain Class Coder, http://components.biomamodelling.org/, DCC
///
/// Loic Manceau
/// loic.manceau@inra.fr
/// INRA
/// loic.manceau@inrae.fr
/// INRAE
///
///
/// 10/4/2018 11:31:58 AM
/// 20/10/2020 13:24:50
///
namespace SiriusQualityWheatLAI
{
......@@ -78,9 +78,13 @@ namespace SiriusQualityWheatLAI
static VarInfo _TT = new VarInfo();
static VarInfo _incDeltaArea = new VarInfo();
static VarInfo _dayLength = new VarInfo();
static VarInfo _avHourVPDDay = new VarInfo();
static VarInfo _availableN = new VarInfo();
static VarInfo _incDeltaArea = new VarInfo();
#endregion
/// <summary>Constructor</summary>
......@@ -335,12 +339,21 @@ namespace SiriusQualityWheatLAI
}
}
/// <summary>Actual increase in Area of the day</summary>
public static VarInfo incDeltaArea
/// <summary>Lenght of the day</summary>
public static VarInfo dayLength
{
get
{
return _incDeltaArea;
return _dayLength;
}
}
/// <summary>Average VPD during the day</summary>
public static VarInfo avHourVPDDay
{
get
{
return _avHourVPDDay;
}
}
......@@ -352,6 +365,15 @@ namespace SiriusQualityWheatLAI
return _availableN;
}
}