find_primary_node_for_layer_id Function

function find_primary_node_for_layer_id(nodes, num_nodes, layer_id) result(node_index)

Return node index for primary node_, or 0 if not found.

Arguments

Type IntentOptional Attributes Name
type(onnx_node_type), intent(in) :: nodes(:)

Parsed ONNX nodes

integer, intent(in) :: num_nodes

Number of valid nodes and target layer id

integer, intent(in) :: layer_id

Number of valid nodes and target layer id

Return Value integer

Index of the found primary node, or 0 if not found


Source Code

  function find_primary_node_for_layer_id(nodes, num_nodes, layer_id) &
       result(node_index)
    !! Return node index for primary node_<id>, or 0 if not found.
    implicit none

    ! Arguments
    type(onnx_node_type), intent(in) :: nodes(:)
    !! Parsed ONNX nodes
    integer, intent(in) :: num_nodes, layer_id
    !! Number of valid nodes and target layer id

    integer :: node_index
    !! Index of the found primary node, or 0 if not found

    ! Local variables
    integer :: i, id_tmp
    !! Loop index and parsed node id candidate
    logical :: is_primary
    !! Whether current node matches primary pattern

    node_index = 0
    do i = 1, num_nodes
       call parse_primary_layer_id(nodes(i)%name, id_tmp, is_primary)
       if(is_primary .and. id_tmp .eq. layer_id)then
          node_index = i
          return
       end if
    end do

  end function find_primary_node_for_layer_id