Reduce real data to all nodes
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array | |||
| integer, | intent(in) | :: | size | |||
| character(len=*), | intent(in) | :: | op | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
subroutine comms_allreduce_real(array, size, op, error, comm) !! Reduce real data to all nodes implicit none real(kind=dp), intent(inout) :: array integer, intent(in) :: size character(len=*), intent(in) :: op type(w90_comm_type), intent(in) :: comm type(w90_error_type), allocatable, intent(out) :: error call comms_sync_error(comm, error, 0) ! sync error state across comm if (allocated(error)) return call comms_no_sync_allreduce_real(array, size, op, error, comm) end subroutine comms_allreduce_real