EV2LIN ( Evaluate "two-line" element data)
SUBROUTINE EV2LIN ( ET, GEOPHS, ELEMS, STATE )
This routine evaluates NORAD two-line element data for
near-earth orbiting spacecraft (that is spacecraft with
orbital periods less than 225 minutes).
DOUBLE PRECISION ET
DOUBLE PRECISION GEOPHS ( * )
DOUBLE PRECISION ELEMS ( * )
DOUBLE PRECISION STATE ( * )
PARAMETER ( NMODL = 6 )
VARIABLE I/O DESCRIPTION
-------- --- --------------------------------------------------
ET I Epoch in seconds past ephemeris epoch J2000.
GEOPHS I Geophysical constants
ELEMS I Two-line element data
STATE O Evaluated state
NMODL P Parameter controlling number of buffered elements.
ET is the poch in seconds past ephemeris epoch J2000
at which a state should be produced from the
GEOPHS is a collection of 8 geophysical constants needed
for computing a state. The order of these
constants must be:
GEOPHS(1) = J2 gravitational harmonic for earth
GEOPHS(2) = J3 gravitational harmonic for earth
GEOPHS(3) = J4 gravitational harmonic for earth
These first three constants are dimensionless.
GEOPHS(4) = KE: Square root of the GM for earth where
GM is expressed in earth radii cubed per
GEOPHS(5) = QO: Low altitude bound for atmospheric
model in km.
GEOPHS(6) = SO: High altitude bound for atmospheric
model in km.
GEOPHS(7) = RE: Equatorial radius of the earth in km.
GEOPHS(8) = AE: Distance units/earth radius
Below are currently recommended values for these
J2 = 1.082616D-3
J3 = -2.53881D-6
J4 = -1.65597D-6
The next item is the square root of GM for the
earth given in units of earth-radii**1.5/Minute
KE = 7.43669161D-2
The next two items give the top and
bottom of the atmospheric drag model
used by the type 10 ephemeris type.
Don't adjust these unless you understand
the full implications of such changes.
QO = 120.0D0
SO = 78.0D0
The following is the equatorial radius
of the earth as used by NORAD in km.
ER = 6378.135D0
The value of AE is the number of
distance units per earth radii used by
the NORAD state propagation software.
The value should be 1 unless you've got
a very good understanding of the NORAD
routine SGP4 and the affect of changing
AE = 1.0D0
ELEMS is an array containg two-line element data
as prescribed below. The elements XNDD6O and BSTAR
must already be scaled by the proper exponent stored
in the two line elements set. Moreover, the
various items must be converted to the units shown
ELEMS ( 1 ) = XNDT2O in radians/minute**2
ELEMS ( 2 ) = XNDD6O in radians/minute**3
ELEMS ( 3 ) = BSTAR
ELEMS ( 4 ) = XINCL in radians
ELEMS ( 5 ) = XNODEO in radians
ELEMS ( 6 ) = EO
ELEMS ( 7 ) = OMEGAO in radians
ELEMS ( 8 ) = XMO in radians
ELEMS ( 9 ) = XNO in radians/minute
ELEMS ( 10 ) = EPOCH of the elements in seconds
past ephemeris epoch J2000.
STATE is the state produced by evaluating the input elements
at the input epoch ET. Units are km and km/sec.
NMODL is a parameter that controls how many element sets
can be buffered internally. Since there are a lot
of computations that are independent of time these
are buffered and only computed if an unbuffered
model is supplied. This value should always
be at least 2. Increasing it a great deal is not
advised since the time needed to search the
buffered elements for a match increases linearly
with the NMODL. Imperically, 6 seems to be a good
break even value for NMODL.
1) No checks are made on the reasonableness of the inputs.
2) SPICE(ITERATIONEXCEEDED) signals if the EST calculation loop
exceds the MXLOOP value. This error should signal only for
bad (nonphysical) TLEs.
This routine evaluates NORAD two-line element sets for
near-earth orbitting satellites. Near earth is defined to
be a satellite with an orbital period of less than 225
minutes. This code is an adaptation of the NORAD routine
SGP4 to elliminate common blocks, allow buffering of models
and intermediate parameters and double precision calculations.
W.L. Taber (JPL)
SPICELIB Version 1.1.0, 15-SEP-2014 (EDW)
Added error check to prevent infinite loop in
calculation of EST.
SPICELIB Version 1.0.3, 02-JAN-2008 (EDW)
Corrected error in the calculation of the C4 term
identified by Curtis Haase.
Minor edit to the COEF1 declaration strictly
identifying the constant as a double.
COEF1 = COEF / PSISQ**3.5
COEF1 = COEF / PSISQ**3.5D0
SPICELIB Version 1.0.2, 08-JUL-2004 (EDW)
Corrected error in the calculation of the C2 term.
Reordered C1, C2 calculations to avoid division
SPICELIB Version 1.0.1, 10-MAR-1998 (EDW)
Corrected error in header describing the GEOPHS array.
SPICELIB Version 1.0.0, 14-JAN-1994 (WLT)