43 #include "../../Landscape/ls.h"
44 #include "../../Landscape/cropprogs/NLGrassGrazed1Spring.h"
74 a_field->SetMDates(0, 0, g_date->DayInYear(10, 10));
75 a_field->SetMDates(1, 0, g_date->DayInYear(30, 10));
77 a_field->SetMConstants(0, 1);
87 if (a_ev->
m_startday > g_date->DayInYear(1, 7)) {
88 if (a_field->GetMDates(0, 0) >= a_ev->
m_startday)
90 g_msg->Warn(WARN_BUG,
"NLGrassGrazed1Spring::Do(): ",
"Harvest too late for the next crop to start!!!");
92 g_msg->Warn(
"Next Crop ", (
double)almassnum);
95 for (
int i = 0; i < noDates; i++) {
96 if (a_field->GetMDates(0, i) >= a_ev->
m_startday) {
97 a_field->SetMDates(0, i, a_ev->
m_startday - 1);
99 if (a_field->GetMDates(1, i) >= a_ev->
m_startday) {
100 a_field->SetMConstants(i, 0);
101 a_field->SetMDates(1, i, a_ev->
m_startday - 1);
109 if (g_date->Date() > d1) {
111 g_msg->Warn(WARN_BUG,
"NLGrassGrazed1Spring::Do(): ",
"Crop start attempt after last possible start date");
113 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
115 g_msg->Warn(
"Next Crop ", (
double)almassnum);
130 d1 = g_date->OldDays() + g_date->DayInYear(28, 2);
131 if (g_date->Date() >= d1) d1 += 365;
141 if (!a_farm->
PreseedingCultivator(a_field, 0.0, g_date->DayInYear(20, 3) - g_date->DayInYear())) {
148 if (!a_farm->SpringSow(a_field, 0.0, g_date->DayInYear(20, 3) - g_date->DayInYear())) {
152 d1 = g_date->Date() + 7;
153 if (d1 < g_date->OldDays() + g_date->DayInYear(1, 3)) {
154 d1 = g_date->OldDays() + g_date->DayInYear(1, 3);
156 if (a_farm->IsStockFarmer())
163 if (a_farm->DoIt_prob(0.90)) {
164 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(30, 3) - g_date->DayInYear())) {
169 if (a_farm->DoIt_prob(0.50)) {
175 if (a_farm->DoIt_prob(0.90)) {
176 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(30, 3) - g_date->DayInYear())) {
181 if (a_farm->DoIt_prob(0.50)) {
194 if (!a_farm->CutToSilage(a_field, 0.0, g_date->DayInYear(10, 5) - g_date->DayInYear())) {
199 if (a_farm->IsStockFarmer())
211 if (!a_farm->FA_Slurry(a_field, 0.0, (
NL_GG1S_CUT_DATE + 4) - g_date->DayInYear())) {
218 if (!a_farm->FP_Slurry(a_field, 0.0, (
NL_GG1S_CUT_DATE + 4) - g_date->DayInYear())) {
225 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
227 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(20, 5) - g_date->DayInYear())) {
235 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
237 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(20, 5) - g_date->DayInYear())) {
252 if (!a_farm->CutToSilage(a_field, 0.0, g_date->DayInYear(15, 6) - g_date->DayInYear())) {
257 if (a_farm->IsStockFarmer())
266 if (!a_farm->FA_Slurry(a_field, 0.0, (
NL_GG1S_CUT_DATE + 4) - g_date->DayInYear())) {
273 if (!a_farm->FP_Slurry(a_field, 0.0, (
NL_GG1S_CUT_DATE + 4) - g_date->DayInYear())) {
280 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
282 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(25, 6) - g_date->DayInYear())) {
290 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
292 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(25, 6) - g_date->DayInYear())) {
307 if (!a_farm->CutToSilage(a_field, 0.0, g_date->DayInYear(25, 7) - g_date->DayInYear())) {
312 if (a_farm->IsStockFarmer())
322 if (!a_farm->FA_Slurry(a_field, 0.0, (
NL_GG1S_CUT_DATE + 4) - g_date->DayInYear())) {
329 if (!a_farm->FP_Slurry(a_field, 0.0, (
NL_GG1S_CUT_DATE + 4) - g_date->DayInYear())) {
336 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
338 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(5, 8) - g_date->DayInYear())) {
346 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
348 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(5, 8) - g_date->DayInYear())) {
363 if (!a_farm->CutToSilage(a_field, 0.0, g_date->DayInYear(31, 8) - g_date->DayInYear())) {
368 if (a_farm->IsStockFarmer())
377 if (!a_farm->FA_Slurry(a_field, 0.0, (
NL_GG1S_CUT_DATE + 4) - g_date->DayInYear())) {
384 if (!a_farm->FP_Slurry(a_field, 0.0, (
NL_GG1S_CUT_DATE + 4) - g_date->DayInYear())) {
391 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
393 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(5, 9) - g_date->DayInYear())) {
401 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
403 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(5, 9) - g_date->DayInYear())) {
418 if (a_ev->
m_lock || a_farm->DoIt_prob(0.40))
420 if (!a_farm->CutToSilage(a_field, 0.0, a_field->GetMDates(0, 0) - g_date->DayInYear())) {
426 if (a_farm->IsStockFarmer())
435 if (a_field->GetMConstants(0) == 0) {
436 if (!a_farm->FA_NPK(a_field, 0.0, -1)) {
437 g_msg->Warn(WARN_BUG,
"NLGrassGrazed1Spring::Do(): failure in 'NPK application' execution",
"");
442 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
444 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(30, 11) - g_date->DayInYear())) {
453 if (a_field->GetMConstants(0) == 0) {
454 if (!a_farm->FP_NPK(a_field, 0.0, -1)) {
455 g_msg->Warn(WARN_BUG,
"NLGrassGrazed1Spring::Do(): failure in 'NPK application' execution",
"");
460 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
462 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(30, 11) - g_date->DayInYear())) {
471 if (!a_farm->CattleOut(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
481 if (!a_farm->CattleIsOut(a_field, 0.0, g_date->DayInYear(31, 8) - g_date->DayInYear(), g_date->DayInYear(31, 8))) {
485 if (a_farm->IsStockFarmer())
493 if (!a_farm->FA_Slurry(a_field, 0.0, g_date->DayInYear(5, 9) - g_date->DayInYear())) {
500 if (!a_farm->FP_Slurry(a_field, 0.0, g_date->DayInYear(5, 9) - g_date->DayInYear())) {
507 if (!a_farm->CutToSilage(a_field, 0.0, a_field->GetMDates(0, 0) - g_date->DayInYear())) {
511 if (a_farm->IsStockFarmer())
518 if (a_ev->
m_lock || a_farm->DoIt_prob(0.40))
526 if (!a_farm->Water(a_field, 0.0, g_date->DayInYear(31, 8) - g_date->DayInYear())) {
536 g_msg->Warn(WARN_BUG,
"NLGrassGrazed1Spring::Do(): "
537 "Unknown event type! ",
"");