store_node_state Subroutine

subroutine store_node_state(state, parsed)

Copy the current node state into the parsed result collection.

Arguments

Type IntentOptional Attributes Name
type(json_node_state_type), intent(in) :: state

Completed node parser state

type(json_parse_result_type), intent(inout) :: parsed

Parsed ONNX content accumulated so far


Source Code

  subroutine store_node_state(state, parsed)
    !! Copy the current node state into the parsed result collection.
    implicit none

    ! Arguments
    type(json_node_state_type), intent(in) :: state
    !! Completed node parser state
    type(json_parse_result_type), intent(inout) :: parsed
    !! Parsed ONNX content accumulated so far

    parsed%num_nodes = parsed%num_nodes + 1
    parsed%nodes(parsed%num_nodes)%name = state%name
    parsed%nodes(parsed%num_nodes)%op_type = state%op_type
    parsed%nodes(parsed%num_nodes)%num_inputs = state%num_inputs
    parsed%nodes(parsed%num_nodes)%num_outputs = state%num_outputs

    if(state%num_inputs .gt. 0)then
       allocate(parsed%nodes(parsed%num_nodes)%inputs(state%num_inputs))
       parsed%nodes(parsed%num_nodes)%inputs = state%inputs(1:state%num_inputs)
    end if

    if(state%num_outputs .gt. 0)then
       allocate(parsed%nodes(parsed%num_nodes)%outputs(state%num_outputs))
       parsed%nodes(parsed%num_nodes)%outputs = &
            state%outputs(1:state%num_outputs)
    end if

    if(state%num_attrs .gt. 0)then
       allocate(parsed%nodes(parsed%num_nodes)%attributes(state%num_attrs))
       parsed%nodes(parsed%num_nodes)%attributes = &
            state%attrs(1:state%num_attrs)
    end if

  end subroutine store_node_state