Blame test/mpi/f77/coll/nonblockingf.f

Packit Service c5cf8c
C -*- Mode: Fortran; -*- 
Packit Service c5cf8c
C
Packit Service c5cf8c
C  (C) 2012 by Argonne National Laboratory.
Packit Service c5cf8c
C      See COPYRIGHT in top-level directory.
Packit Service c5cf8c
C
Packit Service c5cf8c
      program main
Packit Service c5cf8c
      implicit none
Packit Service c5cf8c
      include 'mpif.h'
Packit Service c5cf8c
      integer NUM_INTS
Packit Service c5cf8c
      parameter (NUM_INTS=2)
Packit Service c5cf8c
      integer maxSize
Packit Service c5cf8c
      parameter (maxSize=128)
Packit Service c5cf8c
      integer scounts(maxSize), sdispls(maxSize)
Packit Service c5cf8c
      integer rcounts(maxSize), rdispls(maxSize)
Packit Service c5cf8c
      integer types(maxSize)
Packit Service c5cf8c
      integer sbuf(maxSize), rbuf(maxSize)
Packit Service c5cf8c
      integer comm, size, rank, req
Packit Service c5cf8c
      integer ierr, errs
Packit Service c5cf8c
      integer ii, ans
Packit Service c5cf8c
Packit Service c5cf8c
      errs = 0
Packit Service c5cf8c
Packit Service c5cf8c
      call mtest_init(ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      comm = MPI_COMM_WORLD
Packit Service c5cf8c
      call MPI_Comm_size(comm, size, ierr)
Packit Service c5cf8c
      call MPI_Comm_rank(comm, rank, ierr)
Packit Service c5cf8c
C      
Packit Service c5cf8c
      do ii = 1, size
Packit Service c5cf8c
         sbuf(2*ii-1) = ii
Packit Service c5cf8c
         sbuf(2*ii)   = ii
Packit Service c5cf8c
         sbuf(2*ii-1) = ii
Packit Service c5cf8c
         sbuf(2*ii)   = ii
Packit Service c5cf8c
         scounts(ii)  = NUM_INTS
Packit Service c5cf8c
         rcounts(ii)  = NUM_INTS
Packit Service c5cf8c
         sdispls(ii)  = (ii-1) * NUM_INTS
Packit Service c5cf8c
         rdispls(ii)  = (ii-1) * NUM_INTS
Packit Service c5cf8c
         types(ii)    = MPI_INTEGER
Packit Service c5cf8c
      enddo
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Ibarrier(comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Ibcast(sbuf, NUM_INTS, MPI_INTEGER, 0, comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Igather(sbuf, NUM_INTS, MPI_INTEGER,
Packit Service c5cf8c
     .                  rbuf, NUM_INTS, MPI_INTEGER,
Packit Service c5cf8c
     .                  0, comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Igatherv(sbuf, NUM_INTS, MPI_INTEGER,
Packit Service c5cf8c
     .                   rbuf, rcounts, rdispls, MPI_INTEGER,
Packit Service c5cf8c
     .                   0, comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Ialltoall(sbuf, NUM_INTS, MPI_INTEGER,
Packit Service c5cf8c
     .                    rbuf, NUM_INTS, MPI_INTEGER,
Packit Service c5cf8c
     .                    comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Ialltoallv(sbuf, scounts, sdispls, MPI_INTEGER,
Packit Service c5cf8c
     .                     rbuf, rcounts, rdispls, MPI_INTEGER,
Packit Service c5cf8c
     .                     comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Ialltoallw(sbuf, scounts, sdispls, types,
Packit Service c5cf8c
     .                     rbuf, rcounts, rdispls, types,
Packit Service c5cf8c
     .                     comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Ireduce(sbuf, rbuf, NUM_INTS, MPI_INTEGER,
Packit Service c5cf8c
     .                  MPI_SUM, 0, comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Iallreduce(sbuf, rbuf, NUM_INTS, MPI_INTEGER,
Packit Service c5cf8c
     .                     MPI_SUM, comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Ireduce_scatter(sbuf, rbuf, rcounts, MPI_INTEGER,
Packit Service c5cf8c
     .                          MPI_SUM, comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Ireduce_scatter_block(sbuf, rbuf, NUM_INTS, MPI_INTEGER,
Packit Service c5cf8c
     .                                MPI_SUM, comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Iscan(sbuf, rbuf, NUM_INTS, MPI_INTEGER,
Packit Service c5cf8c
     .                MPI_SUM, comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call MPI_Iexscan(sbuf, rbuf, NUM_INTS, MPI_INTEGER,
Packit Service c5cf8c
     .                  MPI_SUM, comm, req, ierr)
Packit Service c5cf8c
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit Service c5cf8c
Packit Service c5cf8c
      call mtest_finalize( errs )
Packit Service c5cf8c
      end