#Metview Macro

#  **************************** LICENSE START ***********************************
# 
#  Copyright 2022 ECMWF. This software is distributed under the terms
#  of the Apache License version 2.0. In applying this license, ECMWF does not
#  waive the privileges and immunities granted to it by virtue of its status as
#  an Intergovernmental Organization or submit itself to any jurisdiction.
# 
#  ***************************** LICENSE END ************************************
# 

#================================================
# utility function to check argument type 
#================================================

function __check_arg_type(fn_name, val, valid_types, var_name)
    if type(valid_types) = "string" then
        if type(val) <> valid_types then
           fail(fn_name & ": invalid argument type=" &  type(val) & 
           " for " & var_name & ". Expected type=" & valid_types)
        end if
    else
        loop t in valid_types
            if type(val) = t then
                return
            end if
        end loop
        fail(fn_name & ": invalid argument type=" &  type(val) & 
           " for " & var_name)
    end if
end __check_arg_type
