diff --git a/build/includes/global/message_atoms.hpp b/build/includes/global/message_atoms.hpp index aa5cd4dc50a8cbf801d342f7743ea46ca012a040..8725ba49b14bed4f78ccaf4c3bca0dbc5db7c056 100644 --- a/build/includes/global/message_atoms.hpp +++ b/build/includes/global/message_atoms.hpp @@ -17,6 +17,7 @@ enum class hru_error : uint8_t { enum class file_access_error : uint8_t { writing_error = 1, unhandleable_error = 2, + mDecisions_error = 100, }; // HRU Errors diff --git a/build/source/actors/file_access_actor/cpp_code/file_access_actor.cpp b/build/source/actors/file_access_actor/cpp_code/file_access_actor.cpp index 567b8b4258898d5d5dfdb2706b97011e229f4bf5..a94ad676750dc6eb82566decd6db9fa3419fe079 100644 --- a/build/source/actors/file_access_actor/cpp_code/file_access_actor.cpp +++ b/build/source/actors/file_access_actor/cpp_code/file_access_actor.cpp @@ -43,8 +43,13 @@ behavior file_access_actor(stateful_actor<file_access_state>* self, int start_gr &self->state.err); if (self->state.err != 0) { aout(self) << "ERROR: File Access Actor - File_Access_init_Fortran\n"; - self->send(self->state.parent, file_access_error::unhandleable_error, self); + if (self->state.err == 100) { + self->send(self->state.parent, file_access_error::mDecisions_error, self); + } else { + self->send(self->state.parent, file_access_error::unhandleable_error, self); + } return {}; + } aout(self) << "Simluations Steps: " << self->state.num_steps << "\n"; diff --git a/build/source/actors/file_access_actor/fortran_code/cppwrap_fileAccess.f90 b/build/source/actors/file_access_actor/fortran_code/cppwrap_fileAccess.f90 index f4b881f01c25e8d51dc9aee20628405f5f207324..1c67351a140525d8cbd5f3a333fbec3d8bfcfb66 100644 --- a/build/source/actors/file_access_actor/fortran_code/cppwrap_fileAccess.f90 +++ b/build/source/actors/file_access_actor/fortran_code/cppwrap_fileAccess.f90 @@ -131,7 +131,7 @@ subroutine fileAccessActor_init_fortran(& ! Variables for forcing ! get the maximum number of snow layers select case(model_decisions(iLookDECISIONS%snowLayers)%iDecision) - case(sameRulesAllLayers); maxSnowLayers = 100 + case(sameRulesAllLayers); err=100; message=trim(message)//'sameRulesAllLayers not implemented';print*,message;return case(rulesDependLayerIndex); maxSnowLayers = 5 case default; err=20; message=trim(message)//'unable to identify option to combine/sub-divide snow layers';print*,message;return end select ! (option to combine/sub-divide snow layers) diff --git a/build/source/actors/job_actor/job_actor.cpp b/build/source/actors/job_actor/job_actor.cpp index d62b22830fcadaf5436056442db3e39f56a458df..14e26db91a75e02e282bb0764e7cd0e4fc5be332 100644 --- a/build/source/actors/job_actor/job_actor.cpp +++ b/build/source/actors/job_actor/job_actor.cpp @@ -243,7 +243,11 @@ behavior job_actor(stateful_actor<job_state>* self, break; case type_id_v<file_access_error>: - aout(self) << "File Access Error: " << to_string(err) << "No Handling Implemented\n"; + if (err == file_access_error::mDecisions_error) { + aout(self) << "Check mDecisions File For Correctness"; + } else { + aout(self) << "File Access Error: " << to_string(err) << "No Handling Implemented\n"; + } for (auto GRU : self->state.gru_container.gru_list) { self->send_exit(GRU->getGRUActor(), exit_reason::user_shutdown); }