function X=remove_errors(remove_file,Tser0,t,X,flagC);
% Заполнение выделенных временных интервалов символами NaN
%      X=remove_errors(remove_file,Tser0,t,X[,flagC]);
%
% remove_file - имя файла, в котором содержится информация об удаляемых
%               интервалах: YYYY MM DD UT1 UT2 NNN
% flagC       - номер элемента (компоненты) в коде для удаления (1,2,3)
% Tser0       - текущая сериальная дата
% t           - время UT в часах
% X           - массив измерений, который чистится

% С.Ю.Хомутов
% 29.06.2008 - вместо mjd используются стандартные сериальные даты
% 01.02.2012 - добавлен параметр flagC (=N), определяющий,
%               какую компоненту (1,2,3) нужно удалять для строки
% 05.05.2013 - Вывод сообющения о заполнении NaN-ми

if nargin<5, % flagC не задан
    flagC=1;
end

tmp=load(remove_file); [m,n]=size(tmp);
% TR=datenum(tmp(:,1),tmp(:,2),tmp(:,3)); 
% th_R1=tmp(:,4); th_R2=tmp(:,5);
% считываем информацию о раздельной выбраковке компонент
if n<6, % в файле нет поля с кодами удаляемых компонент, заменяем на '111'
    code=num2str(ones(m,1)*111,'%03d');
else    % коды удляемых компонент - в файле
    code=num2str(tmp(:,6),'%03d');
end
% делаем логические вектора для компонент 1,2,3
code_L=[logical(str2num(code(:,1))) ...
        logical(str2num(code(:,2))) ...
        logical(str2num(code(:,3)))];

% выбираем строки с удалением требуемой компоненты
TR=datenum(tmp(code_L(:,flagC),1),...
           tmp(code_L(:,flagC),2),...
           tmp(code_L(:,flagC),3)); 
th_R1=tmp(code_L(:,flagC),4); th_R2=tmp(code_L(:,flagC),5);

kR=find(TR==Tser0);
if isempty(kR), return, end
disp(sprintf('!!! Заполняется NaN-ами %2d фрагментов данных, канал %d',length(kR),flagC))
for k=1:length(kR),
    kk=between_my(t,th_R1(kR(k)),th_R2(kR(k)),'11');
    X(kk)=NaN;
end
