ALMaSS Skylark ODDox
1.1
The skylark model description following ODdox protocol
|
#include <Sugarbeet.h>
◆ Sugarbeet()
◆ Do()
bool Sugarbeet::Do |
( |
Farm * |
a_farm, |
|
|
LE * |
a_field, |
|
|
FarmEvent * |
a_ev |
|
) |
| |
|
virtual |
Reimplemented from Crop.
59 m_field->SetMDates(0, 0, g_date->DayInYear(1, 10));
61 m_field->SetMDates(1, 0, g_date->DayInYear(30, 12));
74 g_msg->Warn(WARN_BUG,
"SugarBeet::Do(): "
75 "Harvest too late for the next crop to start!!!",
"");
79 for (
int i = 0; i<noDates; i++) {
97 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
98 if (g_date->Date() < d1)
101 g_msg->Warn(WARN_BUG,
"SugarBeet::Do(): "
102 "Crop start attempt between 1st Jan & 1st July",
"");
108 if (g_date->Date() > d1)
111 g_msg->Warn(WARN_BUG,
"SugarBeet::Do(): "
112 "Crop start attempt after last possible start date",
"");
129 d1 = g_date->OldDays() + g_date->DayInYear(10, 3) + 365;
157 g_date->DayInYear(10, 4) -
158 g_date->DayInYear())) {
171 g_date->DayInYear(10, 4) -
172 g_date->DayInYear())) {
185 g_date->DayInYear(10, 4) -
186 g_date->DayInYear())) {
199 g_date->DayInYear(14, 4) -
200 g_date->DayInYear())) {
212 g_date->DayInYear(15, 4) -
213 g_date->DayInYear())) {
219 int d1 = g_date->OldDays() + g_date->DayInYear(20, 4);
233 Field * pf = dynamic_cast<Field*>(
m_field);
234 pf->Add_missed_herb_app();
235 if (
m_farm->
DoIt(80)) pf->Add_missed_herb_app();
236 if (
m_farm->
DoIt(60)) pf->Add_missed_herb_app();
248 int d1 = g_date->Date() + 7;
249 if (d1 < g_date->OldDays() + g_date->DayInYear(2, 5)) {
250 d1 = g_date->OldDays() + g_date->DayInYear(2, 5);
260 g_date->DayInYear(18, 5) -
261 g_date->DayInYear())) {
267 int d1 = g_date->Date() + 7;
268 if (d1 < g_date->OldDays() + g_date->DayInYear(10, 5)) {
269 d1 = g_date->OldDays() + g_date->DayInYear(10, 5);
281 g_date->DayInYear(18, 5) -
282 g_date->DayInYear())) {
293 g_date->DayInYear(25, 5) -
294 g_date->DayInYear())) {
301 int d1 = g_date->Date() + 7;
302 if (d1 < g_date->OldDays() + g_date->DayInYear(17, 5)) {
303 d1 = g_date->OldDays() + g_date->DayInYear(17, 5);
316 SimpleEvent(g_date->OldDays() + g_date->DayInYear(20, 5),
318 SimpleEvent(g_date->OldDays() + g_date->DayInYear(1, 6),
320 SimpleEvent(g_date->OldDays() + g_date->DayInYear(1, 7),
326 g_date->DayInYear(15, 6) -
327 g_date->DayInYear())) {
337 SimpleEvent(g_date->OldDays() + g_date->DayInYear(8, 6),
348 Field * pf = dynamic_cast<Field*>(
m_field);
349 pf->Add_missed_fi_app();
350 if (
m_farm->
DoIt(81)) pf->Add_missed_fi_app();
366 SimpleEvent(g_date->OldDays() + g_date->DayInYear(8, 6),
375 g_date->DayInYear(15, 6) -
376 g_date->DayInYear())) {
387 SimpleEvent(g_date->OldDays() + g_date->DayInYear(8, 6),
396 g_date->DayInYear(30, 7) -
397 g_date->DayInYear())) {
409 SimpleEvent(g_date->OldDays() + g_date->DayInYear(8, 6),
418 g_date->DayInYear(25, 6) -
419 g_date->DayInYear())) {
441 if (
m_field->GetMConstants(0) == 0) {
443 g_msg->Warn(WARN_BUG,
"Sugarbeet::Do(): failure in 'Harvest' execution",
"");
458 g_msg->Warn(WARN_BUG,
"Sugarbeet::Do(): "
459 "Unknown event type! ",
"");
References cfg_herbi_app_prop, cfg_ins_app_prop1, Crop::ChooseNextCrop(), Farm::DoIt(), Farm::FA_NPK(), Farm::FA_Slurry(), Farm::GetType(), Farm::HarvestLong(), Farm::HerbicideTreat(), Farm::InsecticideTreat(), 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(), Farm::RowCultivation(), SB_DECIDE_TO_FI, SB_DECIDE_TO_HERB, SB_DID_HARROW, SB_DID_INSECT_ONE, SB_DID_NPKS_ONE, SB_DID_NPKS_TWO, SB_DID_ROW_TWO, SB_DID_SLURRY, SB_DID_WATER_ONE, SB_SOW_DATE, SB_TRULY_DID_WATER_ONE, sbe_fertnpks_one, sbe_fertnpks_two, sbe_fertslurry, sbe_harvest, sbe_herbicide_one, sbe_herbicide_three, sbe_herbicide_two, sbe_insecticide_one, sbe_insecticide_two, sbe_row_cultivation_one, sbe_row_cultivation_two, sbe_spring_harrow, sbe_spring_plough, sbe_spring_roll, sbe_spring_sow, sbe_start, sbe_start_threads_one, sbe_water_one, sbe_water_two, Crop::SimpleEvent(), Farm::Spraying_fungins(), Farm::Spraying_herbicides(), Farm::SpringHarrow(), Farm::SpringPlough(), Farm::SpringRoll(), Farm::SpringSow(), tof_OptimisingFarm, and Farm::Water().
The documentation for this class was generated from the following files:
#define SB_SOW_DATE
Definition: Sugarbeet.h:36
virtual bool SpringRoll(LE *a_field, double a_user, int a_days)
Carry out a roll event in the spring on a_field.
Definition: farmfuncs.cpp:525
Definition: Sugarbeet.h:61
virtual bool FA_Slurry(LE *a_field, double a_user, int a_days)
Spready slurry on a_field owned by an stock farmer.
Definition: farmfuncs.cpp:965
#define SB_DID_INSECT_ONE
Definition: Sugarbeet.h:39
virtual bool SpringPlough(LE *a_field, double a_user, int a_days)
Carry out a ploughing event in the spring on a_field.
Definition: farmfuncs.cpp:444
virtual bool HerbicideTreat(LE *a_field, double a_user, int a_days)
Apply herbicide to a_field.
Definition: farmfuncs.cpp:1156
bool m_lock
Definition: farm.h:465
Definition: Sugarbeet.h:51
bool DoIt(double a_probability)
Return chance out of 0 to 100.
Definition: farm.cpp:800
bool m_first_year
Definition: farm.h:467
#define SB_DID_SLURRY
Definition: Sugarbeet.h:35
Definition: Sugarbeet.h:62
Definition: Sugarbeet.h:66
TTypesOfFarm GetType(void)
Definition: farm.h:901
Definition: Sugarbeet.h:52
Definition: Sugarbeet.h:54
#define SB_TRULY_DID_WATER_ONE
Definition: Sugarbeet.h:42
int m_first_date
Definition: farm.h:540
int m_startday
Definition: farm.h:466
virtual bool FA_NPK(LE *a_field, double a_user, int a_days)
Apply NPK fertilizer to a_field owned by an stock farmer.
Definition: farmfuncs.cpp:917
Definition: Sugarbeet.h:53
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
Definition: Sugarbeet.h:60
Definition: Sugarbeet.h:64
Definition: Sugarbeet.h:57
Definition: Sugarbeet.h:55
Definition: Sugarbeet.h:47
#define SB_DID_HARROW
Definition: Sugarbeet.h:33
#define SB_DECIDE_TO_FI
Definition: SpringBarley.h:44
TTypesOfVegetation
Definition: tov_declaration.h:30
virtual bool Spraying_herbicides(TTypesOfVegetation)
Definition: farm.h:784
#define SB_DECIDE_TO_HERB
Definition: SpringBarley.h:43
Definition: Sugarbeet.h:49
Farm * m_farm
Definition: farm.h:537
LE * m_field
Definition: farm.h:538
Definition: Sugarbeet.h:63
Definition: Sugarbeet.h:59
int m_todo
Definition: farm.h:469
virtual bool InsecticideTreat(LE *a_field, double a_user, int a_days)
Apply insecticide to a_field.
Definition: farmfuncs.cpp:1348
virtual bool HarvestLong(LE *a_field, double a_user, int a_days)
Carry out a harvest on a_field.
Definition: farmfuncs.cpp:1821
Definition: Sugarbeet.h:58
virtual bool RowCultivation(LE *a_field, double a_user, int a_days)
Carry out a harrowing between crop rows on a_field.
Definition: farmfuncs.cpp:1510
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
virtual bool SpringSow(LE *a_field, double a_user, int a_days)
Carry out a sowing event in the spring on a_field.
Definition: farmfuncs.cpp:546
Definition: Sugarbeet.h:50
#define SB_DID_ROW_TWO
Definition: Sugarbeet.h:38
#define SB_DID_NPKS_TWO
Definition: Sugarbeet.h:40
CfgFloat cfg_herbi_app_prop
CfgFloat cfg_ins_app_prop1
Definition: Sugarbeet.h:65
void ChooseNextCrop(int a_no_dates)
Chooses the next crop to grow in a field.
Definition: farm.cpp:318
FarmEvent * m_ev
Definition: farm.h:539
Definition: Sugarbeet.h:56
#define SB_DID_NPKS_ONE
Definition: Sugarbeet.h:34
#define SB_DID_WATER_ONE
Definition: Sugarbeet.h:41
virtual bool Spraying_fungins(TTypesOfVegetation)
Definition: farm.h:785
virtual bool SpringHarrow(LE *a_field, double a_user, int a_days)
Carry out a harrow event in the spring on a_field.
Definition: farmfuncs.cpp:471