@@ -254,8 +254,12 @@ namespace yask {
254254 rank_domain_offsets.set_vals_same (0 );
255255
256256 // Tables to share data across ranks.
257- idx_t coords[nr][nddims]; // rank indices.
258- idx_t rsizes[nr][nddims]; // rank sizes.
257+ vector<vector<idx_t >> coords (nr); // rank indices.
258+ vector<vector<idx_t >> rsizes (nr); // rank sizes.
259+ for (int rn = 0 ; rn < nr; rn++) {
260+ coords[rn].resize (nddims);
261+ rsizes[rn].resize (nddims);
262+ }
259263
260264 // Two passes over ranks:
261265 // 0: sum all specified local sizes.
@@ -274,9 +278,9 @@ namespace yask {
274278
275279 // Exchange coord and size info between all ranks.
276280 for (int rn = 0 ; rn < nr; rn++) {
277- MPI_Bcast (& coords[rn][ 0 ] , nddims, MPI_INTEGER8 ,
281+ MPI_Bcast (coords[rn]. data () , nddims, MPI_INTEGER8 ,
278282 rn, env->comm );
279- MPI_Bcast (& rsizes[rn][ 0 ] , nddims, MPI_INTEGER8 ,
283+ MPI_Bcast (rsizes[rn]. data () , nddims, MPI_INTEGER8 ,
280284 rn, env->comm );
281285 }
282286 // Now, the tables are filled in for all ranks.
0 commit comments