diff --git a/build/source/actors/file_access_actor/file_access_actor.cpp b/build/source/actors/file_access_actor/file_access_actor.cpp index de077002a53a73b4c0ff1b207a4bb6980da60c18..fd9842f010b98e75c1fa91fc92c440baa665c834 100644 --- a/build/source/actors/file_access_actor/file_access_actor.cpp +++ b/build/source/actors/file_access_actor/file_access_actor.cpp @@ -43,6 +43,13 @@ behavior file_access_actor(stateful_actor<file_access_state>* self, int startGRU aout(self) << "Initalizing Output Structure" << std::endl; Init_OutputStruct(self->state.handle_forcing_file_info, &self->state.outputStrucSize, &self->state.numGRU, &self->state.err); + if (self->state.err != 0) { + aout(self) << "ERROR: FILE_ACCESS_ACTOR init_OutputStruct \n"; + std::string function = "init_OutputStruc"; + self->send(self->state.parent, file_access_actor_err_v, function); + self->quit(); + return; + } }, [=](write_param, int indxGRU, int indxHRU) { diff --git a/build/source/actors/file_access_actor/initOutputStruc.f90 b/build/source/actors/file_access_actor/initOutputStruc.f90 index dfed3e0fafb7ace87c0a57f906410ad858274187..d46015a19fe9be33fd89348c64f19716779822c0 100644 --- a/build/source/actors/file_access_actor/initOutputStruc.f90 +++ b/build/source/actors/file_access_actor/initOutputStruc.f90 @@ -207,18 +207,21 @@ subroutine initalizeOutput(forcFileInfo, maxSteps, num_gru, err) ! Statistics call alloc_outputStruc(statBvar_meta(:)%var_info,outputStructure(1)%bvarStat(1)%gru(iGRU)%hru(iHRU), & maxSteps,nSnow=0,nSoil=0,err=err,message=message); ! basin-average variables - case('deriv'); cycle + case('deriv'); cycle + case('lookup'); cycle case default; err=20; message='unable to find structure name: '//trim(structInfo(iStruct)%structName) end select ! check errors if(err/=0)then message=trim(message)//'initOutputStruc.f90 - [structure = '//trim(structInfo(iStruct)%structName)//']' + print*, "message" return endif end do ! looping through data structures ! Finalize stats structure for writing to output file + print*, "HERE" allocate(outputStructure(1)%finalizeStats(1)%gru(iGRU)%hru(iHRU)%tim(maxSteps)) do iStep = 1, maxSteps allocate(outputStructure(1)%finalizeStats(1)%gru(iGRU)%hru(iHRU)%tim(iStep)%dat(1:maxVarFreq)) diff --git a/build/source/driver/summaActors_wOutputStruc.f90 b/build/source/driver/summaActors_wOutputStruc.f90 index 4ad7004c378fc55b96eb154d280fcd046f9d161a..0d5a53416ea4190e527293f07d45b649e28214f1 100644 --- a/build/source/driver/summaActors_wOutputStruc.f90 +++ b/build/source/driver/summaActors_wOutputStruc.f90 @@ -234,10 +234,8 @@ subroutine summaActors_writeToOutputStruc(& outputTimeStep%var(:)=1 end if ! if defining a new file - ! If we do not do this looping we segfault - I am not sure why - do iDat=1,size(outputStructure(1)%finalizeStats(1)%gru(indxGRU)%hru(indxHRU)%tim(outputStep)%dat) - outputStructure(1)%finalizeStats(1)%gru(indxGRU)%hru(indxHRU)%tim(outputStep)%dat(iDat) = finalizeStats%dat(iDat) - end do + ! If we do not do this looping we segfault - I am not sure why + outputStructure(1)%finalizeStats(1)%gru(indxGRU)%hru(indxHRU)%tim(outputStep)%dat(:) = finalizeStats%dat(:) ! **************************************************************************** ! *** calculate output statistics ! ****************************************************************************