/*D
   MPI_Neighbor_alltoallw_init - Create a persistent request for neighbor_alltoallw.

Synopsis:
.vb
int MPI_Neighbor_alltoallw_init(const void *sendbuf, const int sendcounts[],
                                const MPI_Aint sdispls[],
                                const MPI_Datatype sendtypes[], void *recvbuf,
                                const int recvcounts[],
                                const MPI_Aint rdispls[],
                                const MPI_Datatype recvtypes[], MPI_Comm comm,
                                MPI_Info info, MPI_Request *request)
.ve
.vb
int MPI_Neighbor_alltoallw_init_c(const void *sendbuf,
                                  const MPI_Count sendcounts[],
                                  const MPI_Aint sdispls[],
                                  const MPI_Datatype sendtypes[], void *recvbuf,
                                  const MPI_Count recvcounts[],
                                  const MPI_Aint rdispls[],
                                  const MPI_Datatype recvtypes[], MPI_Comm comm,
                                  MPI_Info info, MPI_Request *request)
.ve

Input Parameters:
+ sendbuf - starting address of send buffer (choice)
. sendcounts - non-negative integer array (of length outdegree) specifying the number of elements to send to each neighbor (non-negative integer)
. sdispls - integer array (of length outdegree). Entry j specifies the displacement in bytes (relative to sendbuf) from which to take the outgoing data destined for neighbor j (integer)
. sendtypes - array of datatypes (of length outdegree). Entry j specifies the type of data to send to neighbor j (handle)
. recvcounts - non-negative integer array (of length indegree) specifying the number of elements that are received from each neighbor (non-negative integer)
. rdispls - integer array (of length indegree). Entry i specifies the displacement in bytes (relative to recvbuf) at which to place the incoming data from neighbor i (integer)
. recvtypes - array of datatypes (of length indegree). Entry i specifies the type of data received from neighbor i (handle)
. comm - communicator with topology structure (handle)
- info - info argument (handle)

Output Parameters:
+ recvbuf - starting address of receive buffer (choice)
- request - communication request (handle)

.N ThreadSafe

.N Fortran

.N Errors
.N MPI_SUCCESS
.N MPI_ERR_ARG
.N MPI_ERR_BUFFER
.N MPI_ERR_COMM
.N MPI_ERR_COUNT
.N MPI_ERR_INFO
.N MPI_ERR_TYPE
.N MPI_ERR_OTHER

D*/

