add_graph_input_tensor Subroutine

private subroutine add_graph_input_tensor(graph_inputs, num_inputs, name, elem_type, dim1, dim_param1, dim2, dim_param2)

Add one graph input tensor declaration to the ONNX input list.

Arguments

Type IntentOptional Attributes Name
type(onnx_tensor_type), intent(inout), dimension(:) :: graph_inputs
integer, intent(inout) :: num_inputs
character(len=*), intent(in) :: name
integer, intent(in) :: elem_type
integer, intent(in) :: dim1
character(len=*), intent(in) :: dim_param1
integer, intent(in), optional :: dim2
character(len=*), intent(in), optional :: dim_param2

Source Code

  subroutine add_graph_input_tensor( &
       graph_inputs, num_inputs, name, elem_type, &
       dim1, dim_param1, dim2, dim_param2)
    !! Add one graph input tensor declaration to the ONNX input list.
    implicit none

    ! Arguments
    type(onnx_tensor_type), intent(inout), dimension(:) :: graph_inputs
    integer, intent(inout) :: num_inputs
    character(*), intent(in) :: name
    integer, intent(in) :: elem_type, dim1
    character(*), intent(in) :: dim_param1
    integer, optional, intent(in) :: dim2
    character(*), optional, intent(in) :: dim_param2

    num_inputs = num_inputs + 1
    graph_inputs(num_inputs)%name = trim(name)
    graph_inputs(num_inputs)%elem_type = elem_type
    if(present(dim2))then
       allocate(graph_inputs(num_inputs)%dims(2))
       allocate(graph_inputs(num_inputs)%dim_params(2))
       graph_inputs(num_inputs)%dims = [ dim1, dim2 ]
       graph_inputs(num_inputs)%dim_params(1) = dim_param1
       graph_inputs(num_inputs)%dim_params(2) = dim_param2
    else
       allocate(graph_inputs(num_inputs)%dims(1))
       allocate(graph_inputs(num_inputs)%dim_params(1))
       graph_inputs(num_inputs)%dims(1) = dim1
       graph_inputs(num_inputs)%dim_params(1) = dim_param1
    end if

  end subroutine add_graph_input_tensor