code: def consecutive_frost_days(tasmin, freq='AS-JUL'):
      r
      tu = units.parse_units(tasmin.attrs['units'].replace('-', '**-'))
      fu = 'degC'
      frz = 0
      if fu != tu:
          frz = units.convert(frz, fu, tu)
      group = (tasmin < frz).resample(time=freq)
      return group.apply(rl.longest_run, dim='time')
docs: r"""Maximum number of consecutive frost days (Tmin < 0℃).
  
      Resample the daily minimum temperature series by computing the maximum number
      of days below the freezing point over each period.
  
      Parameters
      ----------
      tasmin : xarray.DataArray
        Minimum daily temperature values [℃] or [K]
      freq : str, optional
        Resampling frequency
  
      Returns
      -------
      xarray.DataArray
        The maximum number of consecutive days below the freezing point.
  
      Notes
      -----
      Let :math:`\mathbf{x}=x_0, x_1, \ldots, x_n` be a daily minimum temperature series and
      :math:`\mathbf{s}` be the sorted vector of indices :math:`i` where :math:`[p_i < 0\celsius] \neq [p_{i+1} <
      0\celsius]`, that is, the days when the temperature crosses the freezing point.
      Then the maximum number of consecutive frost days is given by
  
      .. math::
  
         \max(\mathbf{d}) \quad \mathrm{where} \quad d_j = (s_j - s_{j-1}) [x_{s_j} > 0\celsius]
  
      where :math:`[P]` is 1 if :math:`P` is true, and 0 if false. Note that this formula does not handle sequences at
      the start and end of the series, but the numerical algorithm does.