FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(inout), | dimension (:,:,:) | :: | a | ||
integer, | intent(in) | :: | dest |
subroutine sum_reduce_real_3array (a, dest)
implicit none
real, dimension (:,:,:), intent (in out) :: a
integer, intent (in) :: dest
# ifdef MPI
integer :: ierror
!$OMP MASTER
call time_message(.false., time_mp_collectives, ' MPI Collectives')
!$OMP END MASTER
if(iproc.eq.dest)then
call mpi_reduce &
(MPI_IN_PLACE, a, size(a), mpireal, MPI_SUM, dest, mp_comm, ierror)
else
call mpi_reduce &
(a, a, size(a), mpireal, MPI_SUM, dest, mp_comm, ierror)
endif
!$OMP MASTER
call time_message(.false., time_mp_collectives, ' MPI Collectives')
!$OMP END MASTER
# else
UNUSED_DUMMY(a)
if (dest /= 0) call mp_abort ("reduce to")
# endif
end subroutine sum_reduce_real_3array