| 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