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
spkopn

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

     SPKOPN ( SPK, open new file. )

     SUBROUTINE SPKOPN ( FNAME, IFNAME, NCOMCH, HANDLE )

Abstract

     Create a new SPK file, returning the handle of the opened file.

Required_Reading

     SPK

Keywords

     SPK

Declarations

     IMPLICIT NONE

     CHARACTER*(*)         FNAME
     CHARACTER*(*)         IFNAME
     INTEGER               NCOMCH
     INTEGER               HANDLE

Brief_I/O

     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     FNAME      I   The name of the new SPK file to be created.
     IFNAME     I   The internal filename for the SPK file.
     NCOMCH     I   The number of characters to reserve for comments.
     HANDLE     O   The handle of the opened SPK file.

Detailed_Input

     FNAME    is the name of the new SPK file to be created.

     IFNAME   is the internal filename for the SPK file that is
              being created. The internal filename may be up to 60
              characters long. If you do not have any conventions
              for tagging your files, an internal filename of
              'SPK_file' is perfectly acceptable. You may also leave
              it blank if you like.

     NCOMCH   is the space, measured in characters, to be initially
              set aside for the comment area when a new SPK file
              is opened. The amount of space actually set aside may
              be greater than the amount requested, due to the
              manner in which comment records are allocated in an
              SPK file. However, the amount of space set aside for
              comments will always be at least the amount that was
              requested.

              The value of NCOMCH should be greater than or equal to
              zero, i.e., 0 <= NCOMCH. A negative value, should one
              occur, will be assumed to be zero.

Detailed_Output

     HANDLE   is the handle of the opened SPK file. If an error
              occurs when opening the file, the value of this
              variable should not be used, as it will not represent
              a valid handle.

Parameters

     None.

Exceptions

     1)  If the value of NCOMCH is negative, a value of zero (0) will
         be used for the number of comment characters to be set aside
         for comments.

     2)  If an error occurs while attempting to open the SPK file, the
         value of HANDLE will not represent a valid file handle.

Files

     See FNAME and HANDLE.

Particulars

     Open a new SPK file, reserving room for comments if requested.

Examples

     The numerical results shown for this example may differ across
     platforms. The results depend on the SPICE kernels used as
     input, the compiler and supporting libraries, and the machine
     specific arithmetic implementation.

     1) This example demonstrates how to create an SPK type 8 kernel
        containing only one segment, given a time-ordered set of
        discrete states and epochs.


        Example code begins here.


              PROGRAM SPKOPN_EX1
              IMPLICIT NONE

        C
        C     Local parameters.
        C
              INTEGER               NAMLEN
              PARAMETER           ( NAMLEN = 42 )

        C
        C     Define the segment identifier parameters.
        C
              CHARACTER*(*)         SPK8
              PARAMETER           ( SPK8   = 'spkopn_ex1.bsp' )

              CHARACTER*(*)         REF
              PARAMETER           ( REF    = 'J2000'          )

              INTEGER               BODY
              PARAMETER           ( BODY   = 3  )

              INTEGER               CENTER
              PARAMETER           ( CENTER = 10 )

              INTEGER               DEGREE
              PARAMETER           ( DEGREE = 3  )

              INTEGER               NSTATS
              PARAMETER           ( NSTATS = 9  )

        C
        C     Local variables.
        C
              CHARACTER*(NAMLEN)    IFNAME
              CHARACTER*(NAMLEN)    SEGID

              DOUBLE PRECISION      BEGTIM
              DOUBLE PRECISION      FIRST
              DOUBLE PRECISION      LAST
              DOUBLE PRECISION      STATES ( 6, NSTATS )
              DOUBLE PRECISION      STEP

              INTEGER               HANDLE
              INTEGER               NCOMCH

        C
        C     Set the array of discrete states to write to the SPK
        C     segment.
        C
              DATA                  STATES /
             .        101.D0, 201.D0, 301.D0, 401.D0, 501.D0, 601.D0,
             .        102.D0, 202.D0, 302.D0, 402.D0, 502.D0, 602.D0,
             .        103.D0, 203.D0, 303.D0, 403.D0, 503.D0, 603.D0,
             .        104.D0, 204.D0, 304.D0, 404.D0, 504.D0, 604.D0,
             .        105.D0, 205.D0, 305.D0, 405.D0, 505.D0, 605.D0,
             .        106.D0, 206.D0, 306.D0, 406.D0, 506.D0, 606.D0,
             .        107.D0, 207.D0, 307.D0, 407.D0, 507.D0, 607.D0,
             .        108.D0, 208.D0, 308.D0, 408.D0, 508.D0, 608.D0,
             .        109.D0, 209.D0, 309.D0, 409.D0, 509.D0, 609.D0  /


        C
        C     Set the start and end times of interval covered by
        C     segment, and the time step separating epochs of states.
        C
              FIRST = 100.D0
              LAST  = 900.D0
              STEP  = 100.D0

        C
        C     NCOMCH is the number of characters to reserve for the
        C     kernel's comment area. This example doesn't write
        C     comments, so set to zero.
        C
              NCOMCH = 0

        C
        C     Internal file name and segment ID.
        C
              IFNAME = 'Type 8 SPK internal file name.'
              SEGID  = 'SPK type 8 test segment'

        C
        C     Open a new SPK file.
        C
              CALL SPKOPN( SPK8, IFNAME, NCOMCH, HANDLE )

        C
        C     Set the epoch of first state in STATES array to be
        C     the start time of the interval covered by the segment.
        C
              BEGTIM = FIRST

        C
        C     Create a type 8 segment.
        C
              CALL SPKW08 (  HANDLE,  BODY,    CENTER,  REF,
             .               FIRST,   LAST,    SEGID,   DEGREE,
             .               NSTATS,  STATES,  BEGTIM,  STEP     )

        C
        C     Close the SPK file.
        C
              CALL SPKCLS ( HANDLE )

              END


        When this program is executed, no output is presented on
        screen. After run completion, a new SPK type 8 exists in
        the output directory.

Restrictions

     None.

Literature_References

     None.

Author_and_Institution

     N.J. Bachman       (JPL)
     J. Diaz del Rio    (ODC Space)
     K.R. Gehringer     (JPL)

Version

    SPICELIB Version 2.1.0, 05-AUG-2021 (JDR)

        Changed the output argument name NAME to FNAME for consistency
        with other routines.

        Edited the header to comply with NAIF standard. Removed
        unnecessary $Revisions section.

        Added complete code example based on SPKW08 example.

        Fixed typo in $Exceptions entry #2.

    SPICELIB Version 2.0.0, 09-NOV-2006 (NJB)

        Routine has been upgraded to support comment
        area allocation using NCOMCH.

    SPICELIB Version 1.0.0, 26-JAN-1995 (KRG)
Fri Dec 31 18:36:53 2021