def ilumin(method, target, et, fixref, abcorr, obsrvr, spoint):
    """
    Find the illumination angles (phase, solar incidence, and
    emission) at a specified surface point of a target body.

    This routine supersedes illum.

    http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/ilumin_c.html

    :param method: Computation method.
    :type method: str
    :param target: Name of target body.
    :type target: str
    :param et: Epoch in ephemeris seconds past J2000.
    :type et: float
    :param fixref: Body-fixed, body-centered target body frame.
    :type fixref: str
    :param abcorr: Desired aberration correction.
    :type abcorr: str
    :param obsrvr: Name of observing body.
    :type obsrvr: str
    :param spoint: Body-fixed coordinates of a target surface point.
    :type spoint: 3-Element Array of floats
    :return: Target surface point epoch, Vector from observer to target
     surface point, Phase angle, Solar incidence angle, and Emission
     angle at the surface point.
    :rtype: tuple
    """
    method = stypes.stringToCharP(method)
    target = stypes.stringToCharP(target)
    et = ctypes.c_double(et)
    fixref = stypes.stringToCharP(fixref)
    abcorr = stypes.stringToCharP(abcorr)
    obsrvr = stypes.stringToCharP(obsrvr)
    spoint = stypes.toDoubleVector(spoint)
    trgepc = ctypes.c_double(0)
    srfvec = stypes.emptyDoubleVector(3)
    phase = ctypes.c_double(0)
    solar = ctypes.c_double(0)
    emissn = ctypes.c_double(0)
    libspice.ilumin_c(method, target, et, fixref, abcorr, obsrvr, spoint,
                      ctypes.byref(trgepc),
                      srfvec, ctypes.byref(phase), ctypes.byref(solar),
                      ctypes.byref(emissn))
    return trgepc.value, stypes.cVectorToPython(
            srfvec), phase.value, solar.value, emissn.value