| dafrfr | 
| Table of contents Procedure
     DAFRFR ( DAF, read file record )
     SUBROUTINE DAFRFR ( HANDLE, ND, NI, IFNAME, FWARD, BWARD, FREE )
Abstract
     Read the contents of the file record of a DAF.
Required_Reading
     DAF
Keywords
     FILES
Declarations
     IMPLICIT NONE
     INTEGER               HANDLE
     INTEGER               ND
     INTEGER               NI
     CHARACTER*(*)         IFNAME
     INTEGER               FWARD
     INTEGER               BWARD
     INTEGER               FREE
Brief_I/O
     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     HANDLE     I   Handle of an open DAF file.
     ND         O   Number of double precision components in summaries.
     NI         O   Number of integer components in summaries.
     IFNAME     O   Internal file name.
     FWARD      O   Forward list pointer.
     BWARD      O   Backward list pointer.
     FREE       O   Free address pointer.
Detailed_Input
     HANDLE   is the handle assigned to a DAF file opened for
              reading.
Detailed_Output
     ND,
     NI       are the numbers of double precision and integer
              components, respectively, in each array summary in
              the specified file.
     IFNAME   is the internal file name stored in the first
              (or file) record of the specified file.
     FWARD    is the forward list pointer. This points to the
              first summary record in the file. (Records between
              the first record and the first summary record are
              reserved when the file is created, and are invisible
              to DAF routines.)
     BWARD    is the backward list pointer. This points
              to the final summary record in the file.
     FREE     is the free address pointer. This contains the
              first free address in the file. (That is, the
              initial address of the next array to be added
              to the file.)
Parameters
     None.
Exceptions
     1)  If the handle passed to this routine is not the handle of an
         open DAF file, an error is signaled by a routine in the call
         tree of this routine.
     2)  If the specified DAF file is not open for read access, an
         error is signaled by a routine in the call tree of this
         routine.
     3)  If the specified record cannot (for some reason) be read,
         the error SPICE(DAFFRNOTFOUND) is signaled.
Files
     None.
Particulars
     The file record of a DAF is the only record that contains
     any global information about the file. This record is created
     when the file is created, and is updated only when new arrays
     are added.
     Like character records, file records are not buffered.
Examples
     In the following example, the value of the forward list
     pointer is examined in order to determine the number of
     reserved records in the DAF. These records are then read
     and the contents printed to the screen.
        CALL DAFRFR ( HANDLE, ND, NI, IFNAME, FWARD, BWARD, FREE )
        CALL DAFHLU ( HANDLE, UNIT )
        DO I = 2, FWARD - 1
           READ  (UNIT,REC=I) PRIVATE(1:1000)
           WRITE (*,*)        PRIVATE(1:1000)
        END DO
Restrictions
     None.
Literature_References
     None.
Author_and_Institution
     J. Diaz del Rio    (ODC Space)
     K.R. Gehringer     (JPL)
     H.A. Neilan        (JPL)
     W.L. Taber         (JPL)
     F.S. Turner        (JPL)
     I.M. Underwood     (JPL)
     E.D. Wright        (JPL)
Version
    SPICELIB Version 3.2.0, 02-JUL-2021 (JDR)
        Added IMPLICIT NONE statement.
        Edited the header to comply with NAIF standard.
    SPICELIB Version 3.1.0, 30-DEC-2009 (EDW)
        Expanded DAFFRNOTFOUND error message to identify the file
        handle corresponding to the error condition.
        Reordered header sections to conform to SPICE format.
        Merged the $Revisions sections, now deleted, with $Version.
    SPICELIB Version 3.0.0, 16-NOV-2001 (FST)
        Updated this routine to utilize interfaces built on
        the new handle manager to perform I/O operations.
        This routine now utilizes ZZDAFGFR to retrieve information
        from the file record. As this private interface takes a
        handle and performs the necessary logical unit to handle
        mapping, the call to DAFHLU was removed. The DAFSIH call
        remains, since this insures that HANDLE is known to DAFAH.
    SPICELIB Version 2.0.0, 04-OCT-1993 (KRG)
        The error SPICE(DAFNOIDWORD) is no longer signaled by this
        routine. The reason for this is that if DAFSIH returns OK then
        the handle passed to this routine is indeed a valid DAF file
        handle, otherwise the error is diagnosed by DAFSIH.
        Added a call to DAFSIH to signal an invalid handle and a test
        of FAILED () after it. This is to make sure that the DAF file
        is open for reading. If this call succeeds, we know that we
        have a valid DAF handle, so there is no need to check FAILED
        after the call to DAFHLU.
        The variable name DAFWRD was changed to IDWORD.
        Added two new exceptions to the $Exceptions section: 1 and 2.
        The remaining exception (3) was already present. The exceptions
        that were added are not new, but are being documented for the
        first time.
    SPICELIB Version 1.0.3, 06-OCT-1992 (HAN)
        Corrected a typo in the $Brief_I/O section. ND was listed
        twice as an input, and NI was not listed.
    SPICELIB Version 1.0.2, 10-MAR-1992 (WLT)
        Comment section for permuted index source lines was added
        following the header.
    SPICELIB Version 1.0.1, 22-MAR-1990 (HAN)
        Literature references added to the header.
    SPICELIB Version 1.0.0, 31-JAN-1990 (IMU) | 
Fri Dec 31 18:36:09 2021