frmget |
Table of contents
ProcedureFRMGET ( Frame get transformation ) SUBROUTINE FRMGET ( INFRM, ET, XFORM, OUTFRM, FOUND ) AbstractFind the transformation from a user specified frame to another frame at a user specified epoch. Required_ReadingFRAMES KeywordsFRAMES DeclarationsIMPLICIT NONE INCLUDE 'frmtyp.inc' INTEGER INFRM DOUBLE PRECISION ET DOUBLE PRECISION XFORM ( 6, 6 ) INTEGER OUTFRM LOGICAL FOUND Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- INFRM I The integer code for a SPICE reference frame. ET I An epoch in seconds past J2000. XFORM O A state transformation matrix. OUTFRM O The frame that XFORM transforms INFRM to. FOUND O .TRUE. if a frame transformation can be found. Detailed_InputINFRM is the SPICE ID-code for some reference frame. ET is an epoch in ephemeris seconds past J2000 at which the user wishes to retrieve a state transformation matrix. Detailed_OutputXFORM is a 6x6 matrix that transforms states relative to INFRM to states relative to OUTFRM. (Assuming such a transformation can be found.) OUTFRM is the SPICE ID-code of a reference frame. The 6x6 matrix XFORM transforms states relative to INFRM to states relative to OUTFRM. The state transformation is achieved by multiplying XFORM on the right by a state relative to INFRM. This is easily accomplished via the subroutine call shown below. CALL MXVG ( XFORM, STATE, 6, 6, OSTATE ) FOUND is a logical flag indicating whether or not a transformation matrix could be found from INFRM to some other frame. If a transformation matrix cannot be found OUTFRM will be set to zero, FOUND will be set to .FALSE. and XFORM will be returned as the zero matrix. ParametersSee include file. Exceptions1) If a transformation matrix cannot be located, then FOUND will be set to .FALSE., OUTFRM will be set to zero and XFORM will be set to the zero 6x6 matrix. 2) If the class of the requested frame is not recognized the exception, the error SPICE(UNKNOWNFRAMETYPE) is signaled. FilesLSK, SCLK, PCK, FK, SPK, and/or CK kernels may need to be loaded to provide the needed frame definition and transformation data. ParticularsThis is a low level routine used for determining a chain of state transformation matrices from one frame to another. ExamplesSee FRMCHG. 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.0.0, 15-MAR-2021 (NJB) (JDR) **Updated shadow routines ZZFRMGT0 and ZZFRMGT1, as must be done each time this routine is updated.** Support for switch frames was added. VERSN is now initialized via a DATA statement. Corrected long error message to use the term "class" rather than "class id-code." Edited the header to comply with NAIF standard. SPICELIB Version 4.0.0, 05-JAN-2014 (BVS) To prevent operations with un-initialized DP numbers, wrapped IF ( .NOT. FAILED() ) ... END IF around output matrix transposition/re-assignment operations in all branches where the routine returning the matrix might fail. Added zero-ing out the output matrix in cases of a failed or .NOT. FOUND transformation look ups. SPICELIB Version 3.0.0, 18-DEC-2004 (NJB) Added the new frame type 'DYN' to the list of frame types recognized by FRMGET. SPICELIB Version 2.0.0, 03-APR-1997 (WLT) Added the new frame type 'TK' to the list of frame types recognized by FRMGET. In addition the routine now checks FAILED after "getting" the frame transformation. SPICELIB Version 1.0.0, 20-OCT-1994 (WLT) |
Fri Dec 31 18:36:22 2021