bodvar |
Table of contents
ProcedureBODVAR ( Return values from the kernel pool ) SUBROUTINE BODVAR ( BODY, ITEM, DIM, VALUES ) AbstractDeprecated: This routine has been superseded by BODVCD and BODVRD. This routine is supported for purposes of backward compatibility only. Return the values of some item for any body in the kernel pool. Required_ReadingKERNEL PCK SPK KeywordsCONSTANTS DeclarationsIMPLICIT NONE INTEGER BODY CHARACTER*(*) ITEM INTEGER DIM DOUBLE PRECISION VALUES ( * ) Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- BODY I ID code of body. ITEM I Item for which values are desired. DIM O Number of values returned. VALUES O Values. Detailed_InputBODY is the ID code of the body for which ITEM is requested. ITEM is the item to be returned. Together, the body and item name combine to form a variable name, e.g., 'BODY599_RADII' 'BODY401_POLE_RA' Detailed_OutputDIM is the number of values associated with the variable. VALUES are the values associated with the variable. ParametersNone. Exceptions1) If the requested item is not found, the error SPICE(KERNELVARNOTFOUND) is signaled. FilesNone. ParticularsNone. 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) Retrieve the Earth's radii values from the kernel pool Use the PCK kernel below to load the required triaxial ellipsoidal shape model for the Earth. pck00008.tpc Example code begins here. PROGRAM BODVAR_EX1 IMPLICIT NONE C C SPICELIB functions C LOGICAL BODFND C C Local constants. C INTEGER BODYID PARAMETER ( BODYID = 399 ) C C Local variables. C DOUBLE PRECISION RADII (3) INTEGER DIM LOGICAL FOUND C C Load a PCK file. C CALL FURNSH ( 'pck00008.tpc' ) C C Test if Earth's radii values exist in the C kernel pool. C C The procedure searches for the kernel variable C BODY399_RADII. C FOUND = BODFND( BODYID, 'RADII' ) C C If found, retrieve the values. C IF ( FOUND ) THEN CALL BODVAR ( BODYID, 'RADII', DIM, RADII ) WRITE(*,'(I3,A,3F11.3)') BODYID, ' RADII:', RADII(1), . RADII(2), RADII(3) ELSE WRITE(*,*) 'No RADII data found for object ', BODYID END IF END When this program was executed on a Mac/Intel/gfortran/64-bit platform, the output was: 399 RADII: 6378.140 6378.140 6356.750 RestrictionsNone. Literature_ReferencesNone. Author_and_InstitutionN.J. Bachman (JPL) J. Diaz del Rio (ODC Space) H.A. Neilan (JPL) B.V. Semenov (JPL) W.L. Taber (JPL) I.M. Underwood (JPL) E.D. Wright (JPL) VersionSPICELIB Version 1.0.6, 17-JUN-2021 (JDR) Edited the header to comply with NAIF standard. Added complete code example. Updated input argument BODY detailed description. Added SPK to the list of required readings. SPICELIB Version 1.0.5, 18-MAY-2010 (BVS) Index lines now state that this routine is deprecated. SPICELIB Version 1.0.4, 27-OCT-2005 (NJB) Routine is now deprecated. SPICELIB Version 1.0.3, 08-JAN-2004 (EDW) Trivial typo corrected. SPICELIB Version 1.0.2, 10-MAR-1992 (WLT) Comment section for permuted index source lines was added following the header. SPICELIB Version 1.0.1, 08-AUG-1990 (HAN) Detailed Input section of the header was updated. The description for the variable BODY was incorrect. SPICELIB Version 1.0.0, 31-JAN-1990 (WLT) (IMU) |
Fri Dec 31 18:36:00 2021