Goose Management Model ODdox  1.02
PlantGrowthData Class Reference

#include <plants.h>

Public Member Functions

double GetBugPercentA (TTypesOfVegetation a_letype)
 
double GetBugPercentB (TTypesOfVegetation a_letype)
 
double GetBugPercentC (TTypesOfVegetation a_letype)
 
double GetBugPercentD (TTypesOfVegetation a_letype)
 
double GetHeightDiff (double a_ddegs, double a_yddegs, int a_plant, int a_phase)
 Get the differential in veg height for the day degrees experienced. More...
 
double GetHeightDiffScaled (double a_ddegs, double a_yddegs, int a_plant, int a_phase, double a_scaler)
 Get the differential in veg height for the day degrees experienced, scalable depending on plant growth ability. More...
 
double GetLAgreenDiff (double a_ddegs, double a_yddegs, int a_plant, int a_phase)
 Get the differential in LA green for the day degrees experienced. More...
 
double GetLAgreenDiffScaled (double a_ddegs, double a_yddegs, int a_plant, int a_phase, double a_scaler)
 Get the differential in LA green for the day degrees experienced, scalable depending on plant growth ability. More...
 
double GetLAtotalDiff (double a_ddegs, double a_yddegs, int a_plant, int a_phase)
 Get the differential in LA total for the day degrees experienced. More...
 
double GetLAtotalDiffScaled (double a_ddegs, double a_yddegs, int a_plant, int a_phase, double a_scaler)
 Get the differential in LA total for the day degrees experienced, scalable depending on plant growth ability. More...
 
int GetNumCrops ()
 
bool GetNutStatus (int a_plant_num)
 
bool GetNutStatusExt (int a_plant)
 
double GetStartValue (int a_veg_type, int a_phase, int a_type)
 
double GetWeedPercent (TTypesOfVegetation a_letype)
 
 PlantGrowthData (const char *a_cropcurvefile)
 
bool StartValid (int a_veg_type, int a_phase)
 
int VegTypeToCurveNum (TTypesOfVegetation VegReference)
 
 ~PlantGrowthData ()
 

Private Member Functions

unsigned int FindCropNum (ifstream &ist)
 
double FindDiff (double a_ddegs, double a_yddegs, int a_plant, int a_phase, int a_type)
 
void MakeBugPercentArray (void)
 
void ReadBugPercentageFile (void)
 
void SetVegNum (unsigned int a_i, ifstream &ist, const char *a_cropcurvefile)
 

Private Attributes

double * m_bug_percent_a
 
double * m_bug_percent_b
 
double * m_bug_percent_c
 
int * m_bug_percent_d
 
vector< CropGrowth * > m_growth
 
ifstream m_ifile
 
int m_num_crops
 
vector< int > m_numbers
 
double * m_weed_percent
 

Detailed Description

Definition at line 81 of file plants.h.

Constructor & Destructor Documentation

◆ PlantGrowthData()

PlantGrowthData::PlantGrowthData ( const char *  a_cropcurvefile)

Definition at line 157 of file plants.cpp.

158 {
159  // Just finds out how many veg curves there are.
160  ifstream ist(a_vegcurvefile, ios::in);
161  unsigned int NoPlants = FindCropNum(ist);
162 
163  for ( unsigned int i=0; i<NoPlants; i++) {
164  CropGrowth* temp;
165  temp = new CropGrowth;
166  m_growth[ i ] = temp;
167  SetVegNum( i, ist, a_vegcurvefile );
168 
169 /*
170  for (int mmm=0; mmm < 10; ++mmm) {
171  int myin;
172  ist >> myin;
173  cout <<
174  }
175 */
176 
177  for (unsigned int j=0; j<5; j++) { // for each growth phase
178  // 'Local' index into crop growth curves.
179  int lk = 0;
180  for (unsigned int k=0; k<MaxNoInflections; k++) {
181  // for each inflection point
182  int entry;
183  //fscanf( m_ifile, "%d", &entry );
184  ist >> entry;
185  float f1=0,f2=0,f0=0;
186  if ( entry == -1 ) {
187  // Crop start data.
188  m_growth[ i ]->m_start_valid[j] = true;
189  //fscanf( m_ifile, "%g %g %g",&f1,&f0,&f2);
190  ist >> f1 >> f0 >> f2;
191  FloatToDouble(m_growth[ i ]->m_start[j][1],f1);
192  FloatToDouble(m_growth[ i ]->m_start[j][0],f0);
193  FloatToDouble(m_growth[ i ]->m_start[j][2],f2);
194  } else {
195  // Add inflection point to normal growth curves.
196  m_growth[ i ]->m_dds[j][lk] = (double)entry;
197  //fscanf( m_ifile, "%g %g %g",&f1,&f0,&f2);
198  ist >> f1 >> f0 >> f2;
199  FloatToDouble(m_growth[ i ]->m_slopes[j][1][lk],f1);
200  FloatToDouble(m_growth[ i ]->m_slopes[j][0][lk],f0);
201  FloatToDouble(m_growth[ i ]->m_slopes[j][2][lk],f2);
202  lk++;
203  }
204  } // MaxNoInflections
205  } // Growth Phases
206  } // NoPlants
207  //fclose( m_ifile );
208 }

References FindCropNum(), FloatToDouble(), m_growth, MaxNoInflections, and SetVegNum().

◆ ~PlantGrowthData()

PlantGrowthData::~PlantGrowthData ( )

Definition at line 210 of file plants.cpp.

211 {
212  for ( unsigned int i=0; i<m_growth.size(); i++ )
213  delete m_growth[i];
214 }

References m_growth.

Member Function Documentation

◆ FindCropNum()

unsigned int PlantGrowthData::FindCropNum ( ifstream &  ist)
private

Definition at line 103 of file plants.cpp.

104 {
105  int NoPlants;
106 
107  m_numbers.resize(201);
108  for ( unsigned int i=0; i<201; i++) {
109  m_numbers[ i ] = -1;
110  }
111 
112  //m_ifile = fopen(a_cropcurvefile, "r" );
113  //ifstream m_ifile(a_cropcurvefile);
114  /*
115  if (!m_ifile){
116  g_msg->Warn(WARN_FILE, "PlantGrowthData::PlantGrowthData: Unable to open file",
117  a_cropcurvefile );
118  exit(1);
119  }
120  */
121  //fscanf( m_ifile , "%d", &NoPlants ); // How many tables to read in
122  ist >> NoPlants;
123  m_growth.resize( NoPlants );
124  m_num_crops = NoPlants;
125 
126  return NoPlants;
127 }

References m_growth, m_num_crops, and m_numbers.

Referenced by PlantGrowthData().

◆ FindDiff()

double PlantGrowthData::FindDiff ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase,
int  a_type 
)
private

Definition at line 43 of file plants.cpp.

45 {
46  // Check for valid plant number at runtime?
47  // This is broken for growth curves where one can risk passing
48  // more than a single inflection point in the growth curve in a
49  // single day...
50 
51  int index = m_numbers[ a_plant ];
52  unsigned int oldindex=0, newindex=0;
53 
54  if ( m_growth[ index ]->m_dds[ a_phase ][ 0 ] == 99999 ) {
55  return 0.0;
56  }
57 
58  for ( unsigned int i=0; i<MaxNoInflections; i++ ) {
59  // In other words: If the current value for summed day degrees
60  // is smaller than the X position of the *next* inflection
61  // point, then we are in the correct interval.
62  if ( m_growth[ index ]->m_dds[ a_phase ][ i+1 ] > a_ddegs ) {
63  newindex = i;
64  break;
65  // return m_growth[ index ]->m_slopes[ a_phase ][ a_type ][i];
66  }
67  }
68 
69  for ( unsigned int i=0; i<MaxNoInflections; i++ ) {
70  if ( m_growth[ index ]->m_dds[ a_phase ][ i+1 ] > a_yddegs ) {
71  oldindex = i;
72  break;
73  // return m_growth[ index ]->m_slopes[ a_phase ][ a_type ][i];
74  }
75  }
76 
77  double diff;
78 
79  if ( newindex > oldindex ) {
80  // We have passed an inflection point between today and yesterday.
81  // First add the increment from yesterdays day degree sum up to
82  // the inflection point.
83  double dddif =
84  m_growth[ index ]->m_dds[ a_phase ][ newindex ] - a_yddegs;
85  diff =
86  m_growth[ index ]->m_slopes[ a_phase ][ a_type ][oldindex]*
87  dddif;
88 
89  // Then from the inflection point up to today.
90  dddif = a_ddegs -
91  m_growth[ index ]->m_dds[ a_phase ][ newindex ];
92  diff +=
93  m_growth[ index ]->m_slopes[ a_phase ][ a_type ][ newindex ]*
94  dddif;
95  } else {
96  // No inflection point passed.
97  diff = m_growth[ index ]->m_slopes[ a_phase ][ a_type ][ newindex ] *
98  (a_ddegs - a_yddegs);
99  }
100  return diff;
101 }

References m_growth, m_numbers, and MaxNoInflections.

◆ GetBugPercentA()

double PlantGrowthData::GetBugPercentA ( TTypesOfVegetation  a_letype)
inline

Definition at line 151 of file plants.h.

151  {
152  return m_bug_percent_a[ a_letype ];
153  }

◆ GetBugPercentB()

double PlantGrowthData::GetBugPercentB ( TTypesOfVegetation  a_letype)
inline

Definition at line 156 of file plants.h.

156  {
157  return m_bug_percent_b[ a_letype ];
158  }

◆ GetBugPercentC()

double PlantGrowthData::GetBugPercentC ( TTypesOfVegetation  a_letype)
inline

Definition at line 161 of file plants.h.

161  {
162  return m_bug_percent_c[ a_letype ];
163  }

◆ GetBugPercentD()

double PlantGrowthData::GetBugPercentD ( TTypesOfVegetation  a_letype)
inline

Definition at line 166 of file plants.h.

166  {
167  return (double) m_bug_percent_d[ a_letype ];
168  }

◆ GetHeightDiff()

double PlantGrowthData::GetHeightDiff ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase 
)
inline

Get the differential in veg height for the day degrees experienced.

Definition at line 115 of file plants.h.

115  {
116  return FindDiff(a_ddegs, a_yddegs, a_plant, a_phase, 2);
117  }

Referenced by VegElement::ForceGrowthSpringTest().

◆ GetHeightDiffScaled()

double PlantGrowthData::GetHeightDiffScaled ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase,
double  a_scaler 
)
inline

Get the differential in veg height for the day degrees experienced, scalable depending on plant growth ability.

Definition at line 125 of file plants.h.

125 { return a_scaler* GetHeightDiff(a_ddegs, a_yddegs, a_plant, a_phase); }

Referenced by VegElement::DoDevelopment().

◆ GetLAgreenDiff()

double PlantGrowthData::GetLAgreenDiff ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase 
)
inline

Get the differential in LA green for the day degrees experienced.

Definition at line 107 of file plants.h.

107  {
108  return FindDiff(a_ddegs, a_yddegs, a_plant, a_phase, 0);
109  }

Referenced by VegElement::ForceGrowthSpringTest().

◆ GetLAgreenDiffScaled()

double PlantGrowthData::GetLAgreenDiffScaled ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase,
double  a_scaler 
)
inline

Get the differential in LA green for the day degrees experienced, scalable depending on plant growth ability.

Definition at line 121 of file plants.h.

121 { return a_scaler* GetLAgreenDiff(a_ddegs, a_yddegs, a_plant, a_phase); }

Referenced by VegElement::DoDevelopment().

◆ GetLAtotalDiff()

double PlantGrowthData::GetLAtotalDiff ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase 
)
inline

Get the differential in LA total for the day degrees experienced.

Definition at line 111 of file plants.h.

111  {
112  return FindDiff(a_ddegs, a_yddegs, a_plant, a_phase, 1);
113  }

Referenced by VegElement::DoDevelopment(), UnsprayedFieldMargin::DoDevelopment(), and VegElement::ForceGrowthSpringTest().

◆ GetLAtotalDiffScaled()

double PlantGrowthData::GetLAtotalDiffScaled ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase,
double  a_scaler 
)
inline

Get the differential in LA total for the day degrees experienced, scalable depending on plant growth ability.

Definition at line 123 of file plants.h.

123 { return a_scaler* GetLAtotalDiff(a_ddegs, a_yddegs, a_plant, a_phase); }

Referenced by VegElement::DoDevelopment().

◆ GetNumCrops()

int PlantGrowthData::GetNumCrops ( )
inline

Definition at line 135 of file plants.h.

135  {
136  return m_num_crops;
137  }

Referenced by CropRotation::GetFirstCrop().

◆ GetNutStatus()

bool PlantGrowthData::GetNutStatus ( int  a_plant_num)
inline

Definition at line 170 of file plants.h.

170  {
171  return m_growth[ a_plant_num ]->m_lownut;
172  }

Referenced by CropRotation::GetFirstCrop().

◆ GetNutStatusExt()

bool PlantGrowthData::GetNutStatusExt ( int  a_plant)
inline

Definition at line 174 of file plants.h.

174  {
175  return m_growth[ m_numbers[ a_plant ]]->m_lownut;
176  }

◆ GetStartValue()

double PlantGrowthData::GetStartValue ( int  a_veg_type,
int  a_phase,
int  a_type 
)
inline

Definition at line 127 of file plants.h.

127  {
128  return m_growth[m_numbers[a_veg_type]]->m_start[a_phase][a_type];
129  }

Referenced by VegElement::ForceGrowthInitialize(), and VegElement::SetGrowthPhase().

◆ GetWeedPercent()

double PlantGrowthData::GetWeedPercent ( TTypesOfVegetation  a_letype)
inline

Definition at line 146 of file plants.h.

146  {
147  return m_weed_percent[ a_letype ];
148  }

◆ MakeBugPercentArray()

void PlantGrowthData::MakeBugPercentArray ( void  )
private

◆ ReadBugPercentageFile()

void PlantGrowthData::ReadBugPercentageFile ( void  )
private

◆ SetVegNum()

void PlantGrowthData::SetVegNum ( unsigned int  a_i,
ifstream &  ist,
const char *  a_cropcurvefile 
)
private

Definition at line 131 of file plants.cpp.

132 {
133  int ThisPlant;
134 
135  // Find out what crop and what nutrient status
136  //fscanf( m_ifile, "%d", &ThisPlant);
137 
138  ist >> ThisPlant;
139  // Check if valid plant number (from the file).
140  if ( ThisPlant < 0 || ThisPlant > 200 ) {
141  g_msg->Warn(WARN_FILE, "PlantGrowthData::FindCropNum(): Illegal plant number"
142  " specified in", a_cropcurvefile );
143  exit(1);
144  }
145 
146  m_numbers[ ThisPlant ] = a_i;
147 
148  // if greater than 100 then it is low nutrient
149  if ( ThisPlant > 100 ) {
150  m_growth[ a_i ]->m_lownut = true;
151  } else {
152  m_growth[ a_i ]->m_lownut = false;
153  }
154 }

References g_msg, m_growth, m_numbers, MapErrorMsg::Warn(), and WARN_FILE.

Referenced by PlantGrowthData().

◆ StartValid()

bool PlantGrowthData::StartValid ( int  a_veg_type,
int  a_phase 
)

Definition at line 409 of file plants.cpp.

410 {
411  int a=m_numbers[ a_veg_type ];
412  CropGrowth* p=m_growth[a];
413  return p-> m_start_valid[ a_phase ];
414 }

References m_growth, and m_numbers.

Referenced by VegElement::ForceGrowthInitialize(), and VegElement::SetGrowthPhase().

◆ VegTypeToCurveNum()

int PlantGrowthData::VegTypeToCurveNum ( TTypesOfVegetation  VegReference)

Definition at line 226 of file plants.cpp.

227 {
228  char error_num[20];
229 
230  switch (VegReference)
231  {
233  case tov_OSpringBarley:
235  return 101;
237  case tov_SpringBarley:
238  case tov_SpringBarleySpr:
245  case tov_PLSpringBarley: //Needs to be changed later
246  case tov_PLSpringWheat:
248  case tov_NLSpringBarley:
250  return 1;
251  case tov_WinterBarley:
253  case tov_PLWinterBarley: //Needs to be changed later
254  return 2;
255  case tov_OWinterBarley:
257  return 102;
258  case tov_WinterWheat:
264  case tov_WWheatPControl:
267  case tov_PLWinterWheat: // Needs to be changed later
269  case tov_DummyCropPestTesting: // just for testing of spraying distribution
270  case tov_NLWinterWheat:
271  return 4;
272  case tov_OWinterWheat:
274  return 104;
275  case tov_WinterRye:
277  case tov_PLWinterRye: //Needs to be changed later
278  return 5;
279  case tov_OWinterRye:
280  return 105;
281  case tov_Oats:
282  case tov_NorwegianOats:
283  return 6;
284  case tov_OOats:
285  return 106;
286  case tov_Maize:
287  case tov_MaizeSilage:
288  case tov_MaizeStrigling:
289  case tov_PLMaize: //Needs to be changed later
290  case tov_PLMaizeSilage: //Needs to be changed later
291  case tov_NLMaize:
292  case tov_NLMaizeSpring:
293  return 8;
294  case tov_OMaizeSilage:
295  return 108;
300  return 13;
302  case tov_OSBarleySilage:
305  return 113;
306  case tov_WinterRape:
308  case tov_PLWinterRape: // Needs to be changed later
309  return 22;
310  case tov_OWinterRape:
311  return 22;
314  return 25;
317  return 26;
318  case tov_SeedGrass1:
319  case tov_SeedGrass2:
320  case tov_OSeedGrass1:
321  case tov_OSeedGrass2:
322  return 27;
323  case tov_FodderGrass:
329  case tov_OGrazingPigs:
330  case tov_PLFodderLucerne2: //Needs to be changed later
331  case tov_NLGrassGrazed2:
334  return 29;
335  case tov_PLFodderLucerne1: //Needs to be changed later
336  case tov_NLGrassGrazed1:
338  return 70;
339  case tov_OFieldPeas:
341  case tov_FieldPeas:
343  case tov_FieldPeasSilage:
344  case tov_BroadBeans:
345  case tov_PLBeans:
346  case tov_NLCatchPeaCrop:
347  return 30;
348  case tov_Carrots:
349  case tov_PLCarrots: //Needs to be changed later
350  case tov_NLCarrots:
351  case tov_NLCabbage: //Needs to be changed later
352  case tov_NLCarrotsSpring:
353  case tov_NLCabbageSpring: //Needs to be changed later
354  return 41;
355  case tov_OCarrots:
356  return 141;
357  case tov_Potatoes:
359  case tov_PLPotatoes: //Needs to be changed later
361  case tov_NLPotatoes:
363  return 50;
364  case tov_OPotatoes:
365  return 150;
366  case tov_SugarBeet:
367  case tov_FodderBeet:
368  case tov_OFodderBeet:
369  case tov_PLBeet: //Needs to be changed later
370  case tov_PLBeetSpr:
371  case tov_NLBeet:
372  case tov_NLBeetSpring:
373  return 60;
374  // Special growth mode for green but unused elements.
375  // tov_PermanentSetaside Does not change growth phase no matter
376  // how hard one tries to do just that.
377  case tov_PermanentSetaside: return 92;
378  case tov_Heath:
379  case tov_Setaside:
380  case tov_OSetaside: return 112;
381  case tov_OrchardCrop:
382  case tov_YoungForest:
383  case tov_NaturalGrass:
384  case tov_Wasteland:
385  case tov_WaterBufferZone:
386  return 90;
387  case tov_NoGrowth:
388  case tov_PlantNursery:
389  return 91;
390  case tov_Lawn: return 94;
391  case tov_OTriticale:
392  case tov_Triticale:
393  case tov_PLWinterTriticale: //Needs to be changed later
394  return 7;
395  case tov_SpringRape: return 21;
396  case tov_NLTulips: return 80;
397 
398 
399  default: // No matching code so we need an error message of some kind
400  sprintf( error_num, "%d", VegReference );
401  g_msg->Warn( WARN_FILE,
402  "PlantGrowthData::VegTypeToCurveNum(): Unknown vegetation type:",
403  error_num );
404  exit( 1 );
405  }
406 }

References g_msg, tov_AgroChemIndustryCereal, tov_BroadBeans, tov_Carrots, tov_CloverGrassGrazed1, tov_CloverGrassGrazed2, tov_DummyCropPestTesting, tov_FieldPeas, tov_FieldPeasSilage, tov_FieldPeasStrigling, tov_FodderBeet, tov_FodderGrass, tov_Heath, tov_Lawn, tov_Maize, tov_MaizeSilage, tov_MaizeStrigling, tov_NaturalGrass, tov_NLBeet, tov_NLBeetSpring, tov_NLCabbage, tov_NLCabbageSpring, tov_NLCarrots, tov_NLCarrotsSpring, tov_NLCatchPeaCrop, tov_NLGrassGrazed1, tov_NLGrassGrazed1Spring, tov_NLGrassGrazed2, tov_NLGrassGrazedLast, tov_NLMaize, tov_NLMaizeSpring, tov_NLPermanentGrassGrazed, tov_NLPotatoes, tov_NLPotatoesSpring, tov_NLSpringBarley, tov_NLSpringBarleySpring, tov_NLTulips, tov_NLWinterWheat, tov_NoGrowth, tov_NorwegianOats, tov_NorwegianPotatoes, tov_NorwegianSpringBarley, tov_Oats, tov_OBarleyPeaCloverGrass, tov_OCarrots, tov_OCloverGrassGrazed1, tov_OCloverGrassGrazed2, tov_OCloverGrassSilage1, tov_OFieldPeas, tov_OFieldPeasSilage, tov_OFodderBeet, tov_OGrazingPigs, tov_OMaizeSilage, tov_OOats, tov_OPermanentGrassGrazed, tov_OPotatoes, tov_OrchardCrop, tov_OSBarleySilage, tov_OSeedGrass1, tov_OSeedGrass2, tov_OSetaside, tov_OSpringBarley, tov_OSpringBarleyClover, tov_OSpringBarleyExt, tov_OSpringBarleyGrass, tov_OSpringBarleyPigs, tov_OTriticale, tov_OWinterBarley, tov_OWinterBarleyExt, tov_OWinterRape, tov_OWinterRye, tov_OWinterWheat, tov_OWinterWheatUndersown, tov_PermanentGrassGrazed, tov_PermanentGrassLowYield, tov_PermanentGrassTussocky, tov_PermanentSetaside, tov_PlantNursery, tov_PLBeans, tov_PLBeet, tov_PLBeetSpr, tov_PLCarrots, tov_PLFodderLucerne1, tov_PLFodderLucerne2, tov_PLMaize, tov_PLMaizeSilage, tov_PLPotatoes, tov_PLSpringBarley, tov_PLSpringBarleySpr, tov_PLSpringWheat, tov_PLWinterBarley, tov_PLWinterRape, tov_PLWinterRye, tov_PLWinterTriticale, tov_PLWinterWheat, tov_PLWinterWheatLate, tov_Potatoes, tov_PotatoesIndustry, tov_SeedGrass1, tov_SeedGrass2, tov_Setaside, tov_SpringBarley, tov_SpringBarleyCloverGrass, tov_SpringBarleyCloverGrassStrigling, tov_SpringBarleyPeaCloverGrassStrigling, tov_SpringBarleyPTreatment, tov_SpringBarleySeed, tov_SpringBarleySilage, tov_SpringBarleySKManagement, tov_SpringBarleySpr, tov_SpringBarleyStrigling, tov_SpringBarleyStriglingCulm, tov_SpringBarleyStriglingSingle, tov_SpringRape, tov_SugarBeet, tov_Triticale, tov_Wasteland, tov_WaterBufferZone, tov_WinterBarley, tov_WinterBarleyStrigling, tov_WinterRape, tov_WinterRapeStrigling, tov_WinterRye, tov_WinterRyeStrigling, tov_WinterWheat, tov_WinterWheatShort, tov_WinterWheatStrigling, tov_WinterWheatStriglingCulm, tov_WinterWheatStriglingSingle, tov_WWheatPControl, tov_WWheatPToxicControl, tov_WWheatPTreatment, tov_YoungForest, MapErrorMsg::Warn(), and WARN_FILE.

Referenced by BeetleBank::BeetleBank(), FieldBoundary::FieldBoundary(), Heath::Heath(), HedgeBank::HedgeBank(), Hedges::Hedges(), Marsh::Marsh(), MownGrass::MownGrass(), NaturalGrassDry::NaturalGrassDry(), NaturalGrassWet::NaturalGrassWet(), Orchard::Orchard(), OrchardBand::OrchardBand(), PermanentSetaside::PermanentSetaside(), RoadsideVerge::RoadsideVerge(), VegElement::SetVegType(), UnsprayedFieldMargin::UnsprayedFieldMargin(), VegElement::VegElement(), Wasteland::Wasteland(), WaterBufferZone::WaterBufferZone(), and YoungForest::YoungForest().

Member Data Documentation

◆ m_bug_percent_a

double* PlantGrowthData::m_bug_percent_a
private

Definition at line 88 of file plants.h.

◆ m_bug_percent_b

double* PlantGrowthData::m_bug_percent_b
private

Definition at line 89 of file plants.h.

◆ m_bug_percent_c

double* PlantGrowthData::m_bug_percent_c
private

Definition at line 90 of file plants.h.

◆ m_bug_percent_d

int* PlantGrowthData::m_bug_percent_d
private

Definition at line 91 of file plants.h.

◆ m_growth

vector< CropGrowth * > PlantGrowthData::m_growth
private

Definition at line 82 of file plants.h.

Referenced by FindCropNum(), FindDiff(), PlantGrowthData(), SetVegNum(), StartValid(), and ~PlantGrowthData().

◆ m_ifile

ifstream PlantGrowthData::m_ifile
private

Definition at line 86 of file plants.h.

◆ m_num_crops

int PlantGrowthData::m_num_crops
private

Definition at line 84 of file plants.h.

Referenced by FindCropNum().

◆ m_numbers

vector< int > PlantGrowthData::m_numbers
private

Definition at line 83 of file plants.h.

Referenced by FindCropNum(), FindDiff(), SetVegNum(), and StartValid().

◆ m_weed_percent

double* PlantGrowthData::m_weed_percent
private

Definition at line 87 of file plants.h.


The documentation for this class was generated from the following files:
tov_AgroChemIndustryCereal
Definition: tov_declaration.h:55
tov_OSpringBarleyClover
Definition: tov_declaration.h:46
tov_SpringBarleyStrigling
Definition: tov_declaration.h:58
tov_PLWinterWheatLate
Definition: tov_declaration.h:85
tov_PLSpringWheat
Definition: tov_declaration.h:75
tov_NLSpringBarley
Definition: tov_declaration.h:93
tov_NLMaizeSpring
Definition: tov_declaration.h:102
PlantGrowthData::m_bug_percent_b
double * m_bug_percent_b
Definition: plants.h:89
tov_Oats
Definition: tov_declaration.h:40
tov_OWinterBarley
Definition: tov_declaration.h:47
tov_NLPotatoes
Definition: tov_declaration.h:92
PlantGrowthData::m_bug_percent_a
double * m_bug_percent_a
Definition: plants.h:88
tov_OPermanentGrassGrazed
Definition: tov_declaration.h:44
PlantGrowthData::GetLAgreenDiff
double GetLAgreenDiff(double a_ddegs, double a_yddegs, int a_plant, int a_phase)
Get the differential in LA green for the day degrees experienced.
Definition: plants.h:107
tov_PLSpringBarleySpr
Definition: tov_declaration.h:84
tov_OOats
Definition: tov_declaration.h:44
PlantGrowthData::FindCropNum
unsigned int FindCropNum(ifstream &ist)
Definition: plants.cpp:103
tov_OSetaside
Definition: tov_declaration.h:46
tov_PLMaizeSilage
Definition: tov_declaration.h:78
tov_OTriticale
Definition: tov_declaration.h:47
tov_MaizeStrigling
Definition: tov_declaration.h:58
tov_OWinterWheatUndersown
Definition: tov_declaration.h:49
PlantGrowthData::GetLAtotalDiff
double GetLAtotalDiff(double a_ddegs, double a_yddegs, int a_plant, int a_phase)
Get the differential in LA total for the day degrees experienced.
Definition: plants.h:111
tov_FieldPeasStrigling
Definition: tov_declaration.h:56
tov_WinterBarleyStrigling
Definition: tov_declaration.h:59
tov_NLBeetSpring
Definition: tov_declaration.h:100
tov_PLFodderLucerne1
Definition: tov_declaration.h:81
tov_WinterWheat
Definition: tov_declaration.h:55
tov_OCloverGrassSilage1
Definition: tov_declaration.h:43
tov_PermanentGrassTussocky
Definition: tov_declaration.h:49
tov_PLWinterTriticale
Definition: tov_declaration.h:73
tov_Heath
Definition: tov_declaration.h:66
tov_OCloverGrassGrazed2
Definition: tov_declaration.h:43
tov_PLPotatoes
Definition: tov_declaration.h:79
tov_NLCabbage
Definition: tov_declaration.h:95
tov_PLBeet
Definition: tov_declaration.h:80
PlantGrowthData::m_bug_percent_d
int * m_bug_percent_d
Definition: plants.h:91
tov_PermanentSetaside
Definition: tov_declaration.h:49
tov_Lawn
Definition: tov_declaration.h:63
PlantGrowthData::m_bug_percent_c
double * m_bug_percent_c
Definition: plants.h:90
tov_NLSpringBarleySpring
Definition: tov_declaration.h:104
tov_PLWinterRye
Definition: tov_declaration.h:74
tov_OSpringBarley
Definition: tov_declaration.h:46
tov_Setaside
Definition: tov_declaration.h:50
tov_OrchardCrop
Definition: tov_declaration.h:65
tov_SpringBarleySeed
Definition: tov_declaration.h:52
tov_SpringBarleySKManagement
Definition: tov_declaration.h:65
tov_WWheatPToxicControl
Definition: tov_declaration.h:55
tov_NLMaize
Definition: tov_declaration.h:91
tov_OWinterWheat
Definition: tov_declaration.h:66
tov_SpringBarleyStriglingCulm
Definition: tov_declaration.h:62
tov_FieldPeasSilage
Definition: tov_declaration.h:65
tov_OCarrots
Definition: tov_declaration.h:43
tov_NLGrassGrazedLast
Definition: tov_declaration.h:108
tov_OBarleyPeaCloverGrass
Definition: tov_declaration.h:41
CropGrowth
Definition: plants.h:67
tov_WinterWheatShort
Definition: tov_declaration.h:56
tov_NorwegianOats
Definition: tov_declaration.h:68
PlantGrowthData::m_num_crops
int m_num_crops
Definition: plants.h:84
tov_YoungForest
Definition: tov_declaration.h:60
tov_OWinterBarleyExt
Definition: tov_declaration.h:65
PlantGrowthData::FindDiff
double FindDiff(double a_ddegs, double a_yddegs, int a_plant, int a_phase, int a_type)
Definition: plants.cpp:43
tov_NorwegianSpringBarley
Definition: tov_declaration.h:68
tov_SpringBarleySilage
Definition: tov_declaration.h:52
tov_NLGrassGrazed1Spring
Definition: tov_declaration.h:107
tov_DummyCropPestTesting
Definition: tov_declaration.h:112
tov_SpringRape
Definition: tov_declaration.h:53
PlantGrowthData::m_growth
vector< CropGrowth * > m_growth
Definition: plants.h:82
tov_PotatoesIndustry
Definition: tov_declaration.h:50
tov_SpringBarleyPTreatment
Definition: tov_declaration.h:63
tov_FodderGrass
Definition: tov_declaration.h:62
PlantGrowthData::m_numbers
vector< int > m_numbers
Definition: plants.h:83
tov_PLBeetSpr
Definition: tov_declaration.h:86
tov_PlantNursery
Definition: tov_declaration.h:66
tov_NLCatchPeaCrop
Definition: tov_declaration.h:106
tov_Carrots
Definition: tov_declaration.h:31
tov_NLCarrotsSpring
Definition: tov_declaration.h:101
tov_NLPotatoesSpring
Definition: tov_declaration.h:103
tov_SpringBarleyCloverGrass
Definition: tov_declaration.h:52
tov_WinterRape
Definition: tov_declaration.h:53
tov_OGrazingPigs
Definition: tov_declaration.h:44
tov_SugarBeet
Definition: tov_declaration.h:66
tov_NLBeet
Definition: tov_declaration.h:89
tov_NorwegianPotatoes
Definition: tov_declaration.h:68
tov_OSBarleySilage
Definition: tov_declaration.h:56
tov_SpringBarleyPeaCloverGrassStrigling
Definition: tov_declaration.h:60
tov_PermanentGrassGrazed
Definition: tov_declaration.h:49
PlantGrowthData::m_weed_percent
double * m_weed_percent
Definition: plants.h:87
tov_CloverGrassGrazed2
Definition: tov_declaration.h:33
tov_WWheatPControl
Definition: tov_declaration.h:55
tov_PLWinterRape
Definition: tov_declaration.h:71
MapErrorMsg::Warn
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Definition: maperrormsg.cpp:59
tov_PLBeans
Definition: tov_declaration.h:87
tov_SpringBarleyCloverGrassStrigling
Definition: tov_declaration.h:58
tov_Potatoes
Definition: tov_declaration.h:50
tov_WinterRyeStrigling
Definition: tov_declaration.h:59
tov_PLWinterBarley
Definition: tov_declaration.h:72
PlantGrowthData::GetHeightDiff
double GetHeightDiff(double a_ddegs, double a_yddegs, int a_plant, int a_phase)
Get the differential in veg height for the day degrees experienced.
Definition: plants.h:115
tov_WinterWheatStriglingCulm
Definition: tov_declaration.h:62
tov_NLTulips
Definition: tov_declaration.h:96
tov_WinterRapeStrigling
Definition: tov_declaration.h:59
tov_OMaizeSilage
Definition: tov_declaration.h:65
tov_Maize
Definition: tov_declaration.h:36
tov_OWinterRape
Definition: tov_declaration.h:47
tov_WWheatPTreatment
Definition: tov_declaration.h:55
tov_FieldPeas
Definition: tov_declaration.h:34
tov_SpringBarleyStriglingSingle
Definition: tov_declaration.h:60
tov_BroadBeans
Definition: tov_declaration.h:66
tov_Wasteland
Definition: tov_declaration.h:66
tov_NLGrassGrazed1
Definition: tov_declaration.h:97
tov_OSeedGrass1
Definition: tov_declaration.h:46
tov_OFodderBeet
Definition: tov_declaration.h:65
tov_NLWinterWheat
Definition: tov_declaration.h:94
tov_PLMaize
Definition: tov_declaration.h:77
tov_OCloverGrassGrazed1
Definition: tov_declaration.h:43
tov_OSpringBarleyPigs
Definition: tov_declaration.h:47
tov_SpringBarleySpr
Definition: tov_declaration.h:66
tov_PLSpringBarley
Definition: tov_declaration.h:76
tov_PermanentGrassLowYield
Definition: tov_declaration.h:63
tov_WinterWheatStrigling
Definition: tov_declaration.h:59
tov_WinterWheatStriglingSingle
Definition: tov_declaration.h:62
WARN_FILE
Definition: maperrormsg.h:37
tov_PLCarrots
Definition: tov_declaration.h:83
tov_WinterBarley
Definition: tov_declaration.h:53
tov_NaturalGrass
Definition: tov_declaration.h:37
FloatToDouble
void FloatToDouble(double &, float)
g_msg
MapErrorMsg * g_msg
This pointer provides access the to the internal ALMaSS error message system.
Definition: maperrormsg.cpp:41
tov_SeedGrass2
Definition: tov_declaration.h:50
tov_WaterBufferZone
Definition: tov_declaration.h:110
tov_MaizeSilage
Definition: tov_declaration.h:62
PlantGrowthData::SetVegNum
void SetVegNum(unsigned int a_i, ifstream &ist, const char *a_cropcurvefile)
Definition: plants.cpp:131
tov_NoGrowth
Definition: tov_declaration.h:38
tov_OPotatoes
Definition: tov_declaration.h:44
tov_OSeedGrass2
Definition: tov_declaration.h:46
tov_NLGrassGrazed2
Definition: tov_declaration.h:98
tov_OFieldPeasSilage
Definition: tov_declaration.h:56
tov_SpringBarley
Definition: tov_declaration.h:52
tov_OWinterRye
Definition: tov_declaration.h:49
tov_NLCarrots
Definition: tov_declaration.h:90
tov_CloverGrassGrazed1
Definition: tov_declaration.h:32
tov_OFieldPeas
Definition: tov_declaration.h:43
tov_FodderBeet
Definition: tov_declaration.h:35
tov_WinterRye
Definition: tov_declaration.h:55
tov_PLFodderLucerne2
Definition: tov_declaration.h:82
tov_Triticale
Definition: tov_declaration.h:53
tov_PLWinterWheat
Definition: tov_declaration.h:70
tov_NLPermanentGrassGrazed
Definition: tov_declaration.h:99
MaxNoInflections
const unsigned int MaxNoInflections
Definition: plants.h:41
tov_SeedGrass1
Definition: tov_declaration.h:50
tov_OSpringBarleyGrass
Definition: tov_declaration.h:46
tov_OSpringBarleyExt
Definition: tov_declaration.h:63
tov_NLCabbageSpring
Definition: tov_declaration.h:105