IBM Books

MPI Programming and Subroutine Reference


Appendix A. MPI Subroutine Bindings: Quick Reference

Partial Table-of-Contents

  • Bindings for Nonblocking Collective Communication
  • Bindings for Point-to-Point Communication and Derived Datatypes
  • Bindings for Collective Communication
  • Bindings for Groups and Communicators
  • Bindings for Topologies
  • Bindings for Environment Management
  • Bindings for Profiling
  • Bindings for Files
  • Bindings for info Objects

  • The tables in this appendix summarize the C and FORTRAN binding information for all of the subroutines listed in this book.
    Note:FORTRAN refers to FORTRAN 77 bindings which are officially supported for MPI. However, FORTRAN 77 bindings can be used by Fortran 90. Fortran 90 and High Performance Fortran (HPF) offer array section and assumed shape arrays as parameters on calls. These are not safe with MPI.


    Bindings for Nonblocking Collective Communication

    Table 6 lists the C and FORTRAN bindings for nonblocking collective communication routines.

    Table 6. Bindings for Nonblocking Collective Communication
    C/FORTRAN Subroutine C/FORTRAN Binding
    MPE_Ibarrier int MPE_Ibarrier(MPI_Comm comm,MPI_Request *request);
    MPE_IBARRIER MPE_IBARRIER(INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Ibcast int MPE_Ibcast(void* buffer,int count,MPI_Datatype datatype,int root,MPI_Comm comm,MPI_Request *request);
    MPE_IBCAST MPE_IBCAST(CHOICE BUFFER,INTEGER COUNT,INTEGER DATATYPE,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Igather int MPE_Igather(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root, MPI_Comm comm,MPI_Request *request);
    MPE_IGATHER MPE_IGATHER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Igatherv int MPE_Igatherv(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *displs,MPI_Datatype recvtype,int root,MPI_Comm comm,MPI_Request *request);
    MPE_IGATHERV MPE_IGATHERV(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE, CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DISPLS(*),INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Iscatter int MPE_Iscatter(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root,MPI_Comm comm,MPI_Request *request);
    MPE_ISCATTER MPE_ISCATTER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Iscatterv int MPE_Iscatterv(void* sendbuf,int *sendcounts,int *displs,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root,MPI_Comm comm,MPI_Request *request);
    MPE_ISCATTERV MPE_ISCATTERV(CHOICE SENDBUF,INTEGER SENDCOUNTS(*),INTEGER DISPLS(*),INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Iallgather int MPE_Iallgather(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype, MPI_Comm comm,MPI_Request *request);
    MPE_IALLGATHER MPE_IALLGATHER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE, CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Iallgatherv int MPE_Iallgatherv(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *displs,MPI_Datatype recvtype,MPI_Comm comm,MPI_Request *request);
    MPE_IALLGATHERV MPE_IALLGATHERV(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE, CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DISPLS(*),INTEGER RECVTYPE,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Ialltoall int MPE_Ialltoall(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,MPI_Comm comm,MPI_Request *request);
    MPE_IALLTOALL MPE_IALLTOALL(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Ialltoallv int MPE_Ialltoallv(void* sendbuf,int *sendcounts,int *sdispls,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *rdispls,MPI_Datatype recvtype,MPI_Comm comm,MPI_Request *request);
    MPE_IALLTOALLV MPE_IALLTOALV(CHOICE SENDBUF,INTEGER SENDCOUNTS(*),INTEGER SDISPLS(*),INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER RDISPLS(*),INTEGER RECVTYPE,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Ireduce int MPE_Ireduce(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,int root,MPI_Comm comm,MPI_Request *request);
    MPE_IREDUCE MPE_IREDUCE(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Iallreduce int MPE_Iallreduce(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm,MPI_Request *request);
    MPE_IALLREDUCE MPE_IALLREDUCE(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Ireduce_scatter int MPE_Ireduce_scatter(void* sendbuf,void* recvbuf,int *recvcounts,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm,MPI_Request *request);
    MPE_IREDUCE_SCATTER MPE_IREDUCE_SCATTER(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPE_Iscan int MPE_Iscan(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm,MPI_Request *request);
    MPE_ISCAN MPE_ISCAN(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)


    Bindings for Point-to-Point Communication and Derived Datatypes

    Table 7 lists the C and FORTRAN bindings for point-to-point communication and derived datatype routines.

    Table 7. Bindings for Point-to-Point Communication and Derived Datatypes
    C/FORTRAN Subroutine C/FORTRAN Binding
    MPI_Send int MPI_Send(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm);
    MPI_SEND MPI_SEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM, INTEGER IERROR)
    MPI_Recv int MPI_Recv(void* buf,int count,MPI_Datatype datatype,int source,int tag, MPI_Comm comm, MPI_Status *status);
    MPI_RECV MPI_RECV(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER SOURCE, INTEGER TAG,INTEGER COMM,INTEGER STATUS(MPI_STATUS_SIZE),,INTEGER IERROR)
    MPI_Get_count int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count);
    MPI_GET_COUNT MPI_GET_COUNT(INTEGER STATUS(MPI_STATUS_SIZE),,INTEGER DATATYPE,INTEGER COUNT, INTEGER IERROR)
    MPI_Bsend int MPI_Bsend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm);
    MPI_BSEND MPI_BSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST, INTEGER TAG,INTEGER COMM,INTEGER IERROR)
    MPI_Ssend int MPI_Ssend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm);
    MPI_SSEND MPI_SSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER IERROR)
    MPI_Rsend int MPI_Rsend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm);
    MPI_RSEND MPI_RSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER IERROR)
    MPI_Buffer_attach int MPI_Buffer_attach(void* buffer,int size);
    MPI_BUFFER_ATTACH MPI_BUFFER_ATTACH(CHOICE BUFFER,INTEGER SIZE,INTEGER IERROR)
    MPI_Buffer_detach int MPI_Buffer_detach(void* buffer,int* size);
    MPI_BUFFER_DETACH MPI_BUFFER_DETACH(CHOICE BUFFER,INTEGER SIZE,INTEGER IERROR)
    MPI_Isend int MPI_Isend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request);
    MPI_ISEND MPI_ISEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPI_Ibsend int MPI_Ibsend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request);
    MPI_IBSEND MPI_IBSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPI_Issend int MPI_Issend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request);
    MPI_ISSEND MPI_ISSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPI_Irsend int MPI_Irsend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request);
    MPI_IRSEND MPI_IRSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPI_Irecv int MPI_Irecv(void* buf,int count,MPI_Datatype datatype,int source,int tag,MPI_Comm comm,MPI_Request *request);
    MPI_IRECV MPI_IRECV(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER SOURCE,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPI_Wait int MPI_Wait(MPI_Request *request,MPI_Status *status);
    MPI_WAIT MPI_WAIT(INTEGER REQUEST,INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR)
    MPI_Test int MPI_Test(MPI_Request *request,int *flag,MPI_Status *status);
    MPI_TEST MPI_TEST(INTEGER REQUEST,INTEGER FLAG,INTEGER STATUS(MPI_STATUS_SIZE), INTEGER IERROR)
    MPI_Request_free int MPI_Request_free(MPI_Request *request);
    MPI_REQUEST_FREE MPI_REQUEST_FREE(INTEGER REQUEST,INTEGER IERROR)
    MPI_Waitany int MPI_Waitany(int count,MPI_Request *array_of_requests,int *index,MPI_Status *status);
    MPI_WAITANY MPI_WAITANY(INTEGER COUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER INDEX, INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR)
    MPI_Testany int MPI_Testany(int count, MPI_Request *array_of_requests, int *index, int *flag,MPI_Status *status);
    MPI_TESTANY MPI_TESTANY(INTEGER COUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER INDEX,INTEGER FLAG,INTEGER STATUS(MPI_STATUS_SIZE), INTEGER IERROR)
    MPI_Waitall int MPI_Waitall(int count,MPI_Request *array_of_requests,MPI_Status *array_of_statuses);
    MPI_WAITALL MPI_WAITALL(INTEGER COUNT,INTEGER ARRAY_OF_ REQUESTS(*),INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*), INTEGER IERROR)
    MPI_Testall int MPI_Testall(int count,MPI_Request *array_of_requests,int *flag,MPI_Status *array_of_statuses);
    MPI_TESTALL MPI_TESTALL(INTEGER COUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER FLAG, INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*),INTEGER IERROR)
    MPI_Waitsome int MPI_Waitsome(int incount,MPI_Request *array_of_requests,int *outcount,int *array_of_indices,MPI_Status *array_of_statuses);
    MPI_WAITSOME MPI_WAITSOME(INTEGER INCOUNT,INTEGER ARRAY_OF_REQUESTS,INTEGER OUTCOUNT,INTEGER ARRAY_OF_INDICES(*),INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE),*),INTEGER IERROR)
    MPI_Testsome int MPI_Testsome(int incount,MPI_Request *array_of_requests,int *outcount,int *array_of_indices,MPI_Status *array_of_statuses);
    MPI_TESTSOME MPI_TESTSOME(INTEGER INCOUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER OUTCOUNT,INTEGER ARRAY_OF_INDICES(*),INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE),*),INTEGER IERROR)
    MPI_Iprobe int MPI_Iprobe(int source,int tag,MPI_Comm comm,int *flag,MPI_Status *status);
    MPI_IPROBE MPI_IPROBE(INTEGER SOURCE,INTEGER TAG,INTEGER COMM,INTEGER FLAG,INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR)
    MPI_Probe int MPI_Probe(int source,int tag,MPI_Comm comm,MPI_Status *status);
    MPI_PROBE MPI_PROBE(INTEGER SOURCE,INTEGER TAG,INTEGER COMM,INTEGER STATUS(MPI_STATUS_SIZE), INTEGER IERROR)
    MPI_Cancel int MPI_Cancel(MPI_Request *request);
    MPI_CANCEL MPI_CANCEL(INTEGER REQUEST,INTEGER IERROR)
    MPI_Test_cancelled int MPI_Test_cancelled(MPI_Status *status,int *flag);
    MPI_TEST_CANCELLED MPI_TEST_CANCELLED(INTEGER STATUS(MPI_STATUS_SIZE),INTEGER FLAG,INTEGER IERROR)
    MPI_Send_init int MPI_Send_init(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request);
    MPI_SEND_INIT MPI_SEND_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPI_Bsend_init int MPI_Bsend_init(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request);
    MPI_BSEND_INIT MPI_SEND_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPI_Ssend_init int MPI_Ssend_init(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request);
    MPI_SSEND_INIT MPI_SSEND_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,IERROR)
    MPI_Rsend_init int MPI_Rsend_init(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request);
    MPI_RSEND_INIT MPI_RSEND_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPI_Recv_init int MPI_Recv_init(void* buf,int count,MPI_Datatype datatype,int source,int tag,MPI_Comm comm,MPI_Request *request);
    MPI_RECV_INIT MPI_RECV_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER SOURCE,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
    MPI_Start int MPI_Start(MPI_Request *request);
    MPI_START MPI_START(INTEGER REQUEST,INTEGER IERROR)
    MPI_Startall int MPI_Startall(int count,MPI_Request *array_of_requests);
    MPI_STARTALL MPI_STARTALL(INTEGER COUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER IERROR)
    MPI_Sendrecv int MPI_Sendrecv(void *sendbuf,int sendcount,MPI_Datatype sendtype,int dest,int sendtag,void *recvbuf,int recvcount, MPI_Datatype recvtype,int source,int recvtag,MPI_Comm comm,MPI_Status *status);
    MPI_SENDRECV MPI_SENDRECV(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,INTEGER DEST,INTEGER SENDTAG,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER SOURCE,INTEGER RECVTAG,INTEGER COMM,INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR)
    MPI_Sendrecv_replace int MPI_Sendrecv_replace(void* buf,int count,MPI_Datatype datatype,int dest,int sendtag,int source,int recvtag,MPI_Comm comm,MPI_Status *status);
    MPI_SENDRECV_REPLACE MPI_SENDRECV_REPLACE(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER SENDTAG,INTEGER SOURCE,INTEGER RECVTAG,INTEGER COMM,INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR)
    MPI_Type_contiguous int MPI_Type_contiguous(int count,MPI_Datatype oldtype,MPI_Datatype *newtype);
    MPI_TYPE_CONTIGUOUS MPI_TYPE_CONTIGUOUS(INTEGER COUNT,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR)
    MPI_Type_create_darray int MPI_Type_create_darray (int size,int rank,int ndims, int array_of_gsizes[],int array_of_distribs[], int array_of_dargs[],int array_of_psizes[], int order,MPI_Datatype oldtype,MPI_Datatype *newtype);
    MPI_TYPE_CREATE_DARRAY MPI_TYPE_CREATE_DARRAY (INTEGER SIZE,INTEGER RANK,INTEGER NDIMS, INTEGER ARRAY_OF_GSIZES(*),INTEGER ARRAY_OF_DISTRIBS(*), INTEGER ARRAY_OF_DARGS(*),INTEGER ARRAY_OF_PSIZES(*), INTEGER ORDER,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR)
    MPI_Type_create_subarray int MPI_Type_create_subarray (int ndims,int array_of_sizes[], int array_of_subsizes[],int array_of_starts[] , int order,MPI_Datatype oldtype,MPI_Datatype *newtype);
    MPI_TYPE_CREATE_SUBARRAY MPI_TYPE_CREATE_SUBARRAY (INTEGER NDIMS,INTEGER ARRAY_OF_SUBSIZES(*), INTEGER ARRAY_OF_SIZES(*),INTEGER ARRAY_OF_STARTS(*), INTEGER ORDER,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR)
    MPI_Type_get_contents int MPI_Type_get_contents(MPI_Datatype datatype, int *max_integers, int *max_addresses, int *max_datatypes, int array_of_integers[], int array_of_addresses[], int array_of_datatypes[]);
    MPI_TYPE_GET_CONTENTS MPI_TYPE_GET_CONTENTS(INTEGER DATATYPE, INTEGER MAX_INTEGERS, INTEGER MAX_ADDRESSES, INTEGER MAX_DATATYPES, INTEGER ARRAY_of_INTEGERS, INTEGER ARRAY_OF_ADDRESSES, INTEGER ARRAY_of_DATATYPES, INTEGER IERROR)
    MPI_Type_get_envelope int MPI_Type_get_envelope(MPI_Datatype datatype, int *num_integers, int *num_addresses, int *num_datatypes, int *combiner);
    MPI_TYPE_GET_ENVELOPE MPI_TYPE_GET_ENVELOPE(INTEGER DATATYPE, INTEGER NUM_INTEGERS, INTEGER NUM_ADDRESSES, INTEGER NUM_DATATYPES, INTEGER COMBINER, INTEGER IERROR)
    MPI_Type_vector int MPI_Type_vector(int count,int blocklength,int stride,MPI_Datatype oldtype,MPI_Datatype *newtype);
    MPI_TYPE_VECTOR MPI_TYPE_VECTOR(INTEGER COUNT,INTEGER BLOCKLENGTH,INTEGER STRIDE,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR)
    MPI_Type_hvector int MPI_Type_hvector(int count,int blocklength,MPI_Aint stride,MPI_Datatype oldtype,MPI_Datatype *newtype);
    MPI_TYPE_HVECTOR MPI_TYPE_HVECTOR(INTEGER COUNT,INTEGER BLOCKLENGTH,INTEGER STRIDE,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR)
    MPI_Type_indexed int MPI_Type_indexed(int count,int *array_of_blocklengths,int *array_of_displacements,MPI_Datatype oldtype, MPI_Datatype *newtype);
    MPI_TYPE_INDEXED MPI_TYPE_INDEXED(INTEGER COUNT, INTEGER ARRAY_OF_BLOCKLENGTHS(*), INTEGER ARRAY_OF DISPLACEMENTS(*),INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR)
    MPI_Type_hindexed int MPI_Type_hindexed(int count,int *array_of_blocklengths,MPI_Aint *array_of_displacements,MPI_Datatype oldtype, MPI_Datatype *newtype);
    MPI_TYPE_HINDEXED MPI_TYPE_HINDEXED(INTEGER COUNT,INTEGER ARRAY_OF_BLOCKLENGTHS(*),INTEGER ARRAY_OF DISPLACEMENTS(*),INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR)
    MPI_Type_struct int MPI_Type_struct(int count,int *array_of_blocklengths, MPI_Aint *array_of_displacements,MPI_Datatype *array_of_types, MPI_Datatype *newtype);
    MPI_TYPE_STRUCT MPI_TYPE_STRUCT(INTEGER COUNT,INTEGER ARRAY_OF_BLOCKLENGTHS(*),INTEGER ARRAY_OF DISPLACEMENTS(*),INTEGER ARRAY_OF_TYPES(*),INTEGER NEWTYPE,INTEGER IERROR)
    MPI_Address int MPI_Address(void* location,MPI_Aint *address);
    MPI_ADDRESS MPI_ADDRESS(CHOICE LOCATION,INTEGER ADDRESS,INTEGER IERROR)
    MPI_Type_extent int MPI_Type_extent(MPI_Datatype datatype,int *extent);
    MPI_TYPE_EXTENT MPI_TYPE_EXTENT(INTEGER DATATYPE,INTEGER EXTENT,INTEGER IERROR)
    MPI_Type_size int MPI_Type_size(MPI_Datatype datatype,int *size);
    MPI_TYPE_SIZE MPI_TYPE_SIZE(INTEGER DATATYPE,INTEGER SIZE,INTEGER IERROR)
    MPI_Type_lb int MPI_Type_lb(MPI_Datatype datatype,int* displacement);
    MPI_TYPE_LB MPI_TYPE_LB(INTEGER DATATYPE,INTEGER DISPLACEMENT,INTEGER IERROR)
    MPI_Type_ub int MPI_Type_ub(MPI_Datatype datatype,int* displacement);
    MPI_TYPE_UB MPI_TYPE_UB(INTEGER DATATYPE,INTEGER DISPLACEMENT,INTEGER IERROR)
    MPI_Type_commit int MPI_Type_commit(MPI_Datatype *datatype);
    MPI_TYPE_COMMIT MPI_TYPE_COMMIT(INTEGER DATATYPE,INTEGER IERROR)
    MPI_Type_free int MPI_Type_free(MPI_Datatype *datatype);
    MPI_TYPE_FREE MPI_TYPE_FREE(INTEGER DATATYPE,INTEGER IERROR)
    MPI_Get_elements int MPI_Get_elements(MPI_Status *status,MPI_Datatype datatype,int *count);
    MPI_GET_ELEMENTS MPI_GET_ELEMENTS(INTEGER STATUS(MPI_STATUS_SIZE),INTEGER DATATYPE,INTEGER COUNT,INTEGER IERROR)
    MPI_Pack int MPI_Pack(void* inbuf,int incount,MPI_Datatype datatype,void *outbuf,int outsize,int *position,MPI_Comm comm);
    MPI_PACK MPI_PACK(CHOICE INBUF,INTEGER INCOUNT,INTEGER DATATYPE,CHOICE OUTBUF,INTEGER OUTSIZE,INTEGER POSITION,INTEGER COMM,INTEGER IERROR)
    MPI_Unpack int MPI_Unpack(void* inbuf,int insize,int *position,void *outbuf,int outcount,MPI_Datatype datatype,MPI_Comm comm);
    MPI_UNPACK MPI_UNPACK(CHOICE INBUF,INTEGER INSIZE,INTEGER POSITION,CHOICE OUTBUF,INTEGER OUTCOUNT,INTEGER DATATYPE,INTEGER COMM, INTEGER IERRROR)
    MPI_Pack_size int MPI_Pack_size(int incount,MPI_Datatype datatype,MPI_Comm comm,int *size);
    MPI_PACK_SIZE MPI_PACK_SIZE(INTEGER INCOUNT,INTEGER DATATYPE,INTEGER COMM,INTEGER SIZE,INTEGER IERROR)


    Bindings for Collective Communication

    Table 8 lists the C and FORTRAN bindings for collective communication routines.

    Table 8. Bindings for Collective Communication
    C/FORTRAN Subroutine C/FORTRAN Binding
    MPI_Barrier int MPI_Barrier(MPI_Comm comm);
    MPI_BARRIER MPI_BARRIER(INTEGER COMM,INTEGER IERROR)
    MPI_Bcast int MPI_Bcast(void* buffer,int count,MPI_Datatype datatype,int root,MPI_Comm comm);
    MPI_BCAST MPI_BCAST(CHOICE BUFFER,INTEGER COUNT,INTEGER DATATYPE,INTEGER ROOT,INTEGER COMM,INTEGER IERROR)
    MPI_Gather int MPI_Gather(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root,MPI_Comm comm);
    MPI_GATHER MPI_GATHER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER IERROR)
    MPI_Gatherv int MPI_Gatherv(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *displs,MPI_Datatype recvtype,int root,MPI_Comm comm);
    MPI_GATHERV MPI_GATHERV(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DISPLS(*),INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER IERROR)
    MPI_Scatter int MPI_Scatter(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root MPI_Comm comm);
    MPI_SCATTER MPI_SCATTER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER IERROR)
    MPI_Scatterv int MPI_Scatterv(void* sendbuf,int *sendcounts,int *displs,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root,MPI_Comm comm);
    MPI_SCATTERV MPI_SCATTERV(CHOICE SENDBUF,INTEGER SENDCOUNTS(*),INTEGER DISPLS(*),INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER IERROR)
    MPI_Allgather int MPI_Allgather(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype, MPI_Comm comm);
    MPI_ALLGATHER MPI_ALLGATHER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER COMM,INTEGER IERROR)
    MPI_Allgatherv int MPI_Allgatherv(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *displs, MPI_Datatype recvtype,MPI_Comm comm);
    MPI_ALLGATHERV MPI_ALLGATHERV(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DISPLS(*),INTEGER RECVTYPE,INTEGER COMM,INTEGER IERROR)
    MPI_Alltoall int MPI_Alltoall(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype, MPI_Comm comm);
    MPI_ALLTOALL MPI_ALLTOALL(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER COMM,INTEGER IERROR)
    MPI_Alltoallv int MPI_Alltoallv(void* sendbuf,int *sendcounts,int *sdispls,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *rdispls,MPI_Datatype recvtype,MPI_Comm comm);
    MPI_ALLTOALLV MPI_ALLTOALLV(CHOICE SENDBUF,INTEGER SENDCOUNTS(*),INTEGER SDISPLS(*),INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER RDISPLS(*),INTEGER RECVTYPE,INTEGER COMM,INTEGER IERROR)
    MPI_Reduce int MPI_Reduce(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,int root,MPI_Comm comm);
    MPI_REDUCE MPI_REDUCE(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER ROOT,INTEGER COMM,INTEGER IERROR)
    MPI_Op_create int MPI_Op_create(MPI_User_function *function, int commute, MPI_Op *op);
    MPI_OP_CREATE MPI_OP_CREATE(EXTERNAL FUNCTION,INTEGER COMMUTE,INTEGER OP,INTEGER IERROR)
    MPI_Op_free int MPI_Op_free(MPI_Op *op);
    MPI_OP_FREE MPI_OP_FREE(INTEGER OP,INTEGER IERROR)
    MPI_Allreduce int MPI_Allreduce(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm);
    MPI_ALLREDUCE MPI_ALLREDUCE(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER IERROR)
    MPI_Reduce_scatter int MPI_Reduce_scatter(void* sendbuf,void* recvbuf,int *recvcounts,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm);
    MPI_REDUCE_SCATTER MPI_REDUCE_SCATTER(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER IERROR)
    MPI_Scan int MPI_Scan(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm);
    MPI_SCAN MPI_SCAN(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER IERROR)


    Bindings for Groups and Communicators

    Table 9 lists the C and FORTRAN bindings for group and communicator routines.

    Table 9. Bindings for Groups and Communicators
    C/FORTRAN Subroutine C/FORTRAN Binding
    MPI_Group_size int MPI_Group_size(MPI_Group group,int *size);
    MPI_GROUP_SIZE MPI_GROUP_SIZE(INTEGER GROUP,INTEGER SIZE,INTEGER IERROR)
    MPI_Group_rank int MPI_Group_rank(MPI_Group group,int *rank);
    MPI_GROUP_RANK MPI_GROUP_RANK(INTEGER GROUP,INTEGER RANK,INTEGER IERROR)
    MPI_Group_translate_ranks int MPI_Group_translate_ranks (MPI_Group group1,int n,int *ranks1,MPI_Group group2,int *ranks2);
    MPI_GROUP_TRANSLATE_RANKS MPI_GROUP_TRANSLATE_RANKS(INTEGER GROUP1, INTEGER N,INTEGER RANKS1(*),INTEGER GROUP2,INTEGER RANKS2(*),INTEGER IERROR)
    MPI_Group_compare int MPI_Group_compare(MPI_Group group1,MPI_Group group2,int *result);
    MPI_GROUP_COMPARE MPI_GROUP_COMPARE(INTEGER GROUP1,INTEGER GROUP2,INTEGER RESULT,INTEGER IERROR)
    MPI_Comm_group int MPI_Comm_group(MPI_Comm comm,MPI_Group *group);
    MPI_COMM_GROUP MPI_COMM_GROUP(INTEGER COMM,INTEGER GROUP,INTEGER IERROR)
    MPI_Group_union int MPI_Group_union(MPI_Group group1,MPI_Group group2,MPI_Group *newgroup);
    MPI_GROUP_UNION MPI_GROUP_UNION(INTEGER GROUP1,INTEGER GROUP2,INTEGER NEWGROUP,INTEGER IERROR)
    MPI_Group_intersection int MPI_Group_intersection(MPI_Group group1,MPI_Group group2,MPI_Group *newgroup);
    MPI_GROUP_INTERSECTION MPI_GROUP_INTERSECTION(INTEGER GROUP1,INTEGER GROUP2,INTEGER NEWGROUP,INTEGER IERROR)
    MPI_Group_difference int MPI_Group_difference(MPI_Group group1,MPI_Group group2,MPI_Group *newgroup);
    MPI_GROUP_DIFFERENCE MPI_GROUP_DIFFERENCE(INTEGER GROUP1,INTEGER GROUP2,INTEGER NEWGROUP,INTEGER IERROR)
    MPI_Group_incl int MPI_Group_incl(MPI_Group group,int n,int *ranks,MPI_Group *newgroup);
    MPI_GROUP_INCL MPI_GROUP_INCL(INTEGER GROUP,INTEGER N,INTEGER RANKS(*),INTEGER NEWGROUP,INTEGER IERROR)
    MPI_Group_excl int MPI_Group_excl(MPI_Group group,int n,int *ranks,MPI_Group *newgroup);
    MPI_GROUP_EXCL MPI_GROUP_EXCL(INTEGER GROUP,INTEGER N,INTEGER RANKS(*),INTEGER NEWGROUP,INTEGER IERROR)
    MPI_Group_range_incl int MPI_Group_range_incl(MPI_Group group,int n,int ranges[][3],MPI_Group *newgroup);
    MPI_GROUP_RANGE_INCL MPI_GROUP_RANGE_INCL(INTEGER GROUP,INTEGER N,INTEGER RANGES(3,*),INTEGER NEWGROUP,INTEGER IERROR)
    MPI_Group_range_excl int MPI_Group_range_excl(MPI_Group group,int n,int ranges [][3],MPI_Group *newgroup);
    MPI_GROUP_RANGE_EXCL MPI_GROUP_RANGE_EXCL(INTEGER GROUP,INTEGER N,INTEGER RANGES(3,*),INTEGER NEWGROUP,INTEGER IERROR)
    MPI_Group_free int MPI_Group_free(MPI_Group *group);
    MPI_GROUP_FREE MPI_GROUP_FREE(INTEGER GROUP,INTEGER IERROR)
    MPI_Comm_size int MPI_Comm_size(MPI_Comm comm,int *size);
    MPI_COMM_SIZE MPI_COMM_SIZE(INTEGER COMM,INTEGER SIZE,INTEGER IERROR)
    MPI_Comm_rank int MPI_Comm_rank(MPI_Comm comm,int *rank);
    MPI_COMM_RANK MPI_COMM_RANK(INTEGER COMM,INTEGER RANK,INTEGER IERROR)
    MPI_Comm_compare int MPI_Comm_compare(MPI_Comm comm1,MPI_Comm comm2,int *result);
    MPI_COMM_COMPARE MPI_COMM_COMPARE(INTEGER COMM1,INTEGER COMM2,INTEGER RESULT,INTEGER IERROR)
    MPI_Comm_dup int MPI_Comm_dup(MPI_Comm comm,MPI_Comm *newcomm);
    MPI_COMM_DUP MPI_COMM_DUP(INTEGER COMM,INTEGER NEWCOMM,INTEGER IERROR)
    MPI_Comm_create int MPI_Comm_create(MPI_Comm comm,MPI_Group group,MPI_Comm *newcomm);
    MPI_COMM_CREATE MPI_COMM_CREATE(INTEGER COMM,INTEGER GROUP,INTEGER NEWCOMM,INTEGER IERROR)
    MPI_Comm_split int MPI_Comm_split(MPI_Comm comm,int color,int key,MPI_Comm *newcomm);
    MPI_COMM_SPLIT MPI_COMM_SPLIT(INTEGER COMM,INTEGER COLOR,INTEGER KEY,INTEGER NEWCOMM,INTEGER IERROR)
    MPI_Comm_free int MPI_Comm_free(MPI_Comm *comm);
    MPI_COMM_FREE MPI_COMM_FREE(INTEGER COMM,INTEGER IERROR)
    MPI_Comm_test_inter int MPI_Comm_test_inter(MPI_Comm comm,int *flag);
    MPI_COMM_TEST_INTER MPI_COMM_TEST_INTER(INTEGER COMM,LOGICAL FLAG,INTEGER IERROR)
    MPI_Comm_remote_size int MPI_Comm_remote_size(MPI_Comm comm,int *size);
    MPI_COMM_REMOTE_SIZE MPI_COMM_REMOTE_SIZE(INTEGER COMM,INTEGER SIZE,INTEGER IERROR)
    MPI_Comm_remote_group int MPI_Comm_remote_group(MPI_Comm comm,MPI_Group *group);
    MPI_COMM_REMOTE_GROUP MPI_COMM_REMOTE_GROUP(INTEGER COMM,INTEGER GROUP,INTEGER IERROR)
    MPI_Intercomm_create int MPI_Intercomm_create(MPI_Comm local_comm,int local_leader,MPI_Comm peer_comm,int remote_leader,int tag, MPI_Comm *newintercomm);
    MPI_INTERCOMM_CREATE MPI_INTERCOMM_CREATE(INTEGER LOCAL_COMM,INTEGER LOCAL_LEADER,INTEGER PEER_COMM,INTEGER REMOTE_LEADER,INTEGER TAG,INTEGER NEWINTERCOM,INTEGER IERROR)
    MPI_Intercomm_merge int MPI_Intercomm_merge(MPI_Comm intercomm,int high,MPI_Comm *newintracomm);
    MPI_INTERCOMM_MERGE MPI_INTERCOMM_MERGE(INTEGER INTERCOMM,INTEGER HIGH,INTEGER NEWINTRACOMM,INTEGER IERROR)
    MPI_Keyval_create int MPI_Keyval_create(MPI_Copy_function *copy_fn,MPI_Delete_function *delete_fn,int *keyval, void* extra_state);
    MPI_KEYVAL_CREATE MPI_KEYVAL_CREATE(EXTERNAL COPY_FN,EXTERNAL DELETE_FN,INTEGER KEYVAL,INTEGER EXTRA_STATE,INTEGER IERROR)
    MPI_Keyval_free int MPI_Keyval_free(int *keyval);
    MPI_KEYVAL_FREE MPI_KEYVAL_FREE(INTEGER KEYVAL,INTEGER IERROR)
    MPI_Attr_put int MPI_Attr_put(MPI_Comm comm,int keyval,void* attribute_val);
    MPI_ATTR_PUT MPI_ATTR_PUT(INTEGER COMM,INTEGER KEYVAL,INTEGER ATTRIBUTE_VAL,INTEGER IERROR)
    MPI_Attr_get int MPI_Attr_get(MPI_Comm comm,int keyval,void *attribute_val,int *flag);
    MPI_ATTR_GET MPI_ATTR_GET(INTEGER COMM,INTEGER KEYVAL,INTEGER ATTRIBUTE_VAL, LOGICAL FLAG,INTEGER IERROR)
    MPI_Attr_delete int MPI_Attr_delete(MPI_Comm comm,int keyval);
    MPI_ATTR_DELETE MPI_ATTR_DELETE(INTEGER COMM,INTEGER KEYVAL,INTEGER IERROR)


    Bindings for Topologies

    Table 10 lists the C and FORTRAN bindings for topology routines.

    Table 10. Bindings for Topologies
    C/FORTRAN Subroutine C/FORTRAN Binding
    MPI_Cart_create int MPI_Cart_create(MPI_Comm comm_old,int ndims,int *dims,int *periods,int reorder,MPI_Comm *comm_cart);
    MPI_CART_CREATE MPI_CART_CREATE(INTEGER COMM_OLD,INTEGER NDIMS,INTEGER DIMS(*), INTEGER PERIODS(*),INTEGER REORDER,INTEGER COMM_CART,INTEGER IERROR)
    MPI_Dims_create int MPI_Dims_create(int nnodes,int ndims,int *dims);
    MPI_DIMS_CREATE MPI_DIMS_CREATE(INTEGER NNODES,INTEGER NDIMS,INTEGER DIMS(*), INTEGER IERROR)
    MPI_Graph_create int MPI_Graph_create(MPI_Comm comm_old,int nnodes,int *index,int *edges,int reorder,MPI_Comm *comm_graph);
    MPI_GRAPH_CREATE MPI_GRAPH_CREATE(INTEGER COMM_OLD,INTEGER NNODES,INTEGER INDEX(*), INTEGER EDGES(*),INTEGER REORDER,INTEGER COMM_GRAPH,INTEGER IERROR)
    MPI_Topo_test int MPI_Topo_test(MPI_Comm comm,int *status);
    MPI_TOPO_TEST MPI_TOPO_TEST(INTEGER COMM,INTEGER STATUS,INTEGER IERROR)
    MPI_Graphdims_get int MPI_Graphdims_get(MPI_Comm comm,int *nnodes,int *nedges);
    MPI_GRAPHDIMS_GET MPI_GRAPHDIMS_GET(INTEGER COMM,INTEGER NNDODES,INTEGER NEDGES, INTEGER IERROR)
    MPI_Graph_get int MPI_Graph_get(MPI_Comm comm,int maxindex,int maxedges,int *index, int *edges);
    MPI_GRAPH_GET MPI_GRAPH_GET(INTEGER COMM,INTEGER MAXINDEX,INTEGER MAXEDGES,INTEGER INDEX(*),INTEGER EDGES(*),INTEGER IERROR)
    MPI_Cartdim_get int MPI_Cartdim_get(MPI_Comm comm, int *ndims);
    MPI_CARTDIM_GET MPI_CARTDIM_GET(INTEGER COMM,INTEGER NDIMS,INTEGER IERROR)
    MPI_Cart_get int MPI_Cart_get(MPI_Comm comm,int maxdims,int *dims,int *periods,int *coords);
    MPI_CART_GET MPI_CART_GET(INTEGER COMM,INTEGER MAXDIMS,INTEGER DIMS(*),INTEGER PERIODS(*),INTEGER COORDS(*),INTEGER IERROR)
    MPI_Cart_rank int MPI_Cart_rank(MPI_Comm comm,int *coords,int *rank);
    MPI_CART_RANK MPI_CART_RANK(INTEGER COMM,INTEGER COORDS(*),INTEGER RANK,INTEGER IERROR)
    MPI_Cart_coords int MPI_Cart_coords(MPI_Comm comm,int rank,int maxdims,int *coords);
    MPI_CART_COORDS MPI_CART_COORDS(INTEGER COMM,INTEGER RANK,INTEGER MAXDIMS,INTEGER COORDS(*),INTEGER IERROR)
    MPI_Graph_neighbors_count int MPI_Graph_neighbors_count(MPI_Comm comm,int rank,int *nneighbors);
    MPI_GRAPH_NEIGHBORS_COUNT MPI_GRAPH_NEIGHBORS_COUNT(INTEGER COMM,INTEGER RANK,INTEGER NEIGHBORS, INTEGER IERROR)
    MPI_Graph_neighbors int MPI_Graph_neighbors(MPI_Comm comm,int rank,int maxneighbors,int *neighbors);
    MPI_GRAPH_NEIGHBORS MPI_GRAPH_NEIGHBORS(MPI_COMM COMM,INTEGER RANK,INTEGER MAXNEIGHBORS,INTEGER NNEIGHBORS(*),INTEGER IERROR)
    MPI_Cart_shift int MPI_Cart_shift(MPI_Comm comm,int direction,int disp,int *rank_source,int *rank_dest);
    MPI_CART_SHIFT MPI_CART_SHIFT(INTEGER COMM,INTEGER DIRECTION,INTEGER DISP, INTEGER RANK_SOURCE,INTEGER RANK_DEST,INTEGER IERROR)
    MPI_Cart_sub int MPI_Cart_sub(MPI_Comm comm,int *remain_dims,MPI_Comm *newcomm);
    MPI_CART_SUB MPI_CART_SUB(INTEGER COMM,INTEGER REMAIN_DIMS,INTEGER NEWCOMM, INTEGER IERROR)
    MPI_Cart_map int MPI_Cart_map(MPI_Comm comm,int ndims,int *dims,int *periods,int *newrank);
    MPI_CART_MAP MPI_CART_MAP(INTEGER COMM,INTEGER NDIMS,INTEGER DIMS(*),INTEGER PERIODS(*),INTEGER NEWRANK,INTEGER IERROR)
    MPI_Graph_map int MPI_Graph_map(MPI_Comm comm,int nnodes,int *index,int *edges,int *newrank);
    MPI_GRAPH_MAP MPI_GRAPH_MAP(INTEGER COMM,INTEGER NNODES,INTEGER INDEX(*),INTEGER EDGES(*),INTEGER NEWRANK,INTEGER IERROR)


    Bindings for Environment Management

    Table 11 lists the C and FORTRAN bindings for environment management routines.

    Table 11. Bindings for Environment Management
    C/FORTRAN Subroutine C/FORTRAN Binding
    MPI_File_create_errhandler int MPI_File_create_errhandler (MPI_File_errhandler_fn *function, MPI_Errhandler *errhandler);
    MPI_FILE_CREATE_ERRHANDLER MPI_FILE_CREATE_ERRHANDLER(EXTERNAL FUNCTION,INTEGER ERRHANDLER, INTEGER IERROR)
    MPI_File_get_errhandler int MPI_File_get_errhandler (MPI_File file,MPI_Errhandler *errhandler);
    MPI_FILE_GET_ERRHANDLER MPI_FILE_GET_ERRHANDLER (INTEGER FILE,INTEGER ERRHANDLER, INTEGER IERROR)
    MPI_File_set_errhandler int MPI_File_set_errhandler (MPI_File fh, MPI_Errhandler errhandler);
    MPI_FILE_SET_ERRHANDLER MPI_FILE_SET_ERRHANDLER(INTEGER FH,INTEGER ERRHANLDER, INTEGER IERROR)
    MPI_Get_version int MPI_Get_version(int *version,int *subversion);
    MPI_GET_VERSION MPI_GET_VERSION(INTEGER VERSION,INTEGER SUBVERSION,INTEGER IERROR)
    MPI_Get_processor_name int MPI_Get_processor_name(char *name,int *resultlen);
    MPI_GET_PROCESSOR_NAME MPI_GET_PROCESSOR_NAME(CHARACTER NAME(*),INTEGER RESULTLEN,INTEGER IERROR)
    MPI_Errhandler_create int MPI_Errhandler_create(MPI_Handler_function *function, MPI_Errhandler *errhandler);
    MPI_ERRHANDLER_CREATE MPI_ERRHANDLER_CREATE(EXTERNAL FUNCTION,INTEGER ERRHANDLER, INTEGER IERROR)
    MPI_Errhandler_set int MPI_Errhandler_set(MPI_Comm comm,MPI_Errhandler errhandler);
    MPI_ERRHANDLER_SET MPI_ERRHANDLER_SET(INTEGER COMM,INTEGER ERRHANDLER,INTEGER IERROR)
    MPI_Errhandler_get int MPI_Errhandler_get(MPI_Comm comm,MPI_Errhandler *errhandler);
    MPI_ERRHANDLER_GET MPI_ERRHANDLER_GET(INTEGER COMM,INTEGER ERRHANDLER,INTEGER IERROR)
    MPI_Errhandler_free int MPI_Errhandler_free(MPI_Errhandler *errhandler);
    MPI_ERRHANDLER_FREE MPI_ERRHANDLER_FREE(INTEGER ERRHANDLER,INTEGER IERROR)
    MPI_Error_string int MPI_Error_string(int errorcode, char *string, int *resultlen);
    MPI_ERROR_STRING MPI_ERROR_STRING(INTEGER ERRORCODE,CHARACTER STRING(*),INTEGER RESULTLEN,INTEGER IERROR)
    MPI_Error_class int MPI_Error_class(int errorcode, int *errorclass);
    MPI_ERROR_CLASS MPI_ERROR_CLASS(INTEGER ERRORCODE,INTEGER ERRORCLASS,INTEGER IERROR)
    MPI_Wtime double MPI_Wtime(void);
    MPI_WTIME DOUBLE PRECISION MPI_WTIME()
    MPI_Wtick double MPI_Wtick(void);
    MPI_WTICK DOUBLE PRECISION MPI_WTICK()
    MPI_Init int MPI_Init(int *argc, char ***argv);
    MPI_INIT MPI_INIT(INTEGER IERROR)
    MPI_Finalize int MPI_Finalize(void);
    MPI_FINALIZE MPI_FINALIZE(INTEGER IERROR)
    MPI_Initialized int MPI_Initialized(int *flag);
    MPI_INITIALIZED MPI_INITIALIZED(INTEGER FLAG,INTEGER IERROR)
    MPI_Abort int MPI_Abort(MPI_Comm comm, int errorcode);
    MPI_ABORT MPI_ABORT(INTEGER COMM,INTEGER ERRORCODE,INTEGER IERROR)


    Bindings for Profiling

    Table 12 lists the C and FORTRAN bindings for profiling.

    Table 12. Bindings for Profiling
    C/FORTRAN Subroutine C/FORTRAN Binding
    MPI_Pcontrol int MPI_Pcontrol(const int level,...);
    MPI_PCONTROL MPI_PCONTROL(INTEGER LEVEL,...)


    Bindings for Files

    Table 13 lists the C and FORTRAN bindings for files.

    Table 13. Bindings for MPI I/O
    C/FORTRAN Subroutine C/FORTRAN Binding
    MPI_File_close int MPI_File_close (MPI_File *fh);
    MPI_FILE_CLOSE MPI_FILE_CLOSE(INTEGER FH,INTEGER IERROR)
    MPI_File_delete int MPI_File_delete (char *filename,MPI_Info info);
    MPI_FILE_DELETE MPI_FILE_DELETE(CHARACTER*(*) FILENAME,INTEGER INFO, INTEGER IERROR)
    MPI_File_get_amode int MPI_File_get_amode (MPI_File fh,int *amode);
    MPI_FILE_GET_AMODE MPI_FILE_GET_AMODE(INTEGER FH,INTEGER AMODE,INTEGER IERROR)
    MPI_File_get_atomicity int MPI_File_get_atomicity (MPI_File fh,int *flag);
    MPI_FILE_GET_ATOMICITY MPI_FILE_GET_ATOMICITY (INTEGER FH,LOGICAL FLAG,INTEGER IERROR)
    MPI_File_get_group int MPI_File_get_group (MPI_File fh,MPI_Group *group);
    MPI_FILE GET_GROUP MPI_FILE GET_GROUP (INTEGER FH,INTEGER GROUP,INTEGER IERROR)
    MPI_File_get_info int MPI_File_get_info (MPI_File fh,MPI_Info *info_used);
    MPI_FILE_GET_INFO MPI_FILE_GET_INFO (INTEGER FH,INTEGER INFO_USED, INTEGER IERROR)
    MPI_File_get_size int MPI_File_get_size (MPI_File fh,MPI_Offset size);
    MPI_FILE_GET_SIZE MPI_FILE_GET_SIZE (INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) SIZE, INTEGER IERROR)
    MPI_File_get_view int MPI_File_get_view (MPI_File fh,MPI_Offset *disp, MPI_Datatype *etype,MPI_Datatype *filetype,char *datarep);
    MPI_FILE_GET_VIEW MPI_FILE_GET_VIEW (INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) DISP, INTEGER ETYPE,INTEGER FILETYPE,INTEGER DATAREP,INTEGER IERROR)
    MPI_File_iread_at int MPI_File_iread_at (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Request *request);
    MPI_FILE_IREAD_AT MPI_FILE_IREAD_AT (INTEGER FH,INTEGER (KIND=MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER REQUEST, INTEGER IERROR)
    MPI_File_iwrite_at int MPI_File_iwrite_at (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Request *request);
    MPI_FILE_IWRITE_AT MPI_FILE_IWRITE_AT(INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER REQUEST, INTEGER IERROR)
    MPI_File_open int MPI_File_open (MPI_Comm comm,char *filename,int amode,MPI_info, MPI_File *fh);
    MPI_FILE_OPEN MPI_FILE_OPEN(INTEGER COMM,CHARACTER FILENAME(*),INTEGER AMODE, INTEGER INFO,INTEGER FH,INTEGER IERROR)
    MPI_File_read_at int MPI_File_read_at (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Status *status);
    MPI_FILE_READ_AT MPI_FILE_READ_AT(INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE, INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR)
    MPI_File_read_at_all int MPI_File_read_at_all (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Status *status);
    MPI_FILE_READ_AT_ALL MPI_FILE_READ_AT_ALL(INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE, INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR)
    MPI_File_set_info int MPI_File_set_info (MPI_File fh,MPI_Info info);
    MPI_FILE_SET_INFO MPI_FILE_SET_INFO(INTEGER FH,INTEGER INFO,INTEGER IERROR)
    MPI_File_set_size int MPI_File_set_size (MPI_File fh,MPI_Offset size);
    MPI_FILE_SET_SIZE MPI_FILE_SET_SIZE (INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) SIZE, INTEGER IERROR)
    MPI_File_set_view int MPI_File_set_view (MPI_File fh,MPI_Offset disp, MPI_Datatype etype,MPI_Datatype filetype, char *datarep,MPI_Info info);
    MPI_FILE_SET_VIEW MPI_FILE_SET_VIEW (INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) DISP, INTEGER ETYPE,INTEGER FILETYPE,CHARACTER DATAREP(*),INTEGER INFO, INTEGER IERROR)
    MPI_File_sync int MPI_File_sync (MPI_File fh);
    MPI_FILE_SYNC MPI_FILE_SYNC (INTEGER FH,INTEGER IERROR)
    MPI_File_write_at int MPI_File_write_at (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Status *status);
    MPI_FILE_WRITE_AT MPI_FILE_WRITE_AT(INTEGER FH,INTEGER(KIND_MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE, INTEGER STATUS(MPI_STATUS_SIZE), INTEGER IERROR)
    MPI_File_write_at_all int MPI_File_write_at_all (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Status *status);
    MPI_FILE_WRITE_AT_ALL MPI_FILE_WRITE_AT_ALL (INTEGER FH, INTEGER (KIND=MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE, INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR)


    Bindings for info Objects

    Table 14 lists the C and FORTRAN bindings for info objects.

    Table 14. Bindings for info Objects
    C/FORTRAN Subroutine C/FORTRAN Binding
    MPI_Info_create int MPI_Info_create (MPI_Info *info);
    MPI_INFO_CREATE MPI_INFO_CREATE (INTEGER INFO,INTEGER IERROR)
    MPI_Info_delete int MPI_Info_delete (MPI_Info info,char *key);
    MPI_INFO_DELETE MPI_INFO_DELETE (INTEGER INFO,CHARACTER KEY(*), INTEGER IERROR)
    MPI_Info_dup int MPI_Info_dup (MPI_Info info,MPI_Info *newinfo);
    MPI_INFO_DUP MPI_INFO_DUP (INTEGER INFO,INTEGER NEWINFO,INTEGER IERROR)
    MPI_Info_free int MPI_Info_free (MPI_Info *info);
    MPI_INFO_FREE MPI_INFO_FREE (INTEGER INFO,INTEGER IERROR)
    MPI_Info_get int MPI_Info_get (MPI_Info info,char *key,int valuelen, char *value,int *flag);
    MPI_INFO_GET MPI_INFO_GET (INTEGER INFO,CHARACTER KEY(*),INTEGER VALUELEN, CHARACTER VALUE(*),LOGICAL FLAG,INTEGER IERROR)
    MPI_Info_get_nkeys int MPI_Info_get_nkeys (MPI_Info info,int *nkeys);
    MPI_INFO_GET_NKEYS MPI_INFO_GET_NKEYS (INTEGER INFO,INTEGER NKEYS,INTEGER IERROR)
    MPI_Info_get_nthkey int MPI_Info_get_nthkey (MPI_Info info, int n, char *key);
    MPI_INFO_GET_NTHKEY MPI_INFO_GET_NTHKEY (INTEGER INFO,INTEGER N,CHARACTER KEY(*), INTEGER IERROR)
    MPI_Info_get_valuelen int MPI_Info_get_valuelen (MPI_Info info,char *key,int *valuelen, int *flag);
    MPI_INFO_GET_VALUELEN MPI_INFO_GET_VALUELEN (INTEGER INFO,CHARACTER KEY(*), INTEGER VALUELEN,LOGICAL FLAG,INTEGER IERROR)
    MPI_Info_set int MPI_Info_set(MPI_Info info,char *key,char *value);
    MPI_INFO_SET MPI_INFO_SET (INTEGER INFO,CHARACTER KEY(*),CHARACTER VALUE(*), INTEGER IERROR)


    [ Top of Page | Previous Page | Next Page | Table of Contents | Index ]