What's New in SPICE

Main Page What's New in SPICE
## Table of Contents
       What's New in SPICE
       Introduction
       Version 63 --- April 2009
          Environments
             New Environments
             Complete List of Supported Environments
             Lahey Memory Issue Related to File Opening/Closing
             Scratch EK File Issue in Icy on PC/Windows
          Geometry Finder (GF) Subsystem
             SPICELIB High-Level GF APIs
             CSPICE High-Level GF APIs
             Icy and Mice High-Level GF APIs
          SPICELIB/CSPICE/Icy/Mice
             SURFPV/surfpv_c (SPICELIB/CSPICE only)
             DVSEP/dvsep_c (SPICELIB/CSPICE only)
             GETFOV
             FURNSH
             Improved Error Messages from PXFORM/SXFORM
             Built-in NAIF ID Code/Name Definitions
          Mice (MATLAB interface to CSPICE) Only
             New Interfaces
          New and Updated Applications
             FRMDIFF
             CKBRIEF
          Documentation
             Language Specific Required Reading Documents
             CKBRIEF User's Guide
          Bug Fixes
             SINCPT, SRFXPT
             POOL Watchers
             Frame subsystem
             Error handling
             Non-printing Character Detection in Time System
             MKSPK
             CKBRIEF
       Version 62 --- March 2008
          Environments
             New Environments
             Complete List of Supported Environments
             Use of -m32 Option
             Lahey Memory Issue Related to File Opening/Closing
             Scratch EK File Issue in Icy on PC/Windows
          Mice
          SPICELIB/CSPICE/Icy/Mice
             New ``Surface Intercept'' routine SINCPT
             New ``Illumination Angles'' routine ILUMIN
             New ``Sub-observer Point'' routine SUBPNT
             New ``Sub-solar Point'' Routine SUBSLR
             Improvements of Aberration Corrected Velocity in the SPK Subsystem
             New SPK Routines
             New Binary PCK Coverage Routines PCKFRM and PCKCOV
             New Routine WNCARD
             New Routine EDTERM
             SCLK Buffer Size Increase
             TABs in Text Kernels
             Built-in NAIF ID Code/Name Definitions
          Icy (IDL interface to CSPICE) Only
             New and Updated Interfaces
          Documentation
             Permutted Index for Icy and Mice
             BRIEF User's Guide
             Documentation on NAIF Web Server
          BRIEF
          CKBRIEF
          MKSPK
          SUBPT Cookbook
          Bug Fixes
             EV2LIN
             HYPTOF
             INELPL
             RAXISA
             SC01
             SRFXPT
             BRIEF
             CKBRIEF
             Header Updates
       Version 61 --- December 2006
          Rules Regarding Use of SPICE Components
          Environments
             New Environments
             Deprecated Environments
             Complete List of Supported Environments
             Use of -fPIC/-KPIC Option
             Lahey Memory Issue Related to File Opening/Closing
             Scratch EK File Issue in Icy on PC/Windows
          Documentation
          New Applications
             MSOPCK
             SPKDIFF
          SPICELIB/CSPICE/Icy
             KCLEAR Routine
             DAF Comment Area Routines
             DAF-based Kernel Open Routines
             DAFONW Routine
             SPKW02, SPKW03, and SPKW05 Routines
             Built-in NAIF ID Code/Name Definitions
          CSPICE Only
             New Wrappers
          Icy (IDL interface to CSPICE) Only
             New Interfaces
          Bug Fixes
             CKE05
             ET2LST
             UNLOAD
             STR2ET
             SURFPT
             CHRONOS
             Icy
             MKSPK
       Version 60 --- December 2005
          Bug Fixes
             Access to High Precision Binary Earth PCK
       Version 59 --- November 2005
          Rules Regarding Use of SPICE Components
          Environments
             New Environments
             Supported Environments
             Optimization for C/Icy environments
             Lahey Memory Issue Related to File Opening/Closing
             Scratch EK File Issue in Icy on PC/Windows
          SPICELIB/CSPICE/Icy
             Loading of Non-Native Text Kernels Files
             Additional Testing
             Deprecation of BODVAR in favor of BODVRD and BODVCD
             ``In Place'' Routines
             SPK Segment Buffer Increase
             EK Buffer Increased
             Built-in NAIF ID Code/Name Definitions
             Documentation
          CSPICE
             New Wrappers
          Icy (Interactive Data Language interface to CSPICE)
             Vectorization
             New interfaces
          Bug Fixes
             Non-standard Use of Duplicate Arguments in FORTRAN
             NEARPT
             ET2LST
             GETFOV
             CKW03
             INEDPL
             INSRTC
             String Parsing Routines
       Version 58 --- January 2005
          Environments
          SPICELIB/CSPICE/Icy
             Parameterized Dynamic Frames
             CK/SPK Coverage Summary Routines
             Planetographic Coordinate Conversion Routines
             ``L-sub-S'' Solar Longitude Routine
             Built-in NAIF ID Code/Name Definitions
             Documentation
          CSPICE
             New Wrappers
          Icy (Interactive Data Language interface to CSPICE)
             Vectorization
             Windows
             Other new interfaces
          Bug Fixes
             MKSPK Processing of TLE
             MKSPK Adding Comments When Appending to Existing SPK
             Icy/cspice_getfov
             DVPOOL/dvpool_c/cspice_dvpool
             CSPICE/kdata_c Function
             FRINFO/frinfo_c/cspice_frinfo
       Version 57 --- March 2004
          Environments
          Icy
          SPICELIB/CSPICE
             SRFXPT
             Support for Satellite IDs in the Range 10000-99999
             Detection of Non-native Text Files
             Documentation
             Built-in NAIF ID Code/Name Definitions
          INSPEKT
          TOBIN
       Version 56 --- August 2003
          Environments
          SPICELIB/CSPICE
             Documentation
             Built-in NAIF ID Code/Name Definitions
          CHRONOS
          Bug Fixes
             Reading Files with MAC-OSX Absoft FORTRAN Toolkit
             DAS Scratch Files
             Argument Checking in CSPICE Error Handling Functions
       Version 55 --- March 2003
          Environments
          SPICELIB
             SPKW01
             DASCLS
             SPKBSR
             Kernel POOL
             Type 1 SCLK
          CSPICE
             New CSPICE wrappers
          Bug Fixes
             Built-in NAIF ID Code/Name Definitions
             DASCUD
             OSCELT
             CKE05
             CKBRIEF
       Version 54 --- December 2002
          Mailing Lists
          Environments
          COOKBOOK Programs
          New Built-in NAIF ID Code/Name Definitions
          Documentation
          Bug Fixes
             Built-in Body-Fixed Frame for Pan
             Surface Intercept Routine
             DAS Writer Routines
             CSPICE Cell Implementation
             Body Name to Associated Frame Conversion Routine
             CHRONOS
       Version 53 --- September 2002
          Environments
          CSPICE
             New CSPICE wrappers for cell, set, and windows routines
             New CSPICE wrappers for sorting and searching routines
             New CSPICE wrappers for string manipulation and parsing routines
          SPICELIB
             SPK Type 18
             CK Type 5
          BRIEF
          COOKBOOK
          Bug Fixes
             ID-to-name Translation
             Built-in Body-Fixed Frames
             Binary architecture consistency check at run-time
             Long/truncated lines in text kernel files
             VMS Read-Only Access File Open Failure
       Version 52 --- January 2002
          Environments
          SPICELIB
             Run-Time Binary File Format Translation
             Open File Limit Increase
             SPK aberration corrections
             Instrument Kernel Support
             Kernel POOL
             Jacobian routines
             NAIF ID to Object Name Mapping
             Documentation
          CSPICE
             New CSPICE wrappers for EK routines
             Miscellaneous new CSPICE wrappers
          CKBRIEF
          COMMNT
          MKSPK
          VERSION
          Bug Fixes
             CK, PCK, and SPK segment buffering and selection
             Const-qualification for various CSPICE interfaces
             CSPICE function gcpool_c fixed
             MOVED fix for Fortran PC Linux platform
             EK query processing using LIKE operator and null values
             EK time conversion
             EK documentation
             Source code clean-up
       Version 51 --- April 2000
          SPICELIB
             Instrument Kernel Support
             Binary Kernel Recognition
             CK
             SPK
             Miscellaneous
          MKSPK
          SPKMERGE
             Bug Fixes
       Version 50 --- October 1999
          CSPICE
          Additions and Extensions to SPICE routines
             Loading Kernels
             Position Only Interface.
             ID-codes
             Kernel Pool Enhancements
             Continuous Spacecraft Clocks
             Bad FTP File Transfer Detection
             CK Writer Enhancements
             Bugs
          SPICE Utility Programs
             TOBIN
             COMMNT
             CKBRIEF
             MKSPK
          Documentation
       Version 49 --- September 1998
       Version 48 --- May 1998
       Version 47 --- July 1997
          Documentation
          Software
             SPK
             Frames
             Time
             Bug Fixes
       Version 46 --- January 1997
             Documentation
             Time
       Version 45 --- October 1996
       Version 44 --- August 1996
             SPK Subsystem
             Inspekt
             Bug Fixes
       Version 43 --- May 1996
             Brief
             Star Catalogs.
             CHGIRF
             BODTRN
             Performance Improvements
       Version 42 --- December 1995
       Version 41 --- October 1995
          Non-inertial Reference Frames
Top # What's New in SPICE Top # Introduction This document describes new and extended capabilities of the latest version 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 the 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. The versions of the Toolkit changes described in this document are
       Version 63
       Version 62
       Version 61
       Version 60
       Version 59
       Version 58
       Version 57
       Version 56
       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
Top # Version 63 --- April 2009 Top ## Environments Top ### New Environments The SPICE Toolkit is now officially supported on these new environments:
       FORTRAN Toolkit:

          Mac/Intel    OS-X          GFORTRAN
          PC           Linux         GFORTRAN

       Icy:

          PC           Linux         gCC / IDL 6.4 / 64bit
          Sun          Solaris       gCC / IDL 6.4 / 64bit

       Mice:

          PC           Linux         gCC / MATLAB 7.x / 64bit
Top ### Complete List of Supported Environments This is the complete list of environments on which the N0063 version of the SPICE Toolkit is supported:
       FORTRAN Toolkit:

          Mac/Intel    OS-X          Intel FORTRAN
          Mac/Intel    OS-X          GFORTRAN
          Mac/PowerPC  OS-X          Absoft FORTRAN
          Mac/PowerPC  OS-X          g77
          PC           CYGWIN        g77
          PC           Linux         g77
          PC           Linux         GFORTRAN
          PC           Linux         Intel FORTRAN
          PC           Windows       Compaq Visual (Digital) FORTRAN
          PC           Windows       Intel FORTRAN
          PC           Windows       Lahey FORTRAN 95
          Sun          Solaris       SUN FORTRAN

       CSPICE:

          Mac/Intel    OS-X          Apple C
          Mac/PowerPC  OS-X          Apple C
          PC           CYGWIN        gCC
          PC           Linux         gCC / 32bit
          PC           Linux         gCC / 64bit
          PC           Windows       MS Visual C
          Sun          Solaris       gCC / 32bit
          Sun          Solaris       gCC / 64bit
          Sun          Solaris       SUN C

       Icy:

          Mac/Intel    OS-X          Apple C / IDL 6.4 / 32bit
          Mac/PowerPC  OS-X          Apple C / IDL 6.4 / 32bit
          PC           Linux         gCC / IDL 6.4 / 32bit
          PC           Linux         gCC / IDL 6.4 / 64bit
          PC           Windows       MS Visual C / IDL 6.4 / 32bit
          Sun          Solaris       gCC / IDL 6.4 / 32bit
          Sun          Solaris       gCC / IDL 6.4 / 64bit
          Sun          Solaris       SUN C / IDL 6.4 / 32bit

       Mice:

          Mac/Intel    OS-X          Apple C / MATLAB 7.x / 32bit
          Mac/PowerPC  OS-X          Apple C / MATLAB 7.x / 32bit
          PC           Linux         gCC / MATLAB 7.x / 32bit
          PC           Linux         gCC / MATLAB 7.x / 64bit
          PC           Windows       MS Visual C / MATLAB 7.x / 32bit
Top ### Lahey Memory Issue Related to File Opening/Closing The Lahey memory issue related to file opening/closing described in the N0061 section of this document still persists in the N0063 version of the Toolkit. Top ### Scratch EK File Issue in Icy on PC/Windows The scratch EK file issue in Icy on PC/Windows described in the N0061 section of this document still persists in the N0063 version of the Toolkit. Top ## Geometry Finder (GF) Subsystem The N0063 version offers the first official release of the initial set of the SPICE Geometry Finder (GF) subsystem interfaces. The GF subsystem answers questions such as: `--` find the time(s) or time span(s) when a selected orbital geometric condition is "true" (e.g. a condition such as an occultation or transit) `--` find the time(s) or time span(s) when a specified geometric quantity, such as range or phase angle, is within a specified range. The GF Required Reading document, gf.req, provides a comprehensive description of the GF subsystem and its high-, mid-, and low-level APIs and includes numerous usage examples. For your convenience, the language-specific high-level GF APIs included in this release are listed in the three subsections below. Top ### SPICELIB High-Level GF APIs SPICELIB High-Level GF APIs for finding times of events satisfying numerical constraints are:
          GFDIST          determines time intervals when a specified
                          constraint on observer-target distance is met.

          GFPOSC          determines time intervals when a coordinate of an
                          observer-target position vector satisfies a
                          numerical constraint.

          GFSEP           determines time intervals when the angular
                          separation between the position vectors of two
                          target bodies relative to an observer satisfies a
                          numerical relationship.

          GFSNTC          determines time intervals when a coordinate of a
                          ray-surface intercept position vector satisfies a
                          numerical constraint.

          GFSUBC          determines time intervals when a coordinate of a
                          sub-observer point position vector satisfies a
                          numerical constraint.
SPICELIB High-Level GF APIs for finding times of events satisfying FOV constraints are:
          GFRFOV          determines time intervals when a specified ray
                          intersects the space bounded by the field-of-view
                          (FOV) of a specified instrument.

          GFTFOV          determines time intervals when a specified
                          ephemeris object intersects the space bounded by
                          the field-of-view (FOV) of a specified
                          instrument.
SPICELIB High-Level GF APIs for finding times of occultations are:
          GFOCLT          determines time intervals when an observer sees
                          one target occulted by another.
Top ### CSPICE High-Level GF APIs CSPICE High-Level GF APIs for finding times of events satisfying numerical constraints are:
          gfdist_c        determines time intervals when a specified
                          constraint on observer-target distance is met.

          gfposc_c        determines time intervals when a coordinate of an
                          observer-target position vector satisfies a
                          numerical constraint.

          gfsep_c         determines time intervals when the angular
                          separation between the position vectors of two
                          target bodies relative to an observer satisfies a
                          numerical relationship.

          gfsntc_c        determines time intervals when a coordinate of a
                          ray-surface intercept position vector satisfies a
                          numerical constraint.

          gfsubc_c        determines time intervals when a coordinate of a
                          sub-observer point position vector satisfies a
                          numerical constraint.
CSPICE High-Level GF APIs for finding times of events satisfying FOV constraints are:
          gfrfov_c        determines time intervals when a specified ray
                          intersects the space bounded by the field-of-view
                          (FOV) of a specified instrument.

          gftfov_c        determines time intervals when a specified
                          ephemeris object intersects the space bounded by
                          the field-of-view (FOV) of a specified
                          instrument.
CSPICE High-Level GF APIs for finding times of occultations are:
          gfoclt_c        determines time intervals when an observer sees
                          one target occulted by another.
Top ### Icy and Mice High-Level GF APIs Icy and Mice High-Level GF APIs for finding times of events satisfying numerical constraints are:
          cspice_gfdist   determines time intervals when a specified
                          constraint on observer-target distance is met.

          cspice_gfposc   determines time intervals when a coordinate of an
                          observer-target position vector satisfies a
                          numerical constraint.

          cspice_gfsep    determines time intervals when the angular
                          separation between the position vectors of two
                          target bodies relative to an observer satisfies a
                          numerical relationship.

          cspice_gfsntc   determines time intervals when a coordinate of a
                          ray-surface intercept position vector satisfies a
                          numerical constraint.

          cspice_gfsubc   determines time intervals when a coordinate of a
                          sub-observer point position vector satisfies a
                          numerical constraint.
Icy and Mice High-Level GF APIs for finding times of events satisfying FOV constraints are:
          cspice_gfrfov   determines time intervals when a specified ray
                          intersects the space bounded by the field-of-view
                          (FOV) of a specified instrument.

          cspice_gftfov   determines time intervals when a specified
                          ephemeris object intersects the space bounded by
                          the field-of-view (FOV) of a specified
                          instrument.
Icy and Mice High-Level GF APIs for finding times of occultations are:
          cspice_gfoclt   determines time intervals when an observer sees
                          one target occulted by another.
Top ## SPICELIB/CSPICE/Icy/Mice Top ### SURFPV/surfpv_c (SPICELIB/CSPICE only) The SURFPV routine (surfpv_c in SPICE) finding the state (position and velocity) of the surface intercept defined by a specified ray, ray velocity, and ellipsoid was added to the Toolkit. Top ### DVSEP/dvsep_c (SPICELIB/CSPICE only) The DVSEP function (dvsep_c in CSPICE) calculating the time derivative of the separation angle between two input states was added to the Toolkit. Top ### GETFOV The header of the GETFOV routine (getfov_c in CSPICE, cspice_getfov in Icy and Mice) was updated to provide a comprehensive specification of the IK keywords used to define FOVs and to include more practical examples of FOV definitions. Top ### FURNSH The FURNSH routine (furnsh_c in CSPICE, cspice_furnsh in Icy and Mice) was updated to support continued path values and to reject files with names longer than 255 characters. Top ### Improved Error Messages from PXFORM/SXFORM The formerly rather cryptic error messages ``There is insufficient information available to transform from ... to frame ....'' generated by PXFORM/SXFORM (pxform_c/sxform_c in CSPICE, cspice_pxform/cspice_sxform in Icy and Mice) have been improved to provide more context and to suggest what SPICE data may be missing. Top ### Built-in NAIF ID Code/Name Definitions The following new built-in NAIF ID code/name definitions have been added to the Toolkit:
       Spacecraft:

               -5    PLC
               -5    PLANET-C
               -68   MMO
               -68   MERCURY MAGNETOSPHERIC ORBITER
               -69   MPO
               -69   MERCURY PLANETARY ORBITER
              -140   EPOCH
              -140   DIXI

       Asteroids:

           2002867   STEINS
Top ## Mice (MATLAB interface to CSPICE) Only Top ### New Interfaces NAIF added the following interfaces to Mice for this release:
       cspice_cgv2el
       cspice_el2cgv
       cspice_lmpool
       cspice_nvc2pl
       cspice_nvp2pl
       cspice_saelgv
       cspice_vrotv
       cspice_wncard
       cspice_wnsumd
       cspice_wnvald
Top ## New and Updated Applications Top ### FRMDIFF The FRMDIFF program was added to the application set included in each SPICE toolkit. This program samples orientation of a reference frame known to SPICE or computes differences between orientations of two reference frames known to SPICE, and either displays this orientation or these differences, or shows statistics about it or them. Refer to the FRMDIFF User's Guide, frmdiff.ug, for more information about the program. Top ### CKBRIEF The CKBRIEF program was updated to display names of the frames associated with CK IDs when the new command line option ``-n'' is specified. The help information that the program displays when the command line option ``-h'' is specified was updated for clarity and contents. Top ## Documentation Top ### Language Specific Required Reading Documents The following Required Reading documents have been adapted for Icy and Mice:
       gf.req
       frames.req
       kernel.req
       naif_ids.req
       time.req
       windows.req
Top ### CKBRIEF User's Guide The CKBRIEF User's Guide, ckbrief.ug, was fully rewritten to describe new features added to the program and to provide examples illustrating all aspects of the program's functionality. Top ## Bug Fixes Top ### SINCPT, SRFXPT The routines SINCPT and SRFXPT were modified to not perform the quick test for non-intersection when observer-target distance is less than target's maximum radius. Top ### POOL Watchers A new POOL entry point DWPOOL (delete watch from pool) has been added. This routine deletes a specified agent from all POOL data structures that associate kernel variables and agents. Watcher overflow detection logic has been corrected in SWPOOL. In the following routines, watched kernel variables are no longer considered to be buffered when a lookup of one of these variables fails:
       BODC2N (via changes to ZZBODTRN)
       BODDEF (via changes to ZZBODTRN)
       BODN2C (via changes to ZZBODTRN)
       SCPART
       SCTYPE
       SCTK01 (SC01 entry point)
       SCFM01 (SC01 entry point)
       SCTE01 (SC01 entry point)
       SCET01 (SC01 entry point)
       SCEC01 (SC01 entry point)
       TTRANS
       UNITIM
Top ### Frame subsystem TKFRAM has been updated to use DWPOOL when it deletes a frame specification from its internal buffer; this corrects a bug that caused the watcher system to overflow when a large number of TK frame specifications were used. Top ### Error handling OUTMSG has been updated so that it correctly displays very long strings that have been substituted into the long error message. Top ### Non-printing Character Detection in Time System The low-level time string parser routines called by STR2ET (str2et_c in CSPICE, cspice_str2et in Icy and Mice), UTC2ET (utc2et_c in CSPICE, cspice_utc2et in Icy and Mice), and TPARSE (tparse_c in CSPICE, cspice_tparse in Icy and Mice) were updated to detect non-printing characters with ASCII codes greater than 126. Top ### MKSPK The program was updated to prevent signaling an error due to round off in the computed time step when creating Type 8 or Type 12 SPK files. Top ### CKBRIEF Two bugs in CKRBIEF were fixed: hanging up when no value is provided after the ``-f'' option and displaying a warning message and an incomplete summary in case of an insufficient buffer space. In the latter case the program now displays an error message. Top # Version 62 --- March 2008 Top ## Environments Top ### New Environments The SPICE Toolkit is now officially supported on this new environment:
       FORTRAN Toolkit:

          PC           Linux         Intel FORTRAN
Top ### Complete List of Supported Environments This is the complete list of environments on which the N0062 version of the SPICE Toolkit is supported:
       FORTRAN Toolkit:

          Mac/Intel    OS-X          Intel FORTRAN
          Mac/PowerPC  OS-X          Absoft FORTRAN
          Mac/PowerPC  OS-X          g77
          PC           CYGWIN        g77
          PC           Linux         g77
          PC           Linux         Intel FORTRAN
          PC           Windows       Compaq Visual (Digital) FORTRAN
          PC           Windows       Intel FORTRAN
          PC           Windows       Lahey FORTRAN 95
          Sun          Solaris       SUN FORTRAN

       CSPICE:

          Mac/Intel    OS-X          Apple C
          Mac/PowerPC  OS-X          Apple C
          PC           CYGWIN        gCC
          PC           Linux         gCC / 32bit
          PC           Linux         gCC / 64bit
          PC           Windows       MS Visual C
          Sun          Solaris       gCC / 32bit
          Sun          Solaris       gCC / 64bit
          Sun          Solaris       SUN C

       Icy:

          Mac/Intel    OS-X          Apple C / IDL 6.4 / 32bit
          Mac/PowerPC  OS-X          Apple C / IDL 6.4 / 32bit
          PC           Linux         gCC / IDL 6.4 / 32bit
          PC           Windows       MS Visual C / IDL 6.4 / 32bit
          Sun          Solaris       gCC / IDL 6.4 / 32bit
          Sun          Solaris       SUN C / IDL 6.4 / 32bit

       Mice:

          Mac/Intel    OS-X          Apple C / MATLAB 7.x / 32bit
          Mac/PowerPC  OS-X          Apple C / MATLAB 7.x / 32bit
          PC           Linux         gCC / MATLAB 7.x / 32bit
          PC           Windows       MS Visual C / MATLAB 7.x / 32bit
Top ### Use of -m32 Option The CSPICE library provided with the CSPICE, Icy, and Mice toolkits for PC / Linux / gCC / 32bit environment compiles with the -m32 option to produce 32bit code when recompiled on a 64bit PC. Top ### Lahey Memory Issue Related to File Opening/Closing The Lahey memory issue related to file opening/closing described in the N0061 section of this document still persists in the N0062 version of the Toolkit. Top ### Scratch EK File Issue in Icy on PC/Windows The scratch EK file issue in Icy on PC/Windows described in the N0061 section of this document still persists in the N0062 version of the Toolkit. Top ## Mice The N0062 version offers the first official release of Mice, the ANSI based interface between the MATLAB environment, a product of Mathworks, Inc. (http://www.mathworks.com), and the CSPICE library. If you downloaded a Mice package, refer to ``mice.req'' document and to the Mice HTML documentation pointed to by ``doc/html/index.html'' for more details. Top ## SPICELIB/CSPICE/Icy/Mice Top ### New ``Surface Intercept'' routine SINCPT Given an observer and a direction vector defining a ray, the new routine SINCPT (sincpt_c in CSPICE, cspice_sincpt in Icy and Mice) computes the surface intercept of the ray on a target body at a specified epoch, optionally corrected for light time and stellar aberration. This routine supersedes SRFXPT (srfxpt_c, cspice_srfxpt), which does not have an input argument for the target body-fixed frame name. Top ### New ``Illumination Angles'' routine ILUMIN The new routine ILUMIN (ilumin_c in CSPICE, cspice_ilumin in Icy and Mice) finds the illumination angles (phase, solar incidence, and emission) at a specified surface point of a target body. This routine supersedes ILLUM (illum_c, cspice_illum), which doesn't have an input argument for the target body-fixed frame name. Top ### New ``Sub-observer Point'' routine SUBPNT The new routine SUBPNT (subpnt_c in CSPICE, cspice_subpnt in Icy and Mice) computes the rectangular coordinates of the sub-observer point on a target body at a specified epoch, optionally corrected for light time and stellar aberration. This routine supersedes SUBPT (subpt_c, cspice_subpt), which does not have an input argument for the target body-fixed frame name. Top ### New ``Sub-solar Point'' Routine SUBSLR The new routine SUBSLR (subslr_c in CSPICE, cspice_subslr in Icy and Mice) computes the rectangular coordinates of the sub-solar point on a target body at a specified epoch, optionally corrected for light time and stellar aberration. This routine supersedes SUBSOL (subsol_c, cspice_subsol), which does not have an input argument for the target body-fixed frame name. Top ### Improvements of Aberration Corrected Velocity in the SPK Subsystem NAIF has upgraded the algorithms used by the SPICE Toolkit's SPK subsystem to improve the accuracy of certain velocity results returned by that subsystem. The new algorithms improve the accuracy of velocities that are corrected for light time alone, or both light time and stellar aberration. The new algorithms use the same non-relativistic models for aberration corrections as do the current SPK algorithms, but the new implementations of the velocity calculations are more accurate. The changes improve the accuracy of certain derived quantities, including range rates and times of periapse or apoapse, when aberration corrections are used. These changes improve current SPICE computations as well as being necessary for implementation of the upcoming geometric event finding subsystem. The changes do not affect the computation of aberration-corrected position vectors, nor do they affect uncorrected (``geometric'') states (position and velocity). A few examples of the magnitudes of improvements afforded by the new algorithms are shown below. All velocities are inertially referenced. `--` Range rate of the light time corrected position of the Moon as seen from the DSN station DSS-25: 1 cm/sec `--` Range rate of the light time and stellar aberration corrected position of the Moon as seen from DSS-25: 13 cm/sec `--` Range rate of the light time corrected position of Mars as seen from DSS-25: 55 cm/sec `--` Range rate of the light time and stellar aberration corrected position of Mars as seen from DSS-25: 1.6 m/sec `--` Range rate of the light time corrected position of Cassini as seen from DSS-25: 9 cm/sec `--` Range rate of the light time and stellar aberration corrected position of Cassini as seen from DSS-25: 3.4 m/sec `--` Velocity of the Neptune barycenter, as seen from DSS-25, corrected for light time: 25 cm/sec `--` Velocity of the Neptune barycenter, as seen from DSS-25, corrected for light time and stellar aberration: 400 m/sec Negative effects of the changes are `--` Velocity computations using stellar aberration corrections are slower; the extent of the effect varies considerably depending on the inputs to the computations, but tests indicate that some common computations would be slower by a factor of 2. But take note: since computation of aberration-corrected states is usually a small fraction of the computational workload of SPICE-based applications, the effect on the speed of SPICE-based applications is very small, and in a majority of cases would likely not be discernible at all. Also note, the effect on speed of an application that simply ``reads'' state vectors from an SPK file is nil since aberration corrections are not used for this purpose. `--` Using the upgraded algorithms would change outputs of some SPICE-based user applications. In these situations, a user's regression tests could be affected. `--` If a user's application counts on the specific, current implementation of velocity aberration corrections, a problem could occur. NAIF believes any possible negative consequences are outweighed by the benefits of improved accuracy. Below we briefly describe the differences between the old and new aberration correction algorithms. The previous SPK light time correction algorithms introduce errors by ignoring the rate of change of light time with respect to time. This occurs in two places: `--` In computation of light-time corrected velocity referenced to inertial reference frames `--` In computation of light-time corrected velocity referenced to non-inertial reference frames centered at an object other than the observer. The new light time algorithms correct both of these errors. SPICE supports stellar aberration correction only when light time correction is used as well. Previously, the velocity returned when light time and stellar aberration corrections were used is identical to that returned when only light time correction is used. The new algorithm computes light time and stellar aberration-corrected velocity as the derivative with respect to time of light time and stellar aberration-corrected position. Top ### New SPK Routines To support improvements to the SPK subsystem described above, three new SPK routines were added (described below). In most cases SPICE users would not call one of these routines, using the high-level APIs SPKEZR or SPKEZ instead. For the N0062 release these routines are available only in SPICELIB and CSPICE. SPKACS The new routine SPKACS (spkacs_c in CSPICE) returns the state (position and velocity) of a target body relative to an observer, optionally corrected for light time and stellar aberration, expressed relative to an inertial reference frame. SPKAPS Given the state and acceleration of an observer relative to the solar system barycenter, the new routine SPKAPS (spkaps_c in CSPICE) returns the state (position and velocity) of a target body relative to the observer, optionally corrected for light time and stellar aberration. All input and output vectors are expressed relative to an inertial reference frame. SPKLTC The new routine SPKLTC (spkltc_c in CSPICE) returns the state (position and velocity) of a target body relative to an observer, optionally corrected for light time, expressed relative to an inertial reference frame. Top ### New Binary PCK Coverage Routines PCKFRM and PCKCOV The new PCK coverage determination routine PCKCOV (pckcov_c in CSPICE) provides an API with which an application can find the time period(s) during which a specified binary PCK file provides data for a specified reference frame. The coverage information is a set of disjoint time intervals returned in a SPICE ``window'' data structure. The new PCK routine PCKFRM (pckfrm_c in CSPICE) provides an API via which an application can find the set of reference frames for which a specified binary PCK file contains data. The coverage information is returned in a SPICE ``set'' data structure. For the N0062 release these routines are available only in SPICELIB and CSPICE. Top ### New Routine WNCARD The new routine WNCARD (wncard_c in CSPICE, cspice_wncard in Icy) returns the cardinality -- number of intervals -- of a SPICE ``window'' data structure. For the N0062 release this routine is available only in SPICELIB, CSPICE, and Icy. Top ### New Routine EDTERM The new routine EDTERM computes a set of points on the umbral or penumbral terminator of a specified target body, where the target shape is modeled as an ellipsoid. For the N0062 release this routine is available only in SPICELIB. Top ### SCLK Buffer Size Increase The sizes of the internal buffers in the SCLK subsystem have been increased to allow SCLK kernels to include up to 9,999 partitions. Top ### TABs in Text Kernels The low level routines called by the SPICE kernel loader routine FURNSH were modified to ignore TAB characters present in text kernels files on all supported environments. Top ### Built-in NAIF ID Code/Name Definitions The following new built-in NAIF ID code/name definitions have been added to the Toolkit:
       Spacecraft:

               -18   LCROSS
               -29   NEXT
               -86   CH1
               -86   CHANDRAYAAN-1
              -131   KAGUYA
              -140   EPOXI
              -151   CHANDRA
              -187   SOLAR PROBE

       Satellites:

               636   AEGIR
               637   BEBHIONN
               638   BERGELMIR
               639   BESTLA
               640   FARBAUTI
               641   FENRIR
               642   FORNJOT
               643   HATI
               644   HYROKKIN
               645   KARI
               646   LOGE
               647   SKOLL
               648   SURTUR
               649   ANTHE
               650   JARNSAXA
               651   GREIP
               652   TARQEQ

               809   HALIMEDE
               810   PSAMATHE
               811   SAO
               812   LAOMEDEIA
               813   NESO
The following built-in NAIF ID code/name definitions for Jovian system satellites have been modified to conform to the current name/body mapping:
       Satellites:

               540   MNEME
               541   AOEDE
               542   THELXINOE
               543   ARCHE
               544   KALLICHORE
               545   HELIKE
               546   CARPO
               547   EUKELADE
               548   CYLLENE
               549   KORE
The following provisional default NAIF ID code/name definitions have been removed:
       Spacecraft:

              -172   SPACETECH-3 COMBINER
              -174   PLUTO-KUIPER EXPRESS
              -175   PLUTO-KUIPER EXPRESS SIMULATION
              -205   SPACETECH-3 COLLECTOR

       Satellites:

               514   1979J2
               515   1979J1
               516   1979J3
               610   1980S1
               611   1980S3
               612   1980S6
               613   1980S13
               614   1980S25
               615   1980S28
               616   1980S27
               617   1980S26

               706   1986U7
               707   1986U8
               708   1986U9
               709   1986U4
               710   1986U6
               711   1986U3
               712   1986U1
               713   1986U2
               714   1986U5
               715   1985U1
               718   1986U10

               901   1978P1
The spelling in the following built-in NAIF ID code/name definitions have been corrected:
       Satellites:

               MAGACLITE to MEGACLITE
The following built-in objects have been renamed:
       Spacecraft:

               STV-1 to STV51
               STV-2 to STV52
               STV-3 to STV53

       Satellites:

               ERRIAPO to ERRIAPUS
Top ## Icy (IDL interface to CSPICE) Only Top ### New and Updated Interfaces NAIF added the following interfaces to Icy for this release:
       cspice_getelm
       cspice_spkw10
       cspice_wncard
       cspice_subpnt
       cspice_subslr
       cspice_dafac
       cspice_dafdc
       cspice_dafec
       cspice_subpnt
       cspice_subslr
       cspice_sincpt
These Icy interfaces now process vectorized arguments:
       cspice_etcal
       cspice_furnsh
       cspice_unload
These Interfaces have been removed from Icy:
       cspice_spkw15
       cspice_spkw17
Top ## Documentation Top ### Permutted Index for Icy and Mice The permutted index documents have been added to the ASCII and HTML documentation sets provided with the Icy and Mice Toolkits. Top ### BRIEF User's Guide The BRIEF User's Guide, brief.ug, was fully rewritten to describe new features added to the program and to provide examples illustrating all aspects of the program's functionality. Top ### Documentation on NAIF Web Server The documentation provided in the generic SPICE, CSPICE, Icy and Mice Toolkits is now also available at this URL on the NAIF Web server:
       http://naif.jpl.nasa.gov/naif/documentation.html
Top ## BRIEF The BRIEF utility program was modified to: `--` summarize binary PCK files `--` summarize SPK files provided in meta-kernels `--` load text kernels `--` display times as calendar UTC (``-utc'' option), day-of-year UTC (``-utcdoy'' option), and ET seconds (``-etsec'' option) `--` detect attempts to summarize unsupported kernel types (CK, EK, transfer format kernels, etc.) The program's help and usage displays as well as the formats of the summary reports were improved. The internal buffers holding summary information were increased to allow summarizing SPK files or file sets containing up to 100,000 bodies. Top ## CKBRIEF The CKBRIEF utility program was modified to: `--` summarize CK files provided in meta-kernels `--` detect attempts to summarize unsupported kernel types (SPK, binary PCK, EK, transfer format kernels, etc.) The program's help and usage displays were improved. The internal buffers holding summary information were increased to allow summarizing CK files containing up to 100,000 segments. Top ## MKSPK The capability to accept time tags given as ET seconds past J2000 was added to the program. The TIME_WRAPPER setup keyword must be set to the special value '# ETSECONDS' to make the program recognize and process such time tags. Top ## SUBPT Cookbook The cookbook program SUBPT was updated to illustrate use of the new ``sub-observer point'' routine SUBPNT. Top ## Bug Fixes Top ### EV2LIN Corrected error in the calculation of the C4 term due to typographic error in expression. Top ### HYPTOF An error in the HYPTOF routine affecting cases of evaluating elements of a hyperbolic trajectory with a very large eccentricity with respect to a small body (low gravity) has been fixed. Top ### INELPL The routine's specification and behavior have been updated so the routine now returns a meaningful result for the case of an ellipse consisting of a single point. Also, in the degenerate case where the input ellipse is a line segment of positive length, and this segment intersects the plane, the number of intersection points is set to 1 rather than 2. Top ### RAXISA Minor edit to the ANGLE declaration strictly identifying the constant as a double. This change eliminates an occasional compiler warning. Top ### SC01 The routine was fixed to correctly insert spaces between fields when the output field delimiter is blank. Top ### SRFXPT The routine was corrected to no longer apply the light time improvement logic in near-miss cases when a geometric solution is requested via ABCORR. Top ### BRIEF A number of bugs were fixed in the BRIEF utility program in the course of the modifications described above. The two most significant of these bugs were hanging up when no value was provided after ``-from'', ``-to'',``-at'', and ``-f'' options, and a logic expression error causing the program's crash on the Intel FORTRAN environments. Top ### CKBRIEF The bug causing an unsolicited grouping display on some C environments was fixed. Top ### Header Updates A number of formatting problems, typos, and errors in examples were fixed in the SPICE, CSPICE, and Icy headers. Top # Version 61 --- December 2006 Top ## Rules Regarding Use of SPICE Components The rules regarding use of SPICE components have been updated to reflect the new ITAR clearance for the SPICE toolkit, documentation and data. Please see the RULES page of the NAIF website: http://naif.jpl.nasa.gov/naif/rules.html for details. Top ## Environments Top ### New Environments The SPICE Toolkit is now officially supported on these new environments:
       FORTRAN Toolkit:

          Mac/Intel    OS-X          Intel FORTRAN
          PC           Windows       Intel FORTRAN

       CSPICE:

          Mac/Intel    OS-X          Apple C
          Sun          Solaris       gCC/64bit

       Icy:

          Mac/Intel    OS-X          Apple C / IDL 6.3
Top ### Deprecated Environments The SPICE Toolkit is no longer supported on these environments:
       FORTRAN Toolkit:

          HP           UX-10         HP FORTRAN
          Vax          VMS           Digital FORTRAN

       CSPICE:

          HP           UX-10         HP C
Top ### Complete List of Supported Environments This is the complete list of environments on which the N0061 version of the SPICE Toolkit is supported:
       FORTRAN Toolkit:

          Mac/Intel    OS-X          Intel FORTRAN
          Mac/PowerPC  OS-X          Absoft FORTRAN
          Mac/PowerPC  OS-X          g77
          PC           CYGWIN        g77
          PC           Linux         g77
          PC           Windows       Compaq Visual (Digital) FORTRAN
          PC           Windows       Intel FORTRAN
          PC           Windows       Lahey FORTRAN 95
          Sun          Solaris       SUN FORTRAN

       CSPICE:

          Mac/Intel    OS-X          Apple C
          Mac/PowerPC  OS-X          Apple C
          PC           CYGWIN        gCC
          PC           Linux         gCC
          PC           Linux         gCC/64bit
          PC           Windows       Microsoft Visual C
          Sun          Solaris       gCC
          Sun          Solaris       gCC/64bit
          Sun          Solaris       SUN C

       Icy:

          Mac/Intel    OS-X          Apple C / IDL 6.3
          Mac/PowerPC  OS-X          Apple C / IDL 6.3
          PC           Linux         gCC / IDL 6.3
          PC           Windows       Microsoft Visual C / IDL 6.3
          Sun          Solaris       gCC / IDL 6.3
          Sun          Solaris       SUN C / IDL 6.3
Top ### Use of -fPIC/-KPIC Option The CSPICE library provided with the CSPICE and Icy toolkits is now compiled with the -fPIC or -KPIC option resulting in position-independent code, suitable for dynamic linking all environments that support it. Top ### Lahey Memory Issue Related to File Opening/Closing Users of Lahey FORTRAN under the Windows operating systems should be aware that the F95 compiler allocates a small amount of memory, in connection with the process of using file OPEN and INQUIRE statements, that it might not free at the end of the file manipulation process. Since the simple opening of a binary kernel file can involve multiple OPEN and INQUIRE statements, the result of this allocation is that if the user were to open many (e.g. 100 or more) kernel files, an application program could sequester memory that would not be freed as expected. A virtual memory error message such as "A work area cannot be reserved because of insufficient area" may result from this situation. This can adversely affect the stability of the Windows operating system, even after the user program is terminated. We believe that this behavior affects all versions of SPICELIB, including the N61 version. We are working with Lahey to resolve this issue. Top ### Scratch EK File Issue in Icy on PC/Windows An issue may exist when using EK scratch files from IDL under Microsoft Windows. The cspice_ekcls call may fail to delete the scratch file created by the cspice_ekops call. This file normally has a name style similar to tmp.Fxxxxx. You can manually delete the file only after you close the IDL application. This problem does not affect use of the file or cause any known instability to Icy. Top ## Documentation Starting with N0061 every SPICE toolkit package comes with a complete set of HTML documentation consisting of: `--` brief introduction to the SPICE system `--` overview of specifics of SPICE implementation for a given language (for CSPICE and Icy only) `--` description of the Toolkit package layout and contents `--` language specific summary of Most Used SPICE APIs by category `--` complete reference guide for all public APIs, derived from the source headers and provided with an alphabetical index `--` Permuted Index of all public APIs `--` complete set of Required Reading documents, provided with an index `--` complete set of User's Guide documents, provided with an index All HTML documents in this set are cross-hyperlinked -- every instance of an API name in Required Reading, index or other documents is linked to the API HTML page derived from its source code header; every reference to a Required Reading document in the API HTML pages, indexes and other documents is linked to the Required Reading's HTML page, and so on. In some cases HTML pages are also linked to the actual source code modules, specifically from the Permuted Index document and from the bottom of each of the each individual API pages. The top level index file
       doc/html/index.html
provides a single entry point to all HTML documentation. While the CSPICE and Icy set of individual API HTML pages contains a page for each of the public routines, the SPICELIB (Fortran) set does not provide HTML pages for about 30 routines that are different on different environments. NAIF omitted them in this Toolkit version due to some technical difficulties in assembling the Toolkit packages and will try to fix this situation in the next release of the Toolkit. Also, the SPICELIB HTML documentation set does not include links to a small set of APIs that have names that are either common words (POS, FRAME, ROTATE, RETURN) or terms (J2000, B1950) commonly used in the SPICE documentation. Top ## New Applications Top ### MSOPCK The MSOPCK program was added to the application set included in each SPICE toolkit. This program converts attitude data provided in a text file as UTC, SCLK, or ET-tagged quaternions, Euler angles, or matrices, optionally accompanied by angular velocities, into a type 1, 2, or 3 SPICE C-kernel. Refer to the MSOPCK User's Guide, msopck.ug, for more information about the program. Note: an earlier version of this program has been available in some mission-specific Toolkits and through the NAIF website. We recommend users replace that older version with this one. Top ### SPKDIFF The SPKDIFF program was added to the application set included in each SPICE toolkit. This program computes differences between geometric states obtained from two SPK files and either displays these differences or shows statistics about them. Refer to the SPKDIFF User's Guide, spkdiff.ug, for more information about the program. Note: SPPKDIFF replaces a predecessor program named CMPSPK that had limited distribution. Top ## SPICELIB/CSPICE/Icy Top ### KCLEAR Routine A call to KCLEAR unloads all files loaded via FURNSH and clears the kernel pool. Calling KCLEAR at the end of an Icy-based IDL script ensures that kernels loaded during script execution won't contaminate results from Icy-based scripts run subsequently during the same IDL session. Top ### DAF Comment Area Routines The former support library routines DAFAC, DAFDC, and DAFEC have been moved into SPICELIB. These routines provide comment area access for DAF-based files, such as SPK, CK, and binary PCK files. DAFAC appends to the contents of a DAF's comment area text provided in a buffer. DAFDC deletes all comments from the comment area. DAFEC extracts the contents of the comment area into a buffer. These routines are available in SPICELIB and CSPICE; they are not yet supported in Icy. Top ### DAF-based Kernel Open Routines The routines CKOPN, PCKOPN, and SPKOPN, which open new CK, binary PCK and SPK kernels respectively, now are able to reserve a caller-specified amount of space in the new file's comment area at the time of file creation. This allows faster comment addition when comments must be added after the kernel contains a large amount of data, since the data need not be shifted to make room in the comment area. The calling sequences of these routines have not changed. The routines' input argument NCOMCH was previously disregarded; it now specifies the amount of comment area space to reserve. This change applies to SPICELIB, CSPICE, and Icy. Top ### DAFONW Routine The routine DAFONW, which opens a new DAF, now initializes the DAF comment area when comment area records are reserved. The comment records are null-padded as before, but now the first character of the comment area is initialized with the ``end-of-comments'' character. This provides a correctly initialized empty comment area that can be accessed by SPICE routines and utilities. Formerly this initialization had to be carried out by the calling program. This change supports the capability of reserving space in the comment area now provided by the higher-level kernel opening routines CKOPN, PCKOPN, and SPKOPN. Top ### SPKW02, SPKW03, and SPKW05 Routines The restriction that the input reference frame should be inertial has been removed from SPK Type 2, 3 and 5 writer routines SPKW02, SPKW03 and SPKW05. Any application that calls there routines, including the MKSPK program, can now create a type 2, 3, or 5 SPK file with data given with respect to a non-inertial frame. Top ### Built-in NAIF ID Code/Name Definitions The following new built-in NAIF ID code/name definitions have been added to the Toolkit:
       Spacecraft:

               -61   JUNO
               -76   MSL
               -76   MARS SCIENCE LABORATORY
               -85   LRO
               -85   LUNAR RECON ORBITER
               -85   LUNAR RECONNAISSANCE ORBITER
              -212   STV-1
              -213   STV-2
              -214   STV-3

       Satellites:

               540   ARCHE
               541   EUKELADE
               546   HELIKE
               547   AOEDE
               548   HEGEMONE
               551   KALLICHORE
               553   CYLLENE
               560   CARPO
               561   MNEME

               635   DAPHNIS

               722   FRANCISCO
               723   MARGARET
               724   FERDINAND
               725   PERDITA
               726   MAB
               727   CUPID

               902   NIX
               903   HYDRA
The following provisional name/ID mappings for the Jovian system satellites were replaced or removed from the Toolkit:
        539         'HEGEMONE'              JXXXIX
        540         'MNEME'                 JXL
        541         'AOEDE'                 JXLI
        542         'THELXINOE'             JXLII
        543         'ARCHE'                 JXLIII
        544         'KALLICHORE'            JXLIV
        545         'HELIKE'                JXLV
        546         'CARPO'                 JXLVI
        547         'EUKELADE'              JXLVII
        548         'CYLLENE'               JXLVIII
The new mapping leaves the IDs 539, 542-545, 549, 550, 552, 554-559 unassigned. The following name spelling correction has also been made:
               632   METHODE to METHONE
Top ## CSPICE Only Top ### New Wrappers The following interfaces to SPICE routines were added to CSPICE in this release:
       dafac_c        dafdc_c         dafec_c
       dafgda_c       dascls_c        dasopr_c
       kclear_c
Top ## Icy (IDL interface to CSPICE) Only Top ### New Interfaces NAIF added the following new Icy interfaces for this release:
       cspice_appndd  cspice_appndi   cspice_badkpv
       cspice_dafgda  cspice_dascls   cspice_dasopr
       cspice_inter   cspice_kclear   cspice_valid
Top ## Bug Fixes Top ### CKE05 Several functional changes were made to the CK type 5 evaluator CKE05. These changes affect all CK type 5 subtypes EXCEPT subtype 1, which is used by the Mars Express, Rosetta, Venus Express, and SMART-1 missions. These changes are not expected to affect current SPICE users. First change: the evaluator now assumes that input rate information, whether in the form of quaternion derivatives or angular velocity vectors, has units of radians/second. This makes the routine's interface consistent with SPICE conventions. This change affects subtypes 0, 2, and 3. Second change: the evaluator no longer attempts to improve interpolation of quaternion derivatives by negating, if necessary, the derivatives provided in the input record. This places on C-kernel creators the burden of determining correct quaternion derivatives suitable for Hermite interpolation. This decision was made because the selection functionality cannot be implemented in a completely reliable way for the case where the derivatives have very small magnitude (which in practice is not a rare case). Quaternions themselves still WILL be negated if necessary for correct Hermite interpolation. This change affects subtypes 0 and 2. Top ### ET2LST The bug for bodies with retrograde rotation causing the local time to flow backwards has been fixed. The local time for all types of bodies now progresses as expected -- midnight, increasing AM hours, noon, increasing PM hours, next midnight, and so on. Top ### UNLOAD The bug causing incorrect meta-kernel unloading was fixed. Formerly some sequences of FURNSH and UNLOAD calls could cause UNLOAD to become unable to unload meta-kernels correctly: in some cases, kernels referenced by the meta-kernels were not unloaded when they should have been. Top ### STR2ET Two bugs were fixed. The first bug caused the routine to return incorrect results in some cases on calls following calls for which a time zone was specified. The second bug caused the routine to generate a memory violation exception for blank input strings on some environments (HP). Top ### SURFPT The ray's surface intercept is now always set to the ray's vertex when the vertex is on the ellipsoid's surface. Formerly, for inward-pointing direction vectors, the ray's point of egress from the ellipsoid was selected as the intercept. The new functionality is consistent with the routine's documentation, which claims that the intercept closest to the ray's vertex is selected. Top ### CHRONOS Two bugs were fixed. The first bug caused slightly incorrect computation of the mean local second duration, which could have resulted in a leap in the LST SOL counting. For landed Martian missions this bug would have exhibited itself after approximately SOL 2100. The second bug prohibited conversion from and to LST for local times a few seconds before midnight, in the 23:59:00-23:59:59 range. The important side effect of correcting the first bug is that due to the fact that LST is returned with integer local seconds the result of any conversion from and to LST differs slightly -- by less that 1 second -- from the same conversion done by the previous versions of the program. Top ### Icy The bug causing a cascade of 'zzerror_c' strings prefixed to error strings has been fixed. Top ### MKSPK The bug causing the 8th input equinoctial element (DMPN/DT) to be assigned to the 8th (DMPN/DT) and 9th (DNOD/DT) equinoctial elements stored in the output SPK file when the first six equinoctial elements were derived from input states or classical elements was fixed. Top # Version 60 --- December 2005 The sole purpose of this version is to fix the bug described below. In all other aspects the N0060 Toolkit is the same as the N0059 Toolkit. Top ## Bug Fixes Top ### Access to High Precision Binary Earth PCK On December 13, 2005, a significant bug was found in the Fortran, C, and IDL N0059 SPICE Toolkits: this bug results in corruption of data read from high precision binary earth PCK files. A second, probably rarely encountered, effect of the bug is that data will be corrupted when read directly from routine TISBOD (tisbod_c in CSPICE, cspice_tisbod in Icy), in cases where the input reference frame name doesn't match the frame associated with the data in the source PCK. This bug has been fixed in the N0060 Toolkit. Top # Version 59 --- November 2005 Top ## Rules Regarding Use of SPICE Components The rules regarding use of SPICE components, already very minimal, have been further relaxed and better articulated. Please see the RULES page of the NAIF website: http://naif.jpl.nasa.gov/naif/rules.html for details. Top ## Environments Top ### New Environments The SPICE Toolkit is now officially supported on Sun/Solaris/64bit gcc environment. Top ### Supported Environments This is the complete list of environments on which the N0059 version of the SPICE Toolkit is supported:
       FORTRAN Toolkit:

          HP         UX-10         HP FORTRAN
          Macintosh  OS-X          Absoft FORTRAN
          Macintosh  OS-X          g77
          PC         CYGWIN        g77
          PC         Linux         g77
          PC         Windows       Compaq Visual (Digital) FORTRAN
          PC         Windows       Lahey FORTRAN 95
          Sun        Solaris       SUN FORTRAN
          Vax        VMS           Digital FORTRAN

       CSPICE:

          HP         UX            HP C
          Macintosh  OS-X          Apple C
          PC         CYGWIN        gCC
          PC         Linux         gCC
          PC         Windows       Microsoft Visual C
          Sun        Solaris       SUN C
          Sun        Solaris       gCC
          Sun        Solaris       gCC/64bit

       Icy:

          Macintosh  OS-X          Apple C / IDL 6.2
          PC         Linux         gCC / IDL 6.2
          PC         Windows       Microsoft Visual C / IDL 6.2
          Sun        Solaris       SUN C / IDL 6.2
          Sun        Solaris       gCC / IDL 6.2
Top ### Optimization for C/Icy environments Optimization -O2 or equivalent is now used to compile CSPICE for all supported C and Icy environments. Top ### Lahey Memory Issue Related to File Opening/Closing Users of Lahey FORTRAN under the Windows operating systems should be aware that the F95 compiler allocates a small amount of memory, in connection with the process of using file OPEN and INQUIRE statements, that it might not free at the end of the file manipulation process. Since the simple opening of a binary kernel file can involve multiple OPEN and INQUIRE statements, the result of this allocation is that if the user were to open many (e.g. 100 or more) kernel files, an application program could sequester memory that would not be freed as expected. A virtual memory error message such as "A work area cannot be reserved because of insufficient area" may result from this situation. This can adversely affect the stability of the Windows operating system, even after the user program is terminated. We believe that this behavior affects all versions of SPICELIB, including the soon to be released N59 version. We are working with Lahey to resolve this issue. Top ### Scratch EK File Issue in Icy on PC/Windows An issue may exist when using EK scratch files from IDL under Microsoft Windows. The cspice_ekcls call may fail to delete the scratch file created by the cspice_ekops call. This file normally has a name style similar to tmp.Fxxxxx. You can manually delete the file only after you close the IDL application. This problem does not affect use of the file or cause any known instability to Icy. Top ## SPICELIB/CSPICE/Icy Top ### Loading of Non-Native Text Kernels Files Starting with this version of the toolkit, the CSPICE and Icy text kernel loaders, furnsh_c/cspice_furnsh and ldpool_c/cspice_ldpool, can read and parse non-native text files. Unfortunately this capability cannot be provided in FORTRAN instances of the Toolkit. Please be aware the CSPICE text file reader, rdtext_c, does not possess the capability to read non-native text files. Top ### Additional Testing A large amount of additional testing of existing SPICE interfaces and capabilities was performed during preparation of this version of the toolkit. This testing uncovered a small number of bugs, all of which have been fixed for this release (see Section ``Bug Fixes'' below.) Top ### Deprecation of BODVAR in favor of BODVRD and BODVCD Routine BODVAR has been deprecated due to deficiency of its interface and a possibility that it may cause memory violation when used to retrieve data for incorrectly formed text kernel keywords. Routines BODVCD and BODVRD should be used instead of it. Top ### ``In Place'' Routines A number of routines parallel to existing interfaces but utilizing the same argument for both input and output were added to SPICELIB (FORTRAN Toolkit). These routines are:
       cyacip.for
       cyadip.for
       cyaiip.for
       vhatip.for
       vsclip.for
       xpsgip.for
Top ### SPK Segment Buffer Increase The SPK segment buffer size was increased to 30,000 to allow more efficient read access to SPK files containing a large number of segments, such as SPK files produced by ESA's Mars Express project. Top ### EK Buffer Increased Buffers facilitating EK access have been increased to provide more efficient read access to EK files containing a large numbers of records, such as EK files produced by the Cassini project. Top ### Built-in NAIF ID Code/Name Definitions The following new built-in NAIF ID code/name definitions have been added to the Toolkit:
       Spacecraft:

               -98   NEW HORIZONS
              -248   VENUS EXPRESS, VEX
              -500   RSAT, SELENE Relay Satellite, SELENE Rstar, Rstar
              -502   VSAT, SELENE VLBI Radio Satellite,
                     SELENE VRAD Satellite, SELENE Vstar

       Asteroids:

           2025143   ITOKAWA

       Satellites:

               539   HEGEMONE
               540   MNEME
               541   AOEDE
               542   THELXINOE
               543   ARCHE
               544   KALLICHORE
               545   HELIKE
               546   CARPO
               547   EUKELADE
               548   CYLLENE
               631   NARVI
               632   METHODE
               633   PALLENE
               634   POLYDEUCES

       Ground Stations:

            399064   DSS-64
Top ### Documentation The PCK Required Reading document has been revised. Top ## CSPICE Top ### New Wrappers The following interfaces to SPICE routines were added to CSPICE in this release:
       bodvcd_c.c
       qdq2av_c.c
       qxq_c.c
       srfrec_c.c
Top ## Icy (Interactive Data Language interface to CSPICE) Top ### Vectorization NAIF modified the function of several Icy routines to support vectorized variables (in the IDL sense) as input and output.
       cspice_illum    cspice_insrtd   cspice_insrti   cspice_oscelt
       cspice_sce2c    cspice_srfrec   cspice_srfxpt   cspice_subpt
       cspice_removd   cspice_removi
Top ### New interfaces NAIF added the following new Icy interfaces for this release:
       cspice_bodvcd   cspice_diff     cspice_insrtd   cspice_insrti
       cspice_qdq2av   cspice_qxq      cspice_removd   cspice_removi
       cspice_sdiff    cspice_set      cspice_srfrec   cspice_union
Top ## Bug Fixes Top ### Non-standard Use of Duplicate Arguments in FORTRAN A large number of SPICELIB routines has been revised to eliminate non-standard use of duplicate arguments in calls to other routines. Though this use did not pose any problems or cause any errors in the earlier Toolkit versions, it prevented use of optimization on some environments. With these changes optimization is now used in building all CSPICE and Icy Toolkits. Top ### NEARPT A bug related to the scale of transverse component of error vector was corrected for the exterior point case. Top ### ET2LST The treatment of planetographic longitude has been updated to be consistent with the SPICE planetographic / rectangular coordinate conversion routines. The effect of this change is that the default sense of positive longitude for the moon is now east; also, the default sense of positive planetographic longitude now may be overridden for any body. Top ### GETFOV A bug causing incorrect computation of the boundary vectors for a rectangular FOV specified using the angular extents method has been fixed. In the previous versions for cases when the reference vector was provided as a non-unit vector and/or was non-perpendicular to the specified boresight the boundary vectors returned by the routine were computed incorrectly. Top ### CKW03 A check verifying that the start time of the first interval is the same as the time of the first pointing instance has been added. Top ### INEDPL Error detection for the case of invalid input plane was added. Top ### INSRTC The routine was changed in such way that when the item to be inserted would, after truncation to the set's string length, match an item already in the set, no insertion is performed. Previously the truncated string was inserted, corrupting the set. Top ### String Parsing Routines Routines lparse.for, lparsm.for, and lparss.for were modified to avoid out-of-range substring bounds conditions. Top # Version 58 --- January 2005 Top ## Environments The SPICE Toolkit is now officially supported on PC/CYGWIN/g77 and PC/CYGWIN/gCC environments and no longer supported on SGI and DEC Alpha computers. This is the complete list of environments on which the N0058 version of the SPICE Toolkit is supported:
       FORTRAN Toolkit:

          HP         UX            HP FORTRAN
          Macintosh  OS-X          Absoft FORTRAN
          Macintosh  OS-X          g77
          PC         CYGWIN        g77
          PC         Linux         g77
          PC         Windows       Compaq Visual (Digital) FORTRAN
          PC         Windows       Lahey FORTRAN 95
          Sun        Solaris       SUN FORTRAN
          Vax        VMS           Digital FORTRAN

       CSPICE:

          HP         UX            HP C
          Macintosh  OS-X          Apple C
          PC         CYGWIN        gCC
          PC         Linux         gCC
          PC         Windows       Microsoft Visual C
          Sun        Solaris       SUN C
          Sun        Solaris       gCC

       Icy:

          Macintosh  OS-X          Apple C / IDL 6.1
          PC         Linux         gCC / IDL 6.1
          PC         Windows       Microsoft Visual C / IDL 6.1
          Sun        Solaris       SUN C / IDL 6.1
          Sun        Solaris       gCC / IDL 6.1
Top ## SPICELIB/CSPICE/Icy Top ### Parameterized Dynamic Frames The SPICE frame system now supports parameterized dynamic frames: frames for which orientation is based on dynamic directions computed using SPICE kernel data (SPKs, CK, PCKs), on mathematical models implemented in SPICE routines, or on formulas defined in frame kernels. Parameterized dynamic frames are grouped into ``families'' according to the method by which they're defined. Currently supported dynamic frame families are: `--` Two-vector frames: these are defined by pairs of vectors. The vectors may be position vectors, velocity vectors, observer-target near point vectors, or constant vectors. `--` Mean equator and equinox of date frames. `--` True equator and equinox of date frames. `--` Mean ecliptic and equinox of date frames. `--` Euler frames: these are defined by angles specified as polynomial functions of time. Currently ``of date'' frames are supported only for the earth. The Frames Required Reading documents the new capability and contains numerous examples of dynamic frame kernel definitions. Top ### CK/SPK Coverage Summary Routines The new CK and SPK coverage determination routines CKCOV and SPKCOV provide an API via which an application can find the time periods for which a specified CK or SPK file provides data for, respectively, an instrument or body of interest. The coverage information is a set of disjoint time intervals returned in a SPICE ``window'' data structure. The new CK and SPK routines CKOBJ and SPKOBJ provide an API via which an application can find the set of instruments or bodies for which, respectively, a specified CK or SPK file contains data. The coverage information is returned in a SPICE ``set'' data structure. These new APIs are supported by SPICELIB, CSPICE, and Icy. Top ### Planetographic Coordinate Conversion Routines The new planetographic coordinate conversion routines RECPGR and PGRREC support conversion between rectangular and planetographic coordinates. The planetographic Jacobian matrix routines DRDPGR and DPGRDR provide the derivative matrices for these transformations (used for coordinate transformations of velocities). These new APIs are supported by SPICELIB, CSPICE, and Icy. Top ### ``L-sub-S'' Solar Longitude Routine The new routine LSPCN computes the planetocentric longitude of the sun (often called ``L-sub-S'' or ``Ls'') for a specified body and time. This quantity is typically used as an approximate ``time of year'' indicator. The new API is supported by SPICELIB, CSPICE, and Icy. Top ### Built-in NAIF ID Code/Name Definitions The following new built-in NAIF ID code/name definitions have been added to the Toolkit:
       Spacecraft:

               -84         PHOENIX
              -130         HAYABUSA
              -131         SELENE
              -203         DAWN
              -238         SMART-1, S1, SM1, SMART1
              -486         HERSCHEL
              -489         PLANCK

       Comets:

           1000012         CHURYUMOV-GERASIMENKO
                           67P/CHURYUMOV-GERASIMENKO (1969 R1)

       Stations:

            399049         DSS-49
            399055         DSS-55
            398989         NOTO
Top ### Documentation FRAMES.REQ has been re-structured and augmented with an extensive description and examples of the new parameterized dynamic frames family. Top ## CSPICE Top ### New Wrappers The following new miscellaneous interfaces to SPICE routines were added to CSPICE in this release:
       bods2c_c.c      dafopw_c.c      dafps_c.c       dafrs_c.c
Top ## Icy (Interactive Data Language interface to CSPICE) Top ### Vectorization NAIF modified the function of several Icy routines to support vectorized variables (in the IDL sense) as input and output.
       cspice_cylrec   cspice_deltet   cspice_et2lst   cspice_et2utc
       cspice_georec   cspice_latrec   cspice_pxform   cspice_pgrrec
       cspice_radrec   cspice_reccyl   cspice_recgeo   cspice_reclat
       cspice_recpgr   cspice_recrad   cspice_recsph   cspice_scdecd
       cspice_scencd   cspice_scs2e    cspice_sphrec   cspice_spkezr
       cspice_spkpos   cspice_str2et   cspice_sxform   cspice_timout
Top ### Windows Icy now includes interfaces to the full set of CSPICE window routines.
       cspice_wnelmd   cspice_wnincd   cspice_wnreld   cspice_wncomd
       cspice_wncond   cspice_wndifd   cspice_wnexpd   cspice_wnextd
       cspice_wnfetd   cspice_wnfild   cspice_wnfltd   cspice_wninsd
       cspice_wnintd   cspice_wnsumd   cspice_wnunid   cspice_wnvald
Top ### Other new interfaces The following new miscellaneous interfaces to SPICE routines were added to Icy in this release:
       cspice_bods2c   cspice_card     cspice_celli    cspice_celld
       cspice_dafopw   cspice_dafrs    cspice_deltet   cspice_et2lst
       cspice_pgrrec   cspice_recpgr   cspice_scard    cspice_size
       cspice_spkcov   cspice_spkobj   cspice_ssize
Top ## Bug Fixes Top ### MKSPK Processing of TLE A MKSPK bug causing the program to process improperly formatted TLE files without signaling an error and producing output SPK containing bad data was fixed. Top ### MKSPK Adding Comments When Appending to Existing SPK A MKSPK bug causing the program, in some rare circumstances, to signal an error when adding comments to an existing SPK file was fixed. Top ### Icy/cspice_getfov A bug that caused the interface to fail to release allocated memory when the FRAMEMISSING error signaled was fixed. Top ### DVPOOL/dvpool_c/cspice_dvpool A bug causing the DVPOOL routine to not delete a specified kernel pool variable in some cases was fixed. Top ### CSPICE/kdata_c Function A number of typos in the example provided in the header of the routine were corrected. Top ### FRINFO/frinfo_c/cspice_frinfo A bug causing the FRINFO routine to treat any frame with a negative ID code and a frame definition not provided in the kernel pool as a CK-based frame was fixed. Now, instead of returning ``manufactured'' attributes of a CK-based frame, the routine will generate an error for such inputs. Top # Version 57 --- March 2004 Top ## Environments The N0057 version of the SPICE Toolkit is supported on the same environments as version N0056. Top ## Icy The N0057 version offers the first official release of Icy, the interface to the CSPICE library from Interactive Data Language (IDL), a product of Research Systems, Inc. (RSI, http://www.rsi.com). If Icy was provided with this package, refer to ``icy.req'' document and to the Icy HTML documentation pointed to by ``doc/html/index.html'' for more details. Top ## SPICELIB/CSPICE Top ### SRFXPT This new routine computes the surface intercept point of a specified ray on a target body at a specified epoch, optionally corrected for light time and stellar aberration. Its purpose is the same as for the SPICE routine SURFPT but unlike SURFPT is provides a much more flexible interface and computes geometry adjusted for light time and stellar aberration to the surface point rather than to the center of the target body. Therefore for most cases this routine makes SURFPT obsolete. Currently SRFXPT supports only the ellipsoid shape for target bodies but in the future it may be extended to support digital terrain models. Top ### Support for Satellite IDs in the Range 10000-99999 NAIF PCK data access routines have been modified to recognize satellites with IDs in the 10000-99999 range. Top ### Detection of Non-native Text Files The SPICE data loading mechanism was extended to detect and prohibit loading text kernel files containing lines terminated with EOF character(s) non-native to the platform on which the Toolkit was compiled. If a non-native EOL terminator is detected in the first 132 characters of a text kernel, the execution is stopped and an error message is displayed. This feature does not work with files that are smaller that 132 bytes or have the first line longer that 132 characters. Top ### Documentation The Toolkit may now optionally include documentation in HTML format. It is provided in the ``doc/html'' subdirectory and is pointed to by the top level index file
       doc/html/index.html
The headers of a few additional most often used routines have been revised to correct technical errors and grammar and/or spelling, improve clarity, and improve examples. Top ### Built-in NAIF ID Code/Name Definitions The following new built-in NAIF ID code/name definitions have been added to the Toolkit:
       Spacecraft:

               -79         SPITZER

       Asteroids:

               2000216     KLEOPATRA
Top ## INSPEKT INSPEKT was updated to generate comma-delimited reports. This output format can be set using the ``SET FORMAT DELIMITED ...'' command. See INSPEKT on-line help for more details. Top ## TOBIN TOBIN was modified to detect and prohibit processing input transfer files containing lines terminated with EOF character(s) non-native to the platform on which the Toolkit was compiled. Top # Version 56 --- August 2003 Top ## Environments The N0056 version of the SPICE Toolkit is supported on the same environments as version N0055 except the following ``Classic'' Mac environments:
       Macintosh  MacOS9        Absoft FORTRAN
       Macintosh  MacOS9        Metrowerks Codewarrior C
Contact NAIF if you wish to obtain the Toolkit for these two deprecated environments. Top ## SPICELIB/CSPICE Top ### Documentation The headers of 20+ of the most often used routines have been revised for one or more of the following reasons: `--` to correct technical errors, `--` to add pertinent new information, `--` to improve clarity, `--` to correct grammar and/or spelling, `--` to improve examples. Top ### Built-in NAIF ID Code/Name Definitions The following new built-in NAIF ID code/name definitions have been added to the Toolkit:
       Spacecraft:

               -74         MRO
               -74         MARS RECON ORBITER
               -130        MUSES-C
               -142        TERRA
               -154        AQUA
               -159        EUROPA ORBITER
               -172        SPACETECH-3 COMBINER
               -188        MUSES-B
               -190        SIM
               -198        INTEGRAL
               -205        SPACETECH-3 COLLECTOR
               -234        STEREO AHEAD
               -235        STEREO BEHIND
               -253        OPPORTUNITY
               -254        SPIRIT

       Tracking Stations:

               398990      NEW NORCIA

       Jovian satellites:

               528         AUTONOE
               529         THYONE
               530         HERMIPPE
               531         AITNE
               532         EURYDOME
               533         EUANTHE
               534         EUPORIE
               535         ORTHOSIE
               536         SPONDE
               537         KALE
               538         PASITHEE

       Saturnian satellites:

               619         YMIR
               620         PAALIAQ
               621         TARVOS
               622         IJIRAQ
               623         SUTTUNG
               624         KIVIUQ
               625         MUNDILFARI
               626         ALBIORIX
               627         SKADI
               628         ERRIAPO
               629         SIARNAQ
               630         THRYM

       Uranian satellites:

               718         PROSPERO
               719         SETEBOS
               720         STEPHANO
               721         TRINCULO
Top ## CHRONOS CHRONOS utility program has been modified to allow loading kernel files using FURNSH kernel pool keywords and to accept all setup information from the command line. Top ## Bug Fixes Top ### Reading Files with MAC-OSX Absoft FORTRAN Toolkit Low level read routines were fixed to make sure that the OSX Absoft FORTRAN SPICE toolkit can read files not owned by the user. Top ### DAS Scratch Files DASCLS routine has been modified to call the routine flushing DAS buffers before closing scratch DAS files. Failing to free the buffers caused write errors on HP/FORTRAN systems. Top ### Argument Checking in CSPICE Error Handling Functions The errprt_c, errdev_c, and erract_c functions were updated to diagnose invalid operation keyword input. Top # Version 55 --- March 2003 Top ## Environments The N0055 version of the SPICE Toolkit is supported on the same environments as version N0054. Top ## SPICELIB Top ### SPKW01 SPK type 1 writer routine has been added. Top ### DASCLS 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. Top ### SPKBSR Segment buffer size was increased from 2000 to 10000 to improve efficiency when handling SPK files with large number of segments. Top ### 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. Top ### Type 1 SCLK The buffer that stores Type 1 SCLK coefficients was increased. The new buffer size is 10000. Top ## CSPICE Top ### New CSPICE wrappers Wrappers dasac_c and dasec_c have been added to CSPICE. These support DAS file comment area access. Top ## Bug Fixes Top ### 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. Top ### DASCUD 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. Top ### OSCELT 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. Top ### CKE05 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. Top ### CKBRIEF CKBRIEF has been updated to retrieve and display interpolation interval information from Type 2 CK files correctly in all cases. Top # Version 54 --- December 2002 Top ## Mailing Lists NAIF has created 2 mailing lists, ``Spice_announce''
       http://naif.jpl.nasa.gov/mailman/listinfo/spice_announce
and ``Spice_discussion''
       http://naif.jpl.nasa.gov/mailman/listinfo/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 dissemination. ``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 list. 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. Top ## Environments The N0054 version of the SPICE Toolkit is supported on the same environments as version N0053. Top ## COOKBOOK Programs 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. Top ## New Built-in NAIF ID Code/Name Definitions The following new built-in NAIF ID code/name definitions have been added to the toolkit:
       Spacecraft:

              -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
Top ## Documentation User's Guide documents for TOBIN, TOXFR and VERSION utility programs have been added to the toolkit documentation. Top ## Bug Fixes Top ### 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. Top ### Surface Intercept Routine The surface intercept routine SURFPT/surfpt_c has been re-implemented to reduce loss of precision. Top ### 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 routines. Top ### 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. Top ### 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. Top ### CHRONOS 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. Top # Version 53 --- September 2002 Top ## Environments The N0053 version of the SPICE Toolkit is supported in the following environments:
       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. Top ## CSPICE Top ### 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. Top ### New CSPICE wrappers for sorting and searching routines The following new CSPICE wrappers implementing sorting and searching capabilities have been added:
       bscho*_c.c
       bsrch*_c.c
       esrchc_c.c
       isordv_c.c
       isrch*_c.c
       lstle*_c.c
       lstlt*_c.c
       order*_c.c
       reord*_c.c
       shell*_c.c
Top ### New CSPICE wrappers for string manipulation and parsing routines The following new CSPICE wrappers for string manipulation and parsing capabilities have been added:
       cpos*_c.c
       pos*_c.c
       ncpos*_c.c
       kxtrct_c.c
       lpars*_c.c
       lx4*_c.c
       lxqstr_c.c
       repm*_c.c
Top ## SPICELIB Top ### SPK Type 18 A new SPK type (Type 18) has been added. This incorporates ESA/ESOC model for a spacecraft ephemeris. Top ### CK Type 5 A new CK type (Type 5) has been added. This incorporates ESA/ESOC model for a spacecraft attitude data. Top ## BRIEF BRIEF utility has been updated to allow summarizing SPKs containing ephemerides for up to 20,000 distinct bodies. Top ## COOKBOOK COOKBOOK programs have been updated to use the highest level routines currently available in SPICE -- FURNSH, SUBPT, etc. Top ## Bug Fixes Top ### 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. Top ### 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. Top ### 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. Top ### Long/truncated lines in text kernel files The text kernel file reader has been modified to correctly process truncated string value assignments. Top ### 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 fixed. Top # Version 52 --- January 2002 Top ## Environments The N0052 version of the SPICE Toolkit is supported on the following environments:
       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. Top ## SPICELIB Top ### 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. Top ### 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 performance. Top ### 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. Top ### 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. Top ### 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 together. 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. Top ### Jacobian routines Routines have been added for computing the Jacobians of the transformations between rectangular and the following coordinate systems:
       cylindrical
       geodetic
       latitudinal
       spherical
The Jacobian routines support transformation of velocities between these coordinate systems. See the headers of the following SPICELIB routines/CSPICE functions for more information:
       DCYLDR/dcyldr_c
       DGEODR/dgeodr_c
       DLATDR/dlatdr_c
       DSPHDR/dsphdr_c
       DRDCYL/drdcyl_c
       DRDGEO/drdgeo_c
       DRDLAT/drdlat_c
       DRDSPH/drdsph_c
Top ### NAIF ID to Object Name Mapping The NAIF IDs for the following missions has been added to the set of IDs built into SPICE:
       CONTOUR
       LUNAR-A
       DRTS-WC
       MARS EXPRESS
       DEEP IMPACT
       STARLIGHT
       MER
Top ### Documentation DAS and EK Required Reading documents have been added to the SPICE Toolkit. 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. Top ## CSPICE Top ### New CSPICE wrappers for EK routines CSPICE wrappers have been added to support record-oriented EK manipulation, including record-oriented writing, updating, and reading. CSPICE wrappers have been added to provide summary capabilities for loaded EK tables. Top ### Miscellaneous new CSPICE wrappers Some new CSPICE wrappers have been added:
       frmnam_c
       inelpl_c
       namfrm_c
Top ## CKBRIEF 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. Top ## COMMNT 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. Top ## MKSPK The program was modified to allow appending new data segments to an existing SPK file. Top ## VERSION 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. Top ## Bug Fixes Top ### 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
Top ### 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. Top ### CSPICE function gcpool_c fixed This routine did not properly trim trailing blanks from values in its output array. Top ### 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. Top ### 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 compared. Top ### EK time conversion The EK time parsing code handled SCLK values incorrectly when the string ``SCLK'' appeared in the name of the clock. Top ### EK documentation Various headers have been updated to indicate that query-and-fetch operations and EK fast writer operations may not be interleaved. Top ### 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. Top # Version 51 --- April 2000 Top ## SPICELIB Top ### 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. Top ### 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. Top ### CK 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 models. Top ### SPK 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. Top ### Miscellaneous 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. Top ## MKSPK 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. Top ## SPKMERGE The program was upgraded to correct an "infinite loop" that existed in rare cases on some platforms. Top ### 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. Top # Version 50 --- October 1999 Top ## CSPICE 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 C. Top ## Additions and Extensions to SPICE routines Top ### 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 Top ### Position Only Interface. The Frames and SPK subsystems have been extended to provide a "position only" interface. The user level routines in the extension are: 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. Top ### ID-codes 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. Top ### 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 kernel. 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 parameters. DVPOOL allows deletion of a specific variable from the kernel pool. GNPOOL assists in determining which variables are defined in the kernel pool via variable name template matching. Top ### 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. Top ### 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. Top ### 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. Top ### Bugs 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 routines. `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. Top ## SPICE Utility Programs Top ### TOBIN The utility program TOBIN which converts transfer format kernels to binary form, can now process transfer format kernels that have been wrapped with SFDUs. Top ### COMMNT COMMNT now accepts command line arguments making it usable from user scripts. Top ### CKBRIEF 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. Top ### MKSPK MKSPK is a utility program that allows users to generate SPK files from appropriate and suitably tabularized position and velocity information. Top ## Documentation 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. Top # 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.
Top # 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
          corrected.

       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.
Top # Version 47 --- July 1997 This chapter describes the significant changes to version 47 of the SPICE Toolkit. Top ## Documentation There are two significant documentation changes to version 47 of the Toolkit. `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. Top ## Software Top ### SPK 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 product. Top ### Frames 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. Top ### Time 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. Top ### 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. Top # Version 46 --- January 1997 This chapter describes the significant changes to version 46 of the SPICE Toolkit. Top ### Documentation 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
       intro.ps
       mostused.ps
respectively. 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. Top ### Time 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:
       STR2ET
       TIMOUT
       TTRANS
       TPARTV
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. Top # 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 deficiency. 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. Top # Version 44 --- August 1996 This chapter describes the significant changes to version 44 of the SPICE Toolkit. Top ### 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 percent. Top ### Inspekt 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. Top ### 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. Top # Version 43 --- May 1996 This chapter describes the new capabilities available in version 43 of the SPICE Toolkit. Top ### Brief 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. Top ### 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:
       STCF01
       STCG01
       STCL01
Top ### CHGIRF Support for the inertial reference frame DE143 has been added to SPICELIB. Top ### BODTRN 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. Top ### 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). Top # 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. Top # 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
       CALL SPKEZR ( TARG, ET, REF, ABCORR, OBS, STARG, LT )
where
       Inputs:
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 frame. 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', 'GOLSTONE'.
       Outputs:
STARG is the state of the target body relative to the observer represented in the specified reference frame with the specified aberration corrections accounted for. LT is the light time in seconds from the target to the observer. 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 )
        DOUBLE PRECISION      LT

        CALL SPKEZR ( 'MARS',  1.0D+07, 'B1950', 'LT+S',
       .             'EARTH', STATE, LT )
Top ## 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.
       C
             CALL SPKEZR ( 'JUPITER',   ET,    'IAU_EARTH', 'LT+S',
            .              'GOLDSTONE', JSTATE, LT )

             CALL SPKEZR ( 'GOLDSTONE', ET,    'IAU_EARTH', 'NONE',
            .              'EARTH',     GSTATE, LT )
       C
       C     Compute the local surface normal at the Goldstone site.
       C
             EQRAD1 = 6378.140
             EQRAD2 = 6378.140
             POLRAD = 6356.75

             CALL SURFNM ( EQRAD1, EQRAD2, POLRAD, GSTATE, LNORML )
       C
       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.
       C
             ANGLE = VSEP ( JSTATE, LNORML )

             IF ( ANGLE .LT. HALFPI() ) THEN
                WRITE (*,*) 'Jupiter is above the horizon.'
             ELSE
                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"
       IAU_ADRASTEA
       IAU_AMALTHEA
       IAU_ANANKE
       IAU_ARIEL
       IAU_ATLAS
       IAU_BELINDA
       IAU_BIANCA
       IAU_CALLISTO
       IAU_CALYPSO
       IAU_CARME
       IAU_CHARON
       IAU_CORDELIA
       IAU_CRESSIDA
       IAU_DEIMOS
       IAU_DESDEMONA
       IAU_DESPINA
       IAU_DIONE
       IAU_EARTH
       IAU_EARTH_BARYCENTER
       IAU_ELARA
       IAU_ENCELADUS
       IAU_EPIMETHEUS
       IAU_EUROPA
       IAU_GALATEA
       IAU_GANYMEDE
       IAU_HELENE
       IAU_HIMALIA
       IAU_HYPERION
       IAU_IAPETUS
       IAU_IO
       IAU_JANUS
       IAU_JULIET
       IAU_JUPITER
       IAU_JUPITER_BARYCENTER
       IAU_LARISSA
       IAU_LEDA
       IAU_LYSITHEA
       IAU_MARS
       IAU_MARS_BARYCENTER
       IAU_MERCURY
       IAU_MERCURY_BARYCENTER
       IAU_METIS
       IAU_MIMAS
       IAU_MIRANDA
       IAU_MOON
       IAU_NAIAD
       IAU_NEPTUNE
       IAU_NEPTUNE_BARYCENTER
       IAU_NEREID
       IAU_OBERON
       IAU_OPHELIA
       IAU_PANDORA
       IAU_PASIPHAE
       IAU_PHOBOS
       IAU_PHOEBE
       IAU_PLUTO
       IAU_PLUTO_BARYCENTER
       IAU_PORTIA
       IAU_PROMETHEUS
       IAU_PROTEUS
       IAU_PUCK
       IAU_RHEA
       IAU_ROSALIND
       IAU_SATURN
       IAU_SATURN_BARYCENTER
       IAU_SINOPE
       IAU_SUN
       IAU_TELESTO
       IAU_TETHYS
       IAU_THALASSA
       IAU_THEBE
       IAU_TITAN
       IAU_TITANIA
       IAU_TRITON
       IAU_UMBRIEL
       IAU_URANUS
       IAU_URANUS_BARYCENTER
       IAU_VENUS
       IAU_VENUS_BARYCENTER