function [newHandles] = select_modis_domain_refine(handles)

% Get corresponding MODIS elements
tmp_ind = searchModisElementsRegion(handles.colloc.data, handles.airs.index);
if isempty(tmp_ind)
  errordlg('No corresponding MODIS Elements', 'Try again');
  return
end

% Get selected domain in 2-D
tmp = zeros(handles.modis.pixels_across, handles.modis.scanlines);
for n = 1:length(tmp_ind)
  val = find_domain(tmp_ind(n).index, handles.modis.pixels_across, handles.modis.scanlines);
  handles.modis.refine(n).sub_pixels_across = val.row;
  handles.modis.refine(n).sub_scanlines = val.col;
  handles.modis.refine(n).sub_pixels_across_size = val.row_size;
  handles.modis.refine(n).sub_scanlines_size = val.col_size;
  handles.modis.refine(n).index = tmp_ind(n).index;
  clear val

  % GET subsection latitude
  tmp(:) = NaN;
  tmp(handles.modis.refine(n).index) = handles.modis.lat(handles.modis.refine(n).index);
  handles.modis.refine(n).sub_lat = zeros(handles.modis.refine(n).sub_pixels_across_size, ...
                              handles.modis.refine(n).sub_scanlines_size);
  handles.modis.refine(n).sub_lat(:) = tmp( ...
                handles.modis.refine(n).sub_pixels_across(1): ...
                handles.modis.refine(n).sub_pixels_across(2), ...
                handles.modis.refine(n).sub_scanlines(1): ...
                handles.modis.refine(n).sub_scanlines(2));

  % GET subsection longitude
  tmp(:) = NaN;
  tmp(handles.modis.refine(n).index) = handles.modis.lon(handles.modis.refine(n).index);
  handles.modis.refine(n).sub_lon = zeros(handles.modis.refine(n).sub_pixels_across_size, ...
                handles.modis.refine(n).sub_scanlines_size);
  handles.modis.refine(n).sub_lon(:) =  tmp( ...
                handles.modis.refine(n).sub_pixels_across(1): ...
                handles.modis.refine(n).sub_pixels_across(2), ...
                handles.modis.refine(n).sub_scanlines(1): ...
                handles.modis.refine(n).sub_scanlines(2));
end

newHandles = handles;
