win_accumulate_i32 Subroutine

private subroutine win_accumulate_i32(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
integer(kind=int32), intent(in) :: buffer(*)
integer, intent(in), optional :: op

Calls

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

Variables

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

Source Code

   subroutine win_accumulate_i32(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
      integer(int32), 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_INTEGER, &
                          target_rank, target_disp, count, MPI_INTEGER, &
                          mpi_op, this%m_win, ierr)
   end subroutine win_accumulate_i32