diff --git a/build/source/actors/job_actor/job_actor.cpp b/build/source/actors/job_actor/job_actor.cpp index 405731c0fbe7014e88b849376797c9612503c610..b87a79d66128b3218b888b09d5582937ac928715 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 52fbfe95ac3e3356ec1a4d9156f2ea2a0c818d4f..c2f860ee9bd07c6d3746c6d7aac7a00481034afb 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