DASSDR ( DAS, segregate data records )
SUBROUTINE DASSDR ( HANDLE )
Segregate the data records in a DAS file into clusters, using
one cluster per data type present in the file.
DAS
DAS
FILES
ORDER
SORT
INTEGER HANDLE
Variable I/O Description
-------- --- --------------------------------------------------
HANDLE I DAS file handle.
HANDLE is a file handle of a DAS file opened for writing.
None. See $Particulars for a description of the effect of this
routine.
None.
1) If the input file handle is invalid, the error will be
diagnosed by routines called by this routine.
2) If a Fortran read attempted by this routine fails, the
error will be diagnosed by routines called by this routine.
The state of the DAS file undergoing re-ordering will be
indeterminate.
3) If a Fortran write attempted by this routine fails, the
error will be diagnosed by routines called by 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 will be
diagnosed by routines called by this routine.
See the description of the argument HANDLE in $Detailed_Input.
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.
1) Segregate data records in a DAS file designated by
HANDLE:
CALL DASSDR ( HANDLE )
None.
None.
K.R. Gehringer (JPL)
N.J. Bachman (JPL)
W.L. Taber (JPL)
SPICELIB Version 2.0.1 19-DEC-1995 (NJB)
Corrected title of permuted index entry section.
EKLIB 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.
EKLIB Version 1.2.0, 07-OCT-1993 (NJB) (HAN) (MJS)
Bug fix: call to CLEARD replaced with call to
CLEARI.
EKLIB 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)
|