26 #define _CRT_SECURE_NO_DEPRECATE
27 #include "../../BatchALMaSS/ALMaSS_Setup.h"
28 #include "../../Landscape/ls.h"
29 #include "../../Landscape/cropprogs/DummyCropPestTesting.h"
30 #include "../../BatchALMaSS/BoostRandomGenerators.h"
33 extern boost::variate_generator<base_generator_type&, boost::uniform_real<> >
g_rand_uni;
61 a_field->SetMDates(0, 0, g_date->DayInYear(15, 11));
62 a_field->SetMDates(1, 0, g_date->DayInYear(15, 11));
64 a_field->SetMConstants(0, 1);
74 if (a_ev->
m_startday > g_date->DayInYear(1, 7)) {
75 if (a_field->GetMDates(0, 0) >= a_ev->
m_startday)
77 g_msg->Warn(WARN_BUG,
"PLSpringBarleySpr::Do(): ",
"Harvest too late for the next crop to start!!!");
79 g_msg->Warn(
"Next Crop ", (
double)almassnum);
82 for (
int i = 0; i < noDates; i++) {
83 if (a_field->GetMDates(0, i) >= a_ev->
m_startday) {
84 a_field->SetMDates(0, i, a_ev->
m_startday - 1);
86 if (a_field->GetMDates(1, i) >= a_ev->
m_startday) {
87 a_field->SetMConstants(i, 0);
88 a_field->SetMDates(1, i, a_ev->
m_startday - 1);
95 int today = g_date->Date();
96 d1 = g_date->OldDays() + m_first_date + 365;
99 g_msg->Warn(WARN_BUG,
"PLSpringBarleySpr::Do(): " "Crop start attempt after last possible start date",
"");
104 SimpleEvent_(g_date->OldDays() + g_date->DayInYear(1, 3),
dcpt_March_pest1,
false, a_farm, a_field);
112 d1 = g_date->OldDays() + 365 + g_date->DayInYear(1, 3);
123 if (!a_farm->
InsecticideTreat(a_field, 0.0, g_date->DayInYear(31, 3) - g_date->DayInYear())) {
128 SimpleEvent_(g_date->OldDays() + g_date->DayInYear(1, 4),
dcpt_April_pest1,
false, a_farm, a_field);
131 if (a_ev->
m_lock || a_farm->DoIt(29))
133 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
139 SimpleEvent_(g_date->Date() + 10,
dcpt_April_pest2,
false, a_farm, a_field);
144 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
149 SimpleEvent_(g_date->OldDays() + g_date->DayInYear(1, 5),
dcpt_May_pest1,
false, a_farm, a_field);
152 if (a_ev->
m_lock || a_farm->DoIt(22))
154 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(31, 5) - g_date->DayInYear())) {
155 SimpleEvent_(g_date->Date() + 1,
dcpt_May_pest1,
true, a_farm, a_field);
160 SimpleEvent_(g_date->Date() + 10,
dcpt_May_pest2,
false, a_farm, a_field);
165 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(31, 5) - g_date->DayInYear())) {
166 SimpleEvent_(g_date->Date() + 1,
dcpt_May_pest2,
true, a_farm, a_field);
170 SimpleEvent_(g_date->OldDays() + g_date->DayInYear(1, 6),
dcpt_June_pest1,
false, a_farm, a_field);
173 if (a_ev->
m_lock || a_farm->DoIt(12))
175 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(30, 6) - g_date->DayInYear())) {
176 SimpleEvent_(g_date->Date() + 1,
dcpt_June_pest1,
true, a_farm, a_field);
181 SimpleEvent_(g_date->Date() + 10,
dcpt_June_pest2,
false, a_farm, a_field);
186 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(30, 6) - g_date->DayInYear())) {
187 SimpleEvent_(g_date->Date() + 1,
dcpt_June_pest2,
true, a_farm, a_field);
191 SimpleEvent_(g_date->OldDays() + g_date->DayInYear(1, 7),
dcpt_July_pest1,
false, a_farm, a_field);
194 if (a_ev->
m_lock || a_farm->DoIt(0))
196 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(31, 7) - g_date->DayInYear())) {
197 SimpleEvent_(g_date->Date() + 1,
dcpt_July_pest1,
true, a_farm, a_field);
202 SimpleEvent_(g_date->Date() + 10,
dcpt_July_pest2,
false, a_farm, a_field);
207 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(31, 7) - g_date->DayInYear())) {
208 SimpleEvent_(g_date->Date() + 1,
dcpt_July_pest2,
true, a_farm, a_field);
212 SimpleEvent_(g_date->OldDays() + g_date->DayInYear(1, 8),
dcpt_August_pest1,
false, a_farm, a_field);
215 if (a_ev->
m_lock || a_farm->DoIt(1))
217 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(31, 8) - g_date->DayInYear())) {
222 SimpleEvent_(g_date->OldDays() + g_date->DayInYear(1, 9),
dcpt_September_pest1,
false, a_farm, a_field);
225 if (a_ev->
m_lock || a_farm->DoIt(3))
227 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(30, 9) - g_date->DayInYear())) {
238 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(30, 9) - g_date->DayInYear())) {
243 SimpleEvent_(g_date->OldDays() + g_date->DayInYear(1, 10),
dcpt_October_pest1,
false, a_farm, a_field);
246 if (a_ev->
m_lock || a_farm->DoIt(4))
248 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(31, 10) - g_date->DayInYear())) {
259 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(31, 10) - g_date->DayInYear())) {
264 SimpleEvent_(g_date->OldDays() + g_date->DayInYear(1, 11),
dcpt_November_pest1,
false, a_farm, a_field);
267 if (a_ev->
m_lock || a_farm->DoIt(0))
269 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(30, 11) - g_date->DayInYear())) {
278 g_msg->Warn( WARN_BUG,
"DummyCropPestTesting::Do(): "
279 "Unknown event type! ",
"" );