<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def advth(step):
 """Theoretical advection. This compute the theoretical profile of total advection as function of radius. Args: step (:class:`~stagpy.stagyydata._Step`):
 a step of a StagyyData instance. Returns: tuple of :class:`numpy.array` and None: the theoretical advection. The second element of the tuple is None. """

    rbot, rtop = misc.get_rbounds(step)
    rmean = 0.5 * (rbot + rtop)
    rad = step.rprof['r'].values + rbot
    radio = step.timeinfo['H_int']
    if rbot != 0:  # spherical
        th_adv = -(rtop**3 - rad**3) / rmean**2 / 3
    else:
        th_adv = rad - rtop
    th_adv *= radio
    th_adv += step.timeinfo['Nutop']
    return th_adv, None