diff --git a/ModFile.cc b/ModFile.cc index 290b9f71..4fc4ce1c 100644 --- a/ModFile.cc +++ b/ModFile.cc @@ -1174,6 +1174,11 @@ ModFile::writeExternalFilesJulia(const string &basename, FileOutputType output) } steady_state_model.writeSteadyStateFile(basename, mod_file_struct.ramsey_model_present, true); + // Print statements (includes parameter values) + for (vector::const_iterator it = statements.begin(); + it != statements.end(); it++) + (*it)->writeJuliaOutput(jlOutputFile, basename); + jlOutputFile << "model_.static = " << basename << "Static.static!" << endl << "model_.dynamic = " << basename << "Dynamic.dynamic!" << endl << "if isfile(\"" << basename << "SteadyState.jl" "\")" << endl diff --git a/NumericalInitialization.cc b/NumericalInitialization.cc index 48fc02ff..07e0d581 100644 --- a/NumericalInitialization.cc +++ b/NumericalInitialization.cc @@ -51,6 +51,18 @@ InitParamStatement::writeOutput(ostream &output, const string &basename, bool mi output << symbol_table.getName(symb_id) << " = M_.params( " << id << " );" << endl; } +void +InitParamStatement::writeJuliaOutput(ostream &output, const string &basename) +{ + int id = symbol_table.getTypeSpecificID(symb_id) + 1; + output << "model_.params[ " << id << " ] = "; + param_value->writeOutput(output); + output << endl; + // Do we really need this? + // if (!minimal_workspace) + // output << symbol_table.getName(symb_id) << " = model_.params[ " << id << " ]" << endl; +} + void InitParamStatement::writeCOutput(ostream &output, const string &basename) { diff --git a/NumericalInitialization.hh b/NumericalInitialization.hh index 142838f7..ccc67794 100644 --- a/NumericalInitialization.hh +++ b/NumericalInitialization.hh @@ -41,6 +41,7 @@ public: const SymbolTable &symbol_table_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; + virtual void writeJuliaOutput(ostream &output, const string &basename); virtual void writeCOutput(ostream &output, const string &basename); //! Fill eval context with parameter value void fillEvalContext(eval_context_t &eval_context) const; diff --git a/Statement.cc b/Statement.cc index 2ec5b031..ee7b5b44 100644 --- a/Statement.cc +++ b/Statement.cc @@ -69,6 +69,10 @@ Statement::writeCOutput(ostream &output, const string &basename) { } +void Statement::writeJuliaOutput(ostream &output, const string &basename) +{ +} + void Statement::computingPass() { diff --git a/Statement.hh b/Statement.hh index 050d182a..311260b0 100644 --- a/Statement.hh +++ b/Statement.hh @@ -143,6 +143,7 @@ public: */ virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const = 0; virtual void writeCOutput(ostream &output, const string &basename); + virtual void writeJuliaOutput(ostream &output, const string &basename); }; class NativeStatement : public Statement