diff --git a/build/source/file_access_actor/file_access_actor.cpp b/build/source/file_access_actor/file_access_actor.cpp index 68bb0094db17344279c2dfe9146f947d9ba1a65c..fa55c4887680c0337b317fa55c4fef9a904d6221 100644 --- a/build/source/file_access_actor/file_access_actor.cpp +++ b/build/source/file_access_actor/file_access_actor.cpp @@ -40,18 +40,24 @@ behavior file_access_actor(stateful_actor<file_access_state>* self, self->state.summa_init_struc = std::make_unique<SummaInitStruc>(); - int err = self->state.summa_init_struc->allocate(self->state.num_gru); - if (err != 0) aout(self) << "ERROR: SummaInitStruc allocation failed\n"; - err = self->state.summa_init_struc->summa_paramSetup(); - if (err != 0) aout(self) << "ERROR: SummaInitStruc paramSetup failed\n"; - err = self->state.summa_init_struc->summa_readRestart(); - if (err != 0) aout(self) << "ERROR: SummaInitStruc readRestart failed\n"; + if (self->state.summa_init_struc->allocate(self->state.num_gru) != 0) { + aout(self) << "ERROR -- File_Access_Actor: SummaInitStruc allocation failed\n"; + return -1; + } + if (self->state.summa_init_struc->summa_paramSetup() != 0) { + aout(self) << "ERROR -- File_Access_Actor: SummaInitStruc paramSetup failed\n"; + return -1; + } + if (self->state.summa_init_struc->summa_readRestart()!= 0) { + aout(self) << "ERROR -- File_Access_Actor: SummaInitStruc readRestart failed\n"; + return -1; + } // Get the information about the forcing files self->state.forcing_files = std::make_unique<forcingFileContainer>(); - err = self->state.forcing_files->initForcingFiles(); - if (err != 0) return -1; + if (self->state.forcing_files->initForcingFiles() != 0) return -1; + int err = 0; std::unique_ptr<char[]> message(new char[256]); fileAccessActor_init_fortran(&self->state.num_steps, &fa_settings.num_timesteps_in_output_buffer, diff --git a/build/source/file_access_actor/summa_init_struc.cpp b/build/source/file_access_actor/summa_init_struc.cpp index b34b06f78b2286f1a1d230424c6b1b830908c5ad..03d27b121f54d5ade29f69f6393a515f3f3a786d 100644 --- a/build/source/file_access_actor/summa_init_struc.cpp +++ b/build/source/file_access_actor/summa_init_struc.cpp @@ -1,5 +1,6 @@ #include "summa_init_struc.hpp" #include <memory> +#include <iostream> SummaInitStruc::SummaInitStruc() {} @@ -11,6 +12,7 @@ int SummaInitStruc::allocate(int num_gru) { int err = 0; std::unique_ptr<char[]> message(new char[256]); initialize_init_struc(num_gru, err, &message); + if (err != 0) std::cout << message.get() << std::endl; return err; } @@ -18,6 +20,7 @@ int SummaInitStruc::summa_paramSetup() { int err = 0; std::unique_ptr<char[]> message(new char[256]); paramSetup_fortran(err, &message); + if (err != 0) std::cout << message.get() << std::endl; return err; } @@ -25,6 +28,7 @@ int SummaInitStruc::summa_readRestart() { int err = 0; std::unique_ptr<char[]> message(new char[256]); readRestart_fortran(err, &message); + if (err != 0) std::cout << message.get() << std::endl; return err; } diff --git a/build/source/file_access_actor/summa_init_struc.f90 b/build/source/file_access_actor/summa_init_struc.f90 index a16bdc182b511f3800e913408e12c1f04f1e8819..8291ccb425f1edc85616de1b1850b2bfd774fa77 100644 --- a/build/source/file_access_actor/summa_init_struc.f90 +++ b/build/source/file_access_actor/summa_init_struc.f90 @@ -25,6 +25,9 @@ subroutine initialize_init_struc(num_gru, err, message_r) bind(C, name="initiali indx_meta, & bpar_meta, & bvar_meta +#ifdef V4_ACTIVE + USE globalData,only:lookup_meta +#endif ! statistics metadata structures USE globalData,only:statForc_meta, & ! child metadata for stats statProg_meta, & ! child metadata for stats @@ -49,6 +52,9 @@ subroutine initialize_init_struc(num_gru, err, message_r) bind(C, name="initiali call f_c_string_ptr(trim(message), message_r) allocate(init_struc) summaVars: associate(& +#ifdef V4_ACTIVE + lookupStruct =>init_struc%lookupStruct , & ! x%gru(:)%hru(:)%z(:)%var(:)%lookup(:) -- lookup tables +#endif ! statistics structures forcStat => init_struc%forcStat , & ! x%gru(:)%hru(:)%var(:)%dat -- model forcing data progStat => init_struc%progStat , & ! x%gru(:)%hru(:)%var(:)%dat -- model prognostic (state) variables @@ -105,6 +111,9 @@ subroutine initialize_init_struc(num_gru, err, message_r) bind(C, name="initiali case('flux'); call allocGlobal(flux_meta, fluxStruct, err, cmessage) ! model fluxes case('bpar'); call allocGlobal(bpar_meta, bparStruct, err, cmessage) ! basin-average parameters case('bvar'); call allocGlobal(bvar_meta, bvarStruct, err, cmessage) ! basin-average variables +#ifdef V4_ACTIVE + case('lookup'); call allocGlobal(lookup_meta, lookupStruct, err, cmessage) ! lookup tables +#endif case('deriv'); cycle case default; err=20; message='unable to find structure name: '//trim(structInfo(iStruct)%structName) end select