dassdr |
Table of contents
ProcedureDASSDR ( DAS, segregate data records ) SUBROUTINE DASSDR ( HANDLE ) AbstractSegregate the data records in a DAS file into clusters, using one cluster per data type present in the file. Required_ReadingDAS KeywordsDAS FILES ORDER SORT DeclarationsIMPLICIT NONE INTEGER HANDLE Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- HANDLE I DAS file handle. Detailed_InputHANDLE is a file handle of a DAS file opened for writing. Detailed_OutputNone. See $Particulars for a description of the effect of this routine. ParametersNone. Exceptions1) 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. FilesSee the description of the argument HANDLE in $Detailed_Input. ParticularsNormally, 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. Examples1) Segregate data records in a DAS file designated by HANDLE: CALL DASSDR ( HANDLE ) RestrictionsNone. Literature_ReferencesNone. Author_and_InstitutionN.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) VersionSPICELIB 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