def METHOD_NAME(ppopt=None, **kw_args):
    """Used to set and retrieve a PYPOWER options vector.
    C{opt = ppoption()} returns the default options vector
    C{opt = ppoption(NAME1=VALUE1, NAME2=VALUE2, ...)} returns the default
    options vector with new values for the specified options, NAME# is the
    name of an option, and VALUE# is the new value.
    C{opt = ppoption(OPT, NAME1=VALUE1, NAME2=VALUE2, ...)} same as above
    except it uses the options vector OPT as a base instead of the default
    options vector.
    Examples::
        opt = ppoption(PF_ALG=2, PF_TOL=1e-4);
        opt = ppoption(opt, OPF_ALG=565, VERBOSE=2)
    @author: Ray Zimmerman (PSERC Cornell)
    """
    default_ppopt = {}
    options = PF_OPTIONS + OPF_OPTIONS + OUTPUT_OPTIONS + PDIPM_OPTIONS
    for name, default, _ in options:
        default_ppopt[name.upper()] = default
    ppopt = default_ppopt if ppopt == None else ppopt.copy()
    ppopt.update(kw_args)
    return ppopt