Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 
Index Page
spksub

Table of contents
Procedure
Abstract
Required_Reading
Keywords
Declarations
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version

Procedure

     SPKSUB ( S/P Kernel, subset )

     SUBROUTINE SPKSUB ( HANDLE, DESCR, IDENT, BEGIN, END, NEWH )

Abstract

     Extract a subset of the data in an SPK segment into a
     separate segment.

Required_Reading

     SPK
     DAF

Keywords

     EPHEMERIS

Declarations

     IMPLICIT NONE

     INTEGER               HANDLE
     DOUBLE PRECISION      DESCR    ( 5 )
     CHARACTER*(*)         IDENT
     DOUBLE PRECISION      BEGIN
     DOUBLE PRECISION      END
     INTEGER               NEWH

Brief_I/O

     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     HANDLE     I   Handle of source segment.
     DESCR      I   Descriptor of source segment.
     IDENT      I   Identifier of source segment.
     BEGIN      I   Beginning (initial epoch) of subset.
     END        I   End (final epoch) of subset.
     NEWH       I   Handle of new segment.

Detailed_Input

     HANDLE,
     DESCR,
     IDENT    are the file handle assigned to a SPK file, the
              descriptor for a segment within the file, and the
              identifier for that segment. Together they determine a
              complete set of ephemeris data, from which a subset is to
              be extracted.

     BEGIN,
     END      are the initial and final epochs (ephemeris time) of the
              subset.

     NEWH     is the file handle assigned to the file in which the new
              segment is to be written. The file must be open for write
              access. NEWH and HANDLE may refer to the same file.

Detailed_Output

     See $Files section.

Parameters

     None.

Exceptions

     1)  If the condition

            ALPHA  <=  BEGIN  <=  END  <=  OMEGA

         is not satisfied (where ALPHA and OMEGA are the initial and
         final epochs of the segment respectively), the error
         SPICE(SPKNOTASUBSET) is signaled.

     2)  If the segment type is not supported by the current version of
         SPKSUB, the error SPICE(SPKTYPENOTSUPP) is signaled.

Files

     A new segment, which contains a subset of the data in the
     segment specified by DESCR and HANDLE, is written to the SPK
     file attached to NEWH.

Particulars

     Sometimes, the segments in official source files---planetary
     Developmental Ephemeris (DE) files, archival spacecraft
     ephemeris files, and so on---contain more data than is needed
     by a particular user. SPKSUB allows a user to extract from a
     segment the smallest amount of ephemeris data sufficient to
     cover a specific interval.

     The new segment is written with the same identifier as the
     original segment, and with the same descriptor, with the
     following components changed:

     1)  ALPHA and OMEGA (DC(1) and DC(2)) are assigned the values
         specified by BEGIN and END.

     2)  The beginning and ending segment addresses (IC(5) and IC(6))
         are changed to reflect the location of the new segment.

Examples

     In the following code fragment, the descriptor for each segment
     in a source SPK file is examined. For each segment that covers a
     specified time interval, the smallest possible subset of data
     from that segment, sufficient to cover the interval, is extracted
     into a custom SPK file.

     Assume that the source and custom files have been opened, for
     read and write access, with handles SRC and CUST respectively.

        CALL DAFBFS ( SRC    )
        CALL DAFFNA ( FOUND  )

        DO WHILE ( FOUND )
           CALL DAFGS ( DESCR )
           CALL DAFUS ( DESCR, 2, 6, DC, IC )

           IF ( DC(1) .LE. BEGIN  .AND.  END .LE. DC(2) ) THEN
              CALL DAFGN  ( IDENT )
              CALL SPKSUB ( SRC, DESCR, IDENT, BEGIN, END, CUST )
           END IF

           CALL DAFFNA ( FOUND )
        END DO

Restrictions

     1)  There is no way for SPKSUB to verify that the descriptor and
         identifier are the original ones for the segment. Changing
         the descriptor can cause the data in the new segment to be
         evaluated incorrectly; changing the identifier can destroy
         the path from the data back to its original source.

Literature_References

     None.

Author_and_Institution

     N.J. Bachman       (JPL)
     J. Diaz del Rio    (ODC Space)
     K.R. Gehringer     (JPL)
     J.M. Lynch         (JPL)
     H.A. Neilan        (JPL)
     W.L. Taber         (JPL)
     R.E. Thurman       (JPL)
     I.M. Underwood     (JPL)

Version

    SPICELIB Version 9.1.0, 14-APR-2021 (JDR)

        Added IMPLICIT NONE statement.

        Edited the header to comply with NAIF standard. Removed
        unnecessary $Revisions section. Moved SPK required reading from
        $Literature_References to $Required_Reading section.

    SPICELIB Version 9.0.0, 23-DEC-2013 (NJB)

        The routine was updated to handle types 19, 20 and 21. Some
        minor changes were made to comments.

    SPICELIB Version 8.0.0, 12-AUG-2002 (NJB)

        The routine was updated to handle type 18.

    SPICELIB Version 7.0.0, 06-NOV-1999 (NJB)

        The routine was updated to handle types 12 and 13.

    SPICELIB Version 6.0.0, 30-JUN-1997 (WLT)

        The routine was updated to handle types 10 and 17.

    SPICELIB Version 5.0.0, 10-MAR-1995 (KRG)

        The routine was updated to handle type 14.

    SPICELIB Version 4.0.0, 07-NOV-1994 (WLT)

        The routine was updated to handle type 15.

    SPICELIB Version 3.0.0, 05-AUG-1993 (NJB)

        The routine was updated to handle types 08 and 09.

    SPICELIB Version 2.0.0, 01-APR-1992 (JML)

        1) The routine was updated to handle type 05.

        2) DESCR was being used as both an input and output
           variable when it was only supposed to be used for
           input. A new local variable, NDSCR, was added where DESCR
           was being altered.

    SPICELIB Version 1.0.1, 22-MAR-1990 (HAN)

        Literature references added to the header.

    SPICELIB Version 1.0.0, 31-JAN-1990 (IMU) (RET)
Fri Dec 31 18:36:55 2021