function [dd,mm,ss]=deg_mm_ss(deg,flag);
% Перевод угла, заданного в виде DEG.mmss в [DD,MM,SS]-вектора
%
% Вызов - [dd[,mm,ss]]=deg_mm_ss(deg,flag);
%
%  deg - углы в виде DEG.mmss
% flag - если = 1, то вывод в десЯтичном виде (по умолчанию = 0)
%
% dd,mm,ss - три вектора (градусы, минуты, секунды) или матрица [dd mm ss]
%

% 14.12.2003 - Khomutov S.

deg=deg(:);
ks=sign(deg)<0;  % signs of angle is "-"
deg=abs(deg);
dd=fix(deg); dd(ks)=-dd(ks); % degrees
tmp=rem(deg,1);
str=num2str(tmp,'%9.7f');
mm=str2num(str(:,3:4)); mm(ks)=-mm(ks); % minutes
%mm=round(tmp); mm(ks)=-mm(ks); % minutes
if any(abs(mm)>=60), disp('!!! Minutes > 60 !!!'), end
ss=str2num(str(:,5:9))/1000; ss(ks)=-ss(ks); % minutes
%ss=rem(tmp,1)*100; ss(ks)=-ss(ks); % secondes
if any(abs(ss)>=60), disp('!!! Secondes > 60 !!!'), end

if nargout<3,
    if nargin==2 & flag==1,
        dd=dd+mm/60+ss/3600;
    else
        dd=[dd mm ss];
    end
end