resolve_onnx_export_format Function

function resolve_onnx_export_format(format) result(ifmt)

Resolve the ONNX export format into the internal integer selector.

Arguments

Type IntentOptional Attributes Name
class(*), intent(in), optional :: format

Export format as a string name or integer selector

Return Value integer

Integer selector for the export format (1=athena_abstract, 2=onnx_expanded)


Source Code

  function resolve_onnx_export_format(format) result(ifmt)
    !! Resolve the ONNX export format into the internal integer selector.
    implicit none

    ! Arguments
    class(*), optional, intent(in) :: format
    !! Export format as a string name or integer selector

    integer :: ifmt
    !! Integer selector for the export format (1=athena_abstract, 2=onnx_expanded)

    ! Local variables
    character(32) :: format_name
    !! Normalised string representation of the requested export format
    character(128) :: err_msg
    !! Error buffer used for unsupported integer selectors

    ifmt = 1

    if(present(format))then
       select type(format)
       type is(character(*))
          format_name = to_lower(trim(adjustl(format)))
          select case(trim(format_name))
          case('athena_abstract')
             ifmt = 1
          case('onnx_expanded')
             ifmt = 2
          case default
             call stop_program('write_onnx: unrecognised export format: ' // &
                  trim(format_name))
             ifmt = 0
             return
          end select
       type is(integer)
          ifmt = format
       class default
          call stop_program('write_onnx: unrecognised export format type')
          ifmt = 0
          return
       end select
    end if

    select case(ifmt)
    case(1, 2)
       continue
    case default
       write(err_msg, '("write_onnx: unrecognised export format selector: ",I0)') ifmt
       call stop_program(err_msg)
       ifmt = 0
       return
    end select

  end function resolve_onnx_export_format