diff --git a/src/ModelEquationBlock.cc b/src/ModelEquationBlock.cc index 9a804d6f0c4c105b6395d90a1cd927651f65b1bf..6a725d5cb637fa56b0b0348d468f35a326e9b60c 100644 --- a/src/ModelEquationBlock.cc +++ b/src/ModelEquationBlock.cc @@ -372,12 +372,15 @@ Epilogue::writeEpilogueFile(const string &basename) const it.second->collectVariables(SymbolType::endogenous, used_symbols); it.second->collectVariables(SymbolType::exogenous, used_symbols); it.second->collectVariables(SymbolType::epilogue, used_symbols); - output << "simul_begin_date = dseries__." << symbol_table.getName(*(used_symbols.begin())) << ".firstobservedperiod;" << endl; - for (auto it1 = next(used_symbols.begin()); it1 != used_symbols.end(); it1++) - output << "if simul_begin_date < dseries__." << symbol_table.getName(*it1) << ".firstobservedperiod" << endl - << " simul_begin_date = dseries__." << symbol_table.getName(*it1) << ".firstobservedperiod;" << endl - << "end" << endl; - output << "simul_begin_date = simul_begin_date + " << max_lag << " + 1;" << endl + + output << "simul_begin_date = firstobservedperiod(dseries__{"; + for (auto it1 = used_symbols.begin(); it1 != used_symbols.end(); it1++) + { + if (it1 != used_symbols.begin()) + output << ", "; + output << "'" << symbol_table.getName(*it1) << "'"; + } + output << "}) + " << max_lag << " + 1;" << endl << "if ~dseries__.exist('" << symbol_table.getName(it.first) << "')" << endl << " dseries__ = [dseries__ dseries(NaN(dseries__.nobs,1), dseries__.firstdate, '" << symbol_table.getName(it.first)<< "')];" << endl << "end" << endl