win_accumulate_sp Subroutine

private subroutine win_accumulate_sp(this, target_rank, target_disp, count, buffer, op)

Type Bound

win_t

Arguments

Type IntentOptional Attributes Name
class(win_t), intent(in) :: this
integer, intent(in) :: target_rank
integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
integer, intent(in) :: count
real(kind=sp), intent(in) :: buffer(*)
integer, intent(in), optional :: op

Calls

proc~~win_accumulate_sp~2~~CallsGraph proc~win_accumulate_sp~2 win_t%win_accumulate_sp mpi_accumulate mpi_accumulate proc~win_accumulate_sp~2->mpi_accumulate

Variables

Type Visibility Attributes Name Initial
integer, private :: ierr
integer, private :: mpi_op

Source Code

   subroutine win_accumulate_sp(this, target_rank, target_disp, count, buffer, op)
      class(win_t), intent(in) :: this
      integer, intent(in) :: target_rank
      integer(MPI_ADDRESS_KIND), intent(in) :: target_disp
      integer, intent(in) :: count
      real(sp), intent(in) :: buffer(*)
      integer, intent(in), optional :: op
      integer :: mpi_op
      integer :: ierr

      if (present(op)) then
         mpi_op = op
      else
         mpi_op = MPI_SUM
      end if

      call MPI_Accumulate(buffer, count, MPI_REAL, &
                          target_rank, target_disp, count, MPI_REAL, &
                          mpi_op, this%m_win, ierr)
   end subroutine win_accumulate_sp