kclear |
Table of contents
ProcedureKCLEAR ( Keeper clear ) ENTRY KCLEAR AbstractClear the KEEPER subsystem: unload all kernels, clear the kernel pool, and re-initialize the subsystem. Existing watches on kernel variables are retained. Required_ReadingNone. KeywordsKERNEL DeclarationsNone. Brief_I/ONone. Detailed_InputNone. This routine operates by side effects. See $Particulars below. Detailed_OutputNone. ParametersNone. Exceptions1) If an error occurs when setting a kernel pool watch or checking watched variables, the error is signaled by a routine in the call tree of this routine. FilesSee $Particulars. ParticularsThis entry point allows you re-initialize the KEEPER system with a single call. This routine unloads all kernels from their kernel-type-specific kernel management subsystems (SPKBSR, CKBSR, etc.), clears the kernel pool, clears KEEPER's internal file database, and re-sets the watch status for the kernel variables used to load kernels via meta-kernels. As a side effect of clearing the kernel pool, all watched variables are marked as updated. Note that clearing the kernel pool does not delete watches (aka "watchers"). Watches can be deleted by calling the POOL entry point DWPOOL. This capability, though implemented in Fortran, is particularly relevant to SPICE implementations such as Icy, for which the state of the KEEPER system persists after any Icy-based IDL script is run. Successive runs of Icy-based scripts may perform in unexpected ways when scripts access data loaded during runs of previous scripts. Cleaning up after such programs using explicit UNLOAD commands is tedious and error-prone. One call to this routine sets the KEEPER system to its initial state, preventing unintentional interaction between scripts via KEEPER's state. 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) Load a meta-kernel containing three kernels, and count the number of files in the kernel pool before and after calling KCLEAR. Use the meta-kernel shown below to load the required SPICE kernels. KPL/MK File name: kclear_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 pck00009.tpc Planet orientation and radii naif0012.tls Leapseconds \begindata KERNELS_TO_LOAD = ( 'de421.bsp', 'naif0012.tls', 'pck00009.tpc' ) \begintext End of meta-kernel Example code begins here. PROGRAM KCLEAR_EX1 IMPLICIT NONE C C Local variables. C INTEGER COUNT C C Load several kernel files. C CALL FURNSH ( 'kclear_ex1.tm' ) C C Count the number of loaded kernel files. C CALL KTOTAL ( 'ALL', COUNT ) WRITE(*,'(A,I2)') 'The total number of kernels after ' . // 'FURNSH: ', COUNT C C Clear the KEEPER system, retrieve the number of loaded C after the clear. C CALL KCLEAR() CALL KTOTAL ( 'ALL', COUNT ) WRITE(*,'(A,I2)') 'The total number of kernels after ' . // 'KCLEAR: ', COUNT END When this program was executed on a Mac/Intel/gfortran/64-bit platform, the output was: The total number of kernels after FURNSH: 4 The total number of kernels after KCLEAR: 0 Restrictions1) Calling this routine will wipe out any kernel pool data inserted via the SPICELIB API routines to put data into the kernel pool (PCPOOL, PDPOOL and PIPOOL). Literature_ReferencesNone. Author_and_InstitutionN.J. Bachman (JPL) J. Diaz del Rio (ODC Space) B.V. Semenov (JPL) E.D. Wright (JPL) VersionSPICELIB Version 5.0.1, 08-AUG-2021 (JDR) Edited the header to comply with NAIF standard. Added complete code example from existing code fragments. Improved $Restrictions 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.1, 01-JUL-2014 (NJB) (EDW) Updated the discussion of kernel variable watchers. Last update was 13-APR-2011 (EDW) Trivial edit to $Restrictions, replaced P*POOL with PXPOOL. The "*" character causes the HTML documentation script to create a link for the "POOL" substring. SPICELIB Version 1.0.0, 15-NOV-2006 (NJB) |
Fri Dec 31 18:36:29 2021