73 #include "../../Landscape/ls.h"
74 #include "../../Landscape/cropprogs/WinterWheat.h"
120 a_field->m_skylarkscrapes =
true;
123 a_field->m_skylarkscrapes =
false;
131 a_field->SetMDates(0, 0, g_date->DayInYear(20, 8));
133 a_field->SetMDates(1, 0, g_date->DayInYear(20, 8));
134 a_field->SetMDates(0, 1, 0);
135 a_field->SetMDates(1, 1, g_date->DayInYear(20, 8));
136 a_field->SetMDates(0, 2, g_date->DayInYear(5, 8));
137 a_field->SetMDates(1, 2, g_date->DayInYear(20, 8));
138 a_field->SetMDates(0, 3, g_date->DayInYear(10, 8));
139 a_field->SetMDates(1, 3, g_date->DayInYear(20, 8));
140 a_field->SetMDates(0, 4, g_date->DayInYear(15, 8));
141 a_field->SetMDates(1, 4, g_date->DayInYear(20, 8));
145 a_field->SetMConstants(0, 1);
155 if (a_ev->
m_startday > g_date->DayInYear(1, 7)) {
156 if (a_field->GetMDates(0, 0) >= a_ev->
m_startday)
158 g_msg->Warn(WARN_BUG,
"WinterWheat::Do(): ",
"Harvest too late for the next crop to start!!!");
160 g_msg->Warn(
"Next Crop ", (
double)almassnum);
163 for (
int i = 0; i < noDates; i++) {
164 if (a_field->GetMDates(0, i) >= a_ev->
m_startday) {
165 a_field->SetMDates(0, i, a_ev->
m_startday - 1);
167 if (a_field->GetMDates(1, i) >= a_ev->
m_startday) {
168 a_field->SetMConstants(i, 0);
169 a_field->SetMDates(1, i, a_ev->
m_startday - 1);
177 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
178 if (g_date->Date() < d1) {
180 printf(
"Poly: %d\n", a_field->GetPoly());
181 g_msg->Warn(WARN_BUG,
"WinterWheat::Do(): ",
"Crop start attempt between 1st Jan & 1st July");
183 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
185 g_msg->Warn(
"Next Crop ", (
double)almassnum);
189 if (g_date->Date() > d1) {
191 g_msg->Warn(WARN_BUG,
"WinterWheat::Do(): ",
"Crop start attempt after last possible start date");
192 g_msg->Warn(WARN_BUG,
"Previous Crop ",
"");
193 a_field->GetOwner()->GetPreviousCrop(a_field->GetRotIndex());
195 g_msg->Warn(
"Next Crop ", (
double)almassnum);
209 d1 = g_date->OldDays() + g_date->DayInYear(21, 8);
230 if (!a_farm->
FP_Slurry(a_field, 0.0, g_date->DayInYear(1, 10) - g_date->DayInYear())) {
240 if (!a_farm->
FA_Slurry(a_field, 0.0, g_date->DayInYear(1, 10) - g_date->DayInYear())) {
251 g_date->DayInYear(1, 10) - g_date->DayInYear())) {
275 if (!a_farm->
AutumnPlough(a_field, 0.0, g_date->DayInYear(1, 10) - g_date->DayInYear())) {
293 g_date->DayInYear(10, 10) - g_date->DayInYear())) {
297 SimpleEvent(g_date->OldDays() + g_date->DayInYear(10, 9),
301 if (!a_farm->
StubbleHarrowing(a_field, 0.0, g_date->DayInYear(10, 10) - g_date->DayInYear())) {
305 SimpleEvent(g_date->OldDays() + g_date->DayInYear(10, 9),
310 g_date->DayInYear(20, 10) - g_date->DayInYear())) {
321 g_date->DayInYear(27, 10) - g_date->DayInYear())) {
326 SimpleEvent(g_date->OldDays() + g_date->DayInYear(15, 9),
333 if (a_field->GetVegBiomass() > 0)
337 g_date->DayInYear(30, 10) - g_date->DayInYear()))
344 SimpleEvent(g_date->OldDays() + g_date->DayInYear(20, 9),
353 Field * pf = dynamic_cast<Field*>(a_field);
354 pf->Add_missed_herb_app();
355 if (a_farm->
DoIt(69)) pf->Add_missed_herb_app();
359 if (!a_farm->
HerbicideTreat(a_field, 0.0, g_date->DayInYear(5, 10) - g_date->DayInYear())) {
365 SimpleEvent(g_date->OldDays() + g_date->DayInYear(1, 4) + 365,
372 g_date->DayInYear(30, 4) - g_date->DayInYear())) {
389 SimpleEvent(g_date->OldDays() + g_date->DayInYear(15, 4),
391 SimpleEvent(g_date->OldDays() + g_date->DayInYear(25, 4),
393 SimpleEvent(g_date->OldDays() + g_date->DayInYear(20, 4),
397 SimpleEvent(g_date->OldDays() + g_date->DayInYear(10, 4),
399 SimpleEvent(g_date->OldDays() + g_date->DayInYear(1, 5),
406 g_date->DayInYear(30, 4) - g_date->DayInYear())) {
417 g_date->DayInYear(10, 5) - g_date->DayInYear())) {
430 Field * pf = dynamic_cast<Field*>(a_field);
431 pf->Add_missed_fi_app();
432 if (a_farm->
DoIt(35)) pf->Add_missed_fi_app();
436 if (!a_farm->
FungicideTreat(a_field, 0.0, g_date->DayInYear(10, 5) - g_date->DayInYear())) {
450 Field * pf = dynamic_cast<Field*>(a_field);
451 pf->Add_missed_fi_app();
452 if (a_farm->
DoIt(35)) pf->Add_missed_fi_app();
456 if (!a_farm->
FungicideTreat(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
470 Field * pf = dynamic_cast<Field*>(a_field);
471 pf->Add_missed_fi_app();
472 if (a_farm->
DoIt(8)) pf->Add_missed_fi_app();
473 if (a_farm->
DoIt(14)) pf->Add_missed_fi_app();
480 if (!a_farm->
InsecticideTreat(a_field, 0.0, g_date->DayInYear(15, 5) - g_date->DayInYear())) {
499 if (!a_farm->
InsecticideTreat(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear()))
509 if ((g_date->Date() + 7) < (g_date->OldDays() + g_date->DayInYear(15, 6)))
519 if (!a_farm->
InsecticideTreat(a_field, 0.0, g_date->DayInYear(30, 6) - g_date->DayInYear())) {
534 g_date->DayInYear(25, 4) - g_date->DayInYear())) {
539 if ((g_date->Date() + 7) < (g_date->OldDays() + g_date->DayInYear(15, 6)))
540 SimpleEvent(g_date->OldDays() + g_date->DayInYear(25, 4),
547 if (!a_farm->
Strigling(a_field, 0.0, g_date->DayInYear(5, 5) - g_date->DayInYear())) {
556 if (!a_farm->
Water(a_field, 0.0, g_date->DayInYear(15, 5) - g_date->DayInYear())) {
561 if ((g_date->Date() + 5) < (g_date->OldDays() + g_date->DayInYear(2, 5)))
567 if (!a_farm->
Water(a_field, 0.0, g_date->DayInYear(1, 6) - g_date->DayInYear())) {
574 if (!a_farm->
FP_NPK(a_field, 0.0, g_date->DayInYear(15, 4) - g_date->DayInYear())) {
585 if (!a_farm->
FP_NPK(a_field, 0.0, g_date->DayInYear(15, 5) - g_date->DayInYear())) {
601 if (!a_farm->
FP_ManganeseSulphate(a_field, 0.0, g_date->DayInYear(5, 5) - g_date->DayInYear())) {
608 if (!a_farm->
FA_Slurry(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
621 if (!a_farm->
FA_NPK(a_field, 0.0, g_date->DayInYear(20, 4) - g_date->DayInYear())) {
631 if (!a_farm->
FA_NPK(a_field, 0.0, g_date->DayInYear(1, 5) - g_date->DayInYear())) {
638 if (!a_farm->
Harvest(a_field, 0.0, g_date->DayInYear(20, 8) - g_date->DayInYear()))
648 if (a_field->GetMConstants(0) == 0) {
650 g_msg->Warn(WARN_BUG,
"WinterWheat::Do(): failure in 'StrawChopping' execution",
"");
655 if (!a_farm->
StrawChopping(a_field, 0.0, a_field->GetMDates(1, 0) - g_date->DayInYear())) {
671 if (a_field->GetMConstants(1) == 0) {
673 g_msg->Warn(WARN_BUG,
"WinterWheat::Do(): failure in 'HayTurning' execution",
"");
678 if (!a_farm->
HayTurning(a_field, 0.0, a_field->GetMDates(1, 1) - g_date->DayInYear())) {
687 if (a_field->GetMConstants(2) == 0) {
689 g_msg->Warn(WARN_BUG,
"WinterWheat::Do(): failure in 'HayBailing' execution",
"");
694 if (!a_farm->
HayBailing(a_field, 0.0, a_field->GetMDates(1, 2) - g_date->DayInYear())) {
704 if (a_field->GetMConstants(3) == 0) {
706 g_msg->Warn(WARN_BUG,
"WinterWheat::Do(): failure in 'StubbleHarrowing' execution",
"");
711 if (!a_farm->
StubbleHarrowing(a_field, 0.0, a_field->GetMDates(1, 3) - g_date->DayInYear())) {
721 if (a_field->GetMConstants(4) == 0) {
723 g_msg->Warn(WARN_BUG,
"WinterWheat::Do(): failure in 'DeepPlough' execution",
"");
728 if (!a_farm->
DeepPlough(a_field, 0.0, a_field->GetMDates(1, 4) - g_date->DayInYear())) {
739 g_msg->Warn(WARN_BUG,
"WinterWheat::Do(): "
740 "Unknown event type! ",
"");