Provided by: openmpi-doc_4.1.4-2ubuntu2_all bug

NAME

       MPIX_Allgather_init,    MPIX_Allgatherv_init,   MPIX_Allreduce_init,   MPIX_Alltoall_init,
       MPIX_Alltoallv_init,     MPIX_Alltoallw_init,     MPIX_Barrier_init,      MPIX_Bcast_init,
       MPIX_Exscan_init,       MPIX_Gather_init,       MPIX_Gatherv_init,       MPIX_Reduce_init,
       MPIX_Reduce_scatter_init,         MPIX_Reduce_scatter_block_init,          MPIX_Scan_init,
       MPIX_Scatter_init,            MPIX_Scatterv_init,            MPIX_Neighbor_allgather_init,
       MPIX_Neighbor_allgatherv_init, MPIX_Neighbor_alltoall_init,  MPIX_Neighbor_alltoallv_init,
       MPIX_Neighbor_alltoallw_init   -  Builds  a  handle  for  a  collective  communication  or
       neighborhood collective communication

SYNTAX

C Syntax

       #include <mpi.h>
       #include <mpi-ext.h>
       int MPIX_Allgather_init(const void *sendbuf, int sendcount,
            MPI_Datatype sendtype, void *recvbuf, int recvcount,
            MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Allgatherv_init(const void *sendbuf, int sendcount,
            MPI_Datatype sendtype, void *recvbuf, const int recvcounts[],
            const int displs[], MPI_Datatype recvtype, MPI_Comm comm,
            MPI_Info info, MPI_Request *request)

       int MPIX_Allreduce_init(const void *sendbuf, void *recvbuf, int count,
            MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Alltoall_init(const void *sendbuf, int sendcount,
            MPI_Datatype sendtype, void *recvbuf, int recvcount,
            MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Alltoallv_init(const void *sendbuf, const int sendcounts[],
            const int sdispls[], MPI_Datatype sendtype, void *recvbuf,
            const int recvcounts[], const int rdispls[], MPI_Datatype recvtype,
            MPI_Comm comm, MPI_Info info, MPI_Request *request)

       int MPIX_Alltoallw_init(const void *sendbuf, const int sendcounts[],
            const int sdispls[], const MPI_Datatype sendtypes[], void *recvbuf,
            const int recvcounts[], const int rdispls[],
            const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Barrier_init(MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Bcast_init(void *buffer, int count, MPI_Datatype datatype,
            int root, MPI_Comm comm, MPI_Info info, MPI_Request *request)

       int MPIX_Exscan_init(const void *sendbuf, void *recvbuf, int count,
            MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Gather_init(const void *sendbuf, int sendcount,
            MPI_Datatype sendtype, void *recvbuf, int recvcount,
            MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Gatherv_init(const void *sendbuf, int sendcount,
            MPI_Datatype sendtype, void *recvbuf, const int recvcounts[],
            const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm,
            MPI_Info info, MPI_Request *request)

       int MPIX_Reduce_init(const void *sendbuf, void *recvbuf, int count,
            MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm,
            MPI_Info info, MPI_Request *request)

       int MPIX_Reduce_scatter_init(const void *sendbuf, void *recvbuf,
            const int recvcounts[], MPI_Datatype datatype, MPI_Op op,
            MPI_Comm comm, MPI_Info info, MPI_Request *request)

       int MPIX_Reduce_scatter_block_init(const void *sendbuf, void *recvbuf,
            int recvcount, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm,
            MPI_Info info, MPI_Request *request)

       int MPIX_Scan_init(const void *sendbuf, void *recvbuf, int count,
            MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Scatter_init(const void *sendbuf, int sendcount,
            MPI_Datatype sendtype, void *recvbuf, int recvcount,
            MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Scatterv_init(const void *sendbuf, const int sendcounts[],
            const int displs[], MPI_Datatype sendtype, void *recvbuf,
            int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm,
            MPI_Info info, MPI_Request *request)

       int MPIX_Neighbor_allgather_init(const void *sendbuf, int sendcount,
            MPI_Datatype sendtype, void *recvbuf, int recvcount,
            MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Neighbor_allgatherv_init(const void *sendbuf, int sendcount,
            MPI_Datatype sendtype, void *recvbuf, const int recvcounts[],
            const int displs[], MPI_Datatype recvtype, MPI_Comm comm,
            MPI_Info info, MPI_Request *request)

       int MPIX_Neighbor_alltoall_init(const void *sendbuf, int sendcount,
            MPI_Datatype sendtype, void *recvbuf, int recvcount,
            MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_Neighbor_alltoallv_init(const void *sendbuf,
            const int sendcounts[], const int sdispls[], MPI_Datatype sendtype,
            void *recvbuf, const int recvcounts[], const int rdispls[],
            MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info,
            MPI_Request *request)

       int MPIX_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)

Fortran Syntax

       USE MPI
       USE MPI_EXT
       ! or the older form: INCLUDE 'mpif.h'; INCLUDE 'mpif-ext.h'
       MPIX_ALLGATHER_INIT(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT,
                 RECVTYPE, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, INFO
            INTEGER   REQUEST, IERROR

       MPIX_ALLGATHERV_INIT(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF,
                 RECVCOUNT, DISPLS, RECVTYPE, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNT, SENDTYPE, RECVCOUNT(*)
            INTEGER   DISPLS(*), RECVTYPE, COMM, INFO, REQUEST, IERROR

       MPIX_ALLREDUCE_INIT(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, INFO,
                 REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   COUNT, DATATYPE, OP, COMM, INFO, REQUEST, IERROR

       MPIX_ALLTOALL_INIT(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT,
                 RECVTYPE, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE
            INTEGER   COMM, INFO, REQUEST, IERROR

       MPIX_ALLTOALLV_INIT(SENDBUF, SENDCOUNTS, SDISPLS, SENDTYPE,
                 RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPE, COMM, INFO, REQUEST,
                 IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNTS(*), SDISPLS(*), SENDTYPE
            INTEGER   RECVCOUNTS(*), RDISPLS(*), RECVTYPE
            INTEGER   COMM, INFO, REQUEST, IERROR

       MPIX_ALLTOALLW_INIT(SENDBUF, SENDCOUNTS, SDISPLS, SENDTYPES,
                 RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPES, COMM, INFO, REQUEST,
                 IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNTS(*), SDISPLS(*), SENDTYPES(*)
            INTEGER   RECVCOUNTS(*), RDISPLS(*), RECVTYPES(*)
            INTEGER   COMM, INFO, REQUEST, IERROR

       MPIX_BARRIER_INIT(COMM, INFO, REQUEST, IERROR)
            INTEGER   COMM, INFO, REQUEST, IERROR

       MPIX_BCAST_INIT(BUFFER, COUNT, DATATYPE, ROOT, COMM, INFO, REQUEST,
                 IERROR)
            <type>    BUFFER(*)
            INTEGER   COUNT, DATATYPE, ROOT, COMM, INFO, REQUEST, IERROR

       MPIX_EXSCAN_INIT(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, INFO,
                 REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   COUNT, DATATYPE, OP, COMM, INFO, REQUEST, IERROR

       MPIX_GATHER_INIT(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT,
                 RECVTYPE, ROOT, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT
            INTEGER   COMM, INFO, REQUEST, IERROR

       MPIX_GATHERV_INIT(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS,
                 DISPLS, RECVTYPE, ROOT, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*)
            INTEGER   RECVTYPE, ROOT, COMM, INFO, REQUEST, IERROR

       MPIX_REDUCE_INIT(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM,
                 INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   COUNT, DATATYPE, OP, ROOT, COMM, INFO, REQUEST, IERROR

       MPIX_REDUCE_SCATTER_INIT(SENDBUF, RECVBUF, RECVCOUNTS, DATATYPE, OP,
                 COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   RECVCOUNTS(*), DATATYPE, OP, COMM, INFO, REQUEST, IERROR

       MPIX_REDUCE_SCATTER_BLOCK_INIT(SENDBUF, RECVBUF, RECVCOUNT, DATATYPE,
                 OP, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   RECVCOUNT, DATATYPE, OP, COMM, INFO, REQUEST, IERROR

       MPIX_SCAN_INIT(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, INFO,
                 REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   COUNT, DATATYPE, OP, COMM, INFO, REQUEST, IERROR

       MPIX_SCATTER_INIT(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT,
                 RECVTYPE, ROOT, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT
            INTEGER   COMM, INFO, REQUEST, IERROR

       MPIX_SCATTERV_INIT(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF,
                 RECVCOUNT, RECVTYPE, ROOT, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNTS(*), DISPLS(*), SENDTYPE
            INTEGER   RECVCOUNT, RECVTYPE, ROOT, COMM, INFO, REQUEST, IERROR

       MPIX_NEIGHBOR_ALLGATHER_INIT(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF,
                 RECVCOUNT, RECVTYPE, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM,
            INTEGER   INFO, REQUEST, IERROR

       MPIX_NEIGHBOR_ALLGATHERV_INIT(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF,
                 RECVCOUNT, DISPLS, RECVTYPE, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNT, SENDTYPE, RECVCOUNT(*),
            INTEGER   DISPLS(*), RECVTYPE, COMM, INFO, REQUEST, IERROR

       MPIX_NEIGHBOR_ALLTOALL_INIT(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF,
                 RECVCOUNT, RECVTYPE, COMM, INFO, REQUEST, IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE
            INTEGER   COMM, INFO, REQUEST, IERROR

       MPIX_NEIGHBOR_ALLTOALLV_INIT(SENDBUF, SENDCOUNTS, SDISPLS, SENDTYPE,
                 RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPE, COMM, INFO, REQUEST,
                 IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNTS(*), SDISPLS(*), SENDTYPE
            INTEGER   RECVCOUNTS(*), RDISPLS(*), RECVTYPE
            INTEGER   COMM, INFO, REQUEST, IERROR

       MPIX_NEIGHBOR_ALLTOALLW_INIT(SENDBUF, SENDCOUNTS, SDISPLS, SENDTYPES,
                 RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPES, COMM, INFO, REQUEST,
                 IERROR)
            <type>    SENDBUF(*), RECVBUF(*)
            INTEGER   SENDCOUNTS(*), SENDTYPES(*)
            INTEGER   RECVCOUNTS(*), RECVTYPES(*)
            INTEGER(KIND=MPI_ADDRESS_KIND) SDISPLS(*), RDISPLS(*)
            INTEGER   COMM, INFO, REQUEST, IERROR

Fortran 2008 Syntax

       USE mpi_f08
       USE mpi_f08_ext
       MPIX_Allgather_init(sendbuf, sendcount, sendtype, recvbuf, recvcount,
                 recvtype, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: sendcount, recvcount
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Allgatherv_init(sendbuf, sendcount, sendtype, recvbuf, recvcounts,
                 displs, recvtype, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: sendcount
            INTEGER, INTENT(IN), ASYNCHRONOUS :: recvcounts(*), displs(*)
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Allreduce_init(sendbuf, recvbuf, count, datatype, op, comm, info,
                 request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: count
            TYPE(MPI_Datatype), INTENT(IN) :: datatype
            TYPE(MPI_Op), INTENT(IN) :: op
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Alltoall_init(sendbuf, sendcount, sendtype, recvbuf, recvcount,
                 recvtype, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: sendcount, recvcount
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Alltoallv_init(sendbuf, sendcounts, sdispls, sendtype, recvbuf,
                 recvcounts, rdispls, recvtype, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), sdispls(*),
            recvcounts(*), rdispls(*)
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Alltoallw_init(sendbuf, sendcounts, sdispls, sendtypes, recvbuf,
                 recvcounts, rdispls, recvtypes, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), sdispls(*),
            recvcounts(*), rdispls(*)
            TYPE(MPI_Datatype), INTENT(IN), ASYNCHRONOUS :: sendtypes(*),
            recvtypes(*)
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Barrier_init(comm, info, request, ierror)
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Bcast_init(buffer, count, datatype, root, comm, info, request,
                 ierror)
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: buffer
            INTEGER, INTENT(IN) :: count, root
            TYPE(MPI_Datatype), INTENT(IN) :: datatype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Exscan_init(sendbuf, recvbuf, count, datatype, op, comm, info,
                 request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: count
            TYPE(MPI_Datatype), INTENT(IN) :: datatype
            TYPE(MPI_Op), INTENT(IN) :: op
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Gather_init(sendbuf, sendcount, sendtype, recvbuf,
                 recvcount, recvtype, root, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: sendcount, recvcount, root
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Gatherv_init(sendbuf, sendcount, sendtype, recvbuf, recvcounts,
                 displs, recvtype, root, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: sendcount, root
            INTEGER, INTENT(IN), ASYNCHRONOUS :: recvcounts(*), displs(*)
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Reduce_init(sendbuf, recvbuf, count, datatype, op, root, comm,
                 info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: count, root
            TYPE(MPI_Datatype), INTENT(IN) :: datatype
            TYPE(MPI_Op), INTENT(IN) :: op
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Reduce_scatter_init(sendbuf, recvbuf, recvcounts, datatype, op,
                 comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN), ASYNCHRONOUS :: recvcounts(*)
            TYPE(MPI_Datatype), INTENT(IN) :: datatype
            TYPE(MPI_Op), INTENT(IN) :: op
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Reduce_scatter_block_init(sendbuf, recvbuf, recvcount, datatype,
                 op, comm, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: recvcount
            TYPE(MPI_Datatype), INTENT(IN) :: datatype
            TYPE(MPI_Op), INTENT(IN) :: op
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Reduce_scatter_block_init(sendbuf, recvbuf, recvcount, datatype, op,
                 comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: recvcount
            TYPE(MPI_Datatype), INTENT(IN) :: datatype
            TYPE(MPI_Op), INTENT(IN) :: op
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Scan_init(sendbuf, recvbuf, count, datatype, op, comm, info,
                 request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: count
            TYPE(MPI_Datatype), INTENT(IN) :: datatype
            TYPE(MPI_Op), INTENT(IN) :: op
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Scatter_init(sendbuf, sendcount, sendtype, recvbuf, recvcount,
                 recvtype, root, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: sendcount, recvcount, root
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Scatterv_init(sendbuf, sendcounts, displs, sendtype, recvbuf,
                 recvcount, recvtype, root, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), displs(*)
            INTEGER, INTENT(IN) :: recvcount, root
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Neighbor_allgather_init(sendbuf, sendcount, sendtype, recvbuf,
                 recvcount, recvtype, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: sendcount, recvcount
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Neighbor_allgatherv_init(sendbuf, sendcount, sendtype, recvbuf,
                 recvcounts, displs, recvtype, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: sendcount
            INTEGER, INTENT(IN), ASYNCHRONOUS :: recvcounts(*), displs(*)
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Neighbor_alltoall_init(sendbuf, sendcount, sendtype, recvbuf,
                 recvcount, recvtype, comm, info, request, ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN) :: sendcount, recvcount
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Neighbor_alltoallv_init(sendbuf, sendcounts, sdispls, sendtype,
                 recvbuf, recvcounts, rdispls, recvtype, comm, info, request,
                 ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), sdispls(*),
            recvcounts(*), rdispls(*)
            TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

       MPIX_Neighbor_alltoallw_init(sendbuf, sendcounts, sdispls, sendtypes,
                 recvbuf, recvcounts, rdispls, recvtypes, comm, info, request,
                 ierror)
            TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: sendbuf
            TYPE(*), DIMENSION(..), ASYNCHRONOUS :: recvbuf
            INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), recvcounts(*)
            INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN), ASYNCHRONOUS ::
            sdispls(*), rdispls(*)
            TYPE(MPI_Datatype), INTENT(IN), ASYNCHRONOUS :: sendtypes(*),
            recvtypes(*)
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Info), INTENT(IN) :: info
            TYPE(MPI_Request), INTENT(OUT) :: request
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

DESCRIPTION

       Creates a persistent communication request for  a  collective  operation  or  neighborhood
       collective operation.

       As  of  Nov.  2018,  the  feature  of  persistent  collective communication operations and
       persistent collective neighborhood communication operations is planned to be  included  in
       the next MPI Standard after MPI-3.1.

           https://github.com/mpi-forum/mpi-issues/issues/25

       Open  MPI  implements  2018 Draft Specification of the MPI standard shown in the following
       URL.

           https://www.mpi-forum.org/docs/drafts/mpi-2018-draft-report.pdf

       The interface may still change in the standard. Therefore the prefix MPIX_ is used instead
       of  MPI_  for  these  request  creation routines. To start, complete, and free the created
       request, usual MPI routines (MPI_Start etc.) can be used.

       Future versions of Open MPI will switch to the MPI_ prefix and  will  not  require  the  C
       header file mpi-ext.h, the Fortran modules mpi_ext and mpi_f08_ext, and the Fortran header
       file mpif-ext.h once the MPI Standard which includes this feature is published.

EXAMPLE

           MPI_Request req;
           MPIX_Barrier_init(MPI_COMM_WORLD, MPI_INFO_NULL, &req);
           MPI_Start(&req);
           MPI_Wait(&req, MPI_STATUS_IGNORE);
           MPI_Request_free(&req);

SEE ALSO

       MPI_Start
       MPI_Startall
       MPI_Request_free