def _etsz(rn, g, tmean, u2, vpd, es_slope, psy, cn, cd):
    """Standardized Reference ET [mm] (Eq. 1)

    Parameters
    ----------
    rn : scalar or array_like of shape(M, )
        Net radiation [MJ m-2 d-1 or MJ m-2 h-1].
    g : scalar or array_like of shape(M, )
        Ground heat flux [MJ m-2 d-1 or MJ m-2 h-1].
    tmean : scalar or array_like of shape(M, )
        Mean air temperature [C]
    u2 : scalar or array_like of shape(M, )
        Wind speed at 2 m height [m s-1]
    vpd : scalar or array_like of shape(M, )
        Vapor pressure deficit [kPa].
    es_slope : scalar or array_like of shape(M, )
        Slope of the saturation vapor pressure-temperature curve [kPa C-1].
    psy : scalar or array_like of shape(M, )
        Psychrometric constant [kPa C-1].
    cn : scalar or array_like of shape(M, )
        Numerator constant.
    cd : scalar or array_like of shape(M, )
        Denominator constant.

    Returns
    -------
    ndarray

    """
    return (
        (0.408 * es_slope * (rn - g) + (psy * cn * u2 * vpd / (tmean + 273))) /
        (es_slope + psy * (cd * u2 + 1)))