35 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
36#include "implicit_f.inc"
44 CHARACTER(len=4),
INTENT(in) :: MY_OPERATION
45 INTEGER,
INTENT(in) :: MY_SIZE,MY_RANK
46 REAL(kind=8), dimension(my_size),
INTENT(in) ::
VALUE
47 REAL(kind=8), dimension(my_size),
INTENT(out) :: res
54 INTEGER :: MPI_OPERATION
57 IF(my_operation(1:3)==
"SUM")
THEN
59 ELSEIF(my_operation(1:4)==
"PROD")
THEN
60 mpi_operation=mpi_prod
61 ELSEIF(my_operation(1:3)==
"MAX")
THEN
63 ELSEIF(my_operation(1:3)==
"MIN")
THEN
69 CALL mpi_reduce(
VALUE,res,my_size,mpi_double_precision,mpi_operation,my_rank
subroutine mpi_reduce(sendbuf, recvbuf, cnt, datatype, op, root, comm, ierr)