GLOSSARY-INDEX OF SPICELIB SUBROUTINES & FUNCTIONS.
All NAIF produced subroutines are packaged in two directories, at
/pds/naif/toolkit: spicelib/ & support/. A brief description of those
subroutines (and functions) is given below.
Many abbreviations are used to keep the length of each description down.
For detailed description of what each subroutine or function does see the
specific subroutine.
Some Abbreviations:
int = integer
char = character S = Spacecraft
d.p. = double precision
# = number P = Planet
2bly = doubly
lmnt = element I = Instrument
val = value
s'crft = spacecraft C = C-Matrix (Orientation)
non-< = non increasing
gen' = generate E = Events
ecc = eccentricity
anom = anomaly L
rec = record
loc = location I
lu = logical unit
reps = representations B
DAS =
j2k = J2000
cnvrt = convert
DAF = Double-precision Array File
w/rt = with respect to
w/ = with
r&v = position & velocity
xxxx-xxxx=xxxx-xxxx=xxxx-xxxx=xxxx-xxxx=xxxx-xxxx=xxxx-xxxx=xxxx-xxxx=xxxx-xxxx=
Sub/Fn What does it do?
SPICELIB--main library for spicelib.
accept ---- this subroutine for use by spicelib subcalls alone!!!
alltru determine if all entries in array of logicals are .true.
appndc append an item to a character cell.
appndd append an item to a d.p. cell.
appndi append an item to an int. cell.
approx true if 2 d.p. #s are = to within given tolerance.
astrip strip ascii characters from a character string.
axisar build rot. matrix to rot. vectors given angle about given axis.
b1900 return julian date corresponding to besselian date 1900.0.
b1950 return julian date corresponding to besselian date 1950.0.
bodeul ret. Euler angles to comp transf from inertial to body-fixed
coords for object in kernel pool.
bodfnd do values exist for some item for any body in kernel pool?
bodmat return J2000 to body Equator & Prime Meridian coordinates
transformation matrix for spec. body.
bodvar return values of some item for any body in the kernel pool.
brcktd bracket a d.p. number. Given # & interval, leave # alone if
w/in, otherwise set to nearest endpoint.
brckti same as brcktd, except for an integer.
bsrchc binary search for index of given val in char array (< order).
bsrchd do binary search for given value in d.p. array.
bsrchi do binary search for given value in int. array.
cardc return the cardinality (# lmnts) of a character cell.
cardd return cardinality of d.p. cell.
cardi return cardinality of int. cell.
cgv2el form ellipse from a center vector & 2 generating vectors.
chbase ret. base val used to encode unsigned int vals in char strings.
chbder given Chebyshev expans coeffs, retrn val & 1st N derivs for X.
chbint given Chebyshev expans coeffs, return value & derivative for X.
chbval given Chebyshev expansion coeffs, return value at input X.
chgirf change intertial reference frames.
ckbsr buffer segments for CK readers.
cke01 eval pointing recrd from ckr01 for CK data type 1 segment.
Return C-matrix & optionally ang vel assoc w/ time CLKOUT.
cke02 same as above, except for return from ckr02 & data type 2 seg.
cke03 Same as above, except for ckr03 & data type 3 segment.
ckgp get inertial ref'd instr pointing for given s'craft clk time.
ckgpav get inert. ref'd instr pointing & ang vel for given s'crft clk.
ckgr01 given handle & descriptor of data type 1 seg in CK file, return
a given pointing record from that segment.
ckgr02 same as above, except for data type 2 segment.
ckgr03 same as above, except for data type 3 segment.
cknr01 given handle of CK file & data type 1 seg descriptor, return #
of pointing records in that segment.
cknr02 same as above, except for data type 2 segment.
cknr03 same as above, except for data type 3 segment.
ckpfs evaluate pointing data from a segment for a given time.
ckr01 read a pointing record from a CK segment, data type 1.
ckr02 same as above, except for data type 2.
ckr03 same as above, except for data type 3.
ckw01 add a type 1 segment to a CK file.
ckw02 same as above, except for data type 2.
ckw03 same as above, except for data type 3.
clearc clear a character string array with blank strings.
cleard fill a d.p. array with zeros.
cleari fill an int array with zeros.
clight return IAU value of speed of light in km/s.
cmprss compress a character string (repeated characters).
conics determine state of orbiting body from conic elements.
convrt convert value in one set of units to another set.
copyc copy contents of character cell to another.
copyd copy contents of d.p. cell to another.
copyi copy contents of int. cell to another.
countc count characters in a group of lines in a text file.
cpos find 1st occur. of a char string in another searching forward.
cposr same as above, except searching in reverse.
cyclac cycle elements of a character array forward or backward.
cyclad cycle elements of a d.p. array fwd or bkwd.
cyclai cycle elements of an int array fwd or bkwd.
cyclec cycle contents of a char string left or right.
cyllat convert from cylindrical to latitudinal coords.
cylrec convert from cylindrical to rectangular coords.
cylsph convert from cylindrical to spherical coords.
dacosh return inverse hyperbolic cosine of a d.p. argument.
dafa2b convert ascii text DAF to = binary DAF.
dafah assign handles to DAFs as they are opened.
dafana add a new array to an existing DAF.
dafarr add a given # of reserved records to a d.p. array file (DAF).
dafb2a convert binary DAF to = ascii DAF.
dafb2t write contents of binary DAF to an open text file.
dafbt cnvrt binary DAF file content to = ascii DAF encoded text file.
daffa find arrays in a DAF.
dafps pack (assemble) an array summary from d.p. & int components.
dafra reorder arrays in a DAF according to a given order vector.
dafrcr read contents of a character record from a DAF.
dafrda read d.p. data bounded by 2 addresses within a DAF.
dafrfr read contents of the file record of a DAF.
dafrrr remove given # of reserved records from DAF.
dafrwa convert a record/word pair to its = address within a DAF.
dafrwd read, write, & rewrite d.p. records to and from DAFs.
daft2b reconstruct a binary DAF from an open text file .
daftb convert contents of ascii DAF encoded text file into = binary.
dafwcr write or rewrite contents of a char. record to a DAF.
dafwda write or rewrite d.p. data bounded by 2 addresses within a DAF.
dafwfr write or rewrite contents of the file record of a DAF.
datanh return inverse hyperbolic tangent of d.p. arguement.
dcbrt return cube root of d.p. #.
deltet return value of Delta ET (ET-UTC) for input epoch.
det compute determinant of d.p. 3x3 matrix.
diags2 diagonalize a symmetric 2x2 matrix
diffc take difference of 2 character sets to form a third set.
diffd take difference of 2 d.p. sets to form a third.
diffi take difference of 2 int. sets to form a third.
dp2hx convert d.p. # to an = char string using base-16 sci. notation.
dpmax return value of > (+) # representable in a d.p. variable.
dpmin return value of < (-) # representable in a d.p. variable.
dpr return the number of degrees per radian.
dpstr convert d.p. # to = char string representation (base-10).
dpstrf cnvrt d.p. # to = formatted char string base-10 representation.
drotat calculate derivative w/rt angle of rot. of 3x3 coord. system
rot. matrix generated by rot of given angle about given axis.
dxtrct find keyword & succeeding numeric words w/in string. Parse &
store numeric words; remove keyword & numerics from input.
edlimb find limb of a triaxial ellipsoid viewed from a given point.
el2cgv cnvrt ellipse to center vector & 2 gen'ing vectors (semi-axes).
elemc determine whether item is element of a character set.
elemd determine whether item is element of a d.p. set.
elemi determine whether item is element of an int set.
elltof solve elliptic time-of-flight eqn MA=E-e sin(E) for ecc anom.
enchar encode non- int # into char string as expansion of # in base
CHBASE (a function of the size of the available char set).
eqstr determine whether 2 strings are =.
erract retrieve or set the default error action.
errch subst char string for 1st occur of marker in cur long err msg.
errdev retrieve or set name of current output device for err msgs.
errdp subst d.p. # for 1st occur. of marker in cur long err msg.
errfnm subst 1st occur of marker in long err msg w/ file name of lu#.
errint substit. int for 1st occur. of marker in current long err msg.
errprt retrieve or set list of err msg items for output on err.
esrchc search for val w/in char string array. Return index of 1st 1.
et2utc cnvrt input time: ephem secs past j2k to Cal DOY, or Jul date.
eul2m construct rotation matrix from set of Euler angles.
even determine if integer is even.
exact round input d.p. # to given exact val if # & val = to w/in tol.
excess set long err msg to indicate # of excess lmnts encountered by
routine operating on cells or data structs based on cells.
exists determine whether file exists.
expln return explanation of short error msg.
fetchc return locat w/in set array of Nth element w/in ascii order.
fetchd same as above except for d.p. set.
fetchi same as above except for int. set.
fillc fill a char string array w/ given string.
filld fill a d.p. array w/ given value.
filli fill a int. array w/ given value.
fndlun return number of a free logical unit if one available.
fndnwd find begin & end of 1st word starting @ or after given char.
frame build right-hand coord frame w/ X parallel to input X.
frstnb return index of 1st non-blank char in char string.
frstpc retrn indx of 1st printable char in char string (ascii 33-126).
gcd return greatest common divisor of 2 ints.
georec convert geodetic coords to rectangular.
getlun return number of a free logical unit.
getmsg get cur short err msg, short err msg explan, or long err msg.
halfpi return pi over 2.
hx2dp convert hex string (sci not.) into = d.p. #.
hx2int convert signed hex string to integer.
hyptof solve time-of-flight eqn MA=e sinh(F)-F for hyp ecc anom.
inedpl find intersection of plane & triaxial ellipsoid.
inelpl find intersection of plane & ellipse.
inrypl find intersection of plane & ray.
inslac insert 1 or more elements into char array @ indicated location.
inslad insert 1 or more elements into d.p. array @ indicated location.
inslai insert 1 or more elements into int. array @ indicated location.
insrtc insert item into a char set.
insrtd insert item into a d.p. set.
insrti insert item into a int set.
inssub insert substring into char string @ given location.
int2hx convert integer into = signed hex string.
interc intersect 2 char sets to form 3rd.
interd intersect 2 d.p. sets to form 3rd.
interi intersect 2 int. sets to form 3rd.
intmax return value of largest + # representable in integer var.
intmin return val. of smallest - # representable in int var.
intord convert int to = written ordinal phrase (10=tenth).
intstr convert integer to = char string.
inttxt convert int to = written phrase (10 = ten).
invert generate the inverse of a 3x3 matrix.
invstm return the inverse of a state transformation matrix.
ioerr set long err msg = std i/o err msg composed from action,
name of file, & value iostat.
irftrn rtrn matrix to trnsfrm vectors frm 1 inertial r.f. to another.
isordv does array of N items contain ints 1-N?
isrchc if val w/in a char string array, return index of 1st match.
isrchd if val w/in d.p. array, return index of 1st match.
isrchi same as above except for int.
isrot indicate if 3x3 matrix is a rotation matrix.
j1900 return julian date of 1899dec31 12:00:00 (1900jan0.5).
j1950 return julian date of 1950jan01 00:00:00 (1950jan1.0).
j2000 return julian date of 2000jan01 12:00:00 (2000jan1.5).
j2100 return julian date of 2100jan01 12:00:00 (2100jan1.5).
jyear return # of seconds in a julian year.
kxtrct extract a substring starting with a keyword.
lastnb return index of last non-blank char in a char string.
lastpc return index of last printable char in a char string.
latcyl convert from latitudinal coords to cylindrical coords.
latrec convert from latitudinal coords to rectangular coords.
latsph convert from latitudinal coords to spherical coords.
lbuild build a list of items delimited by a character.
lcase convert the chars in a string to lowercase.
lgresp eval. Lagrange interp poly for set of coord pairs w/ 1st
components are =ly spaced @ given X.
lgrint eval Lagrange interp poly for given coord pairs @ given X.
ljust left justify a char string.
locln locate group of lines in a text file w/ given delimiters.
lparse parse list of items delimited by single char.
lparsm parse a list of items separated by multiple delimiters.
lparss parse list of items w/ multiple delimiters; put results in set.
lstcld for X & array of non-> #s, get index of lmnt w/ val nearest X.
lstcli same as above except for integers.
lstlec for char string & orderd array of char strings, find index of >
array lmnt <= given string.
lstled given X & array of non-> #s, find index of > array lmnt <= X.
lstlei same as above except for integers.
lstltc same as lstlec, except only less-than, not less-than-or-equal.
lstltd same as lstled, except only for <, not for <=.
lstlti same as above, except for integers.
ltrim return max of 1 & the location of 1st non-blank char in string.
m2eul factor rot matrix as product of 3 rotations about given axis.
m2q find unit quaternion corresponding to given rotation matrix.
matchw is string matched by a template containing wild cards?
maxac locate max lmnt of a char array.
maxad locate max lmnt of d.p. array.
maxai locate max lmnt of int. array.
mequ set 1 d.p. 3x3 matrix = another.
mequg set 1 d.p. matrix of arbitrary size = another.
minac locate min lmnt of char array.
minad locate min lmnt of d.p. array.
minai locate min lmnt of int. array.
movec copy lmnts of 1 char array into another.
moved copy lmnts of 1 d.p. array into another.
movei copy lmnts of 1 int. array into another.
mtxm mult the transpose of a 3x3 matrix & another 3x3 matrix.
mtxmg mult transpose of 1 matrix w/ another (arbtry, compat. size.).
mtxv mult transpose of 3x3 on the left w/ vector on right.
mtxvg mult transpose of matrix & vector of arbitrary size.
mxm mult 2 3x3 matrices.
mxmg mult 2 d.p. matrices of arb. size.
mxmt mult a 3x3 matrix & transpose of another 3x3.
mxmtg mult a matrix & transpose of another, both arbitrary size.
mxv mult 3x3 d.p. matrix w/ 3D d.p. vector.
mxvg mult a matrix & vector of general dimensions.
nblen return non-blank length of char string.
nbwid determine > non-blank width of a char array.
ncpos find 1st occur. in a string of a char not belonging to given
char set, starting @ given location searching fwd.
ncposr same as above, but searching in reverse.
nearpt locate pt. on ellipsoid surface nearest given pt. Also return
altitude of position above ellipsoid.
nextwd return next word in given char string, & left justify rest.
notru are none of the entries in an array of logicals .true. ?
nparsd parse char string representing # & return d.p. value.
nparsi parse char string representing # & return ftn-trunctd int val.
npedln find nearest pt. on triaxial ellipsoid to given line & separ.
npelpt find nearest pt. on ellipse to given pt. in 3D & separation.
nplnpt find nearest pt. on line to given pt. & separation.
nthwd return Nth word in char string & location in string.
nvc2pl make plane from normal vector & constant.
nvp2pl make plane from normal vector & point.
odd is # odd?
opsgnd logical function true if input d.p. args have opposite sign.
opsgni same as above except for integers.
ordc int function returns ordinal position of char item in set.
ordd int function same as above for d.p. set.
ordi int function same as above for int. set.
orderc determine order of lmnts in array of char strings.
orderd determine order of lmnts in d.p. array.
orderi same as above except for int. array.
oscelt determine set of osculating conic orbital lmnts corresponding
to state of body at some epoch.
outmsg output error msgs.
packac pack char array content--make arbitr spaced set & adjacent.
packad same as above, except for d.p. array.
packai same as above, except for int. array.
partof solve time-of-flght eqn MA=D+(D**3)/3 for parabolic ecc. anom.
pcwid determine printable width of char array.
pi return d.p. val of pi.
pjelpl project an ellipse onto a plane, orthogonally.
pl2nvc return unit normal vector & constant defining given plane.
pl2nvp return unit normal vector & pt. defining given plane.
pl2psv return pt. & 2 orthog spanning vectors that gen a given plane.
polyds compute the val of a poly. & it's first N-derivatives @ val T.
pool maintain pool of variables read from SPICE asciii kernel files.
pos given start loc find 1st occur in string of substring srch fwd.
posr same as above, except reverse search.
prefix add a prefix to a char string.
prodad return product of lmnts of a d.p. array.
prodai return product of lmnts of an int array.
prompt prompt user for keyboard input.
prop2b propogate 0-mass body forward dT in 2-body central force model.
prtpkg --- this subroutine for use by spicelib subcalls only!
psv2pl generate plane from point & 2 spanning vectors.
putact --- this subroutine for use by spicelib subcalls only!
putdev --- this subroutine for use by spicelib subcalls only!
putlms --- this subroutine for use by spicelib subcalls only!
putsms --- this subroutine for use by spicelib subcalls only!
q2m find rot matrix corresponding to given unit quaternion.
quote 'quote' non-blank part of char string between delimiters.
radrec convert range, RA, Dec to rectangular coords.
raxisa compute rot axis given by input matrix & rot angle about it.
rdencc read & decode encoded chars from text file.
rdencd read N encoded d.p. #s from text file; decode into = d.p. #s.
rdenci read N encoded int #s from text file; decode into = int. #s.
rdker open & read content of spice ascii kernel file.
rdkvar read next var from ascii kernel file into d.p. symbol table.
rdtext read next line of text from text file.
reccyl convert from rectangular to cylindrical coords.
recgeo convert from rectangular to geodetic coordinates.
reclat convert from rectangular to latitudinal coords.
recrad convert from rectangular to range, RA, & Dec.
recsph convert from rectangular to spherical coords.
remlac remove 1+ lmnts from char array @ indicated location.
remlad same as above, except using d.p. array.
remlai same as above, except from int array.
removc remove item from a char set.
removd remove item from a d.p. set.
removi remove item from an int set.
remsub remove substring (left:right) from char string.
reordc reorder lmnts of array of char strings by order vector rule.
reordd same as above except for d.p. array.
reordi same as above except for int array.
replch replace all occur of single char w/ another char.
replwd replace Nth word in string w/ new word.
repmc replace marker w/ a char string.
repmct replace marker w/ text representation of a cardinal #.
repmd replace marker w/ d.p. #.
repmf replace marker w/ a formatted d.p. val.
repmi replace marker w/ an int.
repmot replace marker w/ text representation of an ordinal.
repsub replace substring (left:right) w/ string of arb length.
reset reset err status to val of "no err".
return logic fn true if spicelib routnes return immediate upon entry.
rjust right justify a char string.
rmdupc remove duplicate lmnts from char array.
rmdupd remove duplicate lmnts from d.p. array.
rmdupi remove duplicate lmnts from int array.
rotate calc 3x3 rot matrix gen'd by rot of given angle about given
axis. i.e. Rotate coordinate system (same for next).
rotmat apply rot of angle radians about IAXIS to matrix.
rotvec apply rot about axis to vector.
rpd return # of radians per degree.
rquad find roots of quadratic equation.
rtrim return max of 1 & loc of last non-blank char in string.
saelgv find semi-axis vectors of ellipse gen'd by 2 arb 3D vectors.
sc01 cnvrt between different reps of type 1 s'craft clock.
scardc set cardinality of char cell.
scardd set cardinality of d.p. cell.
scardi set cardinality of int. cell.
scdecd cnvrt d.p. encoded s'craft clock time into char. rep.
sce2s cnvrt ephem secs > j2k (ET) to char string rep of SCLK val.
sce2t cnvrt ephem secs > j2k (ET) to encoded s'craft clock ticks.
scencd encode char rep of s'craft clock time into d.p. #.
scfmt cnvrt encoded s'craft clock ticks to char clock format.
sclu01 look up type 1 SCLK kernel data.
scpart get s'craft clock partition info from s'craft clock kernel.
scs2e cnvrt s'craft clock string to ephem secs past j2k (ET).
sct2e cnvrt encoded s'craft clock ticks to ephem secs > j2k (ET).
sctiks cnvrt s'craft clock format string to # of ticks.
sctype return s'craft clock type for given s'craft.
sdiffc take symmetric diff of 2 char sets to form 3rd.
sdiffd take symmetric diff of 2 d.p. sets to form 3rd.
sdiffi take symmetric diff of 2 int sets to form 3rd.
setd given a relational operator, compare 2 d.p. sets.
seterr --- reserved for spicelib calls only.
seti given a relational operator, compare 2 int. sets.
setmsg set the value of the current long error message.
shellc sort array of char strings by ascii collat seq w/ Shell Sort.
shelld sort d.p. array using the Shell Sort.
shelli sort int. array using the Shell Sort.
shiftc shift char string content < or >, w/out wrap; + given fill.
shiftl shift char string content left, w/out wrap, + given fill.
shiftr same as above except to right.
sigdgt retain only significant digits in a numeric string.
sigerr n4m err processing mechanism given type of error occured.
sizec return size (max cardinality) of a char cell.
sized same as above except for d.p. cell.
sizei same as above except for int. cell.
smsgnd logical fn true if d.p. args have same sign.
smsgni same as above except int args.
somfls determine if some of the entries in logical array are .false.
somtru determine if some of the entries in logical array are .true.
spca2b cnvrt ascii text SPK or CK to = binary, including comments.
spcac append text file w/in comnt area of binary SPK/CK.
spcb2a cnvrt binary SPK/CK to = text ascii file, inc. comment area.
spcb2t cnvrt content of binary SPK/CK to text, inc. comment area.
spcdc empty the comment area of a binary SPK/CK file.
spcec extract text from commnt area of binary SPK/CK to text file.
spcopn open new SPK/CK file for subsequent writes.
spcrfl read 1st line of text from comment area of binary SPK/CK.
spct2b reconstruct binary SPK/CK file inc. comments from text file.
spd d.p. function that returns # of seconds in a day.
sphcyl convert from spherical to cylindrical coords.
sphlat convert from spherical to latitudinal coords.
sphrec convert from spherical to rectangular coords.
sphsd return distance between 2 points on sphere along great circle.
spkapp return state of target relative to obsrvr w/ opt corrects for
light time & aberration.
spkbsr load/unload files for use by readers by buffering segments.
spke01 eval 1 SPK data record from type 1 segment (difference lines).
spke02 same as above except type 2 (Chebyshev Polys/position only).
spke03 same as above except type 3 (Cheby, position & velocity).
spke05 ibid; type 5 (2 body prop btween discrete state vectors).
spke08 ibid; type 8 (= spaced discrete states w/ Lagrange interp).
spke09 ibid; type 9 (discrete states w/ Lagrange interp).
spkez return apparent state (r&v) of target w/rt observer, w/
option light-time & aberration corrections.
spkgeo compute geometric state (r&v) of target w/rt observer.
spkpv return state (r&v) of target w/rt some center of motion.
spkr01 same as spke01, except *read* instead of *evaluate*.
spkr02 same as spke02, except " ".
spkr03 same as spke03, " ".
spkr05 same as spke05, " ".
spkr08 same as spke08, " ".
spkr09 same as spke09, " ".
spks01 extract subset of data in SPK type 1 segment into new seg.
spks02 same as above, except type 2.
spks03 same as above, except type 3.
spks05 same as above, except type 5.
spks08 same as above, except type 8.
spks09 same as above, except type 9.
spkssb return state (r&v) of target w/rt solar system barycenter.
spksub extract data subset from SPK segment into separate segment.
spkw05 write SPK type 5 seg given time-ordered set of discrete
states, epochs, & gravitational parameter of central body.
spkw08 write type 8 segment to SPK file.
spkw09 write type 9 segment to SPK file.
srfrec cnvrt planetocentric lat & long to rectangular coords.
ssizec set size (max cardinality) of char cell.
ssized same as above except for d.p. cell.
ssizei same as above except for int. cell.
stelab correct apparent position of object for stellar aberration.
stmp03 compute values of Stumpff functs C_0 thru C_3 @ given point.
suffix add suffix to char string.
sumad return sum of elements of d.p. array.
sumai same as above except for int.
surfnm compute outward radial unit norm vector from pt. on ellipsoid.
surfpt determine intersect of line-of-sight w/ ellipsoid surface.
swapac swap 2 nonintersecting contiguous lmnt groups of char array.
swapad same as above except for d.p. array.
swapai same as above except for int. array.
swapc swap contents of 2 char strings.
swapd swap contents of 2 d.p. variables.
swapi same as above except for ints.
sydelc delete symbol (& associated values) from char symbol table.
sydeld same as above except for d.p. symbol table.
sydeli same as above except for int. symbol table.
sydimc return dimension of given symbol in char symbol table or 0.
sydimd same as above except for d.p. symbol table.
sydimi same as above except for int. symbol table.
sydupc duplicate (w/ replace) symbol w/in char symbol table.
sydupd same as above except for d.p. symbol table.
sydupi same as above except for int. symbol table.
syenqc enqueue val into given symbol in char symbol table.
syenqd same as above except for d.p. symbol table.
syenqi same as above except for int. symbol table.
syfetc fetch Nth symbol in char symbol table.
syfetd same as above except for d.p. symbol table.
syfeti same as above except for int. symbol table.
sygetc return dimension & associated vals for given char symbol.
sygetd same as above except for d.p. symbol table.
sygeti same as above except for int. symbol table.
synthc return Nth val assoc'd w/ given symbol in char symbol table.
synthd same as above except for d.p. symbol table.
synthi same as above except for int. symbol table.
syordc order components of 1 symbol in char symbol table (ascii).
syordd order components of 1 symbol in d.p. symbol table (incr).
syordi same as above except for ints.
sypopc Pop (& remove) val assoc w/ given symbol in char symbol table.
sypopd same as above except for vals in d.p. symbol table.
sypopi same as above except for ints.
sypshc push (insert) val onto given symbol in char symbol table.
sypshd same as above except for d.p. symbol table.
sypshi same as above except for ints.
syputc set (& replace) N vals of given symbol in char symbol table.
syputd same as above except for d.p. symbol table.
syputi same as above except for int. symbol table.
syrenc rename existing symbol in char symbol table.
syrend same as above except for d.p. symbol table.
syreni same as above except for int. symbol table.
syseld select subset of vals assoc w/ given symbol in d.p.
symbol table.
syseli same as above except for int. symbol table.
sysetc set (& replace) 1 val of given symbol in char symbol table.
(see syputc)
sysetd same as above except for d.p. symbol table.
syseti same as above except for int. symbol table.
sytrnc transpose 2 vals assoc w/ given symbol in char symbol table.
sytrnd same as above except for d.p. symbol table.
sytrni same as above except for int. symbol table.
tipbod return 3x3 matrix to transform positions in inertial coords
to positions in body-equator-&-prime-meridian coords.
tisbod same as above except 6x6 matrix for r&v states.
tparse parse a UTC time string.
trace return trace of 3x3 matrix.
traceg return trace of square matrix of arbitrary dimension.
trcpkg maintain a trace of subroutine calls for err msgs.
twopi return value of 2*pi.
twovec find transform to right-hand frame w/ given vector as axis,
& having 2nd vector lying in given coordinate plane.
txtopn open new text file for write access.
txtopr open text file for read access.
tyear return # of seconds in a tropical year.
ucase convert chars in string to upper case.
ucrss compute normalized cross product of 2 3-vectors.
unionc union two char sets to form 3rd.
uniond union 2 d.p. sets to form 3rd.
unioni union 2 int. sets to form 3rd.
unitim transform time from 1 uniform scale to another. Allowed
scales are TAI, TDT, TDB, ET, JED, JDTDB, & JDTDT.
unorm normalize a d.p. 3-vector & return magnitude.
unormg same as above except N-vector.
utc2et cnvrt Calendar time or Julian Date, UTC to eph secs > j2k.
vadd add 2 3D vectors.
vaddg add 2 N-dimensional vectors.
validc create valid set from a char set array.
validd create valid set from d.p. set array.
validi create valid set from int. set array.
vcrss compute cross product of 2 3-D vectors.
vdist return distance between 2 3-D vectors (|| V1 - V2 ||).
vdistg same as above except for N-dimensional vectors.
vdot compute dot product of 2 d.p. 3-D vectors.
vdotg same as above except for N-dimensional vectors.
vequ make 1 d.p. 3-D vector = to another.
vequg same as above except for N-D vectors.
vhat find unit vector along d.p. 3D vector.
vhatg same as above except for N-D vector.
vlcom compute 3-D vector linear combo of 2 d.p. 3-D vectors.
vlcom3 same as above except for 3 d.p. 3-D vectors.
vlcomg same as vlcom, except for N-D vectors.
vminug negate d.p. N-dim vector.
vminus negate d.p. 3-D vector.
vnorm compute magnitude of 3-D d.p. vector.
vnormg compute magnitude of N-dim d.p. vector.
vpack pack 3 scalar components into a vector.
vperp find component of a vector perpendicular to 2nd 3-D vector.
vprjp project a vector onto given plane orthogonally.
vprjpi find vector in given plane that maps to given vector in
another plane under orthogonal projection.
vproj find projection of 1 3-D vector onto another vector.
vprojg same as above except for N-dim vectors.
vrel return relative difference between 2 3-D vectors.
vrelg same as above except for N-dim vectors.
vrotv rot vector about given axis by angle; return rot'd vector.
vscl multiply a scalar & 3-D d.p. vector.
vsclg multiply a scalar & N-dim d.p. vector.
vsep find separation angle (rads) between 2 d.p. 3-D vectors.
vsepg same as above except for N-dim vectors.
vsub compute difference between 2 3-D d.p. vectors (V1 - V2).
vsubg same as above except for N-dim vectors.
vtmv multiply transpose of 3-D column vector, 3x3 matrix, &
another 3-D vector.
vtmvg multiply transpose of n-dim column vector, nxm matrix, &
an m-dim column vector.
vupack unpack 3 scalars from components of a vector.
vzero indicate whether a 3-vector is the zero vector.
vzerog indicate whether a N-vector is the zero vector.
wdcnt return # of words in a string.
wdindx find index of a word w/in a string.
wncomd determine complement of d.p. window w/rt interval [a,b].
wncond contract each of the intervals of a d.p. window.
wndifd place difference of 2 d.p. windows into a third window.
wnelmd determine whether a point is an lmnt of a d.p. window.
wnexpd expand each of the intervals of a d.p. window.
wnextd extract left or right endpoints from a d.p. window.
wnfetd fetch given interval from a d.p. window.
wnfild fill small gaps between adjacent intervals of d.p. window.
wnfltd filter (remove) small intervals from d.p. window.
wnincd determine whether inverval is included in d.p. window.
wninsd insert interval into a d.p. window.
wnintd place intersection of 2 d.p. windows into 3rd window.
wnreld compare 2 d.p. windows.
wnsumd summarize the contents of a d.p. window.
wnunid place union of 2 d.p. windows into a 3rd window.
wnvald form valid d.p. window from contents of a window array.
wrencc encode & write chars to a text file.
wrencd same as above except for d.p. #s.
wrenci same as above except for int. #s.
wrkvar write val of variable in d.p. symbol table to ascii
kernel file.
wrline write char string to output device.
xposbl transpose square blocks w/in matrix.(BTMAT may overwrite BMAT).
xpose transpose a 3x3 matrix.
xposeg transpose NxN matrix.
(SUPPORT library) Warning!! These routines are included
in a source directory, but are not considered part
of SPICELIB and are least likely to be supported
as upgraded versions of NIAF/SPICELIB are produced.
cnfirm return logical status of yes/no query.
dasa2l map DAS address to physical loc. in DAS file.
dasac add comments to cmnt area of binary DAS.
dasacr increase size of comment area in DAS file.
dasacu add comments to binary DAS from text file lu.
dasadc add character data to a DAS file.
dasadd add an array of d.p. #s to a DAS file.
dasadi add an array of integers to a DAS file.
dasabt convert contents of DAS file binary-to-ascii.
dascls close a DAS file.
dascud create/update directories in DAS file to
reflect + of given # words/data type.
dasdc delete entire comment area of open binary DAS.
dasec extract comments from cmmnt area of binary DAS.
dasecu extract comments from binary DAS to text file.
dasfm assign handles to DAS files as they're opened.
dasioc perform fortran i/o of character records.
dasiod perform fortran i/o of d.p. records.
dasioi perform fortran i/o of integer records.
daslla return last logical DAS address of char,
d.p., & integer type used in DAS file.
dasrcr decrease comment area size in DAS file.
dasrdc read char data frm DAS logical address range.
dasrdd read d.p. data frm DAS logical address range.
dasrdi read int. data frm DAS logical address range.
dasrfr return contents of DAS file record.
dasrwr read/write DAS physical records.
dassdr segregate DAS data records into clusters
using 1 cluster/data type present in file.
dastb convert ascii DAS file into = binary DAS.
dasudc update char data in DAS logical addresses
w/ substrings of char array.
dasudd update d.p. data in given DAS address range.
dasudi update int. data in given DAS address range.
daswfr update DAS file record contents.
ekaddr_m return address range of given column element.
ekbsr_m buffer segment info for event lookups by EK.
ekfind_m find E-kernel events satisfying constraints.
eklle_m ???
ekllt_m ???
eklled_m fnd last lmnt <= given val in DAS d.p. array.
eknew_m fnd last lmnt <= given val in DAS d.p. sub array.
eknrml_m find last lmnt < given val in DAS d.p. sub array.
eknseg_m return # of segments in given EK.
ekomr_m create order vector for rows in an EK segment.
ekordv_m make order vector for given EK col., type,
& store @ given address.
ekpars_m parse an EK query whose tokens have been located.
ekpdec_m parse a declaration of a new EK column.
ekrcmp_m compare 2 EK rows using dict. ordr on given col list.
ekrec_m return contents of given char col lmnt from EK seg.
ekred_m return contents of given d.p. col lmnt from EK seg.
ekrei_m return contents of given int. col lmnt from EK seg.
ekrmch_m determine whether given row in EK file satisfies constraints.
eksca_m manage the EK scratch area.
ekscan_m scan tokens in an EK query.
ekscmp_m compare a given scalar EK col. ntry w/ scalar val.
ekssum_m return sumry info for given seg. in given EK.
eqchr ? no documentation.
getfnm prompt user for filename.
getopt display list of options & get menu choice.
iso2utc convert ISO date/time string to UTC string.
lnkan allocate a node in a 2bly linked list pool.
lnkfsl free a given sub-list in a list.
lnkhl return head node of list containing given node.
lnkila insert list of given node into 2nd after given node.
lnkilb insert list of given node into 2nd before given node.
lnkini initialize a 2bly linked list pool.
lnknfn return number of free nodes in 2bly linked list pool.
lnknxt find node following given node in 2bly linked list pool.
lnkprv find node preceding given node in 2bly linked list pool.
lnksiz return size of 2bly linked list pool.
lnktl return tail node of the list containing a given node.
lnkxsl extract given sub-list from a list.
locqts_m locate quoted substrings in a string.
matchi is a string matched by a template containing wildcards?
readla read lines from fortran lu into char array buffer
readln read 1 text line from fortran lu, reporting eof if it occurs.
scpars parse char expr. of spccrft clk time & encode as d.p. #.
scps01 convert char represent of type 1 spccrft clock count to ticks.
writla write an array of text line to fortran logical unit (lu).
writln write 1 line of text to fortran lu.
SPACIT--small library for spacit program.
convbt convert DAF/DAS binary file to = text.
convtb convert NAIF text file into = binary.
dispc display info in a CK segment's descriptor & identifier.
dispsp display info in a segments descriptor & ident. for SPACIT.
qsumc determine type of summary task to do on CK file.
qsumsp determine type of summary task to do on SPK file.
sumck summarize a CK file.
sumek summarize segments in a binary EK file sequentially.
sumspk summarize an SPK file.
wrcom display contents of comment area of binary SPK or CK for SPACIT.
------------------------------------------------------------------------------
COOKBOOK (these are programs--not subroutines!!!!)
fstspk compute state vector "fast" using SPK files.
simple example program calculating ang sep of 2 bodies from 3rd.
states example prog. to calc. state of 1 ssb relative to another.
subpt ex. prog. to calc. apparent sub-observer point on target (w/
light-time correction).
tictoc UTC/ET conversion.
sptest tests output of platform's spice with known 'correct' output.
-------------------------------------------------------------------------
-------------------------------------------------------------------------
link order for libraries
spacit.a library
support.a library
spicelib.a library