Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 
Index Page
expool_c

Table of contents
Procedure
Abstract
Required_Reading
Keywords
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version
Index_Entries

Procedure

   expool_c ( Confirm the existence of a pooled kernel variable ) 

   void expool_c ( ConstSpiceChar  * name,
                   SpiceBoolean    * found )

Abstract

   Confirm the existence of a numeric kernel variable in the kernel
   pool.

Required_Reading

   KERNEL

Keywords

   CONSTANTS
   FILES


Brief_I/O

   VARIABLE  I/O  DESCRIPTION
   --------  ---  --------------------------------------------------
   name       I   Name of a numeric kernel variable.
   found      O   SPICETRUE when the variable is in the pool.

Detailed_Input

   name        is the name of the numeric kernel variable whose
               existence in the kernel pool is to be checked.

Detailed_Output

   found       is SPICETRUE whenever the specified variable is included
               in the pool.

Parameters

   None.

Exceptions

   1)  If the `name' input string pointer is null, the error
       SPICE(NULLPOINTER) is signaled.

   2)  If the `name' input string has zero length, the error
       SPICE(EMPTYSTRING) is signaled.

Files

   None.

Particulars

   This routine determines whether or not a numeric kernel pool
   variable exists. It does not detect the existence of
   string valued kernel pool variables.

   A better routine for determining the existence of numeric kernel
   pool variables is the routine dtpool_c which determines the
   existence, size and type of kernel pool variables.

Examples

   The 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) The following code example demonstrates how to use expool_c
      to confirm the existence of numeric kernel pool variables.
      In the example, we will look for different variables;
      some of them numeric, some string valued and some not
      present in the kernel pool.

      Use the kernel shown below; an IK defining two keywords
      used to provide data for an instrument with NAIF ID -999001.


         KPL/IK

         File name: expool_ex1.ti

         The keyword below define the three frequencies used by a
         hypothetical instrument (NAIF ID -999001). They correspond
         to three filters: red, green and blue. Frequencies are
         given in micrometers.

         \begindata

            INS-999001_FREQ_RGB   = (  0.65,  0.55, 0.475 )
            INS-999001_FREQ_UNITS = ( 'MICROMETERS'       )

         \begintext


         End of IK


      Example code begins here.


      /.
         Program expool_ex1
      ./
      #include <stdio.h>
      #include "SpiceUsr.h"

      int main( )
      {

         /.
         Local parameters.
         ./
         #define IKNAME       "expool_ex1.ti"
         #define KPVNLN       33
         #define NKPVNM       3

         /.
         Local variables.
         ./
         SpiceInt             i;

         SpiceBoolean         found;

         /.
         Define the variable names
         ./
         SpiceChar            keywrd [NKPVNM][KPVNLN] = {
                                                    "INS-999001_FREQ_RGB",
                                                    "NOT_IN_THE_POOL",
                                                    "INS-999001_FREQ_UNITS" };

         /.
         Load the instrument kernel.
         ./
         furnsh_c ( IKNAME );

         for ( i = 0; i < NKPVNM; i++ )
         {

            /.
            Check if the variable is numeric and present
            in the kernel pool.
            ./
            expool_c ( keywrd[i], &found );

            printf( "Variable name: %s\n", keywrd[i] );

            if ( found )
            {
               printf( "   It is numeric and exists in the kernel pool.\n" );
            }
            else
            {
               printf( "   Either it is not numeric or it is not in the "
                       "kernel pool.\n" );
            }
         }

         return ( 0 );
      }


      When this program was executed on a Mac/Intel/cc/64-bit
      platform, the output was:


      Variable name: INS-999001_FREQ_RGB
         It is numeric and exists in the kernel pool.
      Variable name: NOT_IN_THE_POOL
         Either it is not numeric or it is not in the kernel pool.
      Variable name: INS-999001_FREQ_UNITS
         Either it is not numeric or it is not in the kernel pool.

Restrictions

   None.

Literature_References

   None.

Author_and_Institution

   N.J. Bachman        (JPL)
   J. Diaz del Rio     (ODC Space)
   E.D. Wright         (JPL)

Version

   -CSPICE Version 1.2.1, 04-AUG-2021 (JDR)

       Edited header to comply with NAIF standard. Added complete code
       example.

   -CSPICE Version 1.2.0, 22-JUN-1999 (EDW)

       Added local variable to return boolean/logical values. This
       fix allows the routine to function if int and long are different
       sizes.

   -CSPICE Version 1.1.0, 08-FEB-1998 (NJB)

       Re-implemented routine without dynamically allocated, temporary
       strings.

   -CSPICE Version 1.0.0, 25-OCT-1997 (EDW)

Index_Entries

   CONFIRM the existence of a pooled numeric kernel variable
Fri Dec 31 18:41:06 2021