ALMaSS Skylark ODDox
1.1
The skylark model description following ODdox protocol
|
#include <OFodderbeet.h>
◆ OFodderbeet()
OFodderbeet::OFodderbeet |
( |
| ) |
|
|
inline |
◆ Do()
bool OFodderbeet::Do |
( |
Farm * |
a_farm, |
|
|
LE * |
a_field, |
|
|
FarmEvent * |
a_ev |
|
) |
| |
|
virtual |
Reimplemented from Crop.
51 m_field->SetMDates(0, 0, g_date->DayInYear(10, 10));
53 m_field->SetMDates(1, 0, g_date->DayInYear(10, 11));
66 g_msg->Warn(WARN_BUG,
"OFodderBeet::Do(): "
67 "Harvest too late for the next crop to start!!!",
"");
71 for (
int i = 0; i<noDates; i++) {
89 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
90 if (g_date->Date() < d1)
93 g_msg->Warn(WARN_BUG,
"OFodderBeet::Do(): "
94 "Crop start attempt between 1st Jan & 1st July",
"");
100 if (g_date->Date() > d1)
103 g_msg->Warn(WARN_BUG,
"OFodderBeet::Do(): "
104 "Crop start attempt after last possible start date",
"");
113 SimpleEvent(g_date->OldDays() + g_date->DayInYear(1, 3),
122 d1 = g_date->OldDays() + g_date->DayInYear(1, 10);
123 if (g_date->Date() > d1) {
135 g_date->DayInYear(15, 12) -
136 g_date->DayInYear())) {
141 SimpleEvent(g_date->OldDays() + g_date->DayInYear(15, 3) + 365,
145 SimpleEvent(g_date->OldDays() + g_date->DayInYear(15, 3) + 365,
153 g_date->DayInYear(9, 4) -
154 g_date->DayInYear())) {
166 g_date->DayInYear(10, 4) -
167 g_date->DayInYear())) {
182 SimpleEvent(g_date->OldDays() + g_date->DayInYear(5, 4),
184 SimpleEvent(g_date->OldDays() + g_date->DayInYear(5, 4),
190 g_date->DayInYear(11, 4) -
191 g_date->DayInYear())) {
198 SimpleEvent(g_date->OldDays() + g_date->DayInYear(10, 4),
205 g_date->DayInYear(5, 5) -
206 g_date->DayInYear())) {
213 SimpleEvent(g_date->OldDays() + g_date->DayInYear(10, 4),
220 g_date->DayInYear(5, 5) -
221 g_date->DayInYear())) {
228 SimpleEvent(g_date->OldDays() + g_date->DayInYear(10, 4),
235 g_date->DayInYear(1, 5) -
236 g_date->DayInYear())) {
248 g_date->DayInYear(15, 4) -
249 g_date->DayInYear())) {
255 int d1 = g_date->OldDays() + g_date->DayInYear(20, 4);
268 g_date->DayInYear(25, 5) -
269 g_date->DayInYear())) {
276 int d1 = g_date->Date() + 14;
277 if (d1 < g_date->OldDays() + g_date->DayInYear(17, 5)) {
278 d1 = g_date->OldDays() + g_date->DayInYear(17, 5);
290 SimpleEvent(g_date->OldDays() + g_date->DayInYear(1, 6),
292 SimpleEvent(g_date->OldDays() + g_date->DayInYear(1, 7),
298 g_date->DayInYear(15, 6) -
299 g_date->DayInYear())) {
308 SimpleEvent(g_date->OldDays() + g_date->DayInYear(1, 8),
317 g_date->DayInYear(15, 6) -
318 g_date->DayInYear())) {
328 SimpleEvent(g_date->OldDays() + g_date->DayInYear(1, 8),
337 g_date->DayInYear(30, 7) -
338 g_date->DayInYear())) {
349 SimpleEvent(g_date->OldDays() + g_date->DayInYear(1, 8),
359 g_date->DayInYear(30, 8) -
360 g_date->DayInYear())) {
366 SimpleEvent(g_date->OldDays() + g_date->DayInYear(10, 10),
371 if (
m_field->GetMConstants(0) == 0) {
373 g_msg->Warn(WARN_BUG,
"OFodderbeet::Do(): failure in 'Harvest' execution",
"");
388 g_msg->Warn(WARN_BUG,
"OFodderbeet::Do(): "
389 "Unknown event type! ",
"");
References Farm::AutumnPlough(), Crop::ChooseNextCrop(), Farm::DoIt(), Farm::FA_Manure(), Farm::FA_NPK(), Farm::FA_Slurry(), Farm::GetType(), Farm::Harvest(), 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, ofb_autumn_plough, OFB_DID_HARROW, OFB_DID_NPKS_ONE, OFB_DID_NPKS_TWO, OFB_DID_ROW_TWO, OFB_DID_SLURRY, OFB_DID_WATER_ONE, ofb_fertmanure, ofb_fertnpks_one, ofb_fertnpks_two, ofb_fertslurry, ofb_harvest, ofb_row_cultivation_one, ofb_row_cultivation_two, OFB_SOW_DATE, ofb_spring_harrow, ofb_spring_plough, ofb_spring_roll, ofb_spring_sow, ofb_start, ofb_start_threads_one, OFB_TRULY_DID_WATER_ONE, ofb_water_one, ofb_water_two, Farm::RowCultivation(), Crop::SimpleEvent(), Farm::SpringHarrow(), Farm::SpringPlough(), Farm::SpringRoll(), Farm::SpringSow(), tof_OptimisingFarm, and Farm::Water().
The documentation for this class was generated from the following files:
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
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
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
Definition: OFodderbeet.h:54
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
#define OFB_DID_NPKS_ONE
Definition: OFodderbeet.h:34
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: OFodderbeet.h:56
#define OFB_DID_NPKS_TWO
Definition: OFodderbeet.h:39
Definition: OFodderbeet.h:53
Definition: OFodderbeet.h:45
virtual bool FA_Manure(LE *a_field, double a_user, int a_days)
Spread manure on a_field owned by an stock farmer.
Definition: farmfuncs.cpp:1036
Definition: OFodderbeet.h:47
#define OFB_SOW_DATE
Definition: OFodderbeet.h:36
TTypesOfFarm GetType(void)
Definition: farm.h:901
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: OFodderbeet.h:48
void SimpleEvent(long a_date, int a_todo, bool a_lock)
Adds an event to this crop management.
Definition: farm.cpp:307
#define OFB_DID_ROW_TWO
Definition: OFodderbeet.h:38
#define OFB_DID_HARROW
Definition: OFodderbeet.h:33
Definition: OFodderbeet.h:52
#define OFB_DID_WATER_ONE
Definition: OFodderbeet.h:40
Definition: OFodderbeet.h:49
#define OFB_DID_SLURRY
Definition: OFodderbeet.h:35
Definition: OFodderbeet.h:44
Definition: OFodderbeet.h:57
Definition: OFodderbeet.h:59
Definition: OFodderbeet.h:46
Farm * m_farm
Definition: farm.h:537
LE * m_field
Definition: farm.h:538
int m_todo
Definition: farm.h:469
Definition: OFodderbeet.h:55
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 AutumnPlough(LE *a_field, double a_user, int a_days)
Carry out a ploughing event in the autumn on a_field.
Definition: farmfuncs.cpp:132
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
#define OFB_TRULY_DID_WATER_ONE
Definition: OFodderbeet.h:41
Definition: OFodderbeet.h:50
Definition: OFodderbeet.h:51
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: OFodderbeet.h:58
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