Table of contents
CSPICE_PIPOOL provides toolkit programmers a method for
programmatically inserting integer data into the kernel pool.
Given:
name the scalar string name of the kernel pool variable to associate
with the values supplied in the array `ivals'.
help, name
STRING = Scalar
`name' is restricted to a length of 32 characters or less.
ivals an array of integers to load into the kernel pool sub-system
with the assigned variable name `name'.
help, ivals
LONG = Array[N]
the call:
cspice_pipool, name, ivals
inserts the variable `name' into the kernel pool with values as defined in
`ivals'.
None.
Any numerical results shown for this example may differ between
platforms as the results depend on the SPICE kernels used as input
and the machine specific arithmetic implementation.
1) The following program demonstrates how to programmatically
insert integer data into the kernel pool.
Example code begins here.
PRO pipool_ex1
;;
;; Define array sizes and the kernel variable name.
;;
PIPOOL_DIM = 9
PIPOOL_VAR = 'pipool_array'
NUM_VALS = 50
;;
;; Create an array of longs, 0 to (POOL_DIM-1)
;;
pipool_arr = lindgen( PIPOOL_DIM )
;;
;; Insert the data assigned to 'PIPOOL_VAR' into the kernel pool.
;;
cspice_pipool, PIPOOL_VAR, pipool_arr
;;
;; Retrieve the values associated to 'PIPOOL_VAR' into the
;; variable ivals. Retrieve all values, so set
;; 'START' to zero.
;;
START = 0
cspice_gipool, PIPOOL_VAR, START, NUM_VALS, ivals, found
;;
;; Check we found the expected variable, and ensure
;; the expected values.
;;
if ( found ) then begin
print, 'Found array variable ' + PIPOOL_VAR + ' with entries:'
for i = 0, (n_elements(ivals)-1) do begin
print, ivals[i]
endfor
endif else begin
print, 'Variable ' + PIPOOL_VAR + ' not found in kernel pool.'
endelse
END
When this program was executed on a Mac/Intel/IDL8.x/64-bit
platform, the output was:
Found array variable pipool_array with entries:
0
1
2
3
4
5
6
7
8
Kernel pool variable names are restricted to a length of 32
characters or less.
1) If `name' is already present in the kernel pool and there
is sufficient room to hold all values supplied in `ivals',
the old values associated with `name' will be overwritten.
2) If there is not sufficient room to insert a new variable into
the kernel pool and `name' is not already present in the kernel
pool, an error is signaled by a routine in the call tree of
this routine.
3) If there is not sufficient room to insert the values
associated with `name', the error SPICE(NOMOREROOM) is signaled
by a routine in the call tree of this routine.
4) If the kernel pool variable name length exceeds its maximum
allowed length (see Kernel Required Reading, kernel.req), the
error SPICE(BADVARNAME) is signaled by a routine in the call
tree of this routine.
5) If any of the input arguments, `name' or `ivals', is
undefined, an error is signaled by the IDL error handling
system.
6) If any of the input arguments, `name' or `ivals', is not of
the expected type, or it does not have the expected dimensions
and size, an error is signaled by the Icy interface.
None.
None.
ICY.REQ
KERNEL.REQ
None.
J. Diaz del Rio (ODC Space)
E.D. Wright (JPL)
-Icy Version 1.0.2, 10-AUG-2021 (JDR)
Edited the -Examples section to comply with NAIF standard. Added
example's problem statement.
Added -Parameters, -Exceptions, -Files, -Restrictions,
-Literature_References and -Author_and_Institution sections.
Removed reference to the routine's corresponding CSPICE header from
-Abstract section.
Added arguments' type and size information in the -I/O section.
-Icy Version 1.0.1, 10-FEB-2010 (EDW)
Added mention of the length restriction on the kernel pool variable
name "name".
-Icy Version 1.0.0, 16-JUN-2003 (EDW)
Set the value of a numeric kernel pool variable
|