send_fragment_payload_from_row Subroutine

subroutine send_fragment_payload_from_row(comm, tag, fragment_idx, polymer_row, dest_rank)

Send fragment payload over the specified communicator/tag using a polymer row.

Arguments

Type IntentOptional Attributes Name
type(comm_t), intent(in) :: comm
integer, intent(in) :: tag
integer(kind=int64), intent(in) :: fragment_idx
integer, intent(in) :: polymer_row(:)
integer, intent(in) :: dest_rank

Calls

proc~~send_fragment_payload_from_row~~CallsGraph proc~send_fragment_payload_from_row send_fragment_payload_from_row isend isend proc~send_fragment_payload_from_row->isend proc~build_fragment_payload_from_row build_fragment_payload_from_row proc~send_fragment_payload_from_row->proc~build_fragment_payload_from_row

Called by

proc~~send_fragment_payload_from_row~~CalledByGraph proc~send_fragment_payload_from_row send_fragment_payload_from_row proc~handle_group_node_requests handle_group_node_requests proc~handle_group_node_requests->proc~send_fragment_payload_from_row proc~handle_local_worker_requests_group handle_local_worker_requests_group proc~handle_local_worker_requests_group->proc~send_fragment_payload_from_row proc~global_coordinator_impl global_coordinator_impl proc~global_coordinator_impl->proc~handle_group_node_requests proc~global_coordinator_impl->proc~handle_local_worker_requests_group proc~group_global_coordinator_impl group_global_coordinator_impl proc~group_global_coordinator_impl->proc~handle_group_node_requests proc~group_global_coordinator_impl->proc~handle_local_worker_requests_group proc~global_coordinator global_coordinator proc~global_coordinator->proc~global_coordinator_impl proc~node_coordinator_impl node_coordinator_impl proc~node_coordinator_impl->proc~group_global_coordinator_impl interface~global_coordinator global_coordinator interface~global_coordinator->proc~global_coordinator proc~node_coordinator node_coordinator proc~node_coordinator->proc~node_coordinator_impl interface~node_coordinator node_coordinator interface~node_coordinator->proc~node_coordinator proc~mbe_run_distributed mbe_context_t%mbe_run_distributed proc~mbe_run_distributed->interface~global_coordinator

Variables

Type Visibility Attributes Name Initial
integer(kind=int64), private :: fragment_idx_int64
integer, private, allocatable :: fragment_indices(:)
integer(kind=int32), private :: fragment_size
integer(kind=int32), private :: fragment_type
type(request_t), private :: req(4)

Source Code

   subroutine send_fragment_payload_from_row(comm, tag, fragment_idx, polymer_row, dest_rank)
      !! Send fragment payload over the specified communicator/tag using a polymer row.
      type(comm_t), intent(in) :: comm
      integer, intent(in) :: tag
      integer(int64), intent(in) :: fragment_idx
      integer, intent(in) :: dest_rank
      integer, intent(in) :: polymer_row(:)
      integer(int32) :: fragment_size, fragment_type
      integer, allocatable :: fragment_indices(:)
      type(request_t) :: req(4)
      integer(int64) :: fragment_idx_int64

      call build_fragment_payload_from_row(polymer_row, fragment_type, fragment_size, fragment_indices)

      fragment_idx_int64 = int(fragment_idx, kind=int64)
      call isend(comm, fragment_idx_int64, dest_rank, tag, req(1))
      call isend(comm, fragment_type, dest_rank, tag, req(2))
      call isend(comm, fragment_size, dest_rank, tag, req(3))
      call isend(comm, fragment_indices, dest_rank, tag, req(4))

      call wait(req(1))
      call wait(req(2))
      call wait(req(3))
      call wait(req(4))

      deallocate (fragment_indices)
   end subroutine send_fragment_payload_from_row