! This file created from test/mpi/f77/coll/allredopttf.f with f77tof90
! -*- Mode: Fortran; -*-
!
! (C) 2007 by Argonne National Laboratory.
! See COPYRIGHT in top-level directory.
!
program main
use mpi
integer*8 inbuf, outbuf
double complex zinbuf, zoutbuf
integer wsize
integer errs, ierr
errs = 0
call mtest_init( ierr )
call mpi_comm_size( MPI_COMM_WORLD, wsize, ierr )
!
! A simple test of allreduce for the optional integer*8 type
inbuf = 1
outbuf = 0
call mpi_allreduce(inbuf, outbuf, 1, MPI_INTEGER8, MPI_SUM, &
& MPI_COMM_WORLD, ierr)
if (outbuf .ne. wsize ) then
errs = errs + 1
print *, "result wrong for sum with integer*8 = got ", outbuf, &
& " but should have ", wsize
endif
zinbuf = (1,1)
zoutbuf = (0,0)
call mpi_allreduce(zinbuf, zoutbuf, 1, MPI_DOUBLE_COMPLEX, &
& MPI_SUM, MPI_COMM_WORLD, ierr)
if (dreal(zoutbuf) .ne. wsize ) then
errs = errs + 1
print *, "result wrong for sum with double complex = got ", &
& outbuf, " but should have ", wsize
endif
if (dimag(zoutbuf) .ne. wsize ) then
errs = errs + 1
print *, "result wrong for sum with double complex = got ", &
& outbuf, " but should have ", wsize
endif
call mtest_finalize( errs )
call mpi_finalize( ierr )
end