diff --git a/src/mpi_c_bindings.f90 b/src/mpi_c_bindings.f90 index c7ca2cf..e6c175c 100644 --- a/src/mpi_c_bindings.f90 +++ b/src/mpi_c_bindings.f90 @@ -110,7 +110,7 @@ subroutine c_mpi_allreduce_array(sendbuf, recvbuf, count, datatype, op, comm, ie integer(c_int), intent(out), optional :: ierror end subroutine c_mpi_allreduce_array - function c_mpi_wtime() result(time) bind(C, name="mpi_wtime_wrapper") + function c_mpi_wtime() result(time) bind(C, name="MPI_Wtime") use iso_c_binding, only: c_double real(c_double) :: time end function diff --git a/src/mpi_wrapper.c b/src/mpi_wrapper.c index 4ab4ee8..ad6f38f 100644 --- a/src/mpi_wrapper.c +++ b/src/mpi_wrapper.c @@ -203,10 +203,6 @@ void mpi_allreduce_wrapper(const double *sendbuf, double *recvbuf, int *count, } } -double mpi_wtime_wrapper() { - return MPI_Wtime(); -} - void mpi_barrier_wrapper(int *comm_f, int *ierror) { MPI_Comm comm = MPI_Comm_f2c(*comm_f); *ierror = MPI_Barrier(comm); diff --git a/tests/wtime_1.f90 b/tests/wtime_1.f90 new file mode 100644 index 0000000..9e377f1 --- /dev/null +++ b/tests/wtime_1.f90 @@ -0,0 +1,31 @@ +program wtime_1 + use, intrinsic:: iso_fortran_env, only: dp=>real64 + use mpi + implicit none + integer :: id, Nproc, ierr + real(dp) :: wtime + + !> Initialize MPI. + call MPI_Init(ierr) + + !> Get the number of processes. + call MPI_Comm_size(MPI_COMM_WORLD, Nproc, ierr) + + !> Get the individual process ID. + call MPI_Comm_rank(MPI_COMM_WORLD, id, ierr) + + !> Print a message. + if (id == 0) then + wtime = MPI_Wtime() + print *, 'number of processes: ', Nproc + end if + + if (id == 0) then + wtime = MPI_Wtime() - wtime + print *, 'Elapsed wall clock time = ', wtime, ' seconds.' + end if + + !> Shut down MPI. + call MPI_Finalize(ierr) + +end program