code: def rain_on_frozen_ground_days(pr, tas, thresh='1 mm/d', freq='YS'):
      
      t = utils.convert_units_to(thresh, pr)
      frz = utils.convert_units_to('0 C', tas)
  
      def func(x, axis):
          """Check that temperature conditions are below 0 for seven days and above after."""
          frozen = x == np.array([0, 0, 0, 0, 0, 0, 0, 1], bool)
          return frozen.all(axis=axis)
  
      tcond = (tas > frz).rolling(time=8).reduce(func)
      pcond = (pr > t)
  
      return (tcond * pcond * 1).resample(time=freq).sum(dim='time')
docs: Number of rain on frozen ground events
  
      Number of days with rain above a threshold after a series of seven days below freezing temperature.
      Precipitation is assumed to be rain when the temperature is above 0℃.
  
      Parameters
      ----------
      pr : xarray.DataArray
        Mean daily precipitation flux [Kg m-2 s-1] or [mm]
      tas : xarray.DataArray
        Mean daily temperature [℃] or [K]
      thresh : str
        Precipitation threshold to consider a day as a rain event. Default : '1 mm/d'
      freq : str, optional
        Resampling frequency
  
      Returns
      -------
      xarray.DataArray
        The number of rain on frozen ground events per period [days]
  
      Notes
      -----
      Let :math:`PR_i` be the mean daily precipitation and :math:`TG_i` be the mean daily temperature of day :math:`i`.
      Then for a period :math:`j`, rain on frozen grounds days are counted where:
  
      .. math::
  
          PR_{i} > Threshold [mm]
  
      and where
  
      .. math::
  
          TG_{i} ≤ 0℃
  
      is true for continuous periods where :math:`i ≥ 7`