1 C -*- Mode: Fortran; -*-
3 C (C) 2012 by Argonne National Laboratory.
4 C See COPYRIGHT in top-level directory.
10 parameter (NUM_INTS=2)
12 parameter (maxSize=128)
13 integer scounts(maxSize), sdispls(maxSize)
14 integer rcounts(maxSize), rdispls(maxSize)
15 integer types(maxSize)
16 integer sbuf(maxSize), rbuf(maxSize)
17 integer comm, size, rank, req
26 call MPI_Comm_size(comm, size, ierr)
27 call MPI_Comm_rank(comm, rank, ierr)
34 scounts(ii) = NUM_INTS
35 rcounts(ii) = NUM_INTS
36 sdispls(ii) = (ii-1) * NUM_INTS
37 rdispls(ii) = (ii-1) * NUM_INTS
38 types(ii) = MPI_INTEGER
41 call MPI_Ibarrier(comm, req, ierr)
42 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
44 call MPI_Ibcast(sbuf, NUM_INTS, MPI_INTEGER, 0, comm, req, ierr)
45 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
47 call MPI_Igather(sbuf, NUM_INTS, MPI_INTEGER,
48 . rbuf, NUM_INTS, MPI_INTEGER,
50 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
52 call MPI_Igatherv(sbuf, NUM_INTS, MPI_INTEGER,
53 . rbuf, rcounts, rdispls, MPI_INTEGER,
55 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
57 call MPI_Ialltoall(sbuf, NUM_INTS, MPI_INTEGER,
58 . rbuf, NUM_INTS, MPI_INTEGER,
60 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
62 call MPI_Ialltoallv(sbuf, scounts, sdispls, MPI_INTEGER,
63 . rbuf, rcounts, rdispls, MPI_INTEGER,
65 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
67 call MPI_Ialltoallw(sbuf, scounts, sdispls, types,
68 . rbuf, rcounts, rdispls, types,
70 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
72 call MPI_Ireduce(sbuf, rbuf, NUM_INTS, MPI_INTEGER,
73 . MPI_SUM, 0, comm, req, ierr)
74 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
76 call MPI_Iallreduce(sbuf, rbuf, NUM_INTS, MPI_INTEGER,
77 . MPI_SUM, comm, req, ierr)
78 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
80 call MPI_Ireduce_scatter(sbuf, rbuf, rcounts, MPI_INTEGER,
81 . MPI_SUM, comm, req, ierr)
82 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
84 call MPI_Ireduce_scatter_block(sbuf, rbuf, NUM_INTS, MPI_INTEGER,
85 . MPI_SUM, comm, req, ierr)
86 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
88 call MPI_Iscan(sbuf, rbuf, NUM_INTS, MPI_INTEGER,
89 . MPI_SUM, comm, req, ierr)
90 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
92 call MPI_Iexscan(sbuf, rbuf, NUM_INTS, MPI_INTEGER,
93 . MPI_SUM, comm, req, ierr)
94 call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
96 call mtest_finalize( errs )
97 call MPI_Finalize( ierr )