def _TSat_P(P):
    """Define the saturated line, T=f(P)

    Parameters
    ----------
    P : float
        Pressure [MPa]

    Returns
    -------
    T : float
        Temperature [K]

    Raises
    ------
    NotImplementedError : If input isn't in limit
        * 0.00061121 ≤ P ≤ 22.064

    References
    ----------
    IAPWS, Revised Release on the IAPWS Industrial Formulation 1997 for the
    Thermodynamic Properties of Water and Steam August 2007,
    http://www.iapws.org/relguide/IF97-Rev.html, Eq 31

    Examples
    --------
    >>> _TSat_P(10)
    584.149488
    """
    # Check input parameters
    if P < 611.212677/1e6 or P > 22.064:
        raise NotImplementedError("Incoming out of bound")

    n = [0, 0.11670521452767E+04, -0.72421316703206E+06, -0.17073846940092E+02,
         0.12020824702470E+05, -0.32325550322333E+07, 0.14915108613530E+02,
         -0.48232657361591E+04, 0.40511340542057E+06, -0.23855557567849E+00,
         0.65017534844798E+03]
    beta = P**0.25
    E = beta**2+n[3]*beta+n[6]
    F = n[1]*beta**2+n[4]*beta+n[7]
    G = n[2]*beta**2+n[5]*beta+n[8]
    D = 2*G/(-F-(F**2-4*E*G)**0.5)
    return (n[10]+D-((n[10]+D)**2-4*(n[9]+n[10]*D))**0.5)/2