43 #include "../../Landscape/ls.h"
44 #include "../../Landscape/cropprogs/NLSpringBarleySpring.h"
82 a_field->SetMDates(0, 0, g_date->DayInYear(15, 8));
83 a_field->SetMDates(1, 0, g_date->DayInYear(20, 8));
84 a_field->SetMDates(0, 1, 0);
85 a_field->SetMDates(1, 1, g_date->DayInYear(20, 8));
89 a_field->SetMConstants(0, 1);
99 if (a_ev->
m_startday > g_date->DayInYear(1, 7)) {
100 if (a_field->GetMDates(0, 0) >= a_ev->
m_startday)
102 g_msg->Warn(WARN_BUG,
"NLSpringBarleySpring::Do(): ",
"Harvest too late for the next crop to start!!!");
104 g_msg->Warn(
"Next Crop ", (
double)almassnum);
107 for (
int i = 0; i < noDates; i++) {
108 if (a_field->GetMDates(0, i) >= a_ev->
m_startday) {
109 a_field->SetMDates(0, i, a_ev->
m_startday - 1);
111 if (a_field->GetMDates(1, i) >= a_ev->
m_startday) {
112 a_field->SetMConstants(i, 0);
113 a_field->SetMDates(1, i, a_ev->
m_startday - 1);
121 if (g_date->Date() > d1) {
123 g_msg->Warn(WARN_BUG,
"NLSpringBarleySpring::Do(): ",
"Crop start attempt after last possible start date");
125 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
127 g_msg->Warn(
"Next Crop ", (
double)almassnum);
141 d1 = g_date->OldDays() + g_date->DayInYear(1, 3);
142 if (g_date->Date() >= d1) d1 += 365;
145 if (a_field->GetSoilType() == 2 || a_field->GetSoilType() == 6) {
161 if (!a_farm->
SpringPlough(a_field, 0.0, g_date->DayInYear(25, 3) - g_date->DayInYear())) {
172 if (a_ev->
m_lock || a_farm->DoIt_prob(0.70))
174 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(30, 3) - g_date->DayInYear())) {
179 d1 = g_date->Date() + 1;
180 if (d1 < g_date->OldDays() + g_date->DayInYear(15, 3)) {
181 d1 = g_date->OldDays() + g_date->DayInYear(15, 3);
183 if (a_farm->IsStockFarmer())
190 if (a_ev->
m_lock || a_farm->DoIt_prob(0.70))
192 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(30, 3) - g_date->DayInYear())) {
197 d1 = g_date->Date() + 1;
198 if (d1 < g_date->OldDays() + g_date->DayInYear(15, 3)) {
199 d1 = g_date->OldDays() + g_date->DayInYear(15, 3);
201 if (a_farm->IsStockFarmer())
208 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(25, 4) - g_date->DayInYear())) {
212 d1 = g_date->Date() + 1;
213 if (d1 < g_date->OldDays() + g_date->DayInYear(15, 3)) {
214 d1 = g_date->OldDays() + g_date->DayInYear(15, 3);
216 if (a_farm->IsStockFarmer())
223 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(25, 4) - g_date->DayInYear())) {
227 d1 = g_date->Date() + 1;
228 if (d1 < g_date->OldDays() + g_date->DayInYear(15, 3)) {
229 d1 = g_date->OldDays() + g_date->DayInYear(15, 3);
231 if (a_farm->IsStockFarmer())
238 if (a_ev->
m_lock || a_farm->DoIt_prob(0.50))
240 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(9, 4) - g_date->DayInYear())) {
248 if (a_ev->
m_lock || a_farm->DoIt_prob(0.50))
250 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(9, 4) - g_date->DayInYear())) {
258 if (a_ev->
m_lock || a_farm->DoIt_prob(0.80))
260 if (!a_farm->PreseedingCultivator(a_field, 0.0, g_date->DayInYear(9, 4) - g_date->DayInYear())) {
273 if (!a_farm->SpringSow(a_field, 0.0, g_date->DayInYear(10, 4) - g_date->DayInYear())) {
283 if (a_farm->IsStockFarmer())
290 if (!a_farm->PreseedingCultivatorSow(a_field, 0.0, g_date->DayInYear(10, 4) - g_date->DayInYear())) {
300 if (a_farm->IsStockFarmer())
307 if (a_field->GetGreenBiomass() <= 0)
309 if (a_ev->
m_lock || a_farm->DoIt_prob(0.20))
311 if (!a_farm->ShallowHarrow(a_field, 0.0, g_date->DayInYear(20, 4) - g_date->DayInYear())) {
320 if (a_ev->
m_lock || (a_farm->DoIt_prob(0.50) && (a_field->GetSoilType() != 2 && a_field->GetSoilType() != 6)))
322 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(10, 5) - g_date->DayInYear())) {
330 if (a_ev->
m_lock || (a_farm->DoIt_prob(0.50) && (a_field->GetSoilType() != 2 && a_field->GetSoilType() != 6)))
332 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(10, 5) - g_date->DayInYear())) {
341 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
343 if (a_field->GetGreenBiomass() <= 0) {
348 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
358 if (a_ev->
m_lock || a_farm->DoIt_prob(0.80))
360 if (!a_farm->FungicideTreat(a_field, 0.0, g_date->DayInYear(15, 6) - g_date->DayInYear())) {
371 if (!a_farm->FungicideTreat(a_field, 0.0, g_date->DayInYear(15, 6) - g_date->DayInYear())) {
380 if (a_ev->
m_lock || a_farm->DoIt_prob(0.30))
386 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(30, 6) - g_date->DayInYear())) {
399 if (a_ev->
m_lock || a_farm->DoIt_prob(0.80))
401 if (!a_farm->GrowthRegulator(a_field, 0.0, g_date->DayInYear(15, 5) - g_date->DayInYear())) {
411 if (!a_farm->Harvest(a_field, 0.0, a_field->GetMDates(0, 0) - g_date->DayInYear())) {
418 if (a_ev->
m_lock || a_farm->DoIt_prob(0.50))
420 if (a_field->GetMConstants(0) == 0) {
421 if (!a_farm->StrawChopping(a_field, 0.0, -1)) {
422 g_msg->Warn(WARN_BUG,
"NLSpringBarleySpring::Do(): failure in 'StrawChopping' execution",
"");
427 if (!a_farm->StrawChopping(a_field, 0.0, a_field->GetMDates(1, 0) - g_date->DayInYear())) {
438 if (a_field->GetMConstants(1) == 0) {
439 if (!a_farm->HayBailing(a_field, 0.0, -1)) {
440 g_msg->Warn(WARN_BUG,
"NLWinterWheat::Do(): failure in 'HayBailing' execution",
"");
445 if (!a_farm->HayBailing(a_field, 0.0, a_field->GetMDates(1, 1) - g_date->DayInYear())) {
453 g_msg->Warn(WARN_BUG,
"PLSpringBarleySpring::Do(): "
454 "Unknown event type! ",
"");