rdkvar |
Table of contents
ProcedureRDKVAR ( Read the next variable from a kernel file ) SUBROUTINE RDKVAR ( TABSYM, TABPTR, TABVAL, NAME, EOF ) AbstractRead the next variable from a SPICE ASCII kernel file into a double precision symbol table. Required_ReadingKERNEL SYMBOLS KeywordsFILES DeclarationsIMPLICIT NONE INTEGER LBCELL PARAMETER ( LBCELL = -5 ) CHARACTER*(*) TABSYM ( LBCELL:* ) INTEGER TABPTR ( LBCELL:* ) DOUBLE PRECISION TABVAL ( LBCELL:* ) CHARACTER*(*) NAME LOGICAL EOF INTEGER LINLEN PARAMETER ( LINLEN = 80 ) Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- TABSYM, TABPTR, TABVAL I-O Symbol table. NAME O Name of the variable. EOF O End of file indicator. LINLEN P Maximum line length. Detailed_InputTABSYM, TABPTR, TABVAL are the components of a double precision symbol table. On input, the table may or may not contain any variables. Detailed_OutputTABSYM, TABPTR, TABVAL on output, contains the name and values of the next variable in kernel file. Depending on the assignment directive, the values in the file may replace or augment any existing values. NAME is the name of the variable. NAME is blank if no variable is read. EOF is .TRUE. when the end of the kernel file has been reached, and is .FALSE. otherwise. The kernel file is closed automatically when the end of the file is reached. ParametersLINLEN is the maximum length of a line in the kernel file. Exceptions1) If an error occurs parsing a date from the kernel file, the error SPICE(DATEEXPECTED) is signaled. 2) If an error occurs parsing a numeric value from the kernel file, the error SPICE(NUMBEREXPECTED) is signaled. FilesRDKVAR reads from the file most recently opened by RDKNEW. ParticularsNone. ExamplesIn the following example, RDKNEW and RDKVAR are used to read the contents of two kernel files into a single symbol table. First, the table is cleared. CALL SCARDC ( 0, TABSYM ) CALL SCARDI ( 0, TABPTR ) CALL SCARDD ( 0, TABVAL ) Next, the files are opened and read individually. DO I = 1, 2 CALL RDKNEW ( KERNEL(I), EOF ) DO WHILE ( .NOT. EOF ) CALL RDKVAR ( TABSYM, TABPTR, TABVAL, NAME, EOF ) END DO END DO Let the files KERNEL(1) and KERNEL(2) contain =========================================================== \begindata DELTA_T_A = 32.184 K = 1.657D-3 ORBIT_ECC = 1.671D-2 MEAN_ANOM = ( 6.239996D0, 1.99096871D-7 ) =========================================================== and =========================================================== \begindata K = 0.0D0 =========================================================== respectively. Then the contents of the symbol table are DELTA_T_A --> 32.184 K --> 0.0D0 MEAN_ANOM --> 6.239996D0 1.99096871D-7 ORBIT_ECC --> 1.671D-2 In particular, the value of K read from the second file replaces the value read from the first file. Restrictions1) The input file must be opened and initialized by RDKNEW prior to the first call to RDKVAR. Literature_ReferencesNone. Author_and_InstitutionJ. Diaz del Rio (ODC Space) W.L. Taber (JPL) I.M. Underwood (JPL) VersionSPICELIB Version 1.2.0, 17-JUN-2021 (JDR) Added IMPLICIT NONE statement. Edited the header to comply with NAIF standard. SPICELIB Version 1.1.0, 10-MAR-1992 (WLT) Changed the length of the local character variable ERROR so that it would always have a length greater than the lengths of the character string values placed into it. SPICELIB Version 1.0.1, 10-MAR-1992 (WLT) Comment section for permuted index source lines was added following the header. SPICELIB Version 1.0.0, 31-JAN-1990 (IMU) |
Fri Dec 31 18:36:41 2021