def get_subset_riverid_index_list(self, river_id_list):
        netcdf_river_indices_list = []
        valid_river_ids = []
        missing_river_ids = []
        for river_id in river_id_list:
            try:
                netcdf_river_indices_list \
                    .append(self.get_river_index(river_id))
                valid_river_ids.append(river_id)
            except IndexError:
                log("ReachID {0} not found in netCDF dataset."
                    " Skipping ...".format(river_id),
                    "WARNING")
                missing_river_ids.append(river_id)
        np_valid_river_indices_list = np.array(netcdf_river_indices_list)
        np_valid_river_ids = np.array(valid_river_ids)
        sorted_indexes = np.argsort(np_valid_river_indices_list)
        return(np_valid_river_indices_list[sorted_indexes],
               np_valid_river_ids[sorted_indexes],
               np.array(missing_river_ids))