[Spice_announce] N55

Lee Elson lee.elson at jpl.nasa.gov
Wed Mar 5 11:32:17 PST 2003

Version N55 of the toolkit is now available at 
ftp://naif.jpl.nasa.gov/pub/naif/toolkit. Attached 
is the what's new file.

Lee Elson
-------------- next part --------------
     This document describes new and extended capabilities of the SPICE
     Toolkit. It also notes bug fixes. Each new version of the Toolkit is
     documented in a separate chapter that is titled with a version of the
     Toolkit. The most recent version of the Toolkit is documented first.
     The next most recent version is documented next, and so on.
     Those versions of the Toolkit described in this document are
        Version 55
        Version 54
        Version 53
        Version 52
        Version 51
        Version 50
        Version 49
        Version 48
        Version 47
        Version 46
        Version 45
        Version 44
        Version 43
        Version 42
        Version 41
Version 55 --- March 2003
     The N0055 version of the SPICE Toolkit is supported on the same
     environments as version N0054.
     SPK type 1 writer routine has been added.
     Scratch files no longer have their buffered portions flushed and are
     no longer segregated before before being closed. This change speeds up
     the close operation.
     Segment buffer size was increased from 2000 to 10000 to improve
     efficiency when handling SPK files with large number of segments.
Kernel POOL
     The buffer that stores distinct numeric data items from the text
     kernel files was increased. The new buffer size is 20000, which is the
     maximum total number of values for all numeric scalar and array pool
     variables together.
Type 1 SCLK
     The buffer that stores Type 1 SCLK coefficients was increased. The new
     buffer size is 10000.
New CSPICE wrappers
     Wrappers dasac_c and dasec_c have been added to CSPICE. These support
     DAS file comment area access.
Bug Fixes
Built-in NAIF ID Code/Name Definitions
     The following built-in NAIF ID code/name definitions have been
     corrected to match official MER name-ID mapping:
               -253     was MER-A, now MER-1
               -254     was MER-B, now MER-2
     MER-A and MER-B names are no longer supported by the Toolkit.
     DASCUD has been fixed so that it writes a new, empty cluster directory
     record at the correct location. This corrects an error introduced by a
     bug fix in N0054.
     OSCELT has been fixed so that it computes the argument of periapse
     correctly when the inclination is zero or 180 degrees. The mean
     anomaly computation has been corrected so that it works for circular
     and near-circular orbits. The computation of inclination has been
     changed to use ATAN2 for improved accuracy. Code that could generate
     arithmetic exceptions was corrected. Several new error checks have
     been added.
     Angular velocity computations for subtypes 0 and 1 have been changed
     to make them compatible with those used by the MEX/Rosetta attitude
     file interpolation algorithms.
     CKBRIEF has been updated to retrieve and display interpolation
     interval information from Type 2 CK files correctly in all cases.
Version 54 --- December 2002
Mailing Lists
     NAIF has created 2 mailing lists, ``Spice_announce''
     and ``Spice_discussion''
     ``Spice_announce'' is intended to provide notification of important
     developments such as a new toolkit release. Posting will generally be
     limited to members of the NAIF team. If you feel you have an important
     announcement that would be suitable for this list, you may send email
     to the list, but it will be reviewed by the NAIF team before
     ``Spice_discussion'' is meant to provide a forum for discussion among
     SPICE users. Posting on this list is encouraged, however we also
     encourage you to limit mail traffic to the entire list. Extended
     discussions are often best carried out with a limited distribution
     Both lists require registration, allow access to an archive of prior
     postings and allow the user to choose whether to receive individual
     postings or a daily digest.
     The N0054 version of the SPICE Toolkit is supported on the same
     environments as version N0053.
     FORTRAN and C versions of the COOKBOOK programs have been made more
     consistent in implementation and behavior. User's Guide documents for
     COOKBOOK programs have been updated and are now delivered with both
     FORTRAN and C toolkits. The FSTSPK COOKBOOK program has been
     deprecated and is no longer delivered.
New Built-in NAIF ID Code/Name Definitions
     The following new built-in NAIF ID code/name definitions have been
     added to the toolkit:
               -226     ROSETTA
        Jovian satellites:
                517     CALLIRRHOE
                518     THEMISTO
                519     MAGACLITE
                520     TAYGETE
                521     CHALDENE
                522     HARPALYKE
                523     KALYKE
                524     IOCASTE
                525     ERINOME
                526     ISONOE
                527     PRAXIDIKE
     User's Guide documents for TOBIN, TOXFR and VERSION utility programs
     have been added to the toolkit documentation.
Bug Fixes
Built-in Body-Fixed Frame for Pan
     Definition of the built-in body-fixed frame for PAN (IAU_PAN) has been
     updated to point to the correct PCK values used to compute its
     rotation. In the previous version of the toolkit it was pointing to
     PANDORA's rotation constants.
Surface Intercept Routine
     The surface intercept routine SURFPT/surfpt_c has been re-implemented
     to reduce loss of precision.
DAS Writer Routines
     DAS utility routine DASCUD has been fixed to ensure that DAS file
     structure is correct when files are closed without data segregation.
     Previously it was possible for unsegregated files to have an invalid
     final forward directory pointer. Note: this problem could not occur in
     E-kernels created by SPICE utility programs or using the SPICE EK API
CSPICE Cell Implementation
     The CELLINIT macro has been updated so that it doesn't modify data
     added to character cells prior to cell initialization. This enables
     population of uninitialized character cells via macro calls.
Body Name to Associated Frame Conversion Routine
     The routine CNMFRM retrieving the reference frame name for a specified
     body name has been fixed so a TK frame specified by name and
     designated as an object's preferred frame via kernel pool assignments
     is found, and so that the correct name of this frame is returned.
     CHRONOS has been updated to make sure that the iterative search for
     the nearest local midnight converges in all cases. It has also been
     updated to use the maximum system allowed file name length on VAX and
     DEC Alpha environments.
Version 53 --- September 2002
     The N0053 version of the SPICE Toolkit is supported in the following
        PC         Linux         g77
        PC         Windows       Compaq Visual (Digital) FORTRAN
        PC         Windows       Lahey FORTRAN 95
        PC         Linux         gCC
        PC         Windows       Microsoft Visual C++
        Sun        Solaris       FORTRAN
        Sun        Solaris       Native C
        Sun        Solaris       gCC
        HP         UX            HP FORTRAN
        HP         UX            HP C
        Macintosh  MacOS         Absoft FORTRAN
        Macintosh  MacOS         Metrowerks Codewarrior C
        Macintosh  OS-X          g77
        Macintosh  OS-X          Absoft FORTRAN
        Macintosh  OS-X          Apple C
        SGI        IRIX          N32/O32 FORTRAN
        SGI        IRIX          MIPS C (N32/O32 ABIs)
        DEC Alpha  Digital Unix  Digital FORTRAN
        DEC Alpha  Digital Unix  Digital C
        Vax        VMS           Digital FORTRAN
     The PC/Linux/g77 version previously supported the alternative
     ``fort77'' compiler. This is no longer the case. Contact NAIF if you
     need support for this compiler.
     The Macintosh OS-X environments are new.
New CSPICE wrappers for cell, set, and windows routines
     The complete set of C wrappers duplicating cell, sets, and windows
     capabilities existing in FORTRAN SPICE has been added to CSPICE.
New CSPICE wrappers for sorting and searching routines
     The following new CSPICE wrappers implementing sorting and searching
     capabilities have been added:
New CSPICE wrappers for string manipulation and parsing routines
     The following new CSPICE wrappers for string manipulation and parsing
     capabilities have been added:
SPK Type 18
     A new SPK type (Type 18) has been added. This incorporates ESA/ESOC
     model for a spacecraft ephemeris.
CK Type 5
     A new CK type (Type 5) has been added. This incorporates ESA/ESOC
     model for a spacecraft attitude data.
     BRIEF utility has been updated to allow summarizing SPKs containing
     ephemerides for up to 20,000 distinct bodies.
     COOKBOOK programs have been updated to use the highest level routines
     currently available in SPICE -- FURNSH, SUBPT, etc.
Bug Fixes
ID-to-name Translation
     SPICE's ID-to-name mapping subsystem has been updated to provide
     consistent behavior across all of its interfaces. It now correctly
     processes duplicate ID-to-name mapping assignments provided via text
     kernel files. Refer to the NAIF_IDS Required Reading for more details.
Built-in Body-Fixed Frames
     Missing body-fixed frames -- IAU_PAN, IAU_GASPRA, IAU_IDA, and
     IAU_EROS -- have been added to the built-in frame set.
Binary architecture consistency check at run-time
     Binary file format consistency check has been implemented at run time
     to verify that the toolkit prepared specifically for a platform with
     one binary file format has not been compiled/used on a platform with
     another binary file format.
Long/truncated lines in text kernel files
     The text kernel file reader has been modified to correctly process
     truncated string value assignments.
VMS Read-Only Access File Open Failure
     A bug in the DAF system preventing users on VMS systems from loading
     SPK, CK and binary PCK files with the read-only attribute(*) has been
Version 52 --- January 2002
     The N0052 version of the SPICE Toolkit is supported on the following
        PC         Linux         G77
        PC         Windows       Compaq Visual (Digital) Fortran
        PC         Windows       Lahey Fortran 95
        PC         Linux         GCC
        PC         Windows       Microsoft Visual C++
        Sun        Solaris       Fortran
        Sun        Solaris       Native C
        Sun        Solaris       GCC
        HP         UX            HP Fortran
        HP         UX            HP C
        Macintosh  MacOS         Absoft Fortran
        Macintosh  MacOS         Metrowerks Codewarrior C
        SGI        IRIX          N32/O32 Fortran
        SGI        IRIX          MIPS C (N32/O32 ABIs)
        DEC Alpha  Digital Unix  Digital Fortran
        DEC Alpha  Digital Unix  Digital C
        Vax        VMS           Digital Fortran
     The N0052 version of the SPICE Toolkit is no longer supported on the
     following environments:
        PC         Windows       Lahey F77L3
        PC         Windows       Microsoft Powerstation Fortran 1.x
        PC         Windows       Microsoft Powerstation Fortran 4.x
        Sun        SunOS         Fortran
        Macintosh  MacOS         Language Systems Fortran
        Next       Nextstep      Absoft Fortran
        Next       Nextstep      GCC
     Contact NAIF if you wish to obtain the Toolkit for one or more of
     these deprecated environments.
Run-Time Binary File Format Translation
     The most popular supported systems (including Macintosh, PC, and UNIX
     platforms) are now capable of accessing data in binary SPICE kernel
     files from other platforms directly without using transfer format. But
     note that binary files from other platforms are only available for
     read access. See the Convert User's Guide for specifics and details.
Open File Limit Increase
     The sum of loaded SPK, CK, and binary PCK files, all of which are
     implemented using the DAF file architecture, may now reach 1000.
     Previous versions of the toolkit restricted the number of loaded DAFs
     to 20. But caution: loading large numbers of files may impact system
SPK aberration corrections
     SPK readers can now perform aberration corrections for transmitted, as
     well as received, radiation. This feature makes it simple to compute
     the direction in which radiation must be emitted in order to reach a
     specified target.
     The headers of the SPK readers have been expanded to explain
     aberration corrections in greater detail.
Instrument Kernel Support
     GETFOV was extended to compute boundary corners from FOV definitions
     in the kernel pool utilizing the new ANGLES specification. See
     GETFOV's or getfov_c's header for details.
Kernel POOL
     The buffers that store text kernel data were increased. The new
     maximums are:
        Maximum Number of Variables                     5003
        Maximum Number of Distinct Numeric Data Items  10000 (*)
        Maximum Number of Character Strings             4000 (**)
     (*) This is the maximum total number of values for all numeric scalar
     and array pool variables together. (**) This is the maximum total
     number of values for all character scalar and array pool variables
     These changes allow the kernel pool to hold substantially more data
     than previous versions of the SPICE toolkit, which became necessary
     due to the increasing use of such SPICE components as IK and FK
     utilizing the POOL as the data repository and access mechanism.
Jacobian routines
     Routines have been added for computing the Jacobians of the
     transformations between rectangular and the following coordinate
     The Jacobian routines support transformation of velocities between
     these coordinate systems. See the headers of the following SPICELIB
     routines/CSPICE functions for more information:
NAIF ID to Object Name Mapping
     The NAIF IDs for the following missions has been added to the set of
     IDs built into SPICE:
     DAS and EK Required Reading documents have been added to the SPICE
     The CONVERT User's Guide has been updated to reflect new run-time
     binary file format translation capability.
     The FRAMES Required Reading has been updated to include inertial frame
     information formerly contained in the NAIF_IDS Required Reading.
     The NAIF_IDS Required Reading has been updated to reflect new Toolkit
     capability, through which the NAIF ID to name mappings can be defined
     using text kernel files.
     The MKSPK User's Guide has been updated to add clarity throughout.
     The ERROR, PCK, ROTATIONS, SPK, and TIME Required Reading documents
     have all been improved.
New CSPICE wrappers for EK routines
     CSPICE wrappers have been added to support record-oriented EK
     manipulation, including record-oriented writing, updating, and
     CSPICE wrappers have been added to provide summary capabilities for
     loaded EK tables.
Miscellaneous new CSPICE wrappers
     Some new CSPICE wrappers have been added:
     A capability to display a separate record for each interpolation
     interval in each segment of a Type 2 or Type 3 CK file has been added
     to the program. This capability is implemented using the ``-dump''
     command line option.
     An inconsistency between the program's functionality in interactive
     and command line modes has been fixed. The maximum length of a comment
     line that can be added to and extracted from the comments in either
     mode is now the same and is equal to 1000 characters.
     The program was modified to allow appending new data segments to an
     existing SPK file.
     The interface of this utility program has been extended: a command
     line parameter causing the program to display additional library
     information has been added. See ``version -help'' for details.
Bug Fixes
CK, PCK, and SPK segment buffering and selection
     Several bugs have been corrected in the modules CKBSR, PCKBSR, and
     SPKBSR. These bug fixes enable users to load more segments than can be
     buffered at once by these modules. However, the best run-time speed is
     still obtained when all segments of a given kernel type can be
     buffered. The current segment buffer sizes are:
        CK:    4000 segments
        SPK:   2000 segments
        PCK:    100 segments
Const-qualification for various CSPICE interfaces
     A number of CSPICE function interfaces have been updated to add
     const-qualification of input arrays. This fix enhances compatibility
     with C++ applications.
CSPICE function gcpool_c fixed
     This routine did not properly trim trailing blanks from values in its
     output array.
MOVED fix for Fortran PC Linux platform
     In some cases the routine MOVED incorrectly copied double precision
     numbers whose values were assigned via EQUIVALENCE statements with
     pairs of integers. This could happen when the integer bit patterns did
     not correspond to valid double precision numbers. This problem
     prevented correct manipulation of some DAF segment descriptors.
EK query processing using LIKE operator and null values
     Null values could be returned in some rare circumstances when a query
     employed the LIKE operator to compare scalar string column entries
     against a specified string value, and a null column entry was
EK time conversion
     The EK time parsing code handled SCLK values incorrectly when the
     string ``SCLK'' appeared in the name of the clock.
EK documentation
     Various headers have been updated to indicate that query-and-fetch
     operations and EK fast writer operations may not be interleaved.
Source code clean-up
     Miscellaneous problems triggering annoying but insignificant
     compilation warnings have been fixed. Various files have had TAB
     characters removed. Others have had final newline characters added.
Version 51 --- April 2000
Instrument Kernel Support
     The routine GETFOV was added to the Toolkit. It returns information
     describing the shape, size, boresight, and orientation of the field of
     view for traditional remote sensing instruments.
Binary Kernel Recognition
     The routine GETFAT was upgraded to use a more robust algorithm for
     identifying the type (SPK or CK) of inadequately labeled binary
     kernels. This modification is critical for Mars project SPICE
     customers who wish to use the SPICELIB utility FURNSH when loading
     binary kernels.
     A new representation for the orientation of spacecraft structures has
     been added to the C-kernel system. C-kernel data type 04 provides a
     flexible and compact method for representing the attitude of
     structures by using Chebyshev polynomials to fit orientation data or
     Two new representations for position and velocity of objects have been
     added to the SPK system. Types 12 and 13 provide for the Hermite
     interpolation of states from series of state vectors. See the SPK
     Required Reading for further details.
     The list of names recognized by BODTRN was enhanced to support the
     identification of the "Cluster" spacecraft (1,2,3 and 4) as well as
     the Pluto-Kuiper Express spacecraft and simulation.
     The utility program MKSPK has been added to the general release of the
     SPICE Toolkit. This allows SPICE customers to more easily generate SPK
     files from tabular ephemeris information. See the User's Guide
     (mkspk.ug) for details on the use of MKSPK.
     The program was upgraded to correct an "infinite loop" that existed in
     rare cases on some platforms.
Bug Fixes
     Although it is unlikely that most users will notice any difference, a
     number of minor bug corrections have been incorporated:
         --   The kernel pool software was modified to detect and handle
              string specifications that are too long to be stored in the
              kernel pool.
         --   The time parsing software (used by STR2ET) was enhanced so
              that erroneous long strings will be diagnosed as erroneous
              and no longer cause a run-time error.
Version 50 --- October 1999
     Version 50 of the SPICE Toolkit includes a C language edition of the
     Toolkit. This provides a C language interface to the Toolkit and
     duplicates the FORTRAN capabilities. SPICE users interested in a C
     version of the Toolkit should specifically request the CSPICE version.
     Moreover, C users should read the document "CSPICE User's Guide" which
     addresses issues regarding the translation of the FORTRAN Toolkit to
Additions and Extensions to SPICE routines
Loading Kernels
     The new routine FURNSH provides a single uniform interface for loading
     all SPICE kernels. In addition, the new interface allows you create a
     "meta-kernel" listing which SPICE kernels should be loaded. When this
     "meta-kernel" is supplied to FURNSH, all listed kernels will be loaded
     into the appropriate SPICE subsystems. It is anticipated that this new
     interface will substantially ease the problem of managing and loading
     SPICE kernels.
     In addition to the routine FURNSH several related routines are
     provided to assist with the run-time management of kernels loaded
     through the FURNSH interface.
           KTOTAL   returns the number of kernels that are currently
                    available to your program as a result of previous calls
                    to FURNSH and UNLOAD.
           KDATA    provides an interface for retrieving (in order of their
                    specification through FURNSH) kernels that are active
                    in your application.
           KINFO    allows you to retrieve information about a loaded
                    kernel using the name of that kernel.
           UNLOAD   provides an interface for unloading kernels that have
                    been loaded via the routine FURNSH.
     FORTRAN users should consult the header for the routine KEEPER for
     details on the use of these routines. C users should see the specific
     files furnsh_c.c, ktotal_c.c, kdata_c.c, kinfo_c.c and unload_c.c
Position Only Interface.
     The Frames and SPK subsystems have been extended to provide a
     "position only" interface. The user level routines in the extension
           SPKPOS   returns the 3-vector giving the location of one object
                    as seen from another corrected for light time and
                    stellar aberration (if requested by the user) in the
                    user specified reference frame.
           PXFORM   returns the 3x3 matrix that transforms positions from
                    one reference frame to another as a function of time.
     These routines run slightly faster than their position and velocity
     counter parts: SPKEZR and SXFORM. In addition they allow you to use
     C-kernel based frames when the C-kernel does not contain angular
     velocity data.
     See the routines PXFORM and SPKPOS for details on their use.
     The name/ID-code translation routines (BODN2C and BODC2N) have been
     extended so that users may add missing name/ID-code mappings to SPICE
     text kernels. Using this new capability, users can extend the built-in
     name/ID-code mapping by simply loading an appropriate SPICE text
     kernel with the interface FURNSH.
Kernel Pool Enhancements
     Several new kernel pool interfaces have been provided
           STPOOL   Allows storage of long string valued variables through
                    use of a continuation character.
           PCPOOL   Allows the insertion of a character variable directly
                    into the kernel pool without supplying a text kernel.
           PDPOOL   Allows the insertion of a double precision variable
                    directly into the kernel pool without supplying a text
           PIPOOL   Allows the insertion of an integer variable directly
                    into the kernel pool without supplying a text kernel.
           LMPOOL   Similar to LDPOOL, but the text kernel is stored in an
                    array of strings instead of an external file.
           SZPOOL   allows run time retrieval of kernel pool memory
           DVPOOL   allows deletion of a specific variable from the kernel
           GNPOOL   assists in determining which variables are defined in
                    the kernel pool via variable name template matching.
Continuous Spacecraft Clocks
     The Spacecraft Clock system has been extended so that "ticks" can be
     modeled continuously instead of discretely. See the SCLK required
     reading for more details.
Bad FTP File Transfer Detection
     SPICE binary kernels have been enhanced so that Toolkit software can
     detect whether a binary kernel has been transferred using ASCII
     instead of BINARY transfer mode. Note that only SPICE binary kernels
     produced with the N0050 (or later) version of the SPICE Toolkit will
     have features required for this diagnosis.
CK Writer Enhancements
     The SPICE C-kernel writers have been enhanced to check that
     quaternions supplied to the writer are indeed nearly unit length. This
     check allows detection of programming errors earlier in the kernel
     production process.
     No bugs were identified between version N0049 and N0050 of the
     Toolkit. However, users may notice that several routines have minor
     changes. The main reasons for code changes are:
         1.   Extending the range of inputs that can be handled by SPICE
         2.   Balancing the use of the SPICE error handling
              Check-in/Check-out tracing mechanism.
         3.   Removal of unused variables.
         4.   Corrections in grammar, spelling and other typographic errors
              in the headers of SPICE routines.
SPICE Utility Programs
     The utility program TOBIN which converts transfer format kernels to
     binary form, can now process transfer format kernels that have been
     wrapped with SFDUs.
     COMMNT now accepts command line arguments making it usable from user
     CKBRIEF is a new utility that allows you to quickly summarize a
     C-kernel in a manner similar to the summary capabilities provided by
     the SPK summary tool, BRIEF.
     MKSPK is a utility program that allows users to generate SPK files
     from appropriate and suitably tabularized position and velocity
     Many SPICE documents were edited and brought up to date. Most notable
     of these is the document KERNEL.REQ which discusses SPICE text kernels
     and the use of the kernel pool.
     In addition a new document called "Common Problems" (problems.req) has
     been included with the standard SPICE documentation. This document is
     intended to help you in trouble shooting problems that may arise with
     programming with the SPICE Toolkit.
Version 49 --- September 1998
     Version 49 of the SPICE Toolkit exists only to fix errors that were
     identified in version 48 of the Toolkit. The routines in SPICELIB that
     were corrected are:
        DELTET  --- obsolete routine maintained only for
                    backwards compatibility. A bug was
                    introduced in Version 48 that could
                    lead to 0.003 seconds of error in outputs.
        DPFMT   --- documentation corrections.
        EKQMRT  --- a boundary bug was corrected.
        SPKW02  --- documentation correction
        TIMDEF  --- a bug was fixed that can only be manifested
                    when the default exception handling is modified.
        TIMOUT  --- correction of grammatical errors in header.
Version 48 --- May 1998
     Version 48 of the SPICE Toolkit extends the set of supported platforms
     to include PCs running the LINUX operating system.
     The time system was modified so that two digit years are interpreted
     as belonging to the years 1969-2068 inclusive.
     In addition a number of minor bugs have been fixed. The intended
     functionality of the Toolkit has not changed. The most significant bug
     fixes are listed here.
        conics.for was updated.
           There was a coding error in the computation of the mean
           anomaly in the parabolic case. This problem has been
        et2lst.for was updated.
           The integer variable SUN was never initialized in the
           previous version of the routine. Now it is set to
           the proper value of 10.
        str2et.for was updated.
           The previous versions of this routine did not correctly
           convert day-of-year strings in the TDB or TDT systems.
           They treated the day of year as year, month, day giving
           spectacularly wrong answers.
           In addition, comments concerning the default century for
           abbreviated years were updated to reflect changes to TEXPYR
        timout.for was updated.
           The previous version of this routine did not output
           fractional components for epochs prior to 1 A.D.
           In addition, the default time system, calendar and time zone
           are obtained from TIMDEF.
Version 47 --- July 1997
     This chapter describes the significant changes to version 47 of the
     SPICE Toolkit.
     There are two significant documentation changes to version 47 of the
         1.   The Required Reading for SPK (SPK.REQ) has been re-written to
              address the use of non-inertial frames within the SPK system.
         2.   The Frames subsystem has been documented in the required
              reading file FRAMES.REQ. This document describes the various
              reference systems that are currently supported by the Toolkit
              as well as naming and numbering conventions that will be
              adhered to by NAIF.
     These two documents together with the extensions to the frame system
     that have been added in version 47 allows one to easily model the
     dynamics of structures on spacecraft or surface rovers.
     In addition to these major modifications to the base SPICE
     documentation, the document TIME.REQ has been updated to reflect a
     slight broadening of recognized time strings and to document the
     routine ET2LST that allows the user to convert to ephemeris time to
     local solar time for any natural ephemeris object.
     The SPK ephemeris system has been expanded to support Space Command
     Two Line Elements (formally known as NORAD Two Line Elements) and
     equinoctial elements.
     To assist SPICE users who need to create SPK files that contain two
     line element sets, NAIF has a preliminary utility that allows the
     creation of SPK files from two line element data. This tool is
     available from NAIF on an as-needed basis. This utility is still a bit
     rough around the edges and has not yet been made an official Toolkit
     The frame system has been extended to support reference frames that
     can be described as a constant rotation from another frame (such as a
     bodyfixed, inertial or C-kernel frame). These frames are easily
     described using text based kernels. This new frame type is well suited
     for describing instrument, lander and topocentric frames.
     The time parsing software was enhanced so that a slightly broader set
     of time formats are recognized. In addition the routine ET2LST was
     added to the Toolkit. This routine allows you to convert ET (ephemeris
     time TDB) to local solar time for a planet, satellite comet or
     asteroid. Local solar time is a "clock" measure of the angle between a
     local meridian and the meridian of the sun. See the TIME required
     reading for further details.
Bug Fixes
     The routines CKGPAV and CKFXFM in versions prior to version 47 of the
     Toolkit dealt with angular velocity in non-inertial frames
     incorrectly. This error did not affect C-kernels that were described
     relative to inertial frames. In those rare instances in which a
     C-kernel was described relative to a non-inertial frame, the
     mistreatment of angular velocity could lead to errors in the
     computation of velocities relative to the C-kernel frame. The
     computation of positions were not affected by this error.
     The routine TIMOUT in version 46 did not reliably produce an
     abbreviated two-digit year. This error has been corrected.
     All other errors were of a technical nature such as improper use of
     the SPICE exception handling subsystem and are unlikely to have
     affected most SPICE users.
Version 46 --- January 1997
     This chapter describes the significant changes to version 46 of the
     SPICE Toolkit.
     NAIF now has available two overview documents that provide users with
     a higher level view of Toolkit. The two documents are called
        Introduction to SPICE
        Most Useful SPICELIB Subroutines
     These documents are available in the ``doc'' subdirectory of the
     Toolkit in the postscript files
     The first of these documents, ``Introduction to SPICE'', provides a
     broad overview of the SPICE system and attempts to lay out a map of
     where you can find more specific information about the various
     components of the SPICE system. The second document ``Most Useful
     SPICELIB Routines'' categorizes 120 or so of the most frequently used
     SPICELIB routines and provides a synopsis for each of these.
     The time software has undergone significant enhancement. The Toolkit
     now supports a wider set of time formats and time systems. The most
     important new routines are:
     The new time software is outlined in the ``recommended reading'' file
     --- TIME.REQ which appears in the ``doc'' subdirectory of the Toolkit.
     A number of convenience routines have been added to the Toolkit. Those
     likely to be of most interest to users are:
           DPFMT    The routine DPFMT allows you to create a string
                    representing a number by supplying a ``picture'' that
                    should be followed in formatting the string.
           TOSTDO   The routine TOSTDO is a portable means of writing
                    strings to ``standard output.'' The particulars of
                    formatting on various platforms are handled
                    transparently. Using this routine, you can isolate
                    yourself from formatting considerations that arise when
                    using the intrinsic FORTRAN WRITE statement.
     The remainder of the modifications to the Toolkit are primarily to
     ease problems associated with maintenance of the Toolkit.
Version 45 --- October 1996
     Version 45 is a quick update to correct an oversight in versions 43
     and 44. Although the reference frames DE-143 was added to the
     collection of non-inertial reference frames in version 43, it was not
     available to all of the SPICE subsystems. Version 45 corrects this
     In addition to this correction to the reference frame subsystem, a
     number of minor corrections were made to the DAS subsystem and to
     error messages returned by EK software.
Version 44 --- August 1996
     This chapter describes the significant changes to version 44 of the
     SPICE Toolkit.
SPK Subsystem
     The main workhorse routine of the SPK subsystem, SPKGEO, was modified
     to remove potentially redundant computations. As a result, some
     applications may see a performance improvement on the order of 60
     Inspekt was upgraded to support the DEC Alpha OSF/1 environment. All
     functional aspects of Inspekt are now fully supported in the DEC Alpha
     OSF/1 environment.
Bug Fixes
     Several errors in the EK and supporting DAS subsystem were corrected.
     These fixes will be visible to only a small number of SPICE users.
     (Primarily those users who create E-kernels or access the EK files
     directly through the subroutine interface.) Users whose primary use of
     E-kernels is via the program Inspekt will see no visible changes in
     the SPICE system.
     The generic segment subsystem was corrected. The errors were
     discovered by the NAIF staff while developing new SPK data types.
     These new data types are not yet incorporated into SPICELIB.
     Consequently users of the SPICE system are unlikely to have used any
     of the code in which these errors were found.
     The frames subsystem was corrected. In NAIF's experiments in
     converting the library to C, an error was found in the routine FRMCHG.
     This error is of a pedantic nature and has not surfaced in any of the
     supported native FORTRAN environments.
Version 43 --- May 1996
     This chapter describes the new capabilities available in version 43 of
     the SPICE Toolkit.
     The SPICE utility program BRIEF has been added to the generic SPICE
     Toolkit. This program allows you to easily summarize the contents of
     an SPK file. The summary can be tuned depending upon the level of
     detail you are interested in seeing. See the BRIEF User's Guide
     (brief.ug) for an explanation of features.
Star Catalogs.
     In version 43 of the SPICE Toolkit, an introductory level star catalog
     capability has been introduced. The routines used for manipulating
     star catalogs are:
     Support for the inertial reference frame DE143 has been added to
     The routine BODTRN has been added to the Toolkit. This routine allows
     you to easily translate between the names of ephemeris objects to
     their NAIF ID codes.
Performance Improvements
     A number of performance enhancements have been included. Most notable
     in this list is the SPICE exception handling subsystem. By relinking
     your programs you may see an improvement in performance from 20 to 30
     percent (depending upon how heavily your program makes use of the
     SPICE exception handling capability).
Version 42 --- December 1995
     This chapter describes new capabilities available in version 42 of the
     SPICE Toolkit and includes examples of how to make use of these new
     capabilities. The major new capability of Version 42 of the Toolkit is
     the official release of the SPICE Events Kernel Software. This
     software includes all the interface level routines for reading and
     writing events kernels. It also includes the event kernel browser
     program Inspekt. Inspekt has an extensive on-line help facility that
     for now must serve as a user's guide to the program.
     Full documentation for the new capabilities will be available in
     version 43 of the Toolkit.
Version 41 --- October 1995
     This chapter describes new capabilities available in version 41 of the
     SPICE Toolkit and includes examples of how to make use of these new
     capabilities. There are two major new capabilities provided in version
     41 of the Toolkit. First is the ability to retrieve the states of
     objects by using the names of the objects instead of SPICE integer
     id-codes for those objects. Second is the ability to store and
     retrieve states of objects relative to non-inertial reference frames.
     Until now, the primary mechanism for retrieving state information from
     the SPICE ephemeris (SPK) files has been the subroutine SPKEZ
     (pronounced: ess pee kay eee' zee). This routine requires that you
     know the integer id-codes associated with the objects of interest.
     Beginning with version 41 of the SPICE Toolkit the routine SPKEZR
     (pronounced: ess pee kay eee' zee er ) will be the primary mechanism
     for retrieving states. The calling sequence for this new routine is
           TARG     is a character string that is the name of the object
                    whose state is of interest. Examples are: 'JUPITER',
                    'EARTH', 'SUN', 'GOLDSTONE'.
           ET       is the epoch at which the state is desired. ET is a
                    double precision number giving the epoch measure in
                    ephemeris seconds past the epoch of the J2000 reference
           REF      is a character string giving the name of the reference
                    frame in which the output state should be represented.
                    Examples are: 'J2000', 'IAU_EARTH'.
           ABCORR   is a string indicating what forms of aberration
                    corrections should be applied to the retrieved state.
           OBS      is a string that is the name of the object to which the
                    returned state will be relative. Examples are: 'EARTH',
           STARG    is the state of the target body relative to the
                    observer represented in the specified reference frame
                    with the specified aberration corrections accounted
           LT       is the light time in seconds from the the target to the
     To illustrate the use of this routine, suppose that you wanted to get
     the B1950 state of Mars relative to Earth corrected for light-time and
     stellar aberration at the epoch that occurs 10 million seconds prior
     to the J2000 epoch. The code fragment below shows how you would call
     SPKEZR to obtain this state. (Note that this assumes that you have
     already loaded ephemerides for Mars and the Earth.)
         DOUBLE PRECISION      STATE ( 6 )
         CALL SPKEZR ( 'MARS',  1.0D+07, 'B1950', 'LT+S',
        .             'EARTH', STATE, LT )
Non-inertial Reference Frames
     Prior to version 41 of the Toolkit, storing or obtaining states
     relative to a body-fixed frame required conversion to or from states
     relative to inertial frames such as J2000. With version 41 of the
     SPICE Toolkit, this restriction has been removed. It is now possible
     to store states relative to a non-inertial frame. Moreover, you may
     now retrieve states relative to non-inertial frames.
     For example suppose you want to determine whether or not Jupiter is
     above the local horizon at the Goldstone tracking site. The following
     code fragment allows you to make this determination at an epoch ET.
     Note we've hard-coded the radii for the spheroid that approximates the
     surface of the earth.
        C     Look up the bodyfixed state of Jupiter relative to
        C     the Goldstone tracking site and the state of
        C     Goldstone relative to the center of the earth.
              CALL SPKEZR ( 'JUPITER',   ET,    'IAU_EARTH', 'LT+S',
             .              'GOLDSTONE', JSTATE, LT )
              CALL SPKEZR ( 'GOLDSTONE', ET,    'IAU_EARTH', 'NONE',
             .              'EARTH',     GSTATE, LT )
        C     Compute the local surface normal at the Goldstone site.
              EQRAD1 = 6378.140
              EQRAD2 = 6378.140
              POLRAD = 6356.75
        C     Next compute the angle between the local normal and the
        C     vector to Jupiter. If the angle is less than pi/2 then
        C     Jupiter is above the local horizon.  Otherwise it's not
        C     visible.
              ANGLE = VSEP ( JSTATE, LNORML )
              IF ( ANGLE .LT. HALFPI() ) THEN
                 WRITE (*,*) 'Jupiter is above the horizon.'
                 WRITE (*,*) 'Jupiter is not visible from Goldstone.'
              END IF
     Below is a list of the non-inertial frames that are currently
     supported. Frames that begin with the letters IAU are frames whose
     orientation is specified in the report: "Report of the IAU/IAG/COSPAR
     Working Group on Cartographic Coordinates and Rotational Elements of
     the Planets and Satellites"

More information about the Spice_announce mailing list