function [T_rise,T_set,T_trans]=read_rise_set_usno_fun(file);
% Считывание данных о восходах/закатах, полученных с помощью программы
% ICE.exe (интерактивный альманах USNO)
%
%    [T_rise,T_set,T_trans]=read_rise_set_usno_fun(file);
%
%    file - имя считываемого файла
%  T_rise - сериальная дата восхода (в UT)
%   T_set - сериальная дата заката (в UT)
% T_trans - сериальная дата кульминации (прохождения через меридиан на
%           юге (в UT)

if ~exist(file,'file'), 
    disp('!!! File do not found !!!')
    T_rise=NaN; T_set=NaN; T_trans=NaN;
    return 
end

fid=fopen(file,'rt');
% ---------- считываем "шапку"
str=fgetl(fid); str=fgetl(fid); % заголовок
str=fgetl(fid); % Longitude
    tmp=str2num(str(71:length(str)));
    Lon=tmp(1)+tmp(2)/60;
    if str(70)=='W'     % западная долгота
        Lon=-Lon;
    end
str=fgetl(fid); % Latitude
    tmp=str2num(str(71:length(str)));
    Lat=tmp(1)+tmp(2)/60;
    if str(70)=='S'     % южная широта
        Lat=-Lat;
    end
str=fgetl(fid); % LT = UT + TimeZone
    if length(str)<74   % время - в UT (нет разности LT-UT)
        TimeZone=0;
    else
        TimeZone=str2num(str(75:76));
    end
str=fgetl(fid); str=fgetl(fid); str=fgetl(fid); % заголовки
% ---------------- считываем данные
T=[]; th_set=[]; th_rise=[]; th_trans=[];
while 1,
    str=fgetl(fid);
    if str==-1 | str(1)=='%' | isempty(str),  % конец обработки
        break
    end
    if length(str)<60,  % нет данных по закатам и восходам
        continue
    end
    T=[T;datenum([str(11:12) '-' str(7:9) '-' str(2:5)])];  % сериальная дата
    tmp=str2num(str(44:49));    % часы и минуты восхода
    th=tmp(1)+tmp(2)/60;
        if str(43)=='p', th=th-24; end
    th_rise=[th_rise; th];
    tmp=str2num(str(57:61));    % часы и минуты кульминации (прохождение через меридиан)
    th=tmp(1)+tmp(2)/60;
        if str(56)=='p', th=th-24; end
    th_trans=[th_trans; th];
    tmp=str2num(str(70:74));    % часы и минуты заката
    th=tmp(1)+tmp(2)/60;
        if str(69)=='p', th=th-24; end
    th_set=[th_set; th];
end
fclose(fid);
T_rise=T+th_rise/24-TimeZone/24;
T_trans=T+th_trans/24-TimeZone/24;
T_set=T+th_set/24-TimeZone/24;
