|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3072 (0xc00)
Types: TextFile
Names: »gmb1proctx«
└─⟦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⟧
; gmb1_proc_tx * page 1 27 09 77, 11.18;
; gmb1_proc
if listing.yes
char 10 12 10
gmb1_proc = set 1 disc
gmb1_proc = algol
external long procedure gmb1_proc
_________________________________
_ (c, e2, lat1, s, az1, lat2, dlng);
value c, e2, lat1, s, az1;
long c, lat1, s, az1, lat2, dlng;
real e2;
comment
the procedure performs the solution of the first
main problem using the gaussian mid-latitude formulas
gmb1_proc (return) long
the azimuth at station 2 towards station 1
as a geotype variable
c (call) long
radius equal to a*a/b in units of '-6 m,
a semi major axis and b semi minor axis
e2 (call) real
square of second eccentricity of ellipsoid
lat1 (call) long
latitude of station 1 as a geotype variable
s (call) long
the distance between the stations in units of '-6
az1 (call) long
the azimuth at station 1 towards station 2
as a geotype variable
lat2 (return) long
latitude of station 2 as a geotype variable
dlng (return) long
the difference of longitude station 2 minus
station 1 as a geotype variable;
begin
real S, C, ar, caz, saz, caz2, saz2, bd,
_ sinb, cosb, n2, V2, N, t, t2, dS, wr;
long br1, lg1, am1, am, bm, br, lg, az,
_ dl, db, da;
integer n;
br1:=lg1:=am1:=0;
S:=s*'-6;
C:=c*'-6;
\f
comment gmb1_proc_tx * page 2 27 09 77, 11.18
0 1 2 3 4 5 6 7 8 9 ;
for n:=1, n+1 while db > 5 and dl > 5 and da > 5 do
begin
am:=az1+am1//2;
ar:=am*rg;
caz:=cos(ar);
saz:=sin(ar);
caz2:=caz*caz;
saz2:=saz*saz;
bm:=lat1+br1//2;
bd:=bm*rg;
sinb:=sin(bd);
cosb:=cos(bd);
n2:=e2*cosb**2;
V2:=1+n2;
N:=C/sqrt(V2);
t:=sinb/cosb;
t2:=t*t;
wr:=S/N;
dS:=wr*wr/24;
br:=V2*wr*caz*(1+dS*(saz2*(3*t2+2*V2)
_ +3*caz2*n2*(t2-V2-4*n2*t2)))/rg;
lg:=wr*saz/cosb*(1+dS*(saz2*t2
_ -caz2*(V2-9*n2*t2)))/rg;
az:=wr*saz*(t+dS*t2*(caz2*(2+7*n2
_ +9*n2*t2+5*n2*n2)+saz2*(2*V2+t2)))/rg;
db:=abs(br1-br);
dl:=abs(lg1-lg);
da:=abs(am1-az);
br1:=br;
lg1:=lg;
am1:=az;
end;
lat2:=lat1+br1;
dlng:=lg1;
gmb1_proc:=az1+am1+extend 1 shift 47;
end;
end
if warning.yes
(mode 0.yes
message gmb1_proc not ok
look up gmb1_proc)
▶EOF◀