diff --git a/build/source/actors/FileAccessActor.h b/build/source/actors/FileAccessActor.h index 4750f5ac454752f736e9982642d5f438d311d118..c8d51e6f245b18297d1fc0ddc4dddadd5c6d18db 100644 --- a/build/source/actors/FileAccessActor.h +++ b/build/source/actors/FileAccessActor.h @@ -155,30 +155,47 @@ void initalizeFileAccessActor(stateful_actor<file_access_state>* self) { // aout(self) << "Set Up the forcing file" << std::endl; ffile_info_C(&indx, self->state.handle_forcFileInfo, &self->state.numFiles, &err); if (err != 0) { - aout(self) << "Error: ffile_info_C - HRU = " << indx << - " - indxGRU = " << indx << " - refGRU = " << std::endl; + aout(self) << "Error: ffile_info_C - File_Access_Actor \n"; + std::string function = "ffile_info_C"; + self->send(self->state.parent, file_access_actor_err_v, function); self->quit(); + return; } mDecisions_C(&self->state.num_steps, &err); if (err != 0) { - aout(self) << "Error: mDecisions - FileAccess Actor " << std::endl; + aout(self) << "Error: mDecisions - FileAccess Actor \n"; + std::string function = "mDecisions_C"; + self->send(self->state.parent, file_access_actor_err_v, function); self->quit(); + return; } read_pinit_C(&err); if (err != 0) { aout(self) << "ERROR: read_pinit_C\n"; + std::string function = "read_pinit_C"; + self->send(self->state.parent, file_access_actor_err_v, function); + self->quit(); + return; } read_vegitationTables(&err); if (err != 0) { aout(self) << "ERROR: read_vegitationTables\n"; + std::string function = "read_vegitationTables"; + self->send(self->state.parent, file_access_actor_err_v, function); + self->quit(); + return; } Create_Output_File(self->state.handle_ncid, &self->state.numGRU, &self->state.startGRU, &err); if (err != 0) { aout(self) << "ERROR: Create_OutputFile\n"; + std::string function = "Create_Output_File"; + self->send(self->state.parent, file_access_actor_err_v, function); + self->quit(); + return; } diff --git a/build/source/actors/JobActor.h b/build/source/actors/JobActor.h index aa7c1db67ef013aab689e481792ea429cbe14698..63abb30f67f79f70dfc0212574a6b4ca819b4115 100644 --- a/build/source/actors/JobActor.h +++ b/build/source/actors/JobActor.h @@ -165,6 +165,13 @@ behavior job_actor(stateful_actor<job_state>* self, int startGRU, int numGRU, self->send(self->state.parent, done_job_v, self->state.numGRUFailed); self->quit(); }, + + [=](file_access_actor_err, std::string function) { + aout(self) << "Failure in File Access Actor in function" << function << "\n"; + aout(self) << "Letting Parent Know we are quitting\n"; + self->send(self->state.parent, err_v); + self->quit(); + } // ******************************************************************************************* // ************************** END INTERFACE WITH FileAccessActor ***************************** // ******************************************************************************************* diff --git a/build/source/actors/SummaActor.h b/build/source/actors/SummaActor.h index bdad565ee6901beaeb06485639b44939420fcf81..4bfe0e9e8e85cfd742804e9500e1fe533654259e 100644 --- a/build/source/actors/SummaActor.h +++ b/build/source/actors/SummaActor.h @@ -49,6 +49,11 @@ behavior summa_actor(stateful_actor<summa_manager>* self, int startGRU, int numG spawnJob(self); } }, + + [=](err) { + aout(self) << "Unrecoverable Error: Attempting To Fail Gracefully\n"; + self->quit(); + } }; } diff --git a/build/source/actors/messageAtoms.h b/build/source/actors/messageAtoms.h index 9f38386fd1ad601c791147c4c80e1e3f99129fb3..d845c798b85d32847a9bb074c388616737636a37 100644 --- a/build/source/actors/messageAtoms.h +++ b/build/source/actors/messageAtoms.h @@ -5,6 +5,7 @@ CAF_BEGIN_TYPE_ID_BLOCK(summa, first_custom_type_id) // Summa Actor CAF_ADD_ATOM(summa, start_summa) CAF_ADD_ATOM(summa, done_job) + CAF_ADD_ATOM(summa, err) // Job Actor CAF_ADD_ATOM(summa, done_reading_forcingFile) CAF_ADD_ATOM(summa, done_reading_first_forcing_file) @@ -17,6 +18,7 @@ CAF_BEGIN_TYPE_ID_BLOCK(summa, first_custom_type_id) CAF_ADD_ATOM(summa, run_failure) CAF_ADD_ATOM(summa, done_file_access_actor_init) CAF_ADD_ATOM(summa, file_access_actor_done) + CAF_ADD_ATOM(summa, file_access_actor_err) // FileAccess Actor CAF_ADD_ATOM(summa, initalize_outputStructure) CAF_ADD_ATOM(summa, access_forcing) diff --git a/config/fileManager.txt b/config/fileManager.txt deleted file mode 100644 index 3a5a89dbc432df573ac893e8b6eb9bd21edf236b..0000000000000000000000000000000000000000 --- a/config/fileManager.txt +++ /dev/null @@ -1,22 +0,0 @@ -controlVersion 'SUMMA_FILE_MANAGER_V3.0.0' -simStartTime '1979-01-01 00:00' -simEndTime '2019-12-31 23:00' -tmZoneInfo 'utcTime' -settingsPath '/project/gwf/gwf_cmt/kck540/domain_NorthAmerica/settings/SUMMA/' -forcingPath '/project/gwf/gwf_cmt/kck540/domain_NorthAmerica/forcing/SummaChunkedData/' -outputPath '/scratch/gwf/gwf_cmt/kck540/SummaOutput/SummaActors/Apr-26-2022/netcdf/' -forcingFreq 'month' -forcingStart '1979-01-01' -decisionsFile 'modelDecisions.txt' -outputControlFile 'outputControl.txt' -globalHruParamFile 'localParamInfo.txt' -globalGruParamFile 'basinParamInfo.txt' -attributeFile 'attributes.nc' -trialParamFile 'trialParams.nc' -forcingListFile 'forcingFileList.txt' -initConditionFile 'coldState.nc' -outFilePrefix 'SummaActors' -vegTableFile 'TBL_VEGPARM.TBL' -soilTableFile 'TBL_SOILPARM.TBL' -generalTableFile 'TBL_GENPARM.TBL' -noahmpTableFile 'TBL_MPTABLE.TBL' diff --git a/config/fileManager_example.txt b/utils/fileManager_example.txt similarity index 100% rename from config/fileManager_example.txt rename to utils/fileManager_example.txt