Send fragment payload over the specified communicator/tag using a polymer row.
| Type | Intent | Optional | 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 |
| 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) |
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