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

⟦507d0f04a⟧ TextFile

    Length: 2304 (0x900)
    Types: TextFile
    Names: »gmb2proctx«

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



;       gmb2_proc_tx          * page 1   27 09 77, 11.18;  

;  gmb2_proc

if listing.yes
char 10 12 10

gmb2_proc = set 1 disc

gmb2_proc = algol

external long procedure gmb2_proc
_________________________________
_        (c, e2, lat, dlat, dlng, s, az2);  
value     c, e2, lat, dlat, dlng;  
long      c,     lat, dlat, dlng, s, az2;  
real         e2;  

comment

the procedure performs the solution of the second
main problem using the gaussian mid-latitude formulas

gmb2_proc   (return)            long
the outgoing azimuth from station 1 towards station 2
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

lat         (call)              long
the m_e_a_n latitude of the stations
as a geotype variable

dlat        (call)              long
the difference of latitude station 2 minus
station 1 as a geotype variable

dlng        (call)              long
the difference of longitude station 2 minus
station 1 as a geotype variable

s           (return)            long
the distance between the stations in units of '-6 m

az2         (return)            long
the azimuth at station 2 towards station 1
as a geotype variable;  

begin

  real     wr, vr, n2, V2, S2, t2, cosb, sinb;  
  long     dB, dL, wl, da;  

  wr:=lat*rg;  
  sinb:=sin(wr);  
  cosb:=cos(wr);  
  n2:=e2*cosb**2;  
  V2:=1+n2;  

\f



comment gmb2_proc_tx          * page 2   27 09 77, 11.18
0 1 2 3 4 5 6 7 8 9 ;  

  dB:=dlat/V2;  
  dL:=dlng*cosb;  
  t2:=(sinb/cosb)**2;  
  vr:=dB*rg;  
  wr:=dL*rg;  
  vr:=vr*vr/24;  
  wr:=wr*wr/24;  

  wl:=dB*((2*V2+3*t2)*wr+(t2-V2-4*n2*t2)*n2*3*vr);  
  dB:=dB-wl;  
  wl:=dL*(t2*wr-(V2-9*n2*t2)*vr);  
  dL:=dL-wl;  
  da:=dlng*sinb/2;  
  wl:=da*(V2*2*wr+V2*(3+5*n2)*vr);  
  da:=da+wl;  
  wl:=arc(dB, dL, s, S2);  
  gmb2_proc:=wl-da;  
  az2:=wl+da+extend 1 shift 47;  
  wr:=s*rg/sqrt(V2);  
  s:=c*wr;  

end;  

end

if warning.yes
(mode 0.yes
message gmb2_proc not ok
lookup gmb2_proc)
▶EOF◀