ALMaSS Skylark ODDox
1.1
The skylark model description following ODdox protocol
|
#include <winterrape.h>
◆ WinterRape()
WinterRape::WinterRape |
( |
| ) |
|
|
inline |
◆ Do()
bool WinterRape::Do |
( |
Farm * |
a_farm, |
|
|
LE * |
a_field, |
|
|
FarmEvent * |
a_ev |
|
) |
| |
|
virtual |
Reimplemented from Crop.
76 m_field->SetMDates(0,0,g_date->DayInYear(1,8));
78 m_field->SetMDates(1,0,g_date->DayInYear(1,8));
79 m_field->SetMDates(0,1,g_date->DayInYear(25,7));
80 m_field->SetMDates(1,1,g_date->DayInYear(15,8));
81 m_field->SetMDates(0,2,g_date->DayInYear(1,8));
82 m_field->SetMDates(1,2,g_date->DayInYear(15,10));
94 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): "
95 "Harvest too late for the next crop to start!!!",
"" );
99 for (
int i=0; i<noDates; i++) {
113 d1 = g_date->OldDays() + g_date->DayInYear( 1,7 );
114 if (g_date->Date() < d1) {
116 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): "
117 "Crop start attempt between 1st Jan & 1st July",
"" );
123 if (g_date->Date() > d1) {
125 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): "
126 "Crop start attempt after last possible start date",
"" );
134 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 5,7 )
142 d1 = g_date->OldDays() + g_date->DayInYear( 21,8 );
143 if ( g_date->Date() > d1 ) {
155 if (g_date->Date() >= d1) d1 += 365;
180 g_date->DayInYear( 24, 8 ) - g_date->DayInYear())) {
186 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 8 ),
193 g_date->DayInYear( 25, 8 ) - g_date->DayInYear())) {
202 g_date->DayInYear( 25, 8 ) - g_date->DayInYear()))
208 long newdate1 = g_date->OldDays() + g_date->DayInYear( 10, 8 );
209 long newdate2 = g_date->Date();
210 if ( newdate2 > newdate1 ) newdate1 = newdate2;
216 g_date->DayInYear( 25, 8 ) - g_date->DayInYear())) {
220 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 9 ),
226 g_date->DayInYear( 30, 9 ) - g_date->DayInYear()))
233 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 9 ),
243 g_date->DayInYear( 15, 4 ) - g_date->DayInYear())) {
247 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 20, 4 ),
254 g_date->DayInYear( 1, 5 ) - g_date->DayInYear())) {
262 g_date->DayInYear( 30, 4 ) - g_date->DayInYear())) {
266 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,4 ),
272 g_date->DayInYear( 30,4 ) - g_date->DayInYear())) {
281 g_date->DayInYear( 5, 4 ) - g_date->DayInYear())) {
293 Field * pf = dynamic_cast<Field*>(
m_field);
294 pf->Add_missed_fi_app();
295 if (
m_farm->
DoIt(30)) pf->Add_missed_fi_app();
296 if (
m_farm->
DoIt(12)) pf->Add_missed_fi_app();
312 long newdate1 = g_date->OldDays() + g_date->DayInYear(1, 5);
313 long newdate2 = g_date->Date() + 7;
314 if (newdate2 > newdate1)
345 g_date->DayInYear(30, 5) - g_date->DayInYear())) {
352 long newdate1 = g_date->OldDays() + g_date->DayInYear(20, 6);
353 long newdate2 = g_date->Date() + 7;
354 if (newdate2 > newdate1) newdate1 = newdate2;
382 g_date->DayInYear(1, 7) - g_date->DayInYear())) {
411 Field * pf = dynamic_cast<Field*>(
m_field);
412 pf->Add_missed_fi_app();
417 g_date->DayInYear( 1, 6 ) - g_date->DayInYear())) {
434 g_date->DayInYear( 1, 5 ) - g_date->DayInYear())) {
445 g_date->DayInYear( 25, 7 ) - g_date->DayInYear())) {
452 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 10, 7 ),
458 if (
m_field->GetMConstants(1)==0) {
460 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): failure in 'Harvest' execution",
"" );
469 if (EndDate>
m_field->GetMDates(0,1)) EndDate=
m_field->GetMDates(0,1);
471 else EndDate=g_date->DayInYear( 1, 8 );
473 EndDate - g_date->DayInYear()))
489 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 10, 7 ),
492 else SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25, 7 ),
499 g_date->DayInYear( 1, 8 ) - g_date->DayInYear())) {
503 if (g_date->DayInYear()<g_date->DayInYear(15,7))
504 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 7 ),
511 g_date->DayInYear( 1, 8 ) - g_date->DayInYear())) {
515 if (g_date->DayInYear()<g_date->DayInYear(15,7))
516 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 7 ),
524 if (
m_field->GetMConstants(1)==0) {
526 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): failure in 'StubbleHarrowing' execution",
"" );
542 if (
m_field->GetMConstants(2)==0) {
544 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): failure in 'DeepPlough' execution",
"" );
570 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): "
571 "Unknown event type! ",
"" );
References Farm::AutumnHarrow(), Farm::AutumnPlough(), Farm::AutumnSow(), cfg_fungi_app_prop1, cfg_herbi_app_prop, cfg_ins_app_prop1, cfg_ins_app_prop2, cfg_ins_app_prop3, cfg_OSR_InsecticideDay, cfg_OSR_InsecticideMonth, cfg_pest_product_1_amount, cfg_pest_productapplic_period, cfg_pest_productapplic_startdate, cfg_pest_winterrape_on, Crop::ChooseNextCrop(), Farm::DeepPlough(), Farm::DoIt(), Farm::FA_Manure(), Farm::FP_NPKS(), Farm::FP_Slurry(), Farm::FungicideTreat(), g_landscape_p, Farm::GetType(), Farm::Harvest(), Farm::HayBailing(), Farm::HerbicideTreat(), HerbiZero(), Farm::InsecticideTreat(), Farm::IsStockFarmer(), 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, ppp_1, Farm::Prob_multiplier(), Farm::ProductApplication(), Farm::ProductApplication_DateLimited(), RowcolOne(), Farm::RowCultivation(), Crop::SimpleEvent(), Farm::Spraying_fungins(), Farm::StrawChopping(), Farm::StubbleHarrowing(), Landscape::SupplyShouldSpray(), Farm::Swathing(), tof_OptimisingFarm, wr_autumn_harrow, wr_autumn_plough, wr_autumn_sow, wr_compress, wr_cuttostraw, WR_DID_HERBI_ZERO, WR_DID_RC_CLEAN, wr_ferti_p1, wr_ferti_p2, wr_ferti_s1, wr_ferti_s2, wr_ferti_zero, WR_FUNGI_DATE, wr_fungi_one, wr_grubbing, wr_harvest, WR_HARVEST_DATE, wr_herbi_one, wr_herbi_zero, WR_INSECT_DATE, wr_insect_one, wr_insect_one_b, wr_insect_one_c, wr_productapplic_one, wr_rowcol_clean, wr_rowcol_one, wr_rowcol_one_b, wr_start, wr_stub_harrow, wr_swarth, and WR_SWARTH_DATE.
◆ HerbiZero()
void WinterRape::HerbiZero |
( |
void |
| ) |
|
|
private |
614 Field * pf = dynamic_cast<Field*>(
m_field);
615 pf->Add_missed_herb_app();
616 if(
m_farm->
DoIt(45)) pf->Add_missed_herb_app();
622 g_date->DayInYear( 5, 10 ) - g_date->DayInYear())) {
633 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,3 )+365,
635 else SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,4 )+365,
638 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15,3 )+365,
640 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15,4 )+365,
642 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 20,5 )+365,
644 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15,4 )+365,
648 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 5,7 )+365,
References cfg_herbi_app_prop, Farm::DoIt(), Farm::HerbicideTreat(), Farm::IsStockFarmer(), Crop::m_ev, Crop::m_farm, Crop::m_field, FarmEvent::m_lock, Farm::Prob_multiplier(), Crop::SimpleEvent(), Farm::Spraying_herbicides(), WR_DID_HERBI_ZERO, WR_DID_RC_CLEAN, wr_ferti_p1, wr_ferti_s1, wr_fungi_one, wr_herbi_one, wr_herbi_zero, wr_insect_one, wr_rowcol_one, and wr_swarth.
Referenced by Do().
◆ RowcolOne()
void WinterRape::RowcolOne |
( |
void |
| ) |
|
|
private |
587 g_date->DayInYear( 25, 4 ) - g_date->DayInYear())) {
593 long newdate1 = g_date->OldDays() + g_date->DayInYear( 25, 4 );
594 long newdate2 = g_date->Date() + 5;
595 if ( newdate2 > newdate1 )
References Farm::DoIt(), Crop::m_ev, Crop::m_farm, Crop::m_field, FarmEvent::m_lock, Farm::RowCultivation(), Crop::SimpleEvent(), WR_INSECT_DATE, wr_rowcol_one, and wr_rowcol_one_b.
Referenced by Do().
The documentation for this class was generated from the following files:
Definition: winterrape.h:71
Definition: winterrape.h:60
Definition: winterrape.h:77
CfgInt cfg_OSR_InsecticideDay
CfgFloat cfg_ins_app_prop1
virtual bool HerbicideTreat(LE *a_field, double a_user, int a_days)
Apply herbicide to a_field.
Definition: farmfuncs.cpp:1156
bool IsStockFarmer(void)
Definition: farm.h:905
Definition: winterrape.h:63
Landscape * g_landscape_p
Definition: Landscape.cpp:258
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 WR_DID_HERBI_ZERO
Definition: winterrape.h:46
virtual bool ProductApplication(LE *a_field, double a_user, int a_days, double a_applicationrate, PlantProtectionProducts a_ppp)
Apply test pesticide to a_field.
Definition: farmfuncs.cpp:1445
bool SupplyShouldSpray()
Definition: Landscape.h:357
Definition: winterrape.h:62
bool DoIt(double a_probability)
Return chance out of 0 to 100.
Definition: farm.cpp:800
CfgBool cfg_pest_winterrape_on
Definition: winterrape.h:70
bool m_first_year
Definition: farm.h:467
void RowcolOne(void)
Definition: winterrape.cpp:578
Definition: winterrape.h:53
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_fungi_app_prop1
CfgInt cfg_pest_productapplic_startdate
Definition: winterrape.h:59
CfgFloat cfg_pest_product_1_amount
TTypesOfFarm GetType(void)
Definition: farm.h:901
virtual bool ProductApplication_DateLimited(LE *a_field, double, int, double a_applicationrate, PlantProtectionProducts a_ppp)
Special pesticide trial functionality.
Definition: farmfuncs.cpp:2396
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: winterrape.h:58
void SimpleEvent(long a_date, int a_todo, bool a_lock)
Adds an event to this crop management.
Definition: farm.cpp:307
Definition: winterrape.h:73
void HerbiZero(void)
Definition: winterrape.cpp:605
Definition: winterrape.h:76
virtual double Prob_multiplier()
Definition: farm.h:786
virtual bool AutumnSow(LE *a_field, double a_user, int a_days)
Carry out a sowing event in the autumn on a_field.
Definition: farmfuncs.cpp:364
TTypesOfVegetation
Definition: tov_declaration.h:30
Definition: winterrape.h:68
virtual bool Spraying_herbicides(TTypesOfVegetation)
Definition: farm.h:784
virtual bool HayBailing(LE *a_field, double a_user, int a_days)
Carry out hay bailing on a_field.
Definition: farmfuncs.cpp:2184
Definition: winterrape.h:55
CfgFloat cfg_herbi_app_prop
virtual bool StrawChopping(LE *a_field, double a_user, int a_days)
Carry out straw chopping on a_field.
Definition: farmfuncs.cpp:2132
CfgFloat cfg_ins_app_prop3
#define WR_FUNGI_DATE
Definition: winterrape.h:48
CfgInt cfg_OSR_InsecticideMonth
Definition: winterrape.h:67
Definition: winterrape.h:61
Definition: winterrape.h:65
Farm * m_farm
Definition: farm.h:537
LE * m_field
Definition: farm.h:538
CfgInt cfg_pest_productapplic_period
int m_todo
Definition: farm.h:469
Definition: winterrape.h:66
virtual bool InsecticideTreat(LE *a_field, double a_user, int a_days)
Apply insecticide to a_field.
Definition: farmfuncs.cpp:1348
virtual bool FP_Slurry(LE *a_field, double a_user, int a_days)
Apply slurry to a_field owned by an arable farmer.
Definition: farmfuncs.cpp:701
#define WR_DID_RC_CLEAN
Definition: winterrape.h:45
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
CfgFloat cfg_ins_app_prop2
int m_last_date
Definition: farm.h:542
Definition: winterrape.h:72
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
Definition: winterrape.h:56
virtual bool AutumnHarrow(LE *a_field, double a_user, int a_days)
Carry out a harrow event in the autumn on a_field.
Definition: farmfuncs.cpp:261
#define WR_SWARTH_DATE
Definition: winterrape.h:49
Definition: winterrape.h:74
Definition: winterrape.h:64
virtual bool DeepPlough(LE *a_field, double a_user, int a_days)
Carry out a deep ploughing event on a_field.
Definition: farmfuncs.cpp:417
#define WR_INSECT_DATE
Definition: winterrape.h:47
Definition: winterrape.h:75
Definition: winterrape.h:57
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
Definition: winterrape.h:69
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: winterrape.h:54
#define WR_HARVEST_DATE
Definition: winterrape.h:50
virtual bool Spraying_fungins(TTypesOfVegetation)
Definition: farm.h:785
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 FP_NPKS(LE *a_field, double a_user, int a_days)
Apply NPKS fertilizer, on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:602