def runoff_single_time(PEt, im, WMM, W0, WM, b):
    """
    t时刻流域蓄满产流。
    Parameters:
    ------------
    PEt: float, t时刻的净雨
    im: float, 不透水面积比例
    WMM: float, 流域单点最大蓄水量
    W0: float, 上层土壤含水量
    WM: float, 流域平均蓄水容量
    b: float, 反映流域包气带蓄水容量分布的不均匀性

    Return:
    --------
    Rbt: runoff at the impervious area.
    Rt: runoff generated in the pervious region.
    """
    assert PEt >= 0, "The net precipitation at t time is non-negative."
    if PEt > 0:
        Rbt = im * PEt   #不透水面积产流
        a_t = WMM * (1.0 - (1.0 - W0 / WM) ** (1.0 / (1.0 + b))) #W0对应的纵坐标
        if ((a_t + PEt) < WMM):
            Rt = PEt - WM + W0 + WM * ((1 - (PEt + a_t) / WMM) ** (b + 1.0))
        else:
            Rt = PEt - (WM - W0)
        # END if-else
    else:
        Rt = 0.0
        Rbt = 0.0
    # END if-else

    return Rbt, Rt