diff --git a/ParsingDriver.cc b/ParsingDriver.cc index 43d775cc..b7abea8a 100644 --- a/ParsingDriver.cc +++ b/ParsingDriver.cc @@ -1866,7 +1866,7 @@ ParsingDriver::add_steady_state_model_equal(string *varname, NodeID expr) } SymbolType type = mod_file->symbol_table.getType(id); - if (type != eEndogenous && type != eModFileLocalVariable) + if (type != eEndogenous && type != eModFileLocalVariable && type != eParameter) error(*varname + " has incorrect type"); mod_file->steady_state_model.addDefinition(id, expr); diff --git a/SteadyStateModel.cc b/SteadyStateModel.cc index f2e58a0e..6ebf32be 100644 --- a/SteadyStateModel.cc +++ b/SteadyStateModel.cc @@ -31,7 +31,8 @@ void SteadyStateModel::addDefinition(int symb_id, NodeID expr) { assert(symbol_table.getType(symb_id) == eEndogenous - || symbol_table.getType(symb_id) == eModFileLocalVariable); + || symbol_table.getType(symb_id) == eModFileLocalVariable + || symbol_table.getType(symb_id) == eParameter); // Add the variable recursive_order.push_back(symb_id); @@ -93,8 +94,7 @@ SteadyStateModel::writeSteadyStateFile(const string &basename, bool ramsey_polic output << "ys_orig_"; output << ", exo_)" << endl << "% Steady state generated by Dynare preprocessor" << endl - << " global M_" << endl - << " ys_=zeros(" << symbol_table.orig_endo_nbr() << ",1);" << endl; + << " global M_" << endl; for(size_t i = 0; i < recursive_order.size(); i++) {