ALMaSS Skylark ODDox
1.1
The skylark model description following ODdox protocol
|
#include <seedgrass2.h>
◆ SeedGrass2()
SeedGrass2::SeedGrass2 |
( |
| ) |
|
|
inline |
◆ Do()
bool SeedGrass2::Do |
( |
Farm * |
a_farm, |
|
|
LE * |
a_field, |
|
|
FarmEvent * |
a_ev |
|
) |
| |
|
virtual |
Reimplemented from Crop.
56 m_field->SetMDates(0,0,g_date->DayInYear(10,7));
58 m_field->SetMDates(1,0,g_date->DayInYear(20,7));
59 m_field->SetMDates(0,1,g_date->DayInYear(11,7));
60 m_field->SetMDates(1,1,g_date->DayInYear(25,7));
61 m_field->SetMDates(0,2,g_date->DayInYear(26,7));
62 m_field->SetMDates(1,2,g_date->DayInYear(20,7));
63 m_field->SetMDates(0,3,g_date->DayInYear(15,7));
64 m_field->SetMDates(1,3,g_date->DayInYear(15,8));
65 m_field->SetMDates(0,4,g_date->DayInYear(15,8));
66 m_field->SetMDates(1,4,g_date->DayInYear(20,8));
78 g_msg->Warn( WARN_BUG,
"SeedGrass2::Do(): "
79 "Harvest too late for the next crop to start!!!",
"" );
83 for (
int i=0; i<noDates; i++) {
94 int today=g_date->Date();
100 g_msg->Warn( WARN_BUG,
"SeedGrass2::Do(): "
101 "Crop start attempt after last possible start date",
"" );
108 if ( g_date->Date() > d1 ) {
120 g_date->DayInYear( 15, 4 ) -
121 g_date->DayInYear())) {
126 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 4 ),
136 Field * pf = dynamic_cast<Field*>(
m_field);
137 pf->Add_missed_herb_app();
138 if(
m_farm->
DoIt(67)) pf->Add_missed_herb_app();
148 SimpleEvent( g_date->OldDays() + g_date->DayInYear() + 14,
150 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 20, 5 ),
152 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 5 ),
171 Field * pf = dynamic_cast<Field*>(
m_field);
172 pf->Add_missed_fi_app();
181 g_date->DayInYear( 1, 6 ) -
182 g_date->DayInYear())) {
199 g_date->DayInYear( 30, 5 ) -
200 g_date->DayInYear())) {
205 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 6 ),
210 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 10, 7 ),
222 g_date->DayInYear( 30, 6 ) -
223 g_date->DayInYear())) {
229 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 10, 7 ),
236 g_date->DayInYear( 15, 7 ) -
237 g_date->DayInYear())) {
250 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 10, 7 ),
255 if (
m_field->GetMConstants(0)==0) {
257 g_msg->Warn( WARN_BUG,
"SeedGrass2::Do(): failure in 'Harvest' execution",
"" );
272 if (
m_field->GetMConstants(0)==0) {
274 g_msg->Warn( WARN_BUG,
"SeedGrass2::Do(): failure in 'StrawChopping' execution",
"" );
292 if (
m_field->GetMConstants(1)==0) {
294 g_msg->Warn( WARN_BUG,
"SeedGrass2::Do(): failure in 'HayTurning' execution",
"" );
307 if ( d1 < g_date->OldDays() +
m_field->GetMDates(0,3))
308 d1 = g_date->OldDays() +
m_field->GetMDates(0,3);
315 if (
m_field->GetMConstants(3)==0) {
317 g_msg->Warn( WARN_BUG,
"SeedGrass2::Do(): failure in 'BurnStrawStubble' execution",
"" );
335 if (
m_field->GetMConstants(4)==0) {
337 g_msg->Warn( WARN_BUG,
"SeedGrass2::Do(): failure in 'GrowthRegulator' execution",
"" );
353 if (
m_field->GetMConstants(4)==0) {
355 g_msg->Warn( WARN_BUG,
"SeedGrass2::Do(): failure in 'StubbleHarrowing' execution",
"" );
369 g_msg->Warn( WARN_BUG,
"SeedGrass2::Do(): "
370 "Unknown event type! ",
"" );
References Farm::BurnStrawStubble(), cfg_herbi_app_prop, Crop::ChooseNextCrop(), Farm::DoIt(), Farm::FP_NPK(), Farm::FungicideTreat(), Farm::GetType(), Farm::GrowthRegulator(), Farm::Harvest(), Farm::HayTurning(), Farm::HerbicideTreat(), Crop::m_ev, Crop::m_farm, Crop::m_field, Crop::m_first_date, FarmEvent::m_first_year, Crop::m_last_date, FarmEvent::m_lock, FarmEvent::m_startday, FarmEvent::m_todo, Farm::Prob_multiplier(), sg2_burnstrawstubble, sg2_compress, SG2_DECIDE_TO_HERB, sg2_ferti_zero, SG2_FUNGI_DATE, sg2_fungi_zero, sg2_growthregulation, sg2_harvest, sg2_herbi_one, sg2_herbi_zero, sg2_start, sg2_strawchopping, sg2_stubbleharrow, sg2_swarth, SG2_WATER_DATE, sg2_water_zero, sg2_water_zero_b, Crop::SimpleEvent(), Farm::Spraying_fungins(), Farm::Spraying_herbicides(), Farm::StrawChopping(), Farm::StubbleHarrowing(), Farm::Swathing(), tof_OptimisingFarm, and Farm::Water().
The documentation for this class was generated from the following files:
virtual bool HerbicideTreat(LE *a_field, double a_user, int a_days)
Apply herbicide to a_field.
Definition: farmfuncs.cpp:1156
Definition: seedgrass2.h:43
Definition: seedgrass2.h:42
virtual bool Harvest(LE *a_field, double a_user, int a_days)
Carry out a harvest on a_field.
Definition: farmfuncs.cpp:1769
bool m_lock
Definition: farm.h:465
virtual bool FP_NPK(LE *a_field, double a_user, int a_days)
Apply NPK fertilizer, on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:629
bool DoIt(double a_probability)
Return chance out of 0 to 100.
Definition: farm.cpp:800
bool m_first_year
Definition: farm.h:467
Definition: seedgrass2.h:38
Definition: seedgrass2.h:41
Definition: seedgrass2.h:40
Definition: seedgrass2.h:48
Definition: seedgrass2.h:45
TTypesOfFarm GetType(void)
Definition: farm.h:901
int m_first_date
Definition: farm.h:540
int m_startday
Definition: farm.h:466
virtual bool FungicideTreat(LE *a_field, double a_user, int a_days)
Apply fungicide to a_field.
Definition: farmfuncs.cpp:1279
Definition: seedgrass2.h:39
Definition: seedgrass2.h:50
void SimpleEvent(long a_date, int a_todo, bool a_lock)
Adds an event to this crop management.
Definition: farm.cpp:307
virtual double Prob_multiplier()
Definition: farm.h:786
TTypesOfVegetation
Definition: tov_declaration.h:30
Definition: seedgrass2.h:37
virtual bool Spraying_herbicides(TTypesOfVegetation)
Definition: farm.h:784
virtual bool StrawChopping(LE *a_field, double a_user, int a_days)
Carry out straw chopping on a_field.
Definition: farmfuncs.cpp:2132
Definition: seedgrass2.h:49
Definition: seedgrass2.h:44
#define SG2_FUNGI_DATE
Definition: seedgrass2.h:33
Farm * m_farm
Definition: farm.h:537
LE * m_field
Definition: farm.h:538
int m_todo
Definition: farm.h:469
virtual bool Water(LE *a_field, double a_user, int a_days)
Carry out a watering on a_field.
Definition: farmfuncs.cpp:1717
int m_last_date
Definition: farm.h:542
#define SG2_DECIDE_TO_HERB
Definition: seedgrass2.h:34
virtual bool GrowthRegulator(LE *a_field, double a_user, int a_days)
Apply growth regulator to a_field.
Definition: farmfuncs.cpp:1250
CfgFloat cfg_herbi_app_prop
Definition: seedgrass2.h:47
virtual bool BurnStrawStubble(LE *a_field, double a_user, int a_days)
Burn stubble on a_field.
Definition: farmfuncs.cpp:2236
virtual bool Swathing(LE *a_field, double a_user, int a_days)
Cut the crop on a_field and leave it lying (probably rape)
Definition: farmfuncs.cpp:1744
void ChooseNextCrop(int a_no_dates)
Chooses the next crop to grow in a field.
Definition: farm.cpp:318
virtual bool HayTurning(LE *a_field, double a_user, int a_days)
Carry out hay turning on a_field.
Definition: farmfuncs.cpp:2159
FarmEvent * m_ev
Definition: farm.h:539
#define SG2_WATER_DATE
Definition: seedgrass2.h:32
virtual bool Spraying_fungins(TTypesOfVegetation)
Definition: farm.h:785
Definition: seedgrass2.h:46
virtual bool StubbleHarrowing(LE *a_field, double a_user, int a_days)
Carry out stubble harrowing on a_field.
Definition: farmfuncs.cpp:2209