def turbulent_Petukhov_Kirillov_Popov(Re, Pr, fd):
    """Calculates internal convection Nusselt number for turbulent flows
    in pipe according to [2]_ and [3]_ as in [1]_.

    .. math::
        Nu = \\frac{(f/8)RePr}{C+12.7(f/8)^{1/2}(Pr^{2/3}-1)}\\\\
        C = 1.07 + 900/Re - [0.63/(1+10Pr)]

    Parameters
    ----------
    Re : float
        Reynolds number, [-]
    Pr : float
        Prandtl number, [-]
    fd : float
        Darcy friction factor [-]

    Returns
    -------
    Nu : float
        Nusselt number, [-]

    Notes
    -----
    Range according to [1]_ is 0.5 < Pr ≤ 10^6  and 4000 ≤ Re ≤ 5*10^6

    Examples
    --------
    >>> turbulent_Petukhov_Kirillov_Popov(Re=1E5, Pr=1.2, fd=0.0185)
    250.11935088905105

    References
    ----------
    .. [1] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat
       Transfer, 3E. New York: McGraw-Hill, 1998.
    .. [2] B. S. Petukhov, and V. V. Kirillov, "The Problem of Heat Exchange
       in the Turbulent Flow of Liquids in Tubes," (Russian) Teploenergetika,
       (4): 63-68, 1958
    .. [3] B. S. Petukhov and V. N. Popov, "Theoretical Calculation of Heat
       Exchange in Turbulent Flow in Tubes of an Incompressible Fluidwith
       Variable Physical Properties," High Temp., (111): 69-83, 1963.
    """
    C = 1.07 + 900.0 / Re - 0.63 / (1.0 + 10.0 * Pr)
    return fd / 8.0 * Re * Pr / (C + 12.7 * (fd / 8.0) ** 0.5 * (Pr ** (2 /
        3.0) - 1.0))
