int *new_scounts = NULL, *new_sdispls = NULL;
ptrdiff_t slb, rlb, sext, rext;
char *tmpsend = NULL, *tmprecv = NULL;
- MPI_Datatype new_rdtype, new_sdtype;
+ MPI_Datatype new_rdtype = MPI_DATATYPE_NULL, new_sdtype = MPI_DATATYPE_NULL;
size = smpi_comm_size(comm);
rank = smpi_comm_rank(comm);
- blockcount doubles until the last step when only the remaining data is
exchanged.
*/
- blockcount = 1;
- tmpsend = (char*) rbuf;
-
new_rcounts = (int*) calloc(4*size, sizeof(int));
new_rdispls = new_rcounts + size;
new_scounts = new_rdispls + size;
rbuf, 1, new_rdtype, recvfrom,
COLL_TAG_ALLGATHERV,
comm, MPI_STATUS_IGNORE);
- smpi_datatype_free(&new_sdtype);
- smpi_datatype_free(&new_rdtype);
+ smpi_datatype_unuse(new_sdtype);
+ smpi_datatype_unuse(new_rdtype);
}