kinfo |
Table of contents
ProcedureKINFO ( Kernel Information ) ENTRY KINFO ( FILE, FILTYP, SRCFIL, HANDLE, FOUND ) AbstractReturn information about a specific kernel Required_ReadingNone. KeywordsKERNEL DeclarationsCHARACTER*(*) FILE CHARACTER*(*) FILTYP CHARACTER*(*) SRCFIL INTEGER HANDLE LOGICAL FOUND Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- FILE I Name of a kernel to fetch information for FILTYP O The type of the kernel SRCFIL O Name of the source file used to load FILE. HANDLE O The handle attached to FILE. FOUND O .TRUE. if the specified file could be located. Detailed_InputFILE is the name of a kernel file for which KEEPER information is desired. Detailed_OutputFILTYP is the type of the kernel specified by FILE. FILE will be blank if FILE is not on the list of loaded kernels. SRCFIL is the name of the source file that was used to specify FILE as one to load. If FILE was loaded directly via a call to FURNSH, SRCFIL will be blank. If FILE is not on the list of loaded kernels, SRCFIL will be blank HANDLE is the handle attached to FILE if it is a binary kernel. If FILE is a text kernel or meta-text kernel HANDLE will be zero. If FILE is not on the list of loaded kernels, HANDLE will be set to zero. FOUND is returned .TRUE. if FILE is on the KEEPER list of loaded kernels. If there is no such file, FOUND will be set to .FALSE. ParametersNone. ExceptionsError free. 1) If the specified file is not on the list of files that are currently loaded via the interface FURNSH, FOUND will be .FALSE., HANDLE will be set to zero and FILTYP and SRCFIL will be set to blanks. 2) If any of FILTYP or SRCFIL output strings has length too short to contain the corresponding output string, the string is truncated on the right. FilesNone. ParticularsThis entry point allows you to request information directly for a specific SPICE kernel. ExamplesThe numerical results shown for this example may differ across platforms. The results depend on the SPICE kernels used as input, the compiler and supporting libraries, and the machine specific arithmetic implementation. 1) Suppose you wish to determine the types of kernels loaded by a given meta-kernel. The following code example shows how you might use this routine to do this. Use the meta-kernel shown below to load the required SPICE kernels. KPL/MK File name: kinfo_ex1.tm This meta-kernel is intended to support operation of SPICE example programs. The kernels shown here should not be assumed to contain adequate or correct versions of data required by SPICE-based user applications. In order for an application to use this meta-kernel, the kernels referenced here must be present in the user's current working directory. The names and contents of the kernels referenced by this meta-kernel are as follows: File name Contents --------- -------- de421.bsp Planetary ephemeris pck00008.tpc Planet orientation and radii naif0009.tls Leapseconds \begindata KERNELS_TO_LOAD = ( 'de421.bsp', 'pck00008.tpc', 'naif0009.tls' ) \begintext End of meta-kernel Example code begins here. PROGRAM KINFO_EX1 IMPLICIT NONE C C SPICELIB functions C LOGICAL EQSTR C C Local constants. C INTEGER FILLEN PARAMETER ( FILLEN = 32 ) INTEGER TYPLEN PARAMETER ( TYPLEN = 33 ) INTEGER SRCLEN PARAMETER ( SRCLEN = 256 ) C C Local variables. C CHARACTER*(FILLEN) FILE CHARACTER*(TYPLEN) FILTYP CHARACTER*(SRCLEN) SRCFIL INTEGER COUNT INTEGER HANDLE INTEGER WHICH LOGICAL FOUND C C Load the meta-kernel. C CALL FURNSH ( 'kinfo_ex1.tm' ) C C Find out the total number of kernels in the kernel pool. C CALL KTOTAL ( 'all', COUNT ) IF ( COUNT .EQ. 0 ) THEN WRITE(*,*) 'No files loaded at this time.' ELSE WRITE(*,*) 'The loaded files files are: ' WRITE(*,*) ' ' END IF C C Find the file name, type and source for each of the C kernels in the kernel pool and print its type. C DO WHICH= 1, COUNT CALL KDATA ( WHICH, 'all', FILE, FILTYP, . SRCFIL, HANDLE, FOUND ) CALL KINFO ( FILE, FILTYP, SRCFIL, HANDLE, FOUND ) IF ( EQSTR( FILTYP, "SPK" ) ) THEN WRITE(*,*) FILE, ' is an SPK file.' ELSE IF ( EQSTR( FILTYP, "CK" ) ) THEN WRITE(*,*) FILE, ' is a CK file.' ELSE IF ( EQSTR( FILTYP, "PCK" ) ) THEN WRITE(*,*) FILE, ' is a PCK file.' ELSE IF ( EQSTR( FILTYP, "DSK" ) ) THEN WRITE(*,*) FILE, ' is a DSK file.' ELSE IF ( EQSTR( FILTYP, "EK" ) ) THEN WRITE(*,*) FILE, ' is an EK file.' ELSE IF ( EQSTR( FILTYP, "META" ) ) THEN WRITE(*,*) FILE, ' is a meta-kernel file.' ELSE WRITE(*,*) FILE, ' is a text kernel.' END IF END DO END When this program was executed on a Mac/Intel/gfortran/64-bit platform, the output was: The loaded files files are: kinfo_ex1.tm is a meta-kernel file. de421.bsp is an SPK file. pck00008.tpc is a text kernel. naif0009.tls is a text kernel. RestrictionsNone. Literature_ReferencesNone. Author_and_InstitutionN.J. Bachman (JPL) J. Diaz del Rio (ODC Space) B.V. Semenov (JPL) W.L. Taber (JPL) VersionSPICELIB Version 5.1.0, 08-AUG-2021 (JDR) Changed argument name SOURCE to SRCFIL for consistency with other routines. Edited the header to comply with NAIF standard. Created complete code example from existing code fragments. Added entry #2 to $Exceptions section. SPICELIB Version 5.0.0, 01-FEB-2017 (NJB) (BVS) Updated to support use of DSKs. Updated the $Author_and_Institution section. SPICELIB Version 1.0.0, 01-JUL-1999 (WLT) |
Fri Dec 31 18:36:29 2021