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