DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦79d6962ca⟧ TextFile

    Length: 6144 (0x1800)
    Types: TextFile
    Names: »tidetx«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦80900d603⟧ »giprocfile« 
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
    └─⟦b2ec5d50f⟧ 
        └─⟦80900d603⟧ »giprocfile« 
            └─⟦this⟧ 

TextFile



;       tide                  * page 1   26 10 76, 13.25;  

; t i d e
; *******
 
tide = set 1
tide = algol message.no
 
external real procedure tide(time, latitude, longitude, height);  
________________________________________________________________
 
value time, latitude, longitude, height;  
real  time, latitude, longitude, height;  
 
begin

comment

The procedure compute the tidal acceleration due to 
the moon and the sum.

Parameters.

tide     (return value). The tidal acceleration corresponding
_                        to a rigid earth. S.I. unit, i.e.
_                        g.u. = 1/10 mgal = '-6 m / s**2.

time     (call   value). Time in days from epoch 1900, 
_                        i.e. Greenwich mean noon on December
_                        31, 1899.

latitude (   -     -  ). Terrestrial latitude of point of computa-
_                        tion, radian.

longitude(   -     -  ). Terrestrial longitude of point of
_                        computation, positiv east, radian.

height   (   -     -  ). Height above sea level (or above ellip-
_                        soid) of point of computation, meter.

*

Reference:

I.M.Longman: Tidal accelerations due to the moon and the sun.
Journal of Geophysical Research, Volume 64, No 12, December 1959.

Explanatory Supplement to
The Astronomical Ephemeris and
The American Ephemeris and Nautical Almanac.
Her Majesty's Stationery Office, 1961

*

Geodetic Institute, Program index no 76045.
Willy Weng.

;  



\f



comment tide                  * page 2   26 10 76, 13.25
0 1 2 3 4 5 6 7 8 9 ;  

boolean test;  
real  omega, N, sin_I, cos_I, 
alfa, l, sigma, cos_lambda, sin_lambda, cos_phi, 
T, T2, T3, r, e, e1, p, h, c, c1, a_prim, a1_prim, 
res_d, res_D, i, I, m, M, S, my, ksi, ksi1, L,  
p1, ny, t, l1, cos_theta, g0, gm, gs, s;  

test:= false;  
e      := 0.054 899 720;  
c      := 3.844 02'10;  
c1     := 1.495'13;  
a_prim := 1/(c*(1-e*e)) <* 31 *>;  
i      := 0.089 797 19  <* 22 *>;  
omega  := 0.409 314 616 2;  
S      := 1.993'33;  
M      := 7.3537'25;  
my     := 6.670'-8;  
m      := 0.074 804;  

comment computation point;  
cos_lambda  := cos(latitude);  
sin_lambda  := sin(latitude);  
r      := 6.378270'8/sqrt(1+0.006738*sin_lambda**2)
_       + height * 100  <* 33, 34 *>;  
L      := longitude;  

comment Julian centuries and series in T, 
Longman (10), (11), (12), (19), (26) and (27).  

Sun:

Longman     Exp. Sup (p.98)
h  (12)     L
p1 (26)     GAMMA
e1 (27)     e
;  

T      := time/36 525;  

T2     := T*T;  
T3     := T2*T;  
s      := 4.720023438 + 8399.7093*T + 4.40695'-5*T2 + 3.29 '-8*T3;  
p      := 5.835124721 + 71.018009*T - 1.80546'-4*T2 - 2.181'-7*T3;  
h      := 4.881627934 + 628.33195*T + 5.2796 '-6*T2;  
N      := 4.523588570 - 33.757153*T + 3.67488'-5*T2 + 3.87 '-8*T3;  
p1     := 4.908229467 + 3.0005264'-2*T + 7.9024'-6*T2 + 5.81'-8*T3;  
e1     := 0.01675104  - 4.18 '-5 *T - 1.26 '-7 * T2;  

comment resiproc distances;  
a1_prim:= 1/(c1*(1-e1*e1))             <* 32 *>;  
res_d  := 1/c + a_prim*e*cos(s-p)
_       + a_prim*e*e*cos(2*(s-p))
_       + 15/8*a_prim*m*e*cos(s-2*h+p)
_       + a_prim*m*m*cos(2*(s-h))      <* 29 *>;  
res_D  := 1/c1 + a1_prim*e1*cos(h-p1)  <* 30 *>;  

comment longitude of moons ascending node;  
cos_I  := cos(omega)*cos(i)
_       - sin(omega)*sin(i)*cos(N)     <* 20 *>;  
sin_I  := sqrt(1-cos_I**2);  
I      := arctan(sin_I/cos_I);  
ny     := arcsin(sin(i)*sin(N)/sin_I)  <* 21 *>;  



\f



comment tide                  * page 3   26 10 76, 13.25
0 1 2 3 4 5 6 7 8 9 ;  

comment longitude and rigth ascension;  
t      := 2 * pi * (time - entier time) + L    <* 24 *>;  
ksi1   := t + h                        <* 28 *>;  
ksi    := ksi1 - ny                    <* 23 *>;  
l1     := h + 2*e1*sin(h-p1)           <* 25 *>;  
alfa   := 2 * arctan((sin(omega)*sin(N)/sin_I)  /
_                     (1 + cos(N)*cos(ny)
_                        + sin(N)*sin(ny)*cos(omega)))<*15, 16, 18 *>;  
sigma  := s - N + alfa                 <* 13, 14 *>;  
l      := sigma + 2*e*sin(s-p)
_       + 5/4*e*e*sin(2*(s-p))
_       + 15/4*m*e*sin(s - 2*h + p)
_       + 11/8*m*m*sin(2*(s -h))        <* 9 *>;  

comment zenith angles;  
cos_theta := sin_lambda*sin_I*sin(l)
_          + cos_lambda*(cos(I/2)**2*cos(l-ksi) +
_                        sin(I/2)**2*cos(l+ksi))       <* 7 *>;  
cos_phi   := sin_lambda*sin(omega)*sin(l1)
_          + cos_lambda*(cos(omega/2)**2*cos(l1-ksi1) +
_                        sin(omega/2)**2*cos(l1+ksi1)) <* 8 *>;  

comment gravities;  
g_s    := my*S*r*res_D**3*(3*cos_phi**2 - 1)           <* 3 *>;  
g_m    := my*M*r*res_d**3*(3*cos_theta**2 - 1)
_       + 3/2*my*M*r**2*res_d**4*
_         (5*cos_theta**3 - 3*cos_theta)               <* 1 *>;  
g_0    := g_m + g_s                                    <* 5 *>;  

comment transformation from the cgs unit gal to the S.I. unit g.u.;  
tide   := g_0 * '4;  


\f



comment tide                  * page 4   26 10 76, 13.25
0 1 2 3 4 5 6 7 8 9 ;  

if test then 
begin
  i:= (time - entier time) * 24;  
  prvers:= 26 10 76  13 25;  
  write(out, nl, 1, 
  <:<10>Test af tide-procedure.:>, 
  <: Version :>);  
  write_cmt(out, prvers, long_zero);  
  write(out, 
  <:<10>tid  ::>, << ddd ddd>, entier time, 
  << zd>, entier i, (i-entier i)*60, 
  << -d.ddd ddd'-d>, 
  <:<10>måne ::>, l, I, gm, 
  <:<10>sol  ::>, l1, omega, gs);  
end test;  

end of procedure body;  
end ;  external

if warning.yes
(o c
mode 0.yes ; set error flag
message tide not ok
end)
end
finis
▶EOF◀