def water_concentration(T):
    """Return water concentration for temperature range 253.15K < T < 383.15K.
    Uses interpolation equation (eq. 2) for specific volume found in
    the doucment by The International Association for the Properties of
    Water and Steam from 2011
    <http://www.iapws.org/relguide/LiquidWater.pdf>`__.
    Pressure = 0.1 MPa

    Parameters
    ----------
    T : float
        Temperature in K

    Returns
    -------
    conc : float
        Water conentration at T in mol/l

    Examples
    --------
    >>> round(water_concentration(273.15), 3)
    55.498
    >>> round(water_concentration(298.15), 3)
    55.343
    """
    if not 253.15 <= T <= 383.15:
        raise ValueError("Temperature is outside of allowed range.")
    p0 = 10.0**5    # Pa
    R = 8.31464     # J/mol/K
    Tr = 10.0
    Ta = 593.0
    Tb = 232.0
    a = [1.93763157E-2,
         6.74458446E+3,
        -2.22521604E+5,
         1.00231247E+8,
        -1.63552118E+9,
         8.32299658E+9]
    b = [5.78545292E-3,
        -1.53195665E-2,
         3.11337859E-2,
        -4.23546241E-2,
         3.38713507E-2,
        -1.19946761E-2]
    n = [None, 4., 5., 7., 8., 9.]
    m = [1., 2., 3., 4., 5., 6.]
    def alpha(T):
        return Tr/(Ta - T)
    def beta(T):
        return Tr/(T - Tb)
    coef = a[0] + b[0]*beta(T)**m[0]
    for i in range(1, 6):
        coef += a[i]*alpha(T)**n[i] + b[i]*beta(T)**m[i]
    v0 = R*Tr/p0*coef  # m3/mol
    return 1/(v0*1000)    # mol/L