ALMaSS Skylark ODDox
1.1
The skylark model description following ODdox protocol
|
#include <MaizeSilage.h>
◆ MaizeSilage()
MaizeSilage::MaizeSilage |
( |
| ) |
|
|
inline |
◆ Do()
bool MaizeSilage::Do |
( |
Farm * |
a_farm, |
|
|
LE * |
a_field, |
|
|
FarmEvent * |
a_ev |
|
) |
| |
|
virtual |
Reimplemented from Crop.
53 m_field->SetMDates(0,0,g_date->DayInYear(1,9));
55 m_field->SetMDates(1,0,g_date->DayInYear(10,9));
56 m_field->SetMDates(0,1,g_date->DayInYear(15,9));
57 m_field->SetMDates(1,1,g_date->DayInYear(30,9));
73 g_msg->Warn( WARN_FILE,
"MaizeSilage::Do(): Harvest too late for the next crop to start!!! The next crop is: ", veg_type);
79 for (
int i=0; i<noDates; i++) {
93 int today=g_date->Date();
95 d1 = g_date->OldDays() + g_date->DayInYear( 1,7 );
99 g_msg->Warn( WARN_BUG,
"MaizeSilage::Do(): "
100 "Crop start attempt between 1st Jan & 1st July",
"" );
109 g_msg->Warn( WARN_BUG,
"MaizeSilage::Do(): "
110 "Crop start attempt after last possible start date",
"" );
117 SimpleEvent( g_date->OldDays() + g_date->DayInYear(25,4),
127 if ( g_date->Date() > d1 ) {
137 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 20, 3 ) + 365,
145 g_date->DayInYear( 30, 11 ) - g_date->DayInYear())) {
154 g_date->DayInYear( 30, 11 ) - g_date->DayInYear())) {
158 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 4 ) + 365,
164 g_date->DayInYear( 25, 4 ) - g_date->DayInYear())) {
169 d1 = g_date->OldDays() + g_date->DayInYear( 1, 4 );
170 if ( g_date->Date()+1 > d1 ) {
171 d1 = g_date->Date()+1;
179 g_date->DayInYear( 30, 4 ) - g_date->DayInYear())) {
188 g_date->DayInYear( 1, 5 ) - g_date->DayInYear())) {
197 g_date->DayInYear( 10, 5 ) - g_date->DayInYear())) {
202 d1 = g_date->OldDays() + g_date->DayInYear( 25, 4 );
203 if ( g_date->Date() > d1 ) {
212 g_date->DayInYear( 15, 5 ) - g_date->DayInYear())) {
222 g_date->DayInYear( 20, 5 ) - g_date->DayInYear())) {
228 d1 = g_date->OldDays() + g_date->DayInYear( 1, 5 );
236 d1 = g_date->OldDays() + g_date->DayInYear( 2, 5 );
251 Field * pf = dynamic_cast<Field*>(
m_field);
252 pf->Add_missed_herb_app();
253 if(
m_farm->
DoIt(59)) pf->Add_missed_herb_app();
264 d1 = g_date->OldDays() + g_date->DayInYear( 1, 5 );
274 g_date->DayInYear( 25, 5 ) - g_date->DayInYear())) {
279 d1 = g_date->OldDays() + g_date->DayInYear( 1, 5 );
289 g_date->DayInYear( 25, 5 ) - g_date->DayInYear())) {
295 d1 = g_date->OldDays() + g_date->DayInYear( 10, 5 );
303 d1 = g_date->OldDays() + g_date->DayInYear( 21, 5 );
304 if ( g_date->Date() + 1 > d1 ) {
305 d1 = g_date->Date() + 1;
315 g_date->DayInYear( 5, 6 ) - g_date->DayInYear())) {
320 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 7 ),
326 g_date->DayInYear( 20, 6 ) - g_date->DayInYear())) {
330 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 7 ),
337 g_date->DayInYear( 15, 7 ) - g_date->DayInYear())) {
343 d1 = g_date->OldDays() + g_date->DayInYear( 16, 7 );
344 if ( g_date->Date() + 7 > d1 ) {
345 d1 = g_date->Date() + 7;
353 g_date->DayInYear( 30, 7 ) - g_date->DayInYear())) {
359 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 9 ),
364 if (
m_field->GetMConstants(0)==0) {
366 g_msg->Warn( WARN_BUG,
"MaizeSilage::Do(): failure in 'Harvest' execution",
"" );
377 d1 = g_date->OldDays() +
m_field->GetMDates(0,1);
378 if ( g_date->Date() > d1 ) {
387 if (
m_field->GetMConstants(1)==0) {
389 g_msg->Warn( WARN_BUG,
"MaizeSilage::Do(): failure in 'StubbleHarrowing' execution",
"" );
400 d1=g_date->DayInYear();
405 g_msg->Warn( WARN_BUG,
"MaizeSilage::Do(): "
406 "Unknown event type! ",
"" );
References Farm::AutumnPlough(), cfg_herbi_app_prop, Crop::ChooseNextCrop(), Farm::DoIt(), Farm::FA_Manure(), Farm::FA_NPK(), Farm::FA_Slurry(), Farm::GetType(), Farm::Harvest(), 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_next_tov, FarmEvent::m_startday, FarmEvent::m_todo, MAIZESILAGE_HERBI_ONE_DATE, MAIZESILAGE_SOW_DATE, ms_autumn_plough, ms_fa_manure_a, ms_fa_manure_b, ms_fa_npk, ms_fa_slurry_one, ms_fa_slurry_two, ms_harvest, ms_herbi_one, ms_herbi_two, ms_row_one, ms_row_two, ms_spring_harrow, ms_spring_plough, ms_spring_sow, ms_start, ms_stubble, ms_water_one, ms_water_two, Farm::Prob_multiplier(), Farm::RowCultivation(), Crop::SimpleEvent(), Farm::Spraying_herbicides(), Farm::SpringHarrow(), Farm::SpringPlough(), Farm::SpringSow(), Farm::StubbleHarrowing(), tof_OptimisingFarm, and Farm::Water().
The documentation for this class was generated from the following files:
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 MAIZESILAGE_SOW_DATE
Definition: MaizeSilage.h:32
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
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
bool DoIt(double a_probability)
Return chance out of 0 to 100.
Definition: farm.cpp:800
Definition: MaizeSilage.h:48
bool m_first_year
Definition: farm.h:467
Definition: MaizeSilage.h:39
Definition: MaizeSilage.h:52
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
CfgFloat cfg_herbi_app_prop
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: MaizeSilage.h:53
Definition: MaizeSilage.h:51
Definition: MaizeSilage.h:46
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
virtual bool Spraying_herbicides(TTypesOfVegetation)
Definition: farm.h:784
Definition: MaizeSilage.h:47
Definition: MaizeSilage.h:42
Definition: MaizeSilage.h:36
Definition: MaizeSilage.h:38
TTypesOfVegetation m_next_tov
Definition: farm.h:471
Farm * m_farm
Definition: farm.h:537
LE * m_field
Definition: farm.h:538
#define MAIZESILAGE_HERBI_ONE_DATE
Definition: MaizeSilage.h:33
Definition: MaizeSilage.h:37
int m_todo
Definition: farm.h:469
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
Definition: MaizeSilage.h:40
Definition: MaizeSilage.h:41
Definition: MaizeSilage.h:49
Definition: MaizeSilage.h:43
Definition: MaizeSilage.h:44
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: MaizeSilage.h:45
Definition: MaizeSilage.h:50
virtual bool StubbleHarrowing(LE *a_field, double a_user, int a_days)
Carry out stubble harrowing on a_field.
Definition: farmfuncs.cpp:2209
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