function denu=tide_oload(tut,odisp)

D2R=pi/180;
args=[1.40519E-4, 2.0,-2.0, 0.0, 0.00;  % M2 
      1.45444E-4, 0.0, 0.0, 0.0, 0.00;  % S2 
      1.37880E-4, 2.0,-3.0, 1.0, 0.00;  % N2 
      1.45842E-4, 2.0, 0.0, 0.0, 0.00;  % K2 
      0.72921E-4, 1.0, 0.0, 0.0, 0.25;  % K1 
      0.67598E-4, 1.0,-2.0, 0.0,-0.25;  % O1 
      0.72523E-4,-1.0, 0.0, 0.0,-0.25;  % P1 
      0.64959E-4, 1.0,-3.0, 1.0,-0.25;  % Q1 
      0.53234E-5, 0.0, 2.0, 0.0, 0.00;  % Mf 
      0.26392E-5, 0.0, 1.0,-1.0, 0.00;  % Mm 
      0.03982E-5, 2.0, 0.0, 0.0, 0.00];  % Ssa 
ep1975=[1975,1,1,0,0,0];
dp=zeros(3,1);

%angular argument
ep=time2epoch(tut);
fday=ep(4)*3600.0+ep(5)*60.0+ep(6);
ep(4)=0;ep(5)=0;ep(6)=0.0;
days=timediff(epoch2time(ep),epoch2time(ep1975))/86400.0+1.0;
t=(27392.500528+1.000000035*days)/36525.0;
t2=t*t; t3=t2*t;
a(1)=fday;
a(2)=(279.69668+36000.768930485*t+3.03E-4*t2)*D2R;% H0 
a(3)=(270.434358+481267.88314137*t-0.001133*t2+1.9E-6*t3)*D2R;% S0 
a(4)=(334.329653+4069.0340329577*t-0.010325*t2-1.2E-5*t3)*D2R;% P0 
a(5)=2.0*pi;

%dispalcements by 11 constituents
for i=1:11
    ang=0;
    for j=1:5
        ang=ang+a(j)*args(i,j);
    end
    for j=1:3
        dp(j)=dp(j)+odisp(i,j)*cos(ang-odisp(i,j+3)*D2R);
    end
end

denu(1)=-dp(2);
denu(2)=-dp(3);
denu(3)=dp(1);

return

