docs: def windyields(self, ini, end, delta, **keyw):
          """
          This function returns the wind yields and ejected masses.
  
          X_i, E_i = data.windyields(ini, end, delta)
  
          Parameters
          ----------
          ini : integer
              The starting cycle.
          end : integer
              The finishing cycle.
          delta : integer
              The cycle interval.
          keyw : dict
              A dict of key word arguments.
  
          Returns
          -------
          list
              The function returns a list of the wind yields(X_i) and
              a list of the ejected masses(E_i) in the mass units that
              were used (usually solar masses).
  
          Notes
          -----
          The following keywords cand also be used:
  
          +------------------+---------------+
          | Keyword Argument | Default Value |
          +==================+===============+
          | abund            | "iso_massf"   |
          +------------------+---------------+
          | tmass            | "mass"        |
          +------------------+---------------+
          | cycle            | "cycle"       |
          +------------------+---------------+
  
          The keyword arguments are used when the variables within the
          input file differ in name from their default values typically
          found in an MPPNP output file.  If the data table differs in
          name, use these keywords.  For example, if the table for the
          abundances is called "abundances" instead of "iso_massf", then
          use abund = "abundances" as a keyword argument.
  
          """
  
          if ("tmass" in keyw) == False:
              keyw["tmass"] = "mass"
          if ("abund" in keyw) == False:
              keyw["abund"] = "iso_massf"
          if ("cycle" in keyw) == False:
              keyw["cycle"] = "cycle"
  
          print("Windyields() initialised.  Reading files...")
  
          ypsinit = []
          niso = 0
          X_i = []
          E_i = []
          totalmass = []
          ypssurf  = []
          cycles = []
          first = True
  
          # The following statements copy global functions into local memory,
          # which is called faster, speeding up the code slightly
          wc = self._windcalc
          cycleret = self.se.cycles
          retrieve = self.se.get
          capp = cycles.extend
          tapp = totalmass.extend
          yapp = ypssurf.extend
  
          # Retrieve the data from the files
          for i in range(ini,end+1,delta):
              step = int(i)
              capp([int(cycleret[i-ini])])
              tapp([retrieve(step,keyw["tmass"])])
              yapp([retrieve(step,keyw["abund"])])
  
          print("Reading complete.  Calculating yields and ejected masses...")
  
          nsteps = len(cycles)-1
          niso = len(ypssurf[0])
          X_i = np.zeros([niso], float)
          E_i = np.zeros([niso], float)
          # Call the windyields calculator
          X_i, E_i = wc(first, totalmass, nsteps, niso, ypssurf, \
          ypsinit, X_i, E_i, cycles)
          return X_i, E_i