From 9ee8ed6e6ed3e4ee1938fd8e3b807fff3785abef Mon Sep 17 00:00:00 2001 From: Kyle <kyle.c.klenk@gmail.com> Date: Sat, 27 Aug 2022 21:34:58 +0000 Subject: [PATCH] passed laugh tests after adding lookupstruct --- .../source/actors/file_access_actor/file_access_actor.cpp | 7 +++++++ build/source/actors/file_access_actor/initOutputStruc.f90 | 5 ++++- build/source/driver/summaActors_wOutputStruc.f90 | 6 ++---- 3 files changed, 13 insertions(+), 5 deletions(-) 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 de07700..fd9842f 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 dfed3e0..d46015a 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 4ad7004..0d5a534 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 ! **************************************************************************** -- GitLab