-
-
Save RolfRabenseifner/27050c4a500c3422bcb2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Index: topol.tex | |
=================================================================== | |
--- topol.tex (revision 1806) | |
+++ topol.tex (working copy) | |
@@ -216,7 +216,7 @@ | |
\mpibind{MPI\_Cart\_create(MPI\_Comm~comm\_old, int~ndims, const int~dims[], const int~periods[], int~reorder, MPI\_Comm~*comm\_cart)} | |
-\mpifnewbind{MPI\_Cart\_create(comm\_old, ndims, dims, periods, reorder, comm\_cart, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm\_old \\ INTEGER, INTENT(IN) :: ndims, dims(ndims) \\ LOGICAL, INTENT(IN) :: periods(ndims), reorder \\ TYPE(MPI\_Comm), INTENT(OUT) :: comm\_cart \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Cart\_create(comm\_old, ndims, dims, periods, reorder, comm\_cart, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm\_old \\ INTEGER, INTENT(IN) :: ndims, dims(ndims) \\ LOGICAL, INTENT(IN) :: periods(ndims), reorder \\ TYPE(MPI\_Comm), INTENT(OUT) :: comm\_cart \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_CART\_CREATE(COMM\_OLD, NDIMS, DIMS, PERIODS, REORDER, COMM\_CART, IERROR)\fargs INTEGER COMM\_OLD, NDIMS, DIMS(*), COMM\_CART, IERROR \\ LOGICAL PERIODS(*), REORDER} | |
\mpicppemptybind{MPI::Intracomm::Create\_cart(int~ndims, const~int~dims[], const~bool~periods[], bool~reorder) const}{MPI::Cartcomm} | |
@@ -251,7 +251,7 @@ | |
\mpibind{MPI\_Dims\_create(int~nnodes, int~ndims, int~dims[])} | |
-\mpifnewbind{MPI\_Dims\_create(nnodes, ndims, dims, ierror) BIND(C) \fargs INTEGER, INTENT(IN) :: nnodes, ndims \\ INTEGER, INTENT(INOUT) :: dims(ndims) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Dims\_create(nnodes, ndims, dims, ierror) \fargs INTEGER, INTENT(IN) :: nnodes, ndims \\ INTEGER, INTENT(INOUT) :: dims(ndims) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_DIMS\_CREATE(NNODES, NDIMS, DIMS, IERROR)\fargs INTEGER NNODES, NDIMS, DIMS(*), IERROR} | |
\mpicppemptybind{MPI::Compute\_dims(int~nnodes, int~ndims, int~dims[])}{void} | |
@@ -303,7 +303,7 @@ | |
\mpibind{MPI\_Graph\_create(MPI\_Comm~comm\_old, int~nnodes, const int~index[], const int~edges[], int~reorder, MPI\_Comm~*comm\_graph)} | |
-\mpifnewbind{MPI\_Graph\_create(comm\_old, nnodes, index, edges, reorder, comm\_graph, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm\_old \\ INTEGER, INTENT(IN) :: nnodes, index(nnodes), edges(*) \\ LOGICAL, INTENT(IN) :: reorder \\ TYPE(MPI\_Comm), INTENT(OUT) :: comm\_graph \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Graph\_create(comm\_old, nnodes, index, edges, reorder, comm\_graph, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm\_old \\ INTEGER, INTENT(IN) :: nnodes, index(nnodes), edges(*) \\ LOGICAL, INTENT(IN) :: reorder \\ TYPE(MPI\_Comm), INTENT(OUT) :: comm\_graph \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_GRAPH\_CREATE(COMM\_OLD, NNODES, INDEX, EDGES, REORDER, COMM\_GRAPH, IERROR)\fargs INTEGER COMM\_OLD, NNODES, INDEX(*), EDGES(*), COMM\_GRAPH, IERROR \\ LOGICAL REORDER} | |
\mpicppemptybind{MPI::Intracomm::Create\_graph(int~nnodes, const~int~index[], const~int~edges[], bool~reorder) const}{MPI::Graphcomm} | |
@@ -471,7 +471,7 @@ | |
\mpibind{MPI\_Dist\_graph\_create\_adjacent(MPI\_Comm~comm\_old, int~indegree, const int~sources[], const int~sourceweights[], int~outdegree, const int~destinations[], const int destweights[], MPI\_Info~info, int~reorder, MPI\_Comm~*comm\_dist\_graph)} | |
-\mpifnewbind{MPI\_Dist\_graph\_create\_adjacent(comm\_old, indegree, sources, sourceweights, outdegree, destinations, destweights, info, reorder, comm\_dist\_graph, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm\_old \\ INTEGER, INTENT(IN) :: indegree, sources(indegree), outdegree, destinations(outdegree) \\ INTEGER, INTENT(IN) :: sourceweights(*), destweights(*) \\ TYPE(MPI\_Info), INTENT(IN) :: info \\ LOGICAL, INTENT(IN) :: reorder \\ TYPE(MPI\_Comm), INTENT(OUT) :: comm\_dist\_graph \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Dist\_graph\_create\_adjacent(comm\_old, indegree, sources, sourceweights, outdegree, destinations, destweights, info, reorder, comm\_dist\_graph, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm\_old \\ INTEGER, INTENT(IN) :: indegree, sources(indegree), outdegree, destinations(outdegree) \\ INTEGER, INTENT(IN) :: sourceweights(*), destweights(*) \\ TYPE(MPI\_Info), INTENT(IN) :: info \\ LOGICAL, INTENT(IN) :: reorder \\ TYPE(MPI\_Comm), INTENT(OUT) :: comm\_dist\_graph \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_DIST\_GRAPH\_CREATE\_ADJACENT(COMM\_OLD, INDEGREE, SOURCES, SOURCEWEIGHTS, OUTDEGREE, DESTINATIONS, DESTWEIGHTS, INFO, REORDER, COMM\_DIST\_GRAPH, IERROR)\fargs INTEGER COMM\_OLD, INDEGREE, SOURCES(*), SOURCEWEIGHTS(*), OUTDEGREE, \\ \ \ \ \ DESTINATIONS(*), DESTWEIGHTS(*), INFO, COMM\_DIST\_GRAPH, IERROR \\ LOGICAL REORDER} | |
\mpicppemptybind{MPI::Intracomm::Dist\_graph\_create\_adjacent(int indegree, const~int~sources[], const~int~sourceweights[], int~outdegree, const~int~destinations[], const~int~destweights[], const~MPI::Info\&~info, bool~reorder) const}{MPI::Distgraphcomm} | |
@@ -567,7 +567,7 @@ | |
\mpibind{MPI\_Dist\_graph\_create(MPI\_Comm~comm\_old, int~n, const int~sources[], const int~degrees[], const int~destinations[], const int~weights[], MPI\_Info~info, int~reorder, MPI\_Comm~*comm\_dist\_graph)} | |
-\mpifnewbind{MPI\_Dist\_graph\_create(comm\_old, n, sources, degrees, destinations, weights, info, reorder, comm\_dist\_graph, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm\_old \\ INTEGER, INTENT(IN) :: n, sources(n), degrees(n), destinations(*) \\ INTEGER, INTENT(IN) :: weights(*) \\ TYPE(MPI\_Info), INTENT(IN) :: info \\ LOGICAL, INTENT(IN) :: reorder \\ TYPE(MPI\_Comm), INTENT(OUT) :: comm\_dist\_graph \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Dist\_graph\_create(comm\_old, n, sources, degrees, destinations, weights, info, reorder, comm\_dist\_graph, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm\_old \\ INTEGER, INTENT(IN) :: n, sources(n), degrees(n), destinations(*) \\ INTEGER, INTENT(IN) :: weights(*) \\ TYPE(MPI\_Info), INTENT(IN) :: info \\ LOGICAL, INTENT(IN) :: reorder \\ TYPE(MPI\_Comm), INTENT(OUT) :: comm\_dist\_graph \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_DIST\_GRAPH\_CREATE(COMM\_OLD, N, SOURCES, DEGREES, DESTINATIONS, WEIGHTS, INFO, REORDER, COMM\_DIST\_GRAPH, IERROR)\fargs INTEGER COMM\_OLD, N, SOURCES(*), DEGREES(*), DESTINATIONS(*), WEIGHTS(*), INFO, COMM\_DIST\_GRAPH, IERROR \\ LOGICAL REORDER} | |
\mpicppemptybind{MPI::Intracomm::Dist\_graph\_create(int~n, const~int~sources[], const~int~degrees[], const~int destinations[], const~int~weights[], const~MPI::Info\&~info, bool~reorder) const}{MPI::Distgraphcomm} | |
@@ -822,7 +822,7 @@ | |
\mpibind{MPI\_Topo\_test(MPI\_Comm~comm, int~*status)} | |
-\mpifnewbind{MPI\_Topo\_test(comm, status, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(OUT) :: status \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Topo\_test(comm, status, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(OUT) :: status \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_TOPO\_TEST(COMM, STATUS, IERROR)\fargs INTEGER COMM, STATUS, IERROR} | |
\mpicppemptybind{MPI::Comm::Get\_topology() const}{int} | |
@@ -845,7 +845,7 @@ | |
\mpibind{MPI\_Graphdims\_get(MPI\_Comm~comm, int~*nnodes, int~*nedges)} | |
-\mpifnewbind{MPI\_Graphdims\_get(comm, nnodes, nedges, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(OUT) :: nnodes, nedges \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Graphdims\_get(comm, nnodes, nedges, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(OUT) :: nnodes, nedges \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_GRAPHDIMS\_GET(COMM, NNODES, NEDGES, IERROR)\fargs INTEGER COMM, NNODES, NEDGES, IERROR} | |
\mpicppemptybind{MPI::Graphcomm::Get\_dims(int~nnodes[], int~nedges[]) const}{void} | |
@@ -869,7 +869,7 @@ | |
\mpibind{MPI\_Graph\_get(MPI\_Comm~comm, int~maxindex, int~maxedges, int~index[], int~edges[])} | |
-\mpifnewbind{MPI\_Graph\_get(comm, maxindex, maxedges, index, edges, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: maxindex, maxedges \\ INTEGER, INTENT(OUT) :: index(maxindex), edges(maxedges) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Graph\_get(comm, maxindex, maxedges, index, edges, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: maxindex, maxedges \\ INTEGER, INTENT(OUT) :: index(maxindex), edges(maxedges) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_GRAPH\_GET(COMM, MAXINDEX, MAXEDGES, INDEX, EDGES, IERROR)\fargs INTEGER COMM, MAXINDEX, MAXEDGES, INDEX(*), EDGES(*), IERROR} | |
\mpicppemptybind{MPI::Graphcomm::Get\_topo(int~maxindex, int~maxedges, int~index[], int~edges[]) const}{void} | |
@@ -880,7 +880,7 @@ | |
\mpibind{MPI\_Cartdim\_get(MPI\_Comm~comm, int~*ndims)} | |
-\mpifnewbind{MPI\_Cartdim\_get(comm, ndims, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(OUT) :: ndims \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Cartdim\_get(comm, ndims, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(OUT) :: ndims \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_CARTDIM\_GET(COMM, NDIMS, IERROR)\fargs INTEGER COMM, NDIMS, IERROR} | |
\mpicppemptybind{MPI::Cartcomm::Get\_dim() const}{int} | |
@@ -902,7 +902,7 @@ | |
\mpibind{MPI\_Cart\_get(MPI\_Comm~comm, int~maxdims, int~dims[], int~periods[], int~coords[])} | |
-\mpifnewbind{MPI\_Cart\_get(comm, maxdims, dims, periods, coords, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: maxdims \\ INTEGER, INTENT(OUT) :: dims(maxdims), coords(maxdims) \\ LOGICAL, INTENT(OUT) :: periods(maxdims) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Cart\_get(comm, maxdims, dims, periods, coords, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: maxdims \\ INTEGER, INTENT(OUT) :: dims(maxdims), coords(maxdims) \\ LOGICAL, INTENT(OUT) :: periods(maxdims) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_CART\_GET(COMM, MAXDIMS, DIMS, PERIODS, COORDS, IERROR)\fargs INTEGER COMM, MAXDIMS, DIMS(*), COORDS(*), IERROR \\ LOGICAL PERIODS(*)} | |
\mpicppemptybind{MPI::Cartcomm::Get\_topo(int~maxdims, int~dims[], bool~periods[], int~coords[]) const}{void} | |
@@ -914,7 +914,7 @@ | |
\mpibind{MPI\_Cart\_rank(MPI\_Comm~comm, const int~coords[], int~*rank)} | |
-\mpifnewbind{MPI\_Cart\_rank(comm, coords, rank, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: coords(*) \\ INTEGER, INTENT(OUT) :: rank \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Cart\_rank(comm, coords, rank, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: coords(*) \\ INTEGER, INTENT(OUT) :: rank \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_CART\_RANK(COMM, COORDS, RANK, IERROR)\fargs INTEGER COMM, COORDS(*), RANK, IERROR} | |
\mpicppemptybind{MPI::Cartcomm::Get\_cart\_rank(const~int~coords[]) const}{int} | |
@@ -942,7 +942,7 @@ | |
\mpibind{MPI\_Cart\_coords(MPI\_Comm~comm, int~rank, int~maxdims, int~coords[])} | |
-\mpifnewbind{MPI\_Cart\_coords(comm, rank, maxdims, coords, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: rank, maxdims \\ INTEGER, INTENT(OUT) :: coords(maxdims) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Cart\_coords(comm, rank, maxdims, coords, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: rank, maxdims \\ INTEGER, INTENT(OUT) :: coords(maxdims) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_CART\_COORDS(COMM, RANK, MAXDIMS, COORDS, IERROR)\fargs INTEGER COMM, RANK, MAXDIMS, COORDS(*), IERROR} | |
\mpicppemptybind{MPI::Cartcomm::Get\_coords(int~rank, int~maxdims, int~coords[]) const}{void} | |
@@ -960,7 +960,7 @@ | |
\mpibind{MPI\_Graph\_neighbors\_count(MPI\_Comm~comm, int~rank, int~*nneighbors)} | |
-\mpifnewbind{MPI\_Graph\_neighbors\_count(comm, rank, nneighbors, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: rank \\ INTEGER, INTENT(OUT) :: nneighbors \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Graph\_neighbors\_count(comm, rank, nneighbors, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: rank \\ INTEGER, INTENT(OUT) :: nneighbors \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_GRAPH\_NEIGHBORS\_COUNT(COMM, RANK, NNEIGHBORS, IERROR)\fargs INTEGER COMM, RANK, NNEIGHBORS, IERROR} | |
\mpicppemptybind{MPI::Graphcomm::Get\_neighbors\_count(int~rank) const}{int} | |
@@ -974,7 +974,7 @@ | |
\mpibind{MPI\_Graph\_neighbors(MPI\_Comm~comm, int~rank, int~maxneighbors, int~neighbors[])} | |
-\mpifnewbind{MPI\_Graph\_neighbors(comm, rank, maxneighbors, neighbors, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: rank, maxneighbors \\ INTEGER, INTENT(OUT) :: neighbors(maxneighbors) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Graph\_neighbors(comm, rank, maxneighbors, neighbors, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: rank, maxneighbors \\ INTEGER, INTENT(OUT) :: neighbors(maxneighbors) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_GRAPH\_NEIGHBORS(COMM, RANK, MAXNEIGHBORS, NEIGHBORS, IERROR)\fargs INTEGER COMM, RANK, MAXNEIGHBORS, NEIGHBORS(*), IERROR} | |
\mpicppemptybind{MPI::Graphcomm::Get\_neighbors(int~rank, int~maxneighbors, int neighbors[]) const}{void} | |
@@ -1119,7 +1119,7 @@ | |
\mpibind{MPI\_Dist\_graph\_neighbors\_count(MPI\_Comm~comm, int~*indegree, int~*outdegree, int~*weighted)} | |
-\mpifnewbind{MPI\_Dist\_graph\_neighbors\_count(comm, indegree, outdegree, weighted, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(OUT) :: indegree, outdegree \\ LOGICAL, INTENT(OUT) :: weighted \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Dist\_graph\_neighbors\_count(comm, indegree, outdegree, weighted, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(OUT) :: indegree, outdegree \\ LOGICAL, INTENT(OUT) :: weighted \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_DIST\_GRAPH\_NEIGHBORS\_COUNT(COMM, INDEGREE, OUTDEGREE, WEIGHTED, IERROR)\fargs INTEGER COMM, INDEGREE, OUTDEGREE, IERROR \\ LOGICAL WEIGHTED} | |
\mpicppemptybind{MPI::Distgraphcomm::Get\_dist\_neighbors\_count(int~rank, int~indegree[], int~outdegree[], bool\&~weighted) const}{void} | |
@@ -1142,7 +1142,7 @@ | |
\mpibind{MPI\_Dist\_graph\_neighbors(MPI\_Comm~comm, int~maxindegree, int~sources[], int~sourceweights[], int~maxoutdegree, int~destinations[], int~destweights[])} | |
-\mpifnewbind{MPI\_Dist\_graph\_neighbors(comm, maxindegree, sources, sourceweights, maxoutdegree, destinations, destweights, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: maxindegree, maxoutdegree \\ INTEGER, INTENT(OUT) :: sources(maxindegree), destinations(maxoutdegree) \\ INTEGER :: sourceweights(*), destweights(*) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Dist\_graph\_neighbors(comm, maxindegree, sources, sourceweights, maxoutdegree, destinations, destweights, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: maxindegree, maxoutdegree \\ INTEGER, INTENT(OUT) :: sources(maxindegree), destinations(maxoutdegree) \\ INTEGER :: sourceweights(*), destweights(*) \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_DIST\_GRAPH\_NEIGHBORS(COMM, MAXINDEGREE, SOURCES, SOURCEWEIGHTS, MAXOUTDEGREE, DESTINATIONS, DESTWEIGHTS, IERROR)\fargs INTEGER COMM, MAXINDEGREE, SOURCES(*), SOURCEWEIGHTS(*), MAXOUTDEGREE, \\ \ \ \ \ DESTINATIONS(*), DESTWEIGHTS(*), IERROR} | |
\mpicppemptybind{MPI::Distgraphcomm::Get\_dist\_neighbors(int~maxindegree, int~sources[], int~sourceweights[], int~maxoutdegree, int~destinations[], int~destweights[])}{void} | |
@@ -1206,7 +1206,7 @@ | |
\mpibind{MPI\_Cart\_shift(MPI\_Comm~comm, int~direction, int~disp, int~*rank\_source, int~*rank\_dest)} | |
-\mpifnewbind{MPI\_Cart\_shift(comm, direction, disp, rank\_source, rank\_dest, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: direction, disp \\ INTEGER, INTENT(OUT) :: rank\_source, rank\_dest \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Cart\_shift(comm, direction, disp, rank\_source, rank\_dest, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: direction, disp \\ INTEGER, INTENT(OUT) :: rank\_source, rank\_dest \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_CART\_SHIFT(COMM, DIRECTION, DISP, RANK\_SOURCE, RANK\_DEST, IERROR)\fargs INTEGER COMM, DIRECTION, DISP, RANK\_SOURCE, RANK\_DEST, IERROR} | |
\mpicppemptybind{MPI::Cartcomm::Shift(int~direction, int~disp, int\&~rank\_source, int\&~rank\_dest) const}{void} | |
@@ -1281,7 +1281,7 @@ | |
\mpibind{MPI\_Cart\_sub(MPI\_Comm~comm, const int~remain\_dims[], MPI\_Comm~*newcomm)} | |
-\mpifnewbind{MPI\_Cart\_sub(comm, remain\_dims, newcomm, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ LOGICAL, INTENT(IN) :: remain\_dims(*) \\ TYPE(MPI\_Comm), INTENT(OUT) :: newcomm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Cart\_sub(comm, remain\_dims, newcomm, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ LOGICAL, INTENT(IN) :: remain\_dims(*) \\ TYPE(MPI\_Comm), INTENT(OUT) :: newcomm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_CART\_SUB(COMM, REMAIN\_DIMS, NEWCOMM, IERROR)\fargs INTEGER COMM, NEWCOMM, IERROR \\ LOGICAL REMAIN\_DIMS(*)} | |
\mpicppemptybind{MPI::Cartcomm::Sub(const~bool~remain\_dims[]) const}{MPI::Cartcomm} | |
@@ -1339,7 +1339,7 @@ | |
\mpibind{MPI\_Cart\_map(MPI\_Comm~comm, int~ndims, const int~dims[], const int~periods[], int~*newrank)} | |
-\mpifnewbind{MPI\_Cart\_map(comm, ndims, dims, periods, newrank, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: ndims, dims(ndims) \\ LOGICAL, INTENT(IN) :: periods(ndims) \\ INTEGER, INTENT(OUT) :: newrank \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Cart\_map(comm, ndims, dims, periods, newrank, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: ndims, dims(ndims) \\ LOGICAL, INTENT(IN) :: periods(ndims) \\ INTEGER, INTENT(OUT) :: newrank \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_CART\_MAP(COMM, NDIMS, DIMS, PERIODS, NEWRANK, IERROR)\fargs INTEGER COMM, NDIMS, DIMS(*), NEWRANK, IERROR \\ LOGICAL PERIODS(*)} | |
\mpicppemptybind{MPI::Cartcomm::Map(int~ndims, const~int~dims[], const~bool~periods[]) const}{int} | |
@@ -1381,7 +1381,7 @@ | |
\mpibind{MPI\_Graph\_map(MPI\_Comm~comm, int~nnodes, const int~index[], const int~edges[], int~*newrank)} | |
-\mpifnewbind{MPI\_Graph\_map(comm, nnodes, index, edges, newrank, ierror) BIND(C) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: nnodes, index(nnodes), edges(*) \\ INTEGER, INTENT(OUT) :: newrank \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Graph\_map(comm, nnodes, index, edges, newrank, ierror) \fargs TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, INTENT(IN) :: nnodes, index(nnodes), edges(*) \\ INTEGER, INTENT(OUT) :: newrank \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_GRAPH\_MAP(COMM, NNODES, INDEX, EDGES, NEWRANK, IERROR)\fargs INTEGER COMM, NNODES, INDEX(*), EDGES(*), NEWRANK, IERROR} | |
\mpicppemptybind{MPI::Graphcomm::Map(int~nnodes, const~int~index[], const~int~edges[]) const}{int} | |
@@ -1443,7 +1443,11 @@ | |
send and receive buffers at each process is defined as the sequence | |
returned by \mpifunc{MPI\_DIST\_GRAPH\_NEIGHBORS} for destinations and | |
sources, respectively. For a general graph topology, created with | |
-\mpifunc{MPI\_GRAPH\_CREATE}, the order of neighbors in the send and | |
+\mpifunc{MPI\_GRAPH\_CREATE}, the use of neighborhood collective | |
+communication is restricted to adjacency matrices, where the number of | |
+edges between any two processes is defined to be the same for both | |
+processes (i.e., with a symmetric adjacency matrix). In this case, | |
+the order of neighbors in the send and | |
receive buffers is defined as the sequence of neighbors as returned by | |
\mpifunc{MPI\_GRAPH\_NEIGHBORS}. Note that general graph topologies | |
should generally be replaced by the distributed graph topologies. | |
@@ -1486,7 +1490,7 @@ | |
\mpibind{MPI\_Neighbor\_allgather(const void* sendbuf, int sendcount, MPI\_Datatype sendtype, void* recvbuf, int recvcount, MPI\_Datatype recvtype, MPI\_Comm~comm)} | |
-\mpifnewbind{MPI\_Neighbor\_allgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, ierror) BIND(C) \fargs TYPE(*), DIMENSION(..), INTENT(IN) :: sendbuf \\ TYPE(*), DIMENSION(..) :: recvbuf \\ INTEGER, INTENT(IN) :: sendcount, recvcount \\ TYPE(MPI\_Datatype), INTENT(IN) :: sendtype, recvtype \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Neighbor\_allgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, ierror) \fargs TYPE(*), DIMENSION(..), INTENT(IN) :: sendbuf \\ TYPE(*), DIMENSION(..) :: recvbuf \\ INTEGER, INTENT(IN) :: sendcount, recvcount \\ TYPE(MPI\_Datatype), INTENT(IN) :: sendtype, recvtype \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_NEIGHBOR\_ALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, IERROR)\fargs $<$type$>$ SENDBUF(*), RECVBUF(*)\\INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, IERROR} | |
This function supports Cartesian communicators, graph communicators, and | |
@@ -1579,7 +1583,7 @@ | |
\mpibind{MPI\_Neighbor\_allgatherv(const void* sendbuf, int sendcount, MPI\_Datatype sendtype, void* recvbuf, const int recvcounts[], const int displs[], MPI\_Datatype recvtype, MPI\_Comm~comm)} | |
-\mpifnewbind{MPI\_Neighbor\_allgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, ierror) BIND(C) \fargs TYPE(*), DIMENSION(..), INTENT(IN) :: sendbuf \\ TYPE(*), DIMENSION(..) :: recvbuf \\ INTEGER, INTENT(IN) :: sendcount, recvcounts(*), displs(*) \\ TYPE(MPI\_Datatype), INTENT(IN) :: sendtype, recvtype \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Neighbor\_allgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, ierror) \fargs TYPE(*), DIMENSION(..), INTENT(IN) :: sendbuf \\ TYPE(*), DIMENSION(..) :: recvbuf \\ INTEGER, INTENT(IN) :: sendcount, recvcounts(*), displs(*) \\ TYPE(MPI\_Datatype), INTENT(IN) :: sendtype, recvtype \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_NEIGHBOR\_ALLGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE, COMM, IERROR)\fargs $<$type$>$ SENDBUF(*), RECVBUF(*)\\INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, COMM, IERROR} | |
This function supports Cartesian communicators, graph communicators, and | |
@@ -1661,7 +1665,7 @@ | |
\mpibind{MPI\_Neighbor\_alltoall(const void* sendbuf, int sendcount, MPI\_Datatype sendtype, void* recvbuf, int recvcount, MPI\_Datatype recvtype, MPI\_Comm~comm)} | |
-\mpifnewbind{MPI\_Neighbor\_alltoall(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, ierror) BIND(C) \fargs TYPE(*), DIMENSION(..), INTENT(IN) :: sendbuf \\ TYPE(*), DIMENSION(..) :: recvbuf \\ INTEGER, INTENT(IN) :: sendcount, recvcount \\ TYPE(MPI\_Datatype), INTENT(IN) :: sendtype, recvtype \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Neighbor\_alltoall(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, ierror) \fargs TYPE(*), DIMENSION(..), INTENT(IN) :: sendbuf \\ TYPE(*), DIMENSION(..) :: recvbuf \\ INTEGER, INTENT(IN) :: sendcount, recvcount \\ TYPE(MPI\_Datatype), INTENT(IN) :: sendtype, recvtype \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_NEIGHBOR\_ALLTOALL(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, IERROR)\fargs $<$type$>$ SENDBUF(*), RECVBUF(*)\\INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, IERROR} | |
This function supports Cartesian communicators, graph communicators, and | |
@@ -1742,7 +1746,7 @@ | |
\mpibind{MPI\_Neighbor\_alltoallv(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)} | |
-\mpifnewbind{MPI\_Neighbor\_alltoallv(sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm, ierror) BIND(C) \fargs TYPE(*), DIMENSION(..), INTENT(IN) :: sendbuf \\ TYPE(*), DIMENSION(..) :: recvbuf \\ INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) \\ TYPE(MPI\_Datatype), INTENT(IN) :: sendtype, recvtype \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Neighbor\_alltoallv(sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm, ierror) \fargs TYPE(*), DIMENSION(..), INTENT(IN) :: sendbuf \\ TYPE(*), DIMENSION(..) :: recvbuf \\ INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) \\ TYPE(MPI\_Datatype), INTENT(IN) :: sendtype, recvtype \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_NEIGHBOR\_ALLTOALLV(SENDBUF, SENDCOUNTS, SDISPLS, SENDTYPE, RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPE, COMM, IERROR)\fargs $<$type$>$ SENDBUF(*), RECVBUF(*)\\INTEGER SENDCOUNTS(*), SDISPLS(*), SENDTYPE, RECVCOUNTS(*), RDISPLS(*), RECVTYPE, COMM, IERROR} | |
This function supports Cartesian communicators, graph communicators, and | |
@@ -1827,7 +1831,7 @@ | |
\mpibind{MPI\_Neighbor\_alltoallw(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)} | |
-\mpifnewbind{MPI\_Neighbor\_alltoallw(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes, comm, ierror) BIND(C) \fargs TYPE(*), DIMENSION(..), INTENT(IN) :: sendbuf \\ TYPE(*), DIMENSION(..) :: recvbuf \\ INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) \\ INTEGER(KIND=MPI\_ADDRESS\_KIND), INTENT(IN) :: sdispls(*), rdispls(*) \\ TYPE(MPI\_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*) \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Neighbor\_alltoallw(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes, comm, ierror) \fargs TYPE(*), DIMENSION(..), INTENT(IN) :: sendbuf \\ TYPE(*), DIMENSION(..) :: recvbuf \\ INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) \\ INTEGER(KIND=MPI\_ADDRESS\_KIND), INTENT(IN) :: sdispls(*), rdispls(*) \\ TYPE(MPI\_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*) \\ TYPE(MPI\_Comm), INTENT(IN) :: comm \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_NEIGHBOR\_ALLTOALLW(SENDBUF, SENDCOUNTS, SDISPLS, SENDTYPES, RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPES, COMM, IERROR)\fargs $<$type$>$ SENDBUF(*), RECVBUF(*)\\INTEGER(KIND=MPI\_ADDRESS\_KIND) SDISPLS(*), RDISPLS(*)\\INTEGER SENDCOUNTS(*), SENDTYPES(*), RECVCOUNTS(*), RECVTYPES(*), COMM, IERROR} | |
This function supports Cartesian communicators, graph communicators, and | |
@@ -1909,7 +1913,7 @@ | |
\mpibind{MPI\_Ineighbor\_allgather(const void* sendbuf, int sendcount, MPI\_Datatype sendtype, void* recvbuf, int recvcount, MPI\_Datatype recvtype, MPI\_Comm~comm, MPI\_Request~*request)} | |
-\mpifnewbind{MPI\_Ineighbor\_allgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, request, ierror) BIND(C) \fargs 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\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Ineighbor\_allgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, request, ierror) \fargs 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\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_INEIGHBOR\_ALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR)\fargs $<$type$>$ SENDBUF(*), RECVBUF(*)\\INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR} | |
This call starts a nonblocking variant of | |
@@ -1934,7 +1938,7 @@ | |
\mpibind{MPI\_Ineighbor\_allgatherv(const void* sendbuf, int sendcount, MPI\_Datatype sendtype, void* recvbuf, const int recvcounts[], const int displs[], MPI\_Datatype recvtype, MPI\_Comm~comm, MPI\_Request *request)} | |
-\mpifnewbind{MPI\_Ineighbor\_allgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, request, ierror) BIND(C) \fargs 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\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Ineighbor\_allgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, request, ierror) \fargs 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\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_INEIGHBOR\_ALLGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE, COMM, REQUEST, IERROR)\fargs $<$type$>$ SENDBUF(*), RECVBUF(*)\\INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, COMM, REQUEST, IERROR} | |
% | |
This call starts a nonblocking variant of | |
@@ -1956,7 +1960,7 @@ | |
\mpibind{MPI\_Ineighbor\_alltoall(const void* sendbuf, int sendcount, MPI\_Datatype sendtype, void* recvbuf, int recvcount, MPI\_Datatype recvtype, MPI\_Comm~comm, MPI\_Request *request)} | |
-\mpifnewbind{MPI\_Ineighbor\_alltoall(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, request, ierror) BIND(C) \fargs 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\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Ineighbor\_alltoall(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, request, ierror) \fargs 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\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_INEIGHBOR\_ALLTOALL(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR)\fargs $<$type$>$ SENDBUF(*), RECVBUF(*)\\INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR} | |
This call starts a nonblocking variant of | |
@@ -1986,7 +1990,7 @@ | |
\mpibind{MPI\_Ineighbor\_alltoallv(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\_Request *request)} | |
-\mpifnewbind{MPI\_Ineighbor\_alltoallv(sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm, request, ierror) BIND(C) \fargs 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\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Ineighbor\_alltoallv(sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm, request, ierror) \fargs 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\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_INEIGHBOR\_ALLTOALLV(SENDBUF, SENDCOUNTS, SDISPLS, SENDTYPE, RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPE, COMM, REQUEST, IERROR)\fargs $<$type$>$ SENDBUF(*), RECVBUF(*)\\INTEGER SENDCOUNTS(*), SDISPLS(*), SENDTYPE, RECVCOUNTS(*), RDISPLS(*), RECVTYPE, COMM, REQUEST, IERROR} | |
This call starts a nonblocking variant of | |
@@ -2013,7 +2017,7 @@ | |
\mpibind{MPI\_Ineighbor\_alltoallw(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\_Request *request)} | |
-\mpifnewbind{MPI\_Ineighbor\_alltoallw(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes, comm, request, ierror) BIND(C) \fargs 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\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
+\mpifnewbind{MPI\_Ineighbor\_alltoallw(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes, comm, request, ierror) \fargs 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\_Request), INTENT(OUT) :: request \\ INTEGER, OPTIONAL, INTENT(OUT) :: ierror} | |
\mpifbind{MPI\_INEIGHBOR\_ALLTOALLW(SENDBUF, SENDCOUNTS, SDISPLS, SENDTYPES, RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPES, COMM, REQUEST, IERROR)\fargs $<$type$>$ SENDBUF(*), RECVBUF(*)\\INTEGER(KIND=MPI\_ADDRESS\_KIND) SDISPLS(*), RDISPLS(*)\\INTEGER SENDCOUNTS(*), SENDTYPES(*), RECVCOUNTS(*), RECVTYPES(*), COMM, REQUEST, IERROR} | |
This call starts a nonblocking variant of | |
@@ -2143,44 +2147,41 @@ | |
%%ENDHEADER | |
\begin{Verbatim}[commandchars=\\\$\^,commentchar=\%] | |
SUBROUTINE exchange (u, comm_cart, neigh_rank, num_neigh) | |
+IMPLICIT NONE | |
USE MPI | |
REAL u(0:101,0:101) | |
INTEGER comm_cart, num_neigh, neigh_rank(num_neigh) | |
INTEGER sndcounts(num_neigh), sndtypes(num_neigh) | |
-INTEGER rcvcounts(num_neigh), rcvtypes(num_neigh) | |
-INTEGER (KIND=MPI_ADDRESS_KIND) lb, sizeofreal, sdispls(num_neigh), & | |
- rdispls(num_neigh) | |
-INTEGER type_vec, i, ierr | |
-! The following initialization need to be done only once | |
-! before the first call of exchange. | |
-CALL MPI_TYPE_GET_EXTENT(MPI_REAL, lb, sizeofreal, ierr) | |
-CALL MPI_TYPE_VECTOR (100, 1, 102, MPI_REAL, type_vec, ierr) | |
-CALL MPI_TYPE_COMMIT (type_vec, ierr) | |
-sndtypes(1) = type_vec | |
-sndtypes(2) = type_vec | |
-sndtypes(3) = MPI_REAL | |
-sndtypes(4) = MPI_REAL | |
-DO i=1,num_neigh | |
- sndcounts(i) = 100 | |
- rcvcounts(i) = 100 | |
- rcvtypes(i) = sndtypes(i) | |
-END DO | |
-sdispls(1) = ( 1 + 1*102) * sizeofreal ! first element of u( 1,1:100) | |
-sdispls(2) = (100 + 1*102) * sizeofreal ! first element of u(100,1:100) | |
-sdispls(3) = ( 1 + 1*102) * sizeofreal ! first element of u(1:100, 1) | |
-sdispls(4) = ( 1 + 100*102) * sizeofreal ! first element of u(1:100,100) | |
-rdispls(1) = ( 0 + 1*102) * sizeofreal ! first element of u( 0,1:100) | |
-rdispls(2) = (101 + 1*102) * sizeofreal ! first element of u(101,1:100) | |
-rdispls(3) = ( 1 + 0*102) * sizeofreal ! first element of u(1:100, 0) | |
-rdispls(4) = ( 1 + 101*102) * sizeofreal ! first element of u(1:100,101) | |
- | |
-! the following communication has to be done in each call of exchange | |
+INTEGER rcvcounts(num_neigh), rcvtypes(num_neigh) | |
+INTEGER (KIND=MPI_ADDRESS_KIND) lb, sizeofreal | |
+INTEGER (KIND=MPI_ADDRESS_KIND) sdispls(num_neigh), rdispls(num_neigh) | |
+INTEGER type_vec, ierr | |
+! The following initialization need to be done only once | |
+! before the first call of exchange. | |
+CALL MPI_TYPE_GET_EXTENT (MPI_REAL, lb, sizeofreal, ierr) | |
+CALL MPI_TYPE_VECTOR (100, 1, 102, MPI_REAL, type_vec, ierr) | |
+CALL MPI_TYPE_COMMIT (type_vec, ierr) | |
+sndtypes(1:2) = type_vec | |
+sndcounts(1:2) = 1 | |
+sndtypes(3:4) = MPI_REAL | |
+sndcounts(3:4) = 100 | |
+rcvtypes = sndtypes | |
+rcvcounts = sndcounts | |
+sdispls(1) = ( 1 + 1*102) * sizeofreal ! first element of u( 1 , 1:100) | |
+sdispls(2) = (100 + 1*102) * sizeofreal ! first element of u(100 , 1:100) | |
+sdispls(3) = ( 1 + 1*102) * sizeofreal ! first element of u( 1:100, 1 ) | |
+sdispls(4) = ( 1 + 100*102) * sizeofreal ! first element of u( 1:100,100 ) | |
+rdispls(1) = ( 0 + 1*102) * sizeofreal ! first element of u( 0 , 1:100) | |
+rdispls(2) = (101 + 1*102) * sizeofreal ! first element of u(101 , 1:100) | |
+rdispls(3) = ( 1 + 0*102) * sizeofreal ! first element of u( 1:100, 0 ) | |
+rdispls(4) = ( 1 + 101*102) * sizeofreal ! first element of u( 1:100,101 ) | |
+! the following communication has to be done in each call of exchange | |
CALL MPI_NEIGHBOR_ALLTOALLW (u, sndcounts, sdispls, sndtypes, & | |
- u, rcvcounts, rdispls, rcvtypes, comm_cart, ierr) | |
- | |
-! The following finalizing need to be done only once | |
-! after the last call of exchange. | |
-CALL MPI_TYPE_FREE (type_vec, ierr) | |
+ u, rcvcounts, rdispls, rcvtypes, & | |
+ comm_cart, ierr) | |
+! The following finalizing need to be done only once | |
+! after the last call of exchange. | |
+CALL MPI_TYPE_FREE (type_vec, ierr) | |
END | |
\end{Verbatim} | |
%............................................................................ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment