def ashrae_revised_clear_sky(altitudes, tb, td, use_2017_model=False):
    """Calculate solar flux for an ASHRAE Revised Clear Sky ("Tau Model").

    By default, this function returns clear sky values following the
    methods originally published in the ASHRAE 2009 HOF.
    Args:
        altitudes: A list of solar altitudes in degrees.
        tb: A value indicating the beam optical depth of the sky.
        td: A value indicating the diffuse optical depth of the sky.
        use_2017_model: Set to True to use coefficients associated with
            the new version of the Tau model released in the 2013 and 2017 HOF.
            Note that the correct use of the new version requires updated
            tb and td values. At present, all .stat files
            distributed by the US DoE are using the older (2009) values
            for tb and td and so this input defaults to False.

    Returns:
        dir_norm_rad: A list of direct normal radiation values for each
            of the connected altitudes in W/m2.
        dif_horiz_rad: A list of diffuse horizontall radiation values for each
            of the connected altitudes in W/m2.
    """
    dir_norm_rad = []
    dif_horiz_rad = []

    if use_2017_model is True:
        ab = 1.454 - (0.406 * tb) - (0.268 * td) - (0.021 * tb * td)
        ad = 0.507 + (0.205 * tb) - (0.080 * td) - (0.190 * tb * td)
    else:
        ab = 1.219 - (0.043 * tb) - (0.151 * td) - (0.204 * tb * td)
        ad = 0.202 + (0.852 * tb) - (0.007 * td) - (0.357 * tb * td)

    # compute hourly radiation
    for alt in altitudes:
        if alt > 0:
            # calculate hourly air mass between top of the atmosphere and earth
            air_mass = get_relative_airmass(alt)
            dir_norm_rad.append(1415 * math.exp(-tb * math.pow(air_mass, ab)))
            dif_horiz_rad.append(1415 * math.exp(-td * math.pow(air_mass, ad)))
        else:
            dir_norm_rad.append(0)
            dif_horiz_rad.append(0)

    return dir_norm_rad, dif_horiz_rad