|
Packit |
0848f5 |
C -*- Mode: Fortran; -*-
|
|
Packit |
0848f5 |
C
|
|
Packit |
0848f5 |
C (C) 2003 by Argonne National Laboratory.
|
|
Packit |
0848f5 |
C See COPYRIGHT in top-level directory.
|
|
Packit |
0848f5 |
C
|
|
Packit |
0848f5 |
program main
|
|
Packit |
0848f5 |
implicit none
|
|
Packit |
0848f5 |
C Test support for MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE
|
|
Packit |
0848f5 |
include 'mpif.h'
|
|
Packit |
0848f5 |
integer nreqs
|
|
Packit |
0848f5 |
parameter (nreqs = 100)
|
|
Packit |
0848f5 |
integer reqs(nreqs)
|
|
Packit |
0848f5 |
integer ierr, rank, i
|
|
Packit |
0848f5 |
integer errs
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
ierr = -1
|
|
Packit |
0848f5 |
errs = 0
|
|
Packit |
0848f5 |
call mpi_init( ierr )
|
|
Packit |
0848f5 |
if (ierr .ne. MPI_SUCCESS) then
|
|
Packit |
0848f5 |
errs = errs + 1
|
|
Packit |
0848f5 |
print *, 'Unexpected return from MPI_INIT', ierr
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
ierr = -1
|
|
Packit |
0848f5 |
call mpi_comm_rank( MPI_COMM_WORLD, rank, ierr )
|
|
Packit |
0848f5 |
if (ierr .ne. MPI_SUCCESS) then
|
|
Packit |
0848f5 |
errs = errs + 1
|
|
Packit |
0848f5 |
print *, 'Unexpected return from MPI_COMM_WORLD', ierr
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
do i=1, nreqs, 2
|
|
Packit |
0848f5 |
ierr = -1
|
|
Packit |
0848f5 |
call mpi_isend( MPI_BOTTOM, 0, MPI_BYTE, rank, i,
|
|
Packit |
0848f5 |
$ MPI_COMM_WORLD, reqs(i), ierr )
|
|
Packit |
0848f5 |
if (ierr .ne. MPI_SUCCESS) then
|
|
Packit |
0848f5 |
errs = errs + 1
|
|
Packit |
0848f5 |
print *, 'Unexpected return from MPI_ISEND', ierr
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
ierr = -1
|
|
Packit |
0848f5 |
call mpi_irecv( MPI_BOTTOM, 0, MPI_BYTE, rank, i,
|
|
Packit |
0848f5 |
$ MPI_COMM_WORLD, reqs(i+1), ierr )
|
|
Packit |
0848f5 |
if (ierr .ne. MPI_SUCCESS) then
|
|
Packit |
0848f5 |
errs = errs + 1
|
|
Packit |
0848f5 |
print *, 'Unexpected return from MPI_IRECV', ierr
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
enddo
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
ierr = -1
|
|
Packit |
0848f5 |
call mpi_waitall( nreqs, reqs, MPI_STATUSES_IGNORE, ierr )
|
|
Packit |
0848f5 |
if (ierr .ne. MPI_SUCCESS) then
|
|
Packit |
0848f5 |
errs = errs + 1
|
|
Packit |
0848f5 |
print *, 'Unexpected return from MPI_WAITALL', ierr
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
call mtest_finalize( errs )
|
|
Packit |
0848f5 |
call mpi_finalize( ierr )
|
|
Packit |
0848f5 |
end
|