diff --git a/src/ModFile.cc b/src/ModFile.cc index 348c92be4360d442d3014dfeb92e53646e58e055..97bc8c18035f6bef94cc6fa6d621fb3adcb4292a 100644 --- a/src/ModFile.cc +++ b/src/ModFile.cc @@ -962,6 +962,24 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool clear_glo if (onlymodel) for (auto &statement : statements) { + /* Special treatment for initval block: insert initial values for the + auxiliary variables and initialize exo det */ + auto *ivs = dynamic_cast<InitValStatement *>(statement.get()); + if (ivs != nullptr) + { + ivs->writeOutput(mOutputFile, basename, minimal_workspace); + static_model.writeAuxVarInitval(mOutputFile, ExprNodeOutputType::matlabOutsideModel); + ivs->writeOutputPostInit(mOutputFile); + } + + // Special treatment for endval block: insert initial values for the auxiliary variables + auto *evs = dynamic_cast<EndValStatement *>(statement.get()); + if (evs != nullptr) + { + evs->writeOutput(mOutputFile, basename, minimal_workspace); + static_model.writeAuxVarInitval(mOutputFile, ExprNodeOutputType::matlabOutsideModel); + } + auto *ips = dynamic_cast<InitParamStatement *>(statement.get()); if (ips != nullptr) ips->writeOutput(mOutputFile, basename, minimal_workspace);