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

⟦60d58b373⟧ TextFile

    Length: 25344 (0x6300)
    Types: TextFile
    Names: »readggobstx«

Derivation

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

TextFile



;       geom geod input       * page 1   13 12 77, 10.59;  

;  read_gg_obs
;  ***********

if listing.yes
char 10 12 10

read_gg_obs = set 1

read_gg_obs = algol

external long procedure read_gg_obs
___________________________________
_       (in, reg_label, obs_rec, zdobs_rec, action_a, last_ST);  
zone     in;  
array        reg_label, obs_rec, zdobs_rec;  
long array                                  action_a;  
long                                                  last_ST;  

comment input of directions, laplaceaz, and distances.
______________________________________________________

read_gg_obs r(return value long) represented in 4 booleans:
_           obs_kind
_           obs_type
_           false add q <* = no_of_directions in horizont *>
_           false add (if no_of_z_dst = 0 then 0 else 4095)

obs_rec.nrf(0)  contains in any case stnmb
obs_rec.identif contains in any case identification.

;  

\f



comment geom geod input       * page 2   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

_
comment

fixed fields in obs_rec
_______________________

byte nr         type     name         content

2               integer  obsrcl       recordlength
4               integer    -          recordsum for in/outvar
5               boolean  obskind      2=geom, 3=redgeom
_                                     4=heights, 5=pot diff
6               boolean  obstype      for obskind=2 or 3:
_                                     1=dir, 2=lapl, 3=dist, 
_                                     for obskind=4:
_                                     1=zdist, 2=heightdiff
_                                     for obskind=5:
_                                     1=potdiff, 2=heightdiff
7               boolean  q            number of objects
8               boolean  year         year of observ, 
_                                      0=no info
9               boolean  sets
10              boolean  oc-state     0=not known
_                                     1=known but not fixed
11              boolean  tpd_obs      typedec for obs
12              boolean  tpd_oc       typedec for oc/objh
16              long     identif      identification
20              long     tapenr       no. of tape
24              long     oconst       oc/instrh
28              real     md           m.e. of dir or rel. dist
32              real     mc           m.e. of centering

variable part of obs_rec
_________________________
hl := 32

hl+4            long     nr(0)        station number
hl+4(1+t)       long     nr(t)        obj. number(t)
hl+4(1+q)+1+t   boolean  exc_bit(t)   false add if exc 1

round upwards to even byte no.
hl+5(1+q)+4t    long       obs(t)
hl+5(1+q)+4q+4t long       objh(t)    objheight

with ub = hl+5(1+q)+4q     (kind=2 or kind=3)
_      or hl+5(1+q)+8q     (kind=4) we get

ub+1            boolean    exc_dst_tpd
ub+2            boolean    exc_dir_tpd
ub+2+4t         long       exc_dst(t)
ub+2+4r+4t      long       exc_dir(t)

total use of bytes:
_          kind=2 or 3 , r<>0 :   32+5(1+q)+4q+2+8r
_          kind=2 or 3 , r=0  :   32+5(1+q)+4q
_          kind=4             :   32+5(1+q)+8q;  

\f



comment geom geod input       * page 3   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

begin

  comment datamatic variables;  
  ___________________________
  integer               class, saved_class, state, action, 
  _                     obs_rcl, new_oo, new_rr, new_hh, 
  _                     exc_kind_1, exc_kind2, sum, 
  _                     nrtp, dec1, dec2, dec3, 
  _                     dir_count, dst_count, zdst_count, 
  _                     h_diff_count, exc_count, 
  _                     q, r, o, h, t, i;  

  integer array field   int_f;  

  long    array field   hor_obs_f, exc_dst_f, exc_dir_f, 
  _                     zdst_f, objh_f, long_f, nr_f;  

  real    array field   real_f;  

  boolean array field   bool_f, exc_bits_f;  

  boolean       field   oc_state_f, oc_tpd_f;  

  long                  g1, g2, read_gg_obs_1;  

  boolean               tpd1, tpd2, obs_tpd, zd_cm_tpd, status,  
  _                     h_obs_type, z_dst_type, exc_type, 
  _                     n_exc_bits, block_ok, c_term;  

  _
  comment geodetic variables;  
  ___________________________
  boolean       field   exc_dst_tpd_f, exc_dir_tpd_f;  

  long    array         nr, hor_obs, zdst, obj_h, 
  _                     exc_dst, exc_dir(0:40);  

  boolean array         hor_obs_tpd, zdst_tpd, objh_tpd, 
  _                     exc_dst_tpd, exc_dir_tpd, 
  _                     exc_bits(0:40);  

  long                  stn, oconst, LAT,  LNG;  

  real                  sets, mdir, mcdir, mdst, mcdst;  

  long                  tapenr, instrh, identif;  

  integer               obskind, obstype, save_udt, year;  

  boolean               oc_state, oc_tpd, laplace, 
  _                     dir, instrh_tpd;  

  integer procedure max(i1, i2);  
  ______________________________
  value                 i1, i2;  
  integer               i1, i2;  
  max :=  if i1 >= i2 then i1 else i2;  

\f



comment geom geod input       * page 4   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

  long procedure rstn(nrtp, class);  
  _________________________________
  integer             nrtp, class;  
  begin long stn;  
    class := 0;  
    stn := read_stn(in, nrtp);  
    if t_char=97 or t_char=10 then       class := 1  
    else
    if t_char=99 then       class := 2  
    else
    if mtr then class := 3  
    else
    if nrtp<=2 then     class := 5;  
    if stn=-longone and t_char=97 then   class := 7;  
    rstn := stn;  
  end rstn;  

  long procedure rstn_1(nrtp, class, last_stn);  
  _____________________________________________
  value                              last_stn;  
  integer               nrtp, class;  
  long                               last_stn;  
  begin long stn;  
    class := 0;  
    if last_stn > 0 then
    begin
      stn := last_stn;  
      nrtp := if last_stn < (200 00 0000 shift 19) then 1
      _     else if last_stn > 0 then 2
      _     else 5;  
    end
    else
    stn := read_stn(in, nrtp);  
    if t_char=97 or t_char=10 then       class := 1  
    else
    if t_char=99 then       class := 2  
    else
    if mtr then class := 3  
    else
    if nrtp<=2 then     class := 5;  
    if stn=-longone and t_char=97 then   class := 7;  
    rstn_1 := stn;  
  end rstn_1;  

  long procedure read_geo_on_line(tpd, class);  
  ____________________________________________
  boolean                         tpd;  
  integer                              class;  
  begin
    mtr := false;  ;  udt := 115;  
    if m_i_l(in, true) then
    begin
      read_geo_on_line := read_geo(in, tpd);  
      if mtr then class := 3
      else                  class := 4;  
    end
    else                    
    begin
      read_geo_on_line := 0;  class := 6;  
    end;  
  end read_geo_on_line;  

\f



comment geom geod input       * page 5   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

  comment  decision table for obsinput
  ____________________________________

  class               0     1     2     3     4     5     6     7
  _                  nil    a     c    mtr   dir  space -, mil  stp

  nr state after

  0  rstn             0     1     1     0     0     0    13    13

  1  incl.head+rstn  13    12    12     8    13     3    13    13

  2  rstn            13    12    12     8    13     3    13    12

  3  incl.obj  +rol  13    13    13     4     5     5    13    12

  4  incl.dst  +rol  13    13    13    11    13    10     2    13

  5  zdst/dir  +rol  13    13    13    10     6     6     6    13

  6  incl.dir        13    13    13    13     7     7     2    13

  7  zdst      +rol  13    13    13    10    11    11    11    13

  8  excdst    +rol  13    13    13    13     9     9    13    13

  9  incl.exc  +rol  13    13    13    13    13    13     2    13

  10 incl.zdst +rol  13    13    13    13    11    11     2    13

  11 v      keep cl  13    13    13     2     2     2    13    13

  12 check  keep cl  13    13    13    13    13    13    13    13

  13 exit

  nr   action                                        reading of
  __   ____________________________________          ____________

  0    _                     st := read_stn            stn
  1    include head          st := read_stn            obj, exc, stp
  2    _                     st := read_gol            stn, obj, exc
  3    include obj  (st)     g1 := read_gol            dst.dir.zdst
  4    include dst  (g1)     g1 := read_gol            v, skrdst
  5    g1=zdst/dir           g2 := read_gol            objh, v
  6    include dir           g1 := g2, class kept
  7    g1=zdst               g2 := read_gol            objh, vnorm
  8    st=excdst             g1 := read_gol            excdir
  9    include exc (st, g1)  st := read_stn            stn, obj, stp
  10   include zdst(g1, g2)  g1 := read_gol            v
  11   g1=v                  class kept
  12   check horizon         class kept
  13   normalt exit

  ;  

\f



comment geom geod input       * page 6   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

  _
  comment init of variables and fixed field variables;  
  ____________________________________________________
  read_gg_obs_1 := 0;  
  mdir        := reg_label(6);  
  mcdir       := reg_label(7);  
  mdst        := reg_label(8);  
  mcdst       := reg_label(9);  
  tapenr      := long reg_label(4);  
  obskind     := reg_label(2) extract 12;  

  save_udt    := udt;  
  udt         := 115;  <*sexages as standard*>  

  int_f  :=  0;  
  long_f := 12;  
  real_f := 24;  
  nr_f   := 36;
  bool_f :=  4;  

  class := action := 0;  
  for state := action while state<13 do
  begin
    saved_class := class;  
    action :=  action_a(state) shift (6*(class-7)) extract 6;  

\f



comment geom geod input       * page 7   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

    case action + 1 of
    begin

      begin comment action 0 : input of stnnr;  
        stn := rstn_1( nrtp, class, last_ST);  
      end action 0;  

      begin comment action 1 : include head and look for objnr;  
        q := r := h := o := 0;  
        dir_count := zdst_count := dst_count := exc_count :=   
        h_diff_count := 0;  
        nr(0) := stn;  
        exc_bits(0) := false;  

        c_term  :=  t_char=99;  
        year := read_ident(in, tpd1);  
        t := tpd1 extract 12;  
        if year>1000 and t=0 then
        begin
          sets := read_ident(in, tpd1);  t := tpd1 extract 12;  
        end
        else
        begin sets := year;  year := 0;  end;  
        for t := t step -1 until 1 do sets := sets/10.0;  

        identif := read_ident(in, tpd1);  
        if t_char=109 then
        begin comment instrh;  
          instrh     := identif;  
          instrh_tpd := false add (10 shift 6) 
          _             add (tpd1 extract 6);  
          identif := read_ident(in, tpd1);  
        end
        else
        instrh := -10000000;  

        if m_i_l(in, t_char<>98 and t_char<>108 ) then
        begin comment  read oc or laplace lat and long;  
          laplace := t_char=98 or t_char=108;  
          o_const := read_geo(in, oc_tpd);  
          oc_state := false add 1;  
          if laplace then
          begin
            LAT      := o_const;  
            o_const  := 0;  
            LNG      := read_geo(in, oc_tpd);  
            oc_state := false add 10;  
          end;  
        end oc or laplace
        else
        begin
          o_const  := 0;  
          oc_state := 
          oc_tpd   := 
          laplace  := false;  
        end;  

        dir := -, laplace;  
        stn := rstn( nrtp, class);  
      end action 1;  

\f



comment geom geod input       * page 8   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

      begin comment action 2  : look for new objnr;  
        stn := rstn( nrtp, class);  
      end action 2;  

      begin comment action 3 : include objnr and look for obs;  
        q := q+1;  
        exc_bits(q) := false;  
        nr(q) := stn;  
        g1 := read_geo_on_line(tpd1, class);  
      end action 3;  

      begin comment action 4:include dist or h_diff, look for v;  
        if obs_kind = 2 or obs_kind = 3 then
        begin
          dst_count := dst_count+1;  
          hor_obs(q) := g1;  
          hor_obs_tpd(q) := tpd1;  
          exc_bits(q) := exc_bits(q) or ((false add 1) shift 1);  
          g1 := read_geo_on_line(tpd1, class);  
          comment evt content of g1 can be   v  or skrdist;  
        end
        else
        if obs_kind = 4 or obs_kind = 5 then
        begin
          h_diff_count := h_diff_count + 1;  
          z_dst(q) := g1;  
          z_dst_tpd(q) := tpd1;  
          obj_h(q) := read_geo_on_line(tpd1, class);  
          obj_h_tpd(q) := tpd1;  
          exc_bits(q) := exc_bits(q) or (false add 1 shift 2);  
          g1 := read_geo_on_line(tpd1, class);  
        end;  

      end action 4;  

      begin comment action 5 : content of g1 can be a horisontal
        direction or a zenithdistance, look for evt obj-height;  
        g2 := read_geo_on_line(tpd2, class);  
      end action 5;  

      begin comment action 6 : include direction, g1 := g2,   
        class kept;  
        dir_count := dir_count+1;  
        hor_obs(q) := g1;  
        horobs_tpd(q) := tpd1;  
        exc_bits(q) := exc_bits(q) or ((false add 1) shift 1);  
        g1 := g2;  
        tpd1 := tpd2;  
      end action 6;  

      begin comment action 7  : the content of g1 can be zenithdist
        or  v , look for objheight (mtr-type);  
        g2 := read_geo_on_line(tpd2, class);  
      end action 7;  

      begin comment action 8 : the content of stn is of mtr-type
        and might be an exc-dist, look for exc-dir;  
        g1 := read_geo_on_line(tpd1, class)
      end action 8;  

\f



comment geom geod input       * page 9   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

      begin comment action 9  : include the elements of excentricity, 
        look for more in line;  
        exc_bits(q) := exc_bits(q) or (false add 1);  
        exc_dst(q) := stn;  
        exc_dir(q) := g1;  
        exc_dst_tpd(q) := false
        add ((nrtp extract 12)+(2 shift 6));  
        exc_dir_tpd(q) := tpd1;  
        g1 := read_geo_on_line(tpd1, class);  
      end action 9;  

      begin comment action 10 :  include zdist and objectheight, 
        look for further information on the line;  
        zdst_count := zdst_count+1;  
        exc_bits(q) := exc_bits(q) or ((false add 1) shift 2);  
        zdst(q) := g1;  
        zdst_tpd(q) := tpd1;  
        objh(q) := g2;  
        objh_tpd(q) := tpd2;  
        g1 := read_geo_on_line(tpd1, class);  
      end action 10;  

      begin comment action 11 :the contg.. content of g1 might be
        v . this is a dummy block, the class is kept;  
      end action 11;  

\f



comment geom geod input       * page 10   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

      begin comment action 12 : reading of a round   
        has been terminated.
        The information is transferred to the obs.zone
        ;  
        comment save last read nmb for next input;  
        last_ST := stn;  

        block_ok   :=   (dst_count>0 and dir_count=0)
        _         or  (dst_count=0 and dir_count>0)
        _         or  (dst_count=0 and z_dst_count>0)  
        _         or  (h_diff_count > 0 and 
        _              dir_count + dst_count + z_dst_count = 0);  

        if -, block_ok then
        begin 
          write(out, nl, 4, 
          <:horisont ej accepteret:>, nl, 1, 
          false add 42, 22, nl, 2, 
          <:jnsd:  :>, <<ddd ddd dd d>, identif);  
        end;  

        obs_rec.long_f(1) := identif;  
        obs_rec.nr_f(0)   := nr(0);  

        _
        comment output of horizontal obs;  
        _________________________________
        if (dst_count>0 or dir_count>0) and block_ok then
        begin

          if laplace then
          begin
            q                := q + 2;  
            nr(q-1)          :=
            nr(q)            := nr(0);  
            hor_obs(q-1)     := LNG;  
            hor_obs(q)       := LAT;  
            hor_obs_tpd(q-1) := 
            hor_obs_tpd(q)   := hor_obs_tpd(1);  
            exc_bits(q-1)    := 
            exc_bits(q)      := false add (1 shift 1);  
          end;  

\f



comment geom geod input       * page 11   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

          o :=  h :=  r :=  dec1  :=  dec2  :=  dec3  :=  0;  

          for t  :=  0 step 1 until q do
          begin
            status := exc_bits(t);  
            h_obs_type  :=  t>0 and (status shift (-1));  
            exc_type    :=  status;  
            if (t=0 or h_obs_type) and exc_type then r := r+1;  
            if h_obs_type then o := o+1;  
          end count;  

          exc_bits_f := 32+4*(o+1)+1;  
          obsrcl     := 32+5*(1+o);  
          obsrcl     := ((obsrcl+1)//2)*2;  
          hor_obs_f  := obsrcl;  
          obsrcl     := obsrcl+4*o;  

          if r>0 then
          begin comment exc;  
            exc_dst_tpd_f     :=    obsrcl+1;  
            exc_dir_tpd_f     :=    obsrcl+2;  
            exc_dst_f         :=    obsrcl+2;  
            exc_dir_f         :=    obsrcl+2+4*r;  
            obsrcl            :=    obsrcl+2+8*r;  
          end;  

          new_oo := new_rr :=  0;  

          for t :=  0 step 1 until q do
          begin
            status      :=  exc_bits(t);  
            n_exc_bits  :=  false;  
            h_obs_type  :=  t>0 and (status shift (-1));  
            z_dst_type  :=  t>0 and (status shift (-2));  
            exc_type    :=  status;  

            if (t=0 or h_obs_type) and exc_type then
            begin
              new_rr := new_rr+1;  
              n_exc_bits  :=  n_exc_bits or (false add 1);  
              obs_rec.exc_dst_f(new_rr)  :=  exc_dst(t);  
              obs_rec.exc_dir_f(new_rr)  :=  exc_dir(t);  
              dec1  :=  max(dec1, exc_dst_tpd(t) extract (6));  
              dec2  :=  max(dec2, exc_dir_tpd(t) extract (6));  
              if new_rr=1 then
              begin
                exc_kind1 := 
                exc_dst_tpd(t) shift (-6) extract (6);  
                exc_kind2 := 
                exc_dir_tpd(t) shift (-6) extract (6);  
              end;  
            end;  

\f



comment geom geod input       * page 12   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

            if h_obs_type then
            begin
              new_oo := new_oo+1;  
              obs_rec.nr_f(new_oo)       :=     nr(t);  
              obs_rec.hor_obs_f(new_oo)  :=     hor_obs(t);  
              dec3 := max(dec3, hor_obs_tpd(t) extract (6));  
              obstpd:= hor_obs_tpd(t);  
              n_exc_bits := n_exc_bits or (false add 1 shift 1);  
            end;  

            if h_obs_type or t=0 then
            obs_rec.exc_bits_f(new_oo)  :=  n_exc_bits;  

          end;  

          obstpd := (obstpd shift(-6)) shift 6 add dec3;  
          if r>0 then
          begin
            obs_rec.exc_dst_tpd_f   := 
            ((false add exc_kind1) shift 6) add dec1;  
            obs_rec.exc_dir_tpd_f   := 
            ((false add exc_kind2) shift 6) add dec2;  
          end;  

          for t :=  2 step -1 until 1 do
          obs_rec.int_f(t) := case t of
          ( obsrcl, 3);  

          obstype := if dst_count>0 then 3
          _          else if laplace then 2 else 1;  
          for t :=  5 step -1 until 1 do
          obs_rec.bool_f(t)  :=  false add (case t of
          ( obskind, obstype, o, year, round(sets)));  

          obs_rec.bool_f(6)    :=     oc_state;  
          obs_rec.bool_f(7)    :=     obs_tpd;  
          obs_rec.bool_f(8)    :=     oc_tpd;  

          obs_rec.long_f(2) :=  tapenr;  
          obs_rec.long_f(3) :=  oconst;  

          for t := 1 step 1 until 2 do
          obs_rec.real_f(t) :=  case t of (
          reg_label(if dir_count > 0 then 6 else 8), 
          reg_label(if dir_count > 0 then 7 else 9));  

          sum   :=  0;  
          for t := obsrcl//2 step -1 until 1 do
          sum := obs_rec.intf(t)+sum;  
          obs_rec.intf(2) := -sum;  

          read_gg_obs_1 :=
          ((obs_rec.long_f(-1) shift (-12)) shift 12);  

        end output of horizontal obs;  

\f



comment geom geod input       * page 13   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

        _
        comment output of zd or hdiff;  
        _____________________________
        if block_ok and (z_dst_count > 0 or h_diff_count > 0) then
        begin

          o :=  h :=  r :=  dec1  :=  dec2  :=  dec3  :=  0;  

          for t  :=  0 step 1 until q do
          begin
            status := exc_bits(t);  
            h_obs_type  :=  t>0 and (status shift (-1));  
            z_dst_type  :=  t>0 and (status shift (-2));  
            exc_type    :=  status;  

            if (t=0 or h_obs_type) and exc_type then r := r+1;  
            if h_obs_type then o := o+1;  
            if z_dst_type then h := h+1;  
          end count;  

          nr_f           :=    32+4;  
          exc_bits_f     :=    32+4*(h+1)+1;  

          obsrcl         :=    32+5*(1+h);  
          obsrcl         :=    ((obsrcl+1)//2)*2;  

          z_dst_f        :=    obsrcl;  
          obj_h_f        :=    obsrcl+4*h;  
          obsrcl         :=    obsrcl+8*h;  

          zd_obs_rec.nr_f(0)  :=  nr(0);  

          new_hh := 0;  

          for t :=  0 step 1 until q do
          begin
            status      :=  exc_bits(t);  
            n_exc_bits  :=  false;  
            h_obs_type  :=  t>0 and (status shift (-1));  
            z_dst_type  :=  t>0 and (status shift (-2));  
            exc_type    :=  status;  

            if z_dst_type then
            begin
              zd_cm_tpd := (z_dst_tpd(t) shift (-6)) shift 6;  
              new_hh := new_hh+1;  
              zd_obs_rec.nr_f(new_hh)         :=   nr(t);  
              zd_obs_rec.z_dst_f(new_hh)      :=   z_dst(t);  
              dec1 := max(dec1, z_dst_tpd(t) extract (6));  
              zd_obs_rec.obj_h_f(new_hh)      :=   objh(t);  
              dec2 := max(dec2, objh_tpd(t) extract (6));  
              n_exc_bits := n_excbits or (false add 1 shift 2);  
            end;  

            if z_dst_type or t=0 then
            zd_obs_rec.exc_bits_f(new_hh)  :=  n_exc_bits;  

          end;  

\f



comment geom geod input       * page 14   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

          obs_tpd     :=  zd_cm_tpd add dec1;  
          objh_tpd(0) :=  (false add 10) shift 6 add dec2;  
          if h_diff_count > 0 then
          begin
            obs_tpd := false add ((10 shift 6) + (obs_tpd extract 6));  
            objh_tpd(0) := false add ((9 shift 6) 
            _              + (objh_tpd(0) extract 6));  
          end;  

          if obs_kind = 2 or obs_kind = 3 then
          obs_kind := 4;  
          obs_type := if z_dst_count > 0 then 1  
          _                              else 2;  

          for t :=  2 step -1 until 1 do
          zd_obs_rec.int_f(t) := case t of
          ( obsrcl, 3);  

          for t :=  5 step -1 until 1 do
          zd_obs_rec.bool_f(t)  :=  false add (case t of
          ( obskind, obstype, h, year, round(sets)));  

          zd_obs_rec.bool_f(6) :=   instrh_tpd;  ;  
          zd_obs_rec.bool_f(7)    :=     obs_tpd;  
          zd_obs_rec.bool_f(8)    :=    objh_tpd(0);  

          for t :=  3 step -1 until 1 do
          zd_obs_rec.long_f(t) :=  case t of
          (identif, tapenr, instrh);  

          i := 4 - obs_kind + obs_type;  
          comment gris;  
          for t :=  1 step 1 until 2 do
          zd_obs_rec.real_f(t) :=  case t of
          (case i of (reg_label(6), reg_label(8)), 
          _case i of (reg_label(7), reg_label(9)));  

          sum := 0;  
          for t := obsrcl//2 step -1 until 1 do
          sum := zd_obs_rec.intf(t)+sum;  
          zd_obs_rec.intf(2) := -sum;  

          read_gg_obs_1 := read_gg_obs_1 + 4095;  

        end output of zenith-distances;  

      end action 12;  

\f



comment geom geod input       * page 15   13 12 77, 10.59
0 1 2 3 4 5 6 7 8 9 ;  

      begin comment action 13: no_action/alarm;  
        last_ST  :=  stn;  
        if t_char <> 97 and t_char <> 99 and
        _  t_char <> 10 and t_char <> 13 then
        begin
          write(out, <:<10>:>, 
          <:<10>input-data ej ok, fejl ved::>, 
          <:<10>:>, false add 42,  28, 
          <:<10>:>, <:last jnsd:>, <<dd ddd dd d>, identif, 
          <:<10>:>, <:state    :>, <<ddd>, state, 
          <:<10>:>, <:class    :>, <<ddd>, class, 
          <:<10>:>, <:sav_class:>, saved_class, <:<10>:>,  
          <:<10>:>, <:tchar    :>, <<ddd>, t_char);  
        end alarm;  

      end action 13;  

    end action cases;  

  end state-loop;  

  udt := save_udt;  

  read_gg_obs := read_gg_obs_1;  

  if c_term then read_gg_obs := 0;  

end read_gg_obs;  

end

if warning.yes
(mode 0.yes
message  read_gg_obs not ok
lookup read_gg_obs)

end

▶EOF◀