From bab127b091493078eef13c4fdab28036324af978 Mon Sep 17 00:00:00 2001 From: Gaurav Dhingra Date: Mon, 31 Mar 2025 19:49:14 +0530 Subject: [PATCH] add test program for MPI_Allgather_int --- tests/allgather_int_1.f90 | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/allgather_int_1.f90 diff --git a/tests/allgather_int_1.f90 b/tests/allgather_int_1.f90 new file mode 100644 index 0000000..af9173e --- /dev/null +++ b/tests/allgather_int_1.f90 @@ -0,0 +1,45 @@ +program allgather_int_1 + use mpi + implicit none + + integer, parameter :: N = 2 + integer :: rank, size, i, j, ierr + integer :: sendbuf(N) + integer, dimension(:, :), allocatable :: recvbuf + integer :: expected_value + + call MPI_Init(ierr) + call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr) + call MPI_Comm_size(MPI_COMM_WORLD, size, ierr) + + allocate(recvbuf(N, size)) + + do i = 1, N + sendbuf(i) = rank * 10 + i + end do + + call MPI_Allgather(sendbuf, N, MPI_INTEGER, recvbuf, N, MPI_INTEGER, MPI_COMM_WORLD, ierr) + + ! test the contents of recvbuf on all processes + do j = 1, size + do i = 1, N + expected_value = (j - 1) * 10 + i + if (recvbuf(i, j) /= expected_value) then + print *, "Error on rank", rank, ": recvbuf(", i, ",", j, ") = ", & + recvbuf(i, j), " but expected ", expected_value + error stop "MPI_Allgather test failed" + end if + end do + end do + + if (rank == 0) then + print *, "Final gathered array:" + do i = 1, size + print *, "Process", i - 1, ":", recvbuf(:, i) + end do + end if + + deallocate(recvbuf) + call MPI_Finalize(ierr) + +end program allgather_int_1