11 parameter(wastesz = 100)
12 integer i, iam, np, ierr
13 integer mcom, wgrp, mgrp
14 integer irank(nproc), stat(mpi_status_size)
15 double precision wastespc(wastesz)
19 if (np .lt. nproc)
then
20 print*,
'Not enough processes to run sanity check'
36 call mpi_group_incl(wgrp, nproc, irank, mgrp, ierr)
42 if (mcom .ne. mpi_comm_null)
then
48 if (mod(iam, 2) .ne. 0)
then
49 call mpi_recv(i, 1, mpi_integer, mod(nproc+iam-1, nproc),
50 & 0, mcom, stat, ierr)
51 call mpi_send(iam, 1, mpi_integer, mod(iam+1, nproc),
54 call mpi_send(iam, 1, mpi_integer, mod(iam+1, nproc),
56 call mpi_recv(i, 1, mpi_integer, mod(nproc+iam-1, nproc),
57 & 0, mcom, stat, ierr)
62 if (i .ne. mod(nproc+iam-1, nproc))
then
63 print*,
'Communication does not seem to work properly!!'
68 print*,iam,
' F77 MPI sanity test passed.'
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
subroutine mpi_finalize(ierr)
subroutine mpi_comm_group(comm, group, ierr)
subroutine mpi_group_free(group, ierr)
subroutine mpi_send(buf, cnt, datatype, dest, tag, comm, ierr)
subroutine mpi_comm_size(comm, size, ierr)
subroutine mpi_init(ierr)
subroutine mpi_comm_rank(comm, rank, ierr)
subroutine mpi_abort(comm, ierrcode, ierr)
subroutine mpi_comm_create(comm, group, comm2, ierr)