docs: def _copy_streamflow_values(self):
          """
          Copies streamflow values from raw output to CF file
          """
          log('Creating streamflow variable', 'INFO')
          q_var = self.cf_nc.createVariable(
              self.output_flow_var_name, 'f4', (self.output_id_dim_name, 'time'))
          q_var.long_name = 'Discharge'
          q_var.units = 'm^3/s'
          q_var.coordinates = 'time lat lon z'
          q_var.grid_mapping = 'crs'
          q_var.source = ('Generated by the Routing Application for Parallel '
                          'computatIon of Discharge (RAPID) river routing '
                          'model.')
          q_var.references = 'http://rapid-hub.org/'
          q_var.comment = ('lat, lon, and z values taken at midpoint of river '
                           'reach feature')
  
          log('Copying streamflow values', 'INFO')
          master_begin_time_step_index = 1
          # to reduce RAM, copy by chunks
          max_2d_dimension = 1000000000  # ~8GB Max
          for raw_nc in self.raw_nc_list:
              max_time_step_size = min(raw_nc.size_time,
                                       max(1, int(float(max_2d_dimension) /
                                                  float(raw_nc.size_river_id))))
              raw_nc_begin_time_step_index = 0
              for raw_nc_time_index in \
                      xrange(0, raw_nc.size_time, max_time_step_size):
                  time_interval_size = \
                      max(1, min(raw_nc.size_time - raw_nc_time_index,
                                 max_time_step_size))
  
                  raw_nc_end_time_step_index = \
                      raw_nc_begin_time_step_index + time_interval_size
                  master_end_time_step_index = \
                      master_begin_time_step_index + time_interval_size
  
                  q_var[:,
                        master_begin_time_step_index:master_end_time_step_index]\
                      = raw_nc.get_qout(
                          time_index_start=raw_nc_begin_time_step_index,
                          time_index_end=raw_nc_end_time_step_index)
  
                  master_begin_time_step_index = master_end_time_step_index
                  raw_nc_begin_time_step_index = raw_nc_end_time_step_index
  
          log('Adding initial streamflow values', 'INFO')
          # add initial flow to RAPID output file
          if self.qinit_file and self.rapid_connect_file:
              lookup_table = csv_to_list(self.rapid_connect_file)
              lookup_comids = np.array([int(float(row[0])) for row
                                        in lookup_table])
  
              init_flow_table = csv_to_list(self.qinit_file)
  
              for index, comid in enumerate(
                      self.cf_nc.variables[self.output_id_dim_name][:]):
                  try:
                      lookup_index = np.where(lookup_comids == comid)[0][0]
                  except IndexError:
                      log('COMID %s misssing in rapid_connect file' % comid,
                          'ERROR')
                  q_var[index, 0] = float(init_flow_table[lookup_index][0])
          else:
              for index, comid in enumerate(
                      self.cf_nc.variables[self.output_id_dim_name][:]):
                  q_var[index, 0] = 0