docs: def generate_qinit_from_past_qout(self, qinit_file, time_index=-1,
                                        out_datetime=None):
          """
          Generate qinit from a RAPID qout file
  
          Parameters
          ----------
          qinit_file: str
              Path to output qinit_file.
          time_index: int, optional
              Index of simulation to generate initial flow file.
              Default is the last index.
          out_datetime: :obj:`datetime.datetime`, optional
              Datetime object containing time of initialization.
  
  
          Example:
  
          .. code:: python
  
              from RAPIDpy import RAPID
  
              rapid_manager = RAPID(
                  Qout_file='/output_mississippi-nfie/Qout_k2v1_2005to2009.nc',
                  rapid_connect_file='/input_mississippi_nfie/rapid_connect.csv'
              )
  
              rapid_manager.generate_qinit_from_past_qout(
                  qinit_file='/input_mississippi_nfie/Qinit_2008_flood.csv',
                  time_index=10162
              )
  
          """
          if not self.Qout_file or not os.path.exists(self.Qout_file):
              log('Missing Qout_file. '
                  'Please set before running this function ...',
                  "ERROR")
  
          if not self.rapid_connect_file or not self.rapid_connect_file:
              log('Missing rapid_connect file. '
                  'Please set before running this function ...',
                  "ERROR")
  
          log("Generating qinit file from qout file ...",
              "INFO")
          # get information from dataset
          with xarray.open_dataset(self.Qout_file) as qds:
              rivid_array = qds.rivid.values
              if out_datetime is None:
                  streamflow_values = qds.isel(time=time_index).Qout.values
              else:
                  streamflow_values = qds.sel(time=str(out_datetime)).Qout.values
  
          log("Reordering data ...",
              "INFO")
  
          stream_id_array = np.loadtxt(self.rapid_connect_file,
                                       ndmin=1, delimiter=",",
                                       usecols=(0,), dtype=int)
          init_flows_array = np.zeros(stream_id_array.size)
          for riv_bas_index, riv_bas_id in enumerate(rivid_array):
              try:
                  data_index = np.where(stream_id_array == riv_bas_id)[0][0]
                  init_flows_array[data_index] = streamflow_values[riv_bas_index]
              except IndexError:
                  log('riv bas id {0} not found in connectivity list.'
                      .format(riv_bas_id),
                      "WARNING")
  
          log("Writing to file ...",
              "INFO")
          with open_csv(qinit_file, 'w') as qinit_out:
              for init_flow in init_flows_array:
                  qinit_out.write('{0}\n'.format(init_flow))
  
          self.Qinit_file = qinit_file
          self.BS_opt_Qinit = True
          log("Initialization Complete!",
              "INFO")