diff --git a/source/source_base/parallel_grid.cpp b/source/source_base/parallel_grid.cpp index f213e800bb..86c7e90ace 100644 --- a/source/source_base/parallel_grid.cpp +++ b/source/source_base/parallel_grid.cpp @@ -94,7 +94,8 @@ void Parallel_Grid::init_parallel(const int nprocgroup) this->whichpro_loc[ip].assign(this->ncz, 0); } - this->z_distribution(); + this->z_distribution(GlobalV::KPAR); + } #endif void Parallel_Grid::init(const int& ncx_in, @@ -107,18 +108,18 @@ void Parallel_Grid::init(const int& ncx_in, const int nprocgroup) { this->init_serial(ncx_in, ncy_in, ncz_in, nczp_in, nrxx_in, nbz_in, bz_in); - #ifdef __MPI this->init_parallel(nprocgroup); #endif } -void Parallel_Grid::z_distribution() +void Parallel_Grid::z_distribution(const int kpar) { assert(!this->numz.empty()); - - std::vector startp(GlobalV::KPAR); + assert(kpar > 0); + + std::vector startp(kpar); startp[0] = 0; - for (int ip = 0; ip < GlobalV::KPAR; ip++) + for (int ip = 0; ip < kpar; ip++) { const int nproc = nproc_in_pool[ip]; diff --git a/source/source_base/parallel_grid.h b/source/source_base/parallel_grid.h index d8ad5e23c8..495021cc83 100644 --- a/source/source_base/parallel_grid.h +++ b/source/source_base/parallel_grid.h @@ -45,7 +45,7 @@ class Parallel_Grid private: - void z_distribution(void); + void z_distribution(const int kpar); void init_serial(const int& ncx_in, const int& ncy_in,