diff --git a/DynamicModel.cc b/DynamicModel.cc index c83da453..16928011 100644 --- a/DynamicModel.cc +++ b/DynamicModel.cc @@ -5538,6 +5538,12 @@ DynamicModel::writeJsonXrefs(ostream &output) const output << "]}" << endl; } +void +DynamicModel::writeJsonOriginalModelOutput(ostream &output) const +{ + writeJsonModelEquations(output, false); +} + void DynamicModel::writeJsonComputingPassOutput(ostream &output, bool writeDetails) const { diff --git a/DynamicModel.hh b/DynamicModel.hh index 27035943..b0ebd7fa 100644 --- a/DynamicModel.hh +++ b/DynamicModel.hh @@ -239,6 +239,9 @@ public: //! Write JSON Output void writeJsonOutput(ostream &output) const; + //! Write JSON Output representation of original dynamic model + void writeJsonOriginalModelOutput(ostream &output) const; + //! Write JSON Output representation of dynamic model after computing pass void writeJsonComputingPassOutput(ostream &output, bool writeDetails) const; diff --git a/ModFile.cc b/ModFile.cc index a7c5c0b2..510dffe6 100644 --- a/ModFile.cc +++ b/ModFile.cc @@ -1366,6 +1366,11 @@ ModFile::writeJsonComputingPassOutput(const string &basename, JsonFileOutputType dynamic_model.writeJsonComputingPassOutput(dynamic_output, false); dynamic_output << "}" << endl; + ostringstream original_model_output; + original_model_output << "{"; + original_model.writeJsonOriginalModelOutput(original_model_output); + original_model_output << "}" << endl; + ostringstream tmp_out, static_paramsd_output, static_paramsd_detail_output; tmp_out << ""; static_paramsd_output << ""; @@ -1406,7 +1411,8 @@ ModFile::writeJsonComputingPassOutput(const string &basename, JsonFileOutputType if (json_output_mode == standardout) { - cout << static_output.str() << endl + cout << original_model_output.str() << endl + << static_output.str() << endl << dynamic_output.str() << endl; if (!static_paramsd_output.str().empty()) @@ -1435,10 +1441,12 @@ ModFile::writeJsonComputingPassOutput(const string &basename, JsonFileOutputType exit(EXIT_FAILURE); } - string fname_static, fname_dynamic; + string fname_original, fname_static, fname_dynamic; + fname_original = basename + "_original.json"; fname_static = basename + "_static.json"; fname_dynamic = basename + "_dynamic.json"; + writeJsonFileHelper(fname_original, original_model_output); writeJsonFileHelper(fname_static, static_output); writeJsonFileHelper(fname_dynamic, dynamic_output);