build_fragment_payload_from_row Subroutine

subroutine build_fragment_payload_from_row(polymer_row, fragment_type, fragment_size, fragment_indices)

Build fragment payload arrays for a given polymer row. Caller owns the returned fragment_indices and must deallocate it.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: polymer_row(:)
integer(kind=int32), intent(out) :: fragment_type
integer(kind=int32), intent(out) :: fragment_size
integer, intent(out), allocatable :: fragment_indices(:)

Called by

proc~~build_fragment_payload_from_row~~CalledByGraph proc~build_fragment_payload_from_row build_fragment_payload_from_row proc~send_fragment_payload_from_row send_fragment_payload_from_row proc~send_fragment_payload_from_row->proc~build_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

Source Code

   subroutine build_fragment_payload_from_row(polymer_row, fragment_type, fragment_size, fragment_indices)
      !! Build fragment payload arrays for a given polymer row.
      !! Caller owns the returned fragment_indices and must deallocate it.
      integer, intent(in) :: polymer_row(:)
      integer(int32), intent(out) :: fragment_type
      integer(int32), intent(out) :: fragment_size
      integer, allocatable, intent(out) :: fragment_indices(:)

      fragment_size = count(polymer_row > 0)
      allocate (fragment_indices(fragment_size))
      fragment_indices = polymer_row(1:fragment_size)

      fragment_type = FRAGMENT_TYPE_MONOMERS
   end subroutine build_fragment_payload_from_row