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
dassdr

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

     DASSDR ( DAS, segregate data records )

     SUBROUTINE DASSDR ( HANDLE )

Abstract

     Segregate the data records in a DAS file into clusters, using
     one cluster per data type present in the file.

Required_Reading

     DAS

Keywords

     DAS
     FILES
     ORDER
     SORT

Declarations

     IMPLICIT NONE

     INTEGER               HANDLE

Brief_I/O

     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     HANDLE     I   DAS file handle.

Detailed_Input

     HANDLE   is a file handle of a DAS file opened for writing.

Detailed_Output

     None. See $Particulars for a description of the effect of this
     routine.

Parameters

     None.

Exceptions

     1)  If the input file handle is invalid, an error is signaled by a
         routine in the call tree of this routine.

     2)  If a Fortran read attempted by this routine fails, an error is
         signaled by a routine in the call tree of this routine. The
         state of the DAS file undergoing re-ordering will be
         indeterminate.

     3)  If a Fortran write attempted by this routine fails, an error
         is signaled by a routine in the call tree of this routine. The
         state of the DAS file undergoing re-ordering will be
         indeterminate.

     4)  If any other I/O error occurs during the re-arrangement of the
         records in the indicated DAS file, the error is signaled by a
         routine in the call tree of this routine.

Files

     See the description of the argument HANDLE in $Detailed_Input.

Particulars

     Normally, there should be no need for routines outside of
     SPICELIB to call this routine.

     The effect of this routine is to re-arrange the data records
     in a DAS file so that the file contains a single cluster for
     each data type present in the file: in the general case, there
     will be a single cluster of each of the integer, double
     precision, and character data types.

     The relative order of data records of a given type is not
     affected by this re-ordering. After the re-ordering, the DAS
     file contains a single directory record that has one descriptor
     for each cluster. After that point, the order in the file of the
     sets of data records of the various data types will be:

        +-------+
        |  CHAR |
        +-------+
        |  DP   |
        +-------+
        |  INT  |
        +-------+

     Files that contain multiple directory records will have all but
     the first directory record moved to the end of the file when the
     re-ordering is complete. These records are not visible to the
     DAS system and will be overwritten if data is subsequently added
     to the DAS file.

     The purpose of segregating a DAS file's data records into three
     clusters is to make read access more efficient: when a DAS file
     contains a single directory with at most three cluster type
     descriptors, mapping logical to physical addresses can be done
     in constant time.

Examples

     1)  Segregate data records in a DAS file designated by
         HANDLE:

            CALL DASSDR ( HANDLE )

Restrictions

     None.

Literature_References

     None.

Author_and_Institution

     N.J. Bachman       (JPL)
     J. Diaz del Rio    (ODC Space)
     K.R. Gehringer     (JPL)
     H.A. Neilan        (JPL)
     M.J. Spencer       (JPL)
     W.L. Taber         (JPL)

Version

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

        Added IMPLICIT NONE statement.

        Edited the header to comply with NAIF standard.

    SPICELIB Version 2.0.1, 19-DEC-1995 (NJB)

        Corrected title of permuted index entry section.

    SPICELIB Version 2.0.0, 17-NOV-1993 (KRG)

        Added test of FAILED after each DAS call, or sequence of calls,
        which returns immediately if FAILED is .TRUE. This fixes a bug
        where DASOPS signals an error and then DASSDR has a
        segmentation fault.

        Removed references to specific DAS file open routines in the
        $Detailed_Input section of the header. This was done in order
        to minimize documentation changes if the DAS open routines ever
        change.

    SPICELIB Version 1.2.0, 07-OCT-1993 (NJB) (HAN) (MJS)

        Bug fix: call to CLEARD replaced with call to
        CLEARI.

    SPICELIB Version 1.1.0, 08-JUL-1993 (NJB) (MJS)

        Bug fix: extraneous commas removed from argument lists
        in calls to DASADI.

    SPICELIB Version 1.0.0, 11-NOV-1992 (NJB) (WLT)
Fri Dec 31 18:36:11 2021