From 9b7fbc44f29e78c465a852fa9cb2b2b5e5829812 Mon Sep 17 00:00:00 2001 From: Kyle <kyle.c.klenk@gmail.com> Date: Mon, 7 Nov 2022 16:57:46 -0600 Subject: [PATCH] added a forgotten break statement --- .../actors/hru_actor/cpp_code/hru_actor.cpp | 88 ++++++------------- 1 file changed, 25 insertions(+), 63 deletions(-) diff --git a/build/source/actors/hru_actor/cpp_code/hru_actor.cpp b/build/source/actors/hru_actor/cpp_code/hru_actor.cpp index adad6bf..51726ca 100644 --- a/build/source/actors/hru_actor/cpp_code/hru_actor.cpp +++ b/build/source/actors/hru_actor/cpp_code/hru_actor.cpp @@ -51,6 +51,7 @@ behavior hru_actor(stateful_actor<hru_state>* self, int refGRU, int indxGRU, self->quit(); } + aout(self) << "NumSteps = " << self->state.num_steps << std::endl; // Get attributes self->send(self->state.file_access_actor, get_attributes_params_v, self->state.indxGRU, self); @@ -138,8 +139,9 @@ behavior hru_actor(stateful_actor<hru_state>* self, int refGRU, int indxGRU, self->state.timestep += 1; // HRU has finished - if (self->state.timestep >= self->state.num_steps) { - self->send(self, done_write_v); + if (self->state.timestep > self->state.num_steps) { + self->send(self, done_hru_v); + break; } } @@ -151,37 +153,27 @@ behavior hru_actor(stateful_actor<hru_state>* self, int refGRU, int indxGRU, self->state.hru_timing.updateEndPoint("total_duration"); }, - [=](done_write) { - self->state.hru_timing.updateStartPoint("total_duration"); - - // We receive a done_write message so we ensure that - // stepsInCurrentFFile remains unchanged - if (self->state.timestep >= self->state.num_steps) { - self->state.hru_timing.updateEndPoint("total_duration"); - - // Tell our parent we are done, convert all timings to seconds - aout(self) << "\n________________HRU TIMING INFO RESULTS________________\n"; - aout(self) << "Total Duration = " << self->state.hru_timing.getDuration("total_duration").value_or(-1.0) << " Seconds\n"; - aout(self) << "Init Duration = " << self->state.hru_timing.getDuration("init_duration").value_or(-1.0) << " Seconds\n"; - aout(self) << "Forcing Duration = " << self->state.hru_timing.getDuration("forcing_duration").value_or(-1.0) << " Seconds\n"; - aout(self) << "Run Physics Duration = " << self->state.hru_timing.getDuration("run_physics_duration").value_or(-1.0) << " Seconds\n"; - aout(self) << "Write Output Duration = " << self->state.hru_timing.getDuration("write_output_duration").value_or(-1.0) << " Seconds\n\n"; - - self->send(self->state.parent, - done_hru_v, - self->state.indxGRU, - self->state.hru_timing.getDuration("total_duration").value_or(-1.0), - self->state.hru_timing.getDuration("init_duration").value_or(-1.0), - self->state.hru_timing.getDuration("forcing_duration").value_or(-1.0), - self->state.hru_timing.getDuration("run_physics_duration").value_or(-1.0), - self->state.hru_timing.getDuration("write_output_duration").value_or(-1.0)); - - self->quit(); - return; - } - - self->state.hru_timing.updateEndPoint("total_duration"); - self->send(self, run_hru_v, self->state.stepsInCurrentFFile); + [=](done_hru) { + + // Tell our parent we are done, convert all timings to seconds + aout(self) << "\n________________HRU TIMING INFO RESULTS________________\n"; + aout(self) << "Total Duration = " << self->state.hru_timing.getDuration("total_duration").value_or(-1.0) << " Seconds\n"; + aout(self) << "Init Duration = " << self->state.hru_timing.getDuration("init_duration").value_or(-1.0) << " Seconds\n"; + aout(self) << "Forcing Duration = " << self->state.hru_timing.getDuration("forcing_duration").value_or(-1.0) << " Seconds\n"; + aout(self) << "Run Physics Duration = " << self->state.hru_timing.getDuration("run_physics_duration").value_or(-1.0) << " Seconds\n"; + aout(self) << "Write Output Duration = " << self->state.hru_timing.getDuration("write_output_duration").value_or(-1.0) << " Seconds\n\n"; + + self->send(self->state.parent, + done_hru_v, + self->state.indxGRU, + self->state.hru_timing.getDuration("total_duration").value_or(-1.0), + self->state.hru_timing.getDuration("init_duration").value_or(-1.0), + self->state.hru_timing.getDuration("forcing_duration").value_or(-1.0), + self->state.hru_timing.getDuration("run_physics_duration").value_or(-1.0), + self->state.hru_timing.getDuration("write_output_duration").value_or(-1.0)); + + self->quit(); + return; }, [=](dt_init_factor, int dt_init_factor) { @@ -345,36 +337,6 @@ int Run_HRU(stateful_actor<hru_state>* self) { return 0; } -// bool check_HRU(stateful_actor<hru_state>* self, int err) { - -// if (err != 0) { -// // check for error - -// self->send(self->state.parent, run_failure_v, self, self->state.indxGRU, err); -// self->quit(); -// return false; - -// } else if (self->state.timestep >= self->state.num_steps) { -// // check if simulation is finished - -// self->state.hru_timing.updateEndPoint("total_duration"); - -// return false; - -// } else if (self->state.forcingStep > self->state.stepsInCurrentFFile) { -// // we need more forcing data -// aout(self) << "Requesting File:" << self->state.iFile << "\n"; -// aout(self) << "forcingStep = " << self->state.forcingStep << "\n"; -// aout(self) << "stepsInCurrentFile = " << self->state.stepsInCurrentFFile << "\n"; -// self->send(self->state.file_access_actor, access_forcing_v, self->state.iFile + 1, self); - -// return false; - -// } else { -// return true; -// } -// } - void printOutput(stateful_actor<hru_state>* self) { aout(self) << self->state.refGRU << " - Timestep = " << self->state.timestep << std::endl; } -- GitLab