function Header=iaga2002_write_fun(T,C1,C2,C3,C4,file_header,path_out);
% запись магнитных данных в файл формата IAGA2002
%
%   Header=iaga2002_write_fun(T,C1,C2,C3,C4,file_header[,path_out]);
%
% T       - сериальная дата
% C1...C4 - записываемые компоненты (должны соответствовать указанному
%           в поле "Reported" в файле заголовка
% file_header - файл, в котором записана информация о заголовке
% path_out    - каталог, куда д.б. записан файл (по умолчанию - текущий)

% 15.09.2013 - С.Ю.Хомутов, Паратунка
% 11.07.2019 - код обсерватории - прописными буквами

if length(C1)<1440 | length(C4)<1440,
    error('!!! Неполные минутные данные за сутки. Д.б. 1440 значений !!!')
end

T0=fix(T(1));   % сериальная дата (сутки) первого измерения
DOY=T0-datenum(str2num(datestr(T0,10)),1,1)+1;  % порядковый день в году

if ~exist('path_out','var'), % не указан путь для записи
    path_out=[];
end

% Считываем данные для заголовка
Header=[];
if ~exist(file_header,'file'),
    error('!!! No file of header !!!')
else    % считываем заголовок
%     fid=fopen(file_header); str=char(fread(fid)); fclose(fid);
%     Header=textscan(str,'%70c');
    fid=fopen(file_header); 
    while 1,
        str=fgetl(fid);
        if str==-1, break, end
        Header=strvcat(Header,str);
    end
    fclose(fid);
end
SizeHeader=size(Header);    % размер заголовка

% имя файла для вывода минутных данных (в формате IAGA2002)
file_min=[path_out lower(Header(4,25:27)) strrep(datestr(T0,26),'/','') Header(12,25:25) 'min.min'];

% заголовки столбцов
str='DATE       TIME         DOY';
str=[str '     ' Header(4,25:27) Header(8,25:25)];
str=[str '      ' Header(4,25:27) Header(8,26:26)];
str=[str '      ' Header(4,25:27) Header(8,27:27)];
str=[str '      ' Header(4,25:27) Header(8,28:28)];
Columns=[str '   |'];

% заменяем NaN на 99999
C1(isnan(C1))=99999; C2(isnan(C2))=99999; C3(isnan(C3))=99999;
C4(isnan(C4))=99999;

fid=fopen(file_min,'wt');
% вывод заголовков
for k=1:SizeHeader(1), fprintf(fid,'%s\n',Header(k,:)); end
fprintf(fid,'%s\n',Columns);
for km=1:length(T),
    fprintf(fid,'%s.000 %03d    %9.2f %9.2f %9.2f %9.2f\n',...
                 datestr(T(km),31),DOY,C1(km),C2(km),C3(km),C4(km));
end
fclose(fid);
