43 #include "../../Landscape/ls.h"
44 #include "../../Landscape/cropprogs/NLMaize.h"
81 a_field->SetMDates(0, 0, g_date->DayInYear(5, 10));
82 a_field->SetMDates(1, 0, g_date->DayInYear(10, 10));
85 a_field->SetMConstants(0, 1);
95 if (a_ev->
m_startday > g_date->DayInYear(1, 7)) {
96 if (a_field->GetMDates(0, 0) >= a_ev->
m_startday)
98 g_msg->Warn(WARN_BUG,
"NLMaize::Do(): ",
"Harvest too late for the next crop to start!!!");
100 g_msg->Warn(
"Next Crop ", (
double)almassnum);
103 for (
int i = 0; i < noDates; i++) {
104 if (a_field->GetMDates(0, i) >= a_ev->
m_startday) {
105 a_field->SetMDates(0, i, a_ev->
m_startday - 1);
107 if (a_field->GetMDates(1, i) >= a_ev->
m_startday) {
108 a_field->SetMConstants(i, 0);
109 a_field->SetMDates(1, i, a_ev->
m_startday - 1);
117 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
118 if (g_date->Date() < d1) {
120 printf(
"Poly: %d\n", a_field->GetPoly());
121 g_msg->Warn(WARN_BUG,
"NLMaize::Do(): ",
"Crop start attempt between 1st Jan & 1st July");
123 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
125 g_msg->Warn(
"Next Crop ", (
double)almassnum);
130 if (g_date->Date() > d1) {
132 g_msg->Warn(WARN_BUG,
"NLMaize::Do(): ",
"Crop start attempt after last possible start date");
134 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
136 g_msg->Warn(
"Next Crop ", (
double)almassnum);
152 d1 = g_date->OldDays() + g_date->DayInYear(1, 9);
155 if (a_field->GetSoilType() == 2 || a_field->GetSoilType() == 6) {
166 if (!a_farm->
StubbleHarrowing(a_field, 0.0, g_date->DayInYear(31, 10) - g_date->DayInYear())) {
171 d1 = g_date->Date() + 10;
172 if (d1 < g_date->OldDays() + g_date->DayInYear(15, 10)) {
173 d1 = g_date->OldDays() + g_date->DayInYear(15, 10);
180 if (!a_farm->
WinterPlough(a_field, 0.0, g_date->DayInYear(1, 12) - g_date->DayInYear())) {
192 if (a_ev->
m_lock || a_farm->DoIt_prob(0.20))
194 if (!a_farm->StubbleHarrowing(a_field, 0.0, g_date->DayInYear(31, 10) - g_date->DayInYear())) {
199 d1 = g_date->Date() + 10;
200 if (d1 < g_date->OldDays() + g_date->DayInYear(15, 11)) {
201 d1 = g_date->OldDays() + g_date->DayInYear(15, 11);
206 if (a_ev->
m_lock || a_farm->DoIt_prob(1.00))
208 if (!a_farm->WinterPlough(a_field, 0.0, g_date->DayInYear(1, 12) - g_date->DayInYear())) {
213 if (a_farm->IsStockFarmer())
220 if (!a_farm->FP_Slurry(a_field, 0.0, g_date->DayInYear(25, 4) - g_date->DayInYear())) {
224 if (a_field->GetSoilType() == 2 || a_field->GetSoilType() == 6) {
230 if (!a_farm->FA_Slurry(a_field, 0.0, g_date->DayInYear(25, 4) - g_date->DayInYear())) {
234 if (a_field->GetSoilType() == 2 || a_field->GetSoilType() == 6) {
240 if (a_ev->
m_lock || a_farm->DoIt_prob(0.20))
242 if (!a_farm->SpringPlough(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
250 if (a_ev->
m_lock || a_farm->DoIt_prob(0))
252 if (!a_farm->SpringPlough(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
260 if (!a_farm->PreseedingCultivator(a_field, 0.0, g_date->DayInYear(4, 5) - g_date->DayInYear())) {
268 if (a_ev->
m_lock || a_farm->DoIt_prob(0.75))
270 if (!a_farm->SpringSowWithFerti(a_field, 0.0, g_date->DayInYear(5, 5) - g_date->DayInYear())) {
281 if (a_farm->IsStockFarmer())
292 if (!a_farm->SpringSow(a_field, 0.0, g_date->DayInYear(5, 5) - g_date->DayInYear())) {
299 if (a_farm->IsStockFarmer())
309 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
319 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
328 if (a_field->GetGreenBiomass() <= 0)
334 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
336 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->DayInYear(25, 5) - g_date->DayInYear())) {
346 if (a_ev->
m_lock || a_farm->DoIt_prob(0.15))
348 if (a_field->GetGreenBiomass() <= 0)
350 if (!a_farm->ShallowHarrow(a_field, 0.0, g_date->DayInYear(15, 5) - g_date->DayInYear())) {
362 if (!a_farm->Harvest(a_field, 0.0, a_field->GetMDates(0, 0) - g_date->DayInYear())) {
369 if (a_field->GetMConstants(0) == 0) {
370 if (!a_farm->StrawChopping(a_field, 0.0, -1)) {
371 g_msg->Warn(WARN_BUG,
"NLMaize::Do(): failure in 'StrawChopping' execution",
"");
376 if (!a_farm->StrawChopping(a_field, 0.0, a_field->GetMDates(1, 0) - g_date->DayInYear())) {
386 g_msg->Warn(WARN_BUG,
"NLMaize::Do(): "
387 "Unknown event type! ",
"");