C -*- Mode: Fortran; -*- C C (C) 2007 by Argonne National Laboratory. C See COPYRIGHT in top-level directory. C program main implicit none include 'mpif.h' 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 ) C C 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