function [C_m,C_s,C_n]=one_hour_mean_adopt(T0,T,C,adopt)
% Вычисление среднего арифметического за 1 час по 1-минутным данным
%
% [C_m,C_s,C_n]=one_hour_mean_adopt(T0,Tser,C);
%
%   T0 - сериальная дата моментов, длЯ которых будет считатьсЯ среднее
%        (T0(k)-0.5/24 ... T0(k)+0.5/24)
%    T - сериальная дата моментов, длЯ которых имеютсЯ измерениЯ (1-минутные)
%    C - измеренные значениЯ
%adopt - долЯ (в %) измеренных значений, когда среднее значение
%        вычислЯетсЯ
%
%   c_m - среднее за час (==NaN, если количество измерений <60)
%   c_s - стандартное отклонение
%   c_n - количество измерений длЯ данного часа (<60 длЯ NaN)

% 16.02.2005 - замена Inf-условий на NaN
%            - условие вычислениЯ среднего в зависимости от кол-ва
%              реально измеренных значений
% 17.08.2018 - модиф. юлиансакая дата MJD заменена на сериальную

n=length(T0); % кол-во часовых значений
k=~(isnan(C)|isinf(C)); 
T=T(k); C=C(k);   % исключаем пропуски в данных (=NaN or Inf)

C_m=zeros(n,1); C_s=zeros(n,1); C_n=zeros(n,1);
for k=1:n,
    if mod(k,100)==0, 
        fprintf('%7d',k), if mod(k,500)==0, fprintf('\n'), end, 
    end
    kk=between_my(T,T0(k)-(0.5+30/3600)/24,T0(k)+(0.5-30/3600)/24,'11');
    C_n(k)=sum(kk);     % кол-во измерений, принЯтых в расчет
    if sum(kk)/60*100>=adopt,     % берем в обработку, если > заданного %
        C_m(k)=mean(C(kk)); % среднее за час
        C_s(k)=std(C(kk)); % STD
    else
        C_m(k)=NaN; % среднее за час
        C_s(k)=NaN; % STD
    end        
end
