diff --git a/src/fmpi_domain.c b/src/fmpi_domain.c index e44e914c5e85ac06a5798af134260da2d844f7a6..657876959d710d5df255b4046d4e6149004a6d81 100644 --- a/src/fmpi_domain.c +++ b/src/fmpi_domain.c @@ -93,7 +93,7 @@ static struct fmpi_data fmpi_partition_block_1d( const size_t rem = data->cnt % (size_t)ctx->mpi->size; const size_t cnt = (rank < rem) ? (cnt_per_proc + 1) : cnt_per_proc; const size_t size = cnt * data->type.size; - const size_t offset = (rank * size) + rem; + const size_t offset = (rank * size) + (rank < rem ? 0 : rem); return (struct fmpi_data){ .type = data->type, .cnt = cnt,