Blame test/mpi/f90/coll/nonblockingf90.f90

Packit 0848f5
! This file created from test/mpi/f77/coll/nonblockingf.f with f77tof90
Packit 0848f5
! -*- Mode: Fortran; -*- 
Packit 0848f5
!
Packit 0848f5
!  (C) 2012 by Argonne National Laboratory.
Packit 0848f5
!      See COPYRIGHT in top-level directory.
Packit 0848f5
!
Packit 0848f5
      program main
Packit 0848f5
      use mpi
Packit 0848f5
      integer NUM_INTS
Packit 0848f5
      parameter (NUM_INTS=2)
Packit 0848f5
      integer maxSize
Packit 0848f5
      parameter (maxSize=128)
Packit 0848f5
      integer scounts(maxSize), sdispls(maxSize)
Packit 0848f5
      integer rcounts(maxSize), rdispls(maxSize)
Packit 0848f5
      integer types(maxSize)
Packit 0848f5
      integer sbuf(maxSize), rbuf(maxSize)
Packit 0848f5
      integer comm, size, rank, req
Packit 0848f5
      integer ierr, errs
Packit 0848f5
      integer ii, ans
Packit 0848f5
Packit 0848f5
      errs = 0
Packit 0848f5
Packit 0848f5
      call mtest_init(ierr)
Packit 0848f5
Packit 0848f5
      comm = MPI_COMM_WORLD
Packit 0848f5
      call MPI_Comm_size(comm, size, ierr)
Packit 0848f5
      call MPI_Comm_rank(comm, rank, ierr)
Packit 0848f5
!      
Packit 0848f5
      do ii = 1, size
Packit 0848f5
         sbuf(2*ii-1) = ii
Packit 0848f5
         sbuf(2*ii)   = ii
Packit 0848f5
         sbuf(2*ii-1) = ii
Packit 0848f5
         sbuf(2*ii)   = ii
Packit 0848f5
         scounts(ii)  = NUM_INTS
Packit 0848f5
         rcounts(ii)  = NUM_INTS
Packit 0848f5
         sdispls(ii)  = (ii-1) * NUM_INTS
Packit 0848f5
         rdispls(ii)  = (ii-1) * NUM_INTS
Packit 0848f5
         types(ii)    = MPI_INTEGER
Packit 0848f5
      enddo
Packit 0848f5
Packit 0848f5
      call MPI_Ibarrier(comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Ibcast(sbuf, NUM_INTS, MPI_INTEGER, 0, comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Igather(sbuf, NUM_INTS, MPI_INTEGER, &
Packit 0848f5
      &                  rbuf, NUM_INTS, MPI_INTEGER, &
Packit 0848f5
      &                  0, comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Igatherv(sbuf, NUM_INTS, MPI_INTEGER, &
Packit 0848f5
      &                   rbuf, rcounts, rdispls, MPI_INTEGER, &
Packit 0848f5
      &                   0, comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Ialltoall(sbuf, NUM_INTS, MPI_INTEGER, &
Packit 0848f5
      &                    rbuf, NUM_INTS, MPI_INTEGER, &
Packit 0848f5
      &                    comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Ialltoallv(sbuf, scounts, sdispls, MPI_INTEGER, &
Packit 0848f5
      &                     rbuf, rcounts, rdispls, MPI_INTEGER, &
Packit 0848f5
      &                     comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Ialltoallw(sbuf, scounts, sdispls, types, &
Packit 0848f5
      &                     rbuf, rcounts, rdispls, types, &
Packit 0848f5
      &                     comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Ireduce(sbuf, rbuf, NUM_INTS, MPI_INTEGER, &
Packit 0848f5
      &                  MPI_SUM, 0, comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Iallreduce(sbuf, rbuf, NUM_INTS, MPI_INTEGER, &
Packit 0848f5
      &                     MPI_SUM, comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Ireduce_scatter(sbuf, rbuf, rcounts, MPI_INTEGER, &
Packit 0848f5
      &                          MPI_SUM, comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Ireduce_scatter_block(sbuf, rbuf, NUM_INTS, MPI_INTEGER, &
Packit 0848f5
      &                                MPI_SUM, comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Iscan(sbuf, rbuf, NUM_INTS, MPI_INTEGER, &
Packit 0848f5
      &                MPI_SUM, comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call MPI_Iexscan(sbuf, rbuf, NUM_INTS, MPI_INTEGER, &
Packit 0848f5
      &                  MPI_SUM, comm, req, ierr)
Packit 0848f5
      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
Packit 0848f5
Packit 0848f5
      call mtest_finalize( errs )
Packit 0848f5
      call MPI_Finalize( ierr )
Packit 0848f5
      end