*** v4.0t/changes.txt: 09. July 2001, Kevin Belanger, Programmer/Analyst, Timber Supply Branch, Ministry of Forests *** v4.0/v4.x see docs/fss4.0_docs directory for descriptions of changes from v3.0 to v4.0 and v4.x Summary of Changes: =================== v4.0.2a (09.JULY.2001) 1) - At the request of Tim Bogle, removed override of target start/end period with value of plan horizon so that: a) if a start period is beyond the plan horizon, the entire line entered in targets.dat is ignored. b) if an end period is beyond the plan horizon whose start period is within the plan horizon (straddle condition), reset the end period to be equal to the plan horizon. Details of Each Change: ======================= 1) - At the request of Tim Bogle, removed override of target start/end period with value of plan horizon: If a start period is beyond the plan horizon, the entire line entered in targets.dat is ignored. If an end period is beyond the plan horizon whose start period is within the plan horizon (straddle condition), reset the end period to be equal to the plan horizon. // Data.cpp // ... void Data::read_target() { // ... // validate input for the start and end periods if (inend < instart) // the end date can't be after the start date or time runs backward ;-) { printf("\n\nERROR: this->read_target(Line#:%d) Start Period (%d) > End Period (%d)", line_no, instart, inend); exit(1); } if (instart > pApp->m_planHorizon) { // at the request of Tim Bogle, removed override of target start/end period with value of plan horizon // if a start period is beyond the plan horizon, the entire line entered in targets.dat is ignored cout << "WARNING: while reading targets.dat(Line#:" << line_no << "): Specified Start Period(" << instart << ") is beyond the Plan Horizon(" << pApp->m_planHorizon << "). Discarding entire target line." << endl; continue; //printf("\nWARNING: this->read_target(Line#:%d): Specified StartPeriod(%d)>PlanHorizon(%d); Setting StartPeriod = PlanHorizon", line_no, instart, pApp->m_planHorizon); //instart = pApp->m_planHorizon; } if (inend > pApp->m_planHorizon) { // if an end period is beyond the plan horizon whose start period is within the plan horizon // (straddle condition), reset the end period to be equal to the plan horizon // cout << "WARNING: while reading targets.dat(Line#:" << line_no << "): Specified End Period(" << inend << ") is beyond the Plan Horizon(" << pApp->m_planHorizon << "). Re-setting End Period equal to Plan Horizon" << endl; inend = pApp->m_planHorizon; //printf("\nWARNING: this->read_target(Line#:%d): Specified EndPeriod(%d)>PlanHorizon(%d); Setting EndPeriod = PlanHorizon", line_no, inend, pApp->m_planHorizon); } // ... }