From 54ba85dda945efe11e123e77bb6fe88870f21fad Mon Sep 17 00:00:00 2001
From: Kyle Klenk <kyle.c.klenk@gmail.com>
Date: Fri, 26 Aug 2022 23:05:44 +0000
Subject: [PATCH] starting hrus in parallel passes laugh test but they are only
 one GRU each

---
 build/source/actors/job_actor/job_actor.cpp | 25 ++++++++++-----------
 build/source/driver/SummaActors_setup.f90   | 23 -------------------
 2 files changed, 12 insertions(+), 36 deletions(-)

diff --git a/build/source/actors/job_actor/job_actor.cpp b/build/source/actors/job_actor/job_actor.cpp
index 405731c..b87a79d 100644
--- a/build/source/actors/job_actor/job_actor.cpp
+++ b/build/source/actors/job_actor/job_actor.cpp
@@ -90,9 +90,6 @@ behavior job_actor(stateful_actor<job_state>* self, int start_gru, int num_gru,
 
     initCsvOutputFile(self);
 
-
-    
-
     // Spawn the file_access_actor. This will return the number of forcing files we are working with
     self->state.file_access_actor = self->spawn(file_access_actor, self->state.start_gru, self->state.num_gru, 
         self->state.output_struct_size, self->state.config_path, self);
@@ -112,9 +109,7 @@ behavior job_actor(stateful_actor<job_state>* self, int start_gru, int num_gru,
             }
             // aout(self) << "Done init\n";
             self->state.gru_init++;
-            if (self->state.gru_init < self->state.num_gru) {
-                self->send(self, init_hru_v);
-            } else {
+            if (self->state.gru_init >= self->state.num_gru) {
                 aout(self) << "All GRUs are initalized\n";
                 self->state.gru_init = 0; // reset counter in case we have failures
                 runGRUs(self);
@@ -258,13 +253,17 @@ void initCsvOutputFile(stateful_actor<job_state>* self) {
 }
 
 void initalizeGRU(stateful_actor<job_state>* self) {
-    int start_gru = self->state.gru_list.size() + self->state.start_gru;
-    int index_gru = self->state.gru_list.size() + 1; // Fortran reference starts at 1
-    auto gru = self->spawn(hru_actor, start_gru, index_gru, 
-        self->state.config_path, self->state.file_access_actor, 
-        self->state.output_struct_size, self);
-    self->state.gru_list.push_back(new GRUinfo(start_gru, index_gru, gru, 
-        self->state.dt_init_start_factor, self->state.max_run_attempts));
+
+    for(int i = 0; i < self->state.num_gru; i++) {
+        int start_gru = self->state.gru_list.size() + self->state.start_gru;
+        int index_gru = self->state.gru_list.size() + 1; // Fortran reference starts at 1
+        auto gru = self->spawn(hru_actor, start_gru, index_gru, 
+            self->state.config_path, self->state.file_access_actor, 
+            self->state.output_struct_size, self);
+        self->state.gru_list.push_back(new GRUinfo(start_gru, index_gru, gru, 
+            self->state.dt_init_start_factor, self->state.max_run_attempts));
+    }
+    
 }
 
 void runGRUs(stateful_actor<job_state>* self) {
diff --git a/build/source/driver/SummaActors_setup.f90 b/build/source/driver/SummaActors_setup.f90
index 52fbfe9..c2f860e 100755
--- a/build/source/driver/SummaActors_setup.f90
+++ b/build/source/driver/SummaActors_setup.f90
@@ -214,29 +214,6 @@ subroutine setupHRUParam(&
          return
    end select
 
-   ! set default model parameters
-   ! ! set parmameters to their default value
-   ! dparStruct%var(:) = localParFallback(:)%default_val         ! x%var(:)
-   ! ! overwrite default model parameters with information from the Noah-MP tables
-   ! call pOverwrite(typeStruct%var(iLookTYPE%vegTypeIndex),  &  ! vegetation category
-   !               typeStruct%var(iLookTYPE%soilTypeIndex), &  ! soil category
-   !               dparStruct%var,                          &  ! default model parameters
-   !               err,cmessage)                                                   ! error control
-   ! if(err/=0)then
-   !    message=trim(message)//trim(cmessage)
-   !    print*, message
-   !    return
-   ! endif
- 
-
-   ! ! copy over to the parameter structure
-   ! ! NOTE: constant for the dat(:) dimension (normally depth)
-   ! do ivar=1,size(localParFallback)
-   !    mparStruct%var(ivar)%dat(:) = dparStruct%var(ivar)
-   ! end do  ! looping through variables
-
-   ! set default for basin-average parameters
-   ! bparStruct%var(:) = basinParFallback(:)%default_val ! moved to read_param
  
    ! *****************************************************************************
    ! *** read trial model parameter values for each HRU, and populate initial data structures
-- 
GitLab