function [j]=julianmd(y,m,d,h)

% JULIANMD: converts Gregorian calendar time to decimal Julian day.

% [j]=JULIANMD(y,m,d,h) converts Gregorian calendar dates to corresponding

% Julian day numbers.  Although the formal definition holds that Julian 

% days start and end at noon, here Julian days start and end at midnight.

% In this convention, Julian day 2440000 began at 0000 UT, May 23, 1968.

% 

%   INPUT:  d -  day (1-31) component of Gregorian date

%           m -  month (1-12) component

%           y -  year (e.g., 1979) component

%           h -  decimal hours (assumed 0 if absent)

%   

%   OUTPUT: j - decimal Julian day number (e.g., 0000 UT Jan 1 is 0.0)

% 

%   Usage:  [j]=julianmd(y,m,d,h)  (inputs scalars or matrices)

%                  or     

%           [j]=julianmd([y m d hr min sec])  (nx6 matrix input)



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 8/28/98: version 1.1 (vectorized by RP)

% 8/5/99: version 2.0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

     

if nargin==3,

      h=0.;

elseif nargin==1,

      h=hms2h(y(:,4),y(:,5),y(:,6));

      d=y(:,3);

      m=y(:,2);

      y=y(:,1);

end

mo=m+9;

yr=y-1;

i=(m>2);

mo(i)=m(i)-3;

yr(i)=y(i); 

c = floor(yr/100);

yr = yr - c*100;

j = floor((146097*c)/4) + floor((1461*yr)/4) + ...

           floor((153*mo +2)/5) +d +1721119;



%     if you want Julian days to start and end at noon, 

%     replace the following line with:

%     j=j+(h-12)/24;

 

j=j+h/24;



