compar - nicolob/pep-full GitHub Wiki

compar

Type: subroutine

Defined in: compar.f

Definition: subroutine COMPAR(mocpar)

Description

mocpar = 0 compar called in midst of least squares iteration
read all three data sets iobcon, iobs, iabs1 which become in
subroutines of compar iiobcn, iiobs, iiabs1
mocpar = 1 compar called at end of least squares iteration to
calculate dummy observations
read only iobcon which become in subroutines of compar iiobcn
nplnt0 = planet number of observed planet. allowed numbers are
0 sun
1 mercury
2 venus
4 mars
5 jupiter
6 saturn
7 uranus
8 neptune
9 pluto
10 moon
11,...  possible additional bodies
-4 stars
ncode = external observation code. allowed numbers are
0 end of series
1 radar observation of time delay
or optical obs. of 1st planet limb contact time
or right ascension or azimuth
2 radar observation of time delay and doppler shift
or optical obs. of 1st & 2nd limb times
or r.a. & dec. or az. & el.
3 radar observation of doppler shift
or optical obs. of 2nd planet limb contact time
or declination or elevation
note: 4,5,6 correspond to 1,2,3 but may be used only
for optical observations
mnplnt= 0 observed body is moon
mnplnt= positive,negative observed body is not moon
klanb = 1,...,u_mxpl observed body is probe or satellite
nplnt(klanb) (central body is sun if klan=0)
klan  = 1,...,u_mxpl observed body is planet nplnt(klan)
unless klanb.gt.0 in which case central body of
observed body nplnt(klanb) is nplnt(klan)
klan  =u_mxpl+1 observed body is moon
unless klanb.gt.0 in which case central body of
observed body nplnt(klanb) is moon
klan  =u_mxpl+2 observed body is sun
unless klanb.gt.0 in which case central body of
observed body nplnt(klanb) is earth
klans1= 0 observing site is on earth
klans1= 1,...,u_mxpl observing site is on body nplnt(klans1)
klans1=u_mxpl+1 observing site is on moon
klanr = 1,...,u_mxpl  input rotation data for observed body
nplnt(klan) are in storage for nplnt(klanr).  in
particular, observed planet rotation tape is
iplnt(klanr).  for earth or moon, klanr=0 with inut
or ilib nonzero.
nrewnd controls non-normal rewinding of planet,embary,moon tapes.
nrewnd =0,-1 only those tapes which are not in a rewound
state and are not needed in processing
observations of body nplnt0 are rewound.
(this is normal situation)
nrewnd = 1   all tapes which are not in a rewound state are
rewound.
list of observations to be processed are on up to 10 observation
library magnetic tapes plus input cards, with new library tapes
written with input card data inserted at appropriate points. besides
information on cards, library tapes have observed minus theoretical
values of observations computed in run which produced tapes, data
concerned with observations which stay essentially constant from run
to run (e.g., precession-nutation matrix), and partial derivatives of
observations. partial derivatives on newly written observation library
tapes include all that were on input library tapes plus others needed
in forming normal equations for given run. partial derivatives on
observation library tapes whose values do not change signifigantly
between iterations are not recalculated, whereas those whose values
might change signifigantly (e.g., those with respect to planetary
shape parameters) are recalculated before incrementing normal
equations. there is option (ict(80)=1 with iterat=1) of using observed
minus theoretical values on library tapes in forming normal equations
rather than computing the values. data set iobcon contains data
conrolling (1) alterations in error weightings for use in the normal
equations of whole observation series or of individual observations
within an observation series, (2) deletion of specific observations
or whole observation series from the newly written library tapes,
(3) overriding constants concerned with observation series in addition
to error weighting constants, and (4) calculation of theoretical value
of dummy observations and calculation of covariance matrix for dummy
observations with or without additional real observations.
iobs = observation card data set. first card contains information
about observation series, perhaps followed by additional such
cards. then come cards giving observation data for the
observation series, one card per observation. end of observa-
tion series is signaled by a blank card. then comes next obser-
vation series, etc. end of all the observation series (and end
of data set iobs) is signaled by two blank cards, one termina-
ting last observation series and an extra one terminating all
the observation series.
iobs = 0, no observation card data set. in addition iobs is not read
if ict(80).gt.0. if ict(80).eq.0 and iobs.gt.0, then iobs is
read on first least squares iteration (iterat=1), but iobs
will be set equal to zero when
end is reached on iteration iterat=1 if ict(80).eq.0 so that
iobs will not be read on subsequent iterations, since the data
on iobs will have been written on the observation library tapes
to be read on subsequent iterations. ict(80).lt.0 is signal
that there are no input observation library tapes, program is
to read observation data only from iobs, rewinding iobs between
iterations, in which case partial derivatives have to be
recalculated each iteration.
iabs1= input observation library data set. if 0, no such input.
iabs2= output observation library data set. if 0, no such output.
there is a loop on jtape from 1 to 10 to define values of iabs1,iabs2.
if iterat=1, then      iabs1=iobs0(jtape)
iabs2=iobs1(jtape)
if iterat.gt.1 is even,iabs1=iobs1(jtape)
iabs2=iobs2(jtape)
if iterat.gt.1 is odd, iabs1=iobs2(jtape)
iabs2=iobs1(jtape)
jtape is incremented either (1) if end has been reached on iabs1 with
iabs1.gt.0 and either iobs=0 or ntapa(2).gt.ntapa(3), or (2) if
iabs1=0 and ntapa(2) makes a jump to a larger number. if ict(80).ge.0,
for the first least squares analysis iteration, input library tapes
iobs0 are read(along with cards iobs if ict(80).eq.0) and iobs1 is
written. for the second
iteration, iobs1 (written in first iteration) is read and iobs2 is
written. in the third iteration iobs2 is read and iobs1 is written.
and so it continues. the original input library tapes iobs0 are
unchanged, but the input-output library tapes iobs1,iobs2 are
alternately read and written, the program eating its tail from
iteration to iteration.
if ict(80).lt.0, then only observation cards iobs are read and
iabs2=iobs1(1) is written from iteration to iteration.
if ict(80).ge.0 saved partial derivatives are used from input
observation library tapes where possible.
if ict(80).lt.0 partial derivatives are recalculated each iteration.
ntapa(i) = positive tape sequence number for observation series,
execpt that for iobcon it can be zero or negative to denote
dummy observations. for i = 1 or 2, ntapa(i) is greater
than or equal to tape sequence number for observation
series on iobcon or iobs, respectively, immediately
preceeding the given one if such exists. ntapa(3) for iabs1
corresponding to value of jtape greater than jtape
belonging to some previous iabs1 is greater than ntapa(3)
corresponding to this latter iabs1 if neither of the iabs1
in question are zero.
ncoda(i) = code indicating type of observation series
1 radar observations of time delay and doppler shift
4 meridian circle obs of right ascension and declination
referred to true equinox and equator of date reduced
to center of earth, unless overriden.
5 photographic obs of right ascension and declination,
topocentric, referred to mean equinox and equator of
ref. epoch, circular aberration removed (unless
overidden)
nplnta(i)= planet number of observed body
0 sun       1 mercury   2 venus
4 mars      5 jupiter   6 saturn
7 uranus    8 neptune   9 pluto
10 moon
11,...,30 other natural planets,asteroids,satellites
31,... artificial space probes
erwgta(j,i)=factor by which quoted error of measurement j is
multiplied for use in the normal equations, j=1,2
j=1 radar measurement of time delay or optical
measurement of right ascension
j=2  radar measurement of doppler shift or
optical measurement of declination
itima(i) = time code for observation series
= 10*c + f  (for c .ge. 0)
= c         (for c .lt. 0)
For radar observations, c is forced to be non-negative, so
f may be -1 in this case (means same as f=2).
Only last two digits of year are given for observations, so
an indication must be given at start of series what first
two digits are.  A series must not cross the start of a
century year, except for dummy observations.
c is the century code, i.e., YEAR/100 - 19
1 21st century observations
0 20th century observations
-1 19th century observations
-2 18th century observations,etc.
f is a flag for the type of observable
(treated as 0 for c .lt. 0)
0 optical: before atomic time
0 radar: observation time tag is UT2
1 atomic time exists, offset to be computed
observation time tag is UTC
2 AT - UT offset suppied with data
3 radar: observation time tag is UTC send time
5 normal point pseudo-obs at coordinate time
nrewna(i)= 0,negative, at start of observation series only those tapes
not used in the series are rewound
nrewna(i)= positive,  at start of observation series all tapes are
rewound
nrewna(i) less than 0 or greater than 1 indicates in addition to the
above options that additional control data are to be read
from iobs or iobcon or exists on first record of series on
iabs1.
niobc,niobs,niabs1 indicate the state of data sets iobcon,iobs,iabs1
-1 data set has reached end
0 data set is positioned at first record of observation series
1 data set has read first record of observation series and is
positioned to read subsequent records of series
life=0 nothing yet written on iabs2
life=1 first 2 records of iabs2 have been written
ntaps(i)= old value of observation tape sequence number, i=1,4
nseqs(i)= old value of observation series sequence number, i=1,4
i=1 from iobcon data set
i=2 from iobs data set
i=3 from iabs1 data set
i=4 for output library tape iabs2

Included Files

  • globdefs.inc
  • bdctrl.inc
  • comdat.inc
  • crdbuf.inc
  • fcntrl.inc
  • inodta.inc
  • namtim.inc
  • number.inc
  • obsdta.inc
  • obstap.inc
  • plndta.inc
  • rotdta.inc
  • sbdta.inc
  • scdta.inc
  • sitcrd.inc
  • stats.inc
  • tapdta.inc
  • zeroes.inc

Arguments

  • mocpar

Calls

Called By

  • ...

Notes

  • ...
⚠️ **GitHub.com Fallback** ⚠️