diff --git a/DynamicModel.cc b/DynamicModel.cc index 7dfc7d7e..c3aa0374 100644 --- a/DynamicModel.cc +++ b/DynamicModel.cc @@ -4285,3 +4285,4 @@ DynamicModel::dynamicOnlyEquationsNbr() const } + diff --git a/DynamicModel.hh b/DynamicModel.hh index c752fe0b..7f019f26 100644 --- a/DynamicModel.hh +++ b/DynamicModel.hh @@ -221,6 +221,7 @@ public: void writeDynamicFile(const string &basename, bool block, bool bytecode, bool use_dll, int order) const; //! Writes file containing parameters derivatives void writeParamsDerivativesFile(const string &basename) const; + //! Converts to static model (only the equations) /*! It assumes that the static model given in argument has just been allocated */ void toStatic(StaticModel &static_model) const; diff --git a/ModFile.cc b/ModFile.cc index 314fd504..369f46b9 100644 --- a/ModFile.cc +++ b/ModFile.cc @@ -820,4 +820,3 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b cout << "done" << endl; } - diff --git a/ParsingDriver.cc b/ParsingDriver.cc index 70ebe871..517b0d88 100644 --- a/ParsingDriver.cc +++ b/ParsingDriver.cc @@ -323,6 +323,9 @@ ParsingDriver::add_model_variable(int symb_id, int lag) if (dynamic_cast(model_tree) != NULL && lag != 0) error("Leads and lags on variables are forbidden in 'planner_objective'."); + if (dynamic_cast(model_tree) != NULL && type == eModelLocalVariable) + error("Model local variable " + mod_file->symbol_table.getName(symb_id) + " cannot be used in 'planner_objective'."); + // It makes sense to allow a lead/lag on parameters: during steady state calibration, endogenous and parameters can be swapped return model_tree->AddVariable(symb_id, lag); } diff --git a/SteadyStateModel.cc b/SteadyStateModel.cc index d19a7f38..7712e9f2 100644 --- a/SteadyStateModel.cc +++ b/SteadyStateModel.cc @@ -152,3 +152,4 @@ SteadyStateModel::writeSteadyStateFile(const string &basename, bool ramsey_model << "end" << endl; } +