From 1da1d318117bb680d560db817f228fd3667fcf68 Mon Sep 17 00:00:00 2001 From: KyleKlenk <kyle.c.klenk@gmail.com> Date: Wed, 7 Dec 2022 18:44:27 -0600 Subject: [PATCH] Fixed the issue with wrong timesteps --- bin/submission_one.sh | 21 ++-- .../actors/hru_actor/cpp_code/hru_actor.cpp | 100 ------------------ build/source/engine/coupled_em.f90 | 2 +- 3 files changed, 12 insertions(+), 111 deletions(-) diff --git a/bin/submission_one.sh b/bin/submission_one.sh index 67f8966..e2ad687 100755 --- a/bin/submission_one.sh +++ b/bin/submission_one.sh @@ -1,20 +1,21 @@ #!/bin/bash -#SBATCH --cpus-per-task=8 +#SBATCH --cpus-per-task=1 #SBATCH --time=01:00:00 -#SBATCH --mem=32G +#SBATCH --mem=2G #SBATCH --job-name=Summa-Actors #SBATCH --mail-user=kyle.klenk@usask.ca #SBATCH --mail-type=ALL #SBATCH --output=/scratch/gwf/gwf_cmt/kck540/Summa-Actors/slurm/Summa-Actors%A_%a.out #SBATCH --account=hpc_c_giws_clark +#SBATCH --array=0-1 -# offset=$SLURM_ARRAY_TASK_ID -# if [ $offset -eq 0 ] -# then -# /globalhome/kck540/HPC/Summa-Projects/Summa-Actors/bin/summaMain -g 1 -n 1 -c /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/Summa_Actors_Settings.json +offset=$SLURM_ARRAY_TASK_ID +if [ $offset -eq 0 ] +then + /globalhome/kck540/HPC/Summa-Projects/Summa-Actors/bin/summaMain -g 1 -n 15 -c /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/Summa_Actors_Settings.json -# else -# /globalhome/kck540/HPC/Summa-Projects/Summa-Actors/build/summa/bin/summa.exe -g 1 1 -m /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/OutputTesting/fileManager_SummaOriginal.txt +else + /globalhome/kck540/HPC/Summa-Projects/Summa-Actors/build/summa/bin/summa.exe -g 1 15 -m /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/OutputTesting/fileManager_SummaOriginal.txt -# fi -/globalhome/kck540/HPC/Summa-Projects/Summa-Actors/bin/summaMain -g 1 -n 1500 -c /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/Summa_Actors_Settings.json +fi +# /globalhome/kck540/HPC/Summa-Projects/Summa-Actors/bin/summaMain -g 1 -n 1 -c /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/Summa_Actors_Settings.json 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 a701361..28bf058 100644 --- a/build/source/actors/hru_actor/cpp_code/hru_actor.cpp +++ b/build/source/actors/hru_actor/cpp_code/hru_actor.cpp @@ -372,42 +372,6 @@ int Run_HRU(stateful_actor<hru_state>* self) { } self->state.hru_timing.updateEndPoint("run_physics_duration"); - // self->state.hru_timing.updateStartPoint("write_output_duration"); - - - - // prepareOutput(&self->state.timestep, - // self->state.handle_forcStat, - // self->state.handle_progStat, - // self->state.handle_diagStat, - // self->state.handle_fluxStat, - // self->state.handle_indxStat, - // self->state.handle_bvarStat, - // self->state.handle_timeStruct, - // self->state.handle_forcStruct, - // self->state.handle_attrStruct, - // self->state.handle_typeStruct, - // self->state.handle_indxStruct, - // self->state.handle_mparStruct, - // self->state.handle_progStruct, - // self->state.handle_diagStruct, - // self->state.handle_fluxStruct, - // self->state.handle_bparStruct, - // self->state.handle_bvarStruct, - // self->state.handle_statCounter, - // self->state.handle_outputTimeStep, - // self->state.handle_resetStats, - // self->state.handle_finalizeStats, - // self->state.handle_finshTime, - // self->state.handle_oldTime, - // &self->state.err); - // if (self->state.err != 0) { - // aout(self) << "Error: WriteOutput - HRU = " << self->state.indxHRU << - // " - indxGRU = " << self->state.indxGRU << " - refGRU = " << self->state.refGRU << - // " - Timestep = " << self->state.timestep << std::endl; - // return 30; - // } - // self->state.hru_timing.updateEndPoint("write_output_duration"); return 0; } @@ -416,68 +380,4 @@ void printOutput(stateful_actor<hru_state>* self) { aout(self) << self->state.refGRU << " - Timestep = " << self->state.timestep << std::endl; } -void getAndSendOutput(stateful_actor<hru_state>* self) { - // Get Data from fortran - // struct hru_output_state = getHRUOutput(); - // statistic structures - std::vector<std::vector<double>> forc_stat_array = get_var_dlength(self->state.handle_forcStat); - std::vector<std::vector<double>> prog_stat_array = get_var_dlength(self->state.handle_progStat); - std::vector<std::vector<double>> diag_stat_array = get_var_dlength(self->state.handle_diagStat); - std::vector<std::vector<double>> flux_stat_array = get_var_dlength(self->state.handle_fluxStat); - std::vector<std::vector<double>> indx_stat_array = get_var_dlength(self->state.handle_indxStat); - std::vector<std::vector<double>> bvar_stat_array = get_var_dlength(self->state.handle_bvarStat); - // primary data structures (scalars) - std::vector<int> time_struct_array = get_var_i(self->state.handle_timeStruct); - std::vector<double> forc_struct_array = get_var_d(self->state.handle_forcStruct); - std::vector<double> attr_struct_array = get_var_d(self->state.handle_attrStruct); - std::vector<int> type_struct_array = get_var_i(self->state.handle_typeStruct); - std::vector<long int> id_struct_array = get_var_i8(self->state.handle_idStruct); - // primary data structures (variable length vectors) - std::vector<std::vector<int>> indx_struct_array = get_var_ilength(self->state.handle_indxStruct); - std::vector<std::vector<double>> mpar_struct_array = get_var_dlength(self->state.handle_mparStruct); - std::vector<std::vector<double>> prog_struct_array = get_var_dlength(self->state.handle_progStruct); - std::vector<std::vector<double>> diag_struct_array = get_var_dlength(self->state.handle_diagStruct); - std::vector<std::vector<double>> flux_struct_array = get_var_dlength(self->state.handle_fluxStruct); - // basin-average structures - std::vector<double> bpar_struct_array = get_var_d(self->state.handle_bparStruct); - std::vector<std::vector<double>> bvar_struct_array = get_var_dlength(self->state.handle_bvarStruct); - // ancillary data structures - std::vector<double> dpar_struct_array = get_var_d(self->state.handle_dparStruct); - std::vector<int> finalize_stats_array = get_flagVec(self->state.handle_finalizeStats); - std::vector<int> output_time_step_array = get_var_i(self->state.handle_outputTimeStep); - - // Send the output to the file_access_actor - self->send(self->state.file_access_actor, write_output_v, - self->state.indxGRU, - self->state.indxHRU, - self, - // statistic structures - forc_stat_array, - prog_stat_array, - diag_stat_array, - flux_stat_array, - indx_stat_array, - bvar_stat_array, - // primary data structures (scalars) - time_struct_array, - forc_struct_array, - attr_struct_array, - type_struct_array, - id_struct_array, - // primary data structures (variable length vectors) - indx_struct_array, - mpar_struct_array, - prog_struct_array, - diag_struct_array, - flux_struct_array, - // basin-average structures - bpar_struct_array, - bvar_struct_array, - // ancillary data structures - dpar_struct_array, - finalize_stats_array, - output_time_step_array); - -} - } \ No newline at end of file diff --git a/build/source/engine/coupled_em.f90 b/build/source/engine/coupled_em.f90 index 03cbae5..0ba8e5b 100644 --- a/build/source/engine/coupled_em.f90 +++ b/build/source/engine/coupled_em.f90 @@ -1155,7 +1155,7 @@ subroutine coupled_em(& endif ! adjust length of the sub-step (make sure that we don't exceed the step) - dt_sub = data_step - dt_solv + dt_sub = min(data_step - dt_solv, dt_sub) end do substeps ! (sub-step loop) -- GitLab