diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index dd8f62cea32d4d869a8e4f39704064e48294b269..8418e8f23d251a7a0f7017df5610c963836028cc 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -2370,7 +2370,13 @@ DynamicModel::writeDynamicJacobianNonZeroElts(const string &basename) const sort(nzij_current.begin(), nzij_current.end()); sort(nzij_fwrd.begin(), nzij_fwrd.end()); + const string filename {"+" + basename + "/dynamic_g1_nz.m"}; ofstream output{"+" + basename + "/dynamic_g1_nz.m", ios::out | ios::binary}; + if (!output.is_open()) + { + cerr << "ERROR: Can't open file " << filename << " for writing" << endl; + exit(EXIT_FAILURE); + } output << "function [nzij_pred, nzij_current, nzij_fwrd] = dynamic_g1_nz()" << endl << "% Returns the coordinates of non-zero elements in the Jacobian, in column-major order, for each lead/lag (only for endogenous)" << endl; auto print_nzij = [&output](const vector<pair<int, int>> &nzij, const string &name) { @@ -2694,6 +2700,11 @@ DynamicModel::writeBlockDriverOutput(ostream &output, const string &basename, string main_name = basename + "/model/bytecode/kfi"; ofstream KF_index_file; KF_index_file.open(main_name, ios::out | ios::binary | ios::ate); + if (!KF_index_file.is_open()) + { + cerr << "ERROR: Can't open file " << main_name << " for writing" << endl; + exit(EXIT_FAILURE); + } int n_obs = symbol_table.observedVariablesNbr(); int n_state = state_var.size(); for (int it : state_var)