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(kind=int32), intent(in) :: target_rank
integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
integer(kind=int32), intent(in) :: count
real(kind=sp), intent(in) :: buffer(*)
type(MPI_Op), intent(in), optional :: op

Calls

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

Called by

proc~~win_accumulate_sp~~CalledByGraph proc~win_accumulate_sp win_t%win_accumulate_sp proc~darray_acc_sp darray_acc_sp proc~darray_acc_sp->proc~win_accumulate_sp interface~darray_acc darray_acc interface~darray_acc->proc~darray_acc_sp

Variables

Type Visibility Attributes Name Initial
integer(kind=int32), private :: ierr
type(MPI_Op), private :: mpi_op

Source Code

   subroutine win_accumulate_sp(this, target_rank, target_disp, count, buffer, op)
      class(win_t), intent(in) :: this
      integer(int32), intent(in) :: target_rank
      integer(MPI_ADDRESS_KIND), intent(in) :: target_disp
      integer(int32), intent(in) :: count
      real(sp), intent(in) :: buffer(*)
      type(MPI_Op), intent(in), optional :: op
      type(MPI_Op) :: mpi_op
      integer(int32) :: 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