def _py_invar(parameter, lparams, tab):
    """Returns the code to create the local input parameter that is coerced to have the
    correct type for ctypes interaction.
    """
    if ("in" in parameter.direction and parameter.D > 0):
        if parameter.direction == "(inout)" and ":" not in parameter.dimension:
            wstr = ", writeable"
        else:
            wstr = ""
        pytype = _py_pytype(parameter)
        lparams.append("{}_a".format(parameter.lname))
        return ('{0}_a = require({0}, {1}, "F{2}")'.format(parameter.lname, pytype, wstr), False)
    elif parameter.D == 0:
        #Even for scalar outvars, we need to initialize a variable to pass by reference.
        lparams.append("byref({}_c)".format(parameter.lname))
        if parameter.direction == "(out)":
            initval = parameter.py_initval
            return ("{0}_c = {1}({2})".format(parameter.lname, _py_ctype(parameter), initval), False)
        else:
            return ("{0}_c = {1}({0})".format(parameter.lname, _py_ctype(parameter)), False)
def _py_invar ( parameter , lparams , tab ) : if ( "in" in parameter . direction and parameter . D > 0 ) : if parameter . direction == "(inout)" and ":" not in parameter . dimension : wstr = ", writeable" else : wstr = "" pytype = _py_pytype ( parameter ) lparams . append ( "{}_a" . format ( parameter . lname ) ) return ( '{0}_a = require({0}, {1}, "F{2}")' . format ( parameter . lname , pytype , wstr ) , False ) elif parameter . D == 0 : lparams . append ( "byref({}_c)" . format ( parameter . lname ) ) if parameter . direction == "(out)" : initval = parameter . py_initval return ( "{0}_c = {1}({2})" . format ( parameter . lname , _py_ctype ( parameter ) , initval ) , False ) else : return ( "{0}_c = {1}({0})" . format ( parameter . lname , _py_ctype ( parameter ) ) , False )
Returns the code to create the local input parameter that is coerced to have the
    correct type for ctypes interaction.