rotget |
Table of contents
ProcedureROTGET ( Frame get rotation ) SUBROUTINE ROTGET ( INFRM, ET, ROTATE, OUTFRM, FOUND ) AbstractFind the rotation 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 ROTATE ( 3, 3 ) 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. ROTATE O A rotation matrix. OUTFRM O The frame that ROTATE transforms INFRM to. FOUND O .TRUE. if a rotation 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 rotation matrix. Detailed_OutputROTATE is a 3x3 matrix that rotates positions relative to INFRM to positions relative to OUTFRM. (Assuming such a rotation can be found.) OUTFRM is the SPICE ID-code of a reference frame. The 3x3 matrix ROTATE rotates positions relative to INFRM to positions relative to OUTFRM. The positions transformation is achieved by multiplying ROTATE on the right by a position relative to INFRM. This is easily accomplished via the subroutine call shown below. CALL MXV ( ROTATE, INPOS, OUTPOS ) FOUND is a logical flag indicating whether or not a rotation matrix could be found from INFRM to some other frame. If a rotation matrix cannot be found OUTFRM will be set to zero, FOUND will be set to .FALSE. and ROTATE will be returned as the zero matrix. ParametersNone. Exceptions1) If a rotation matrix cannot be located, then FOUND will be set to .FALSE., OUTFRM will be set to zero and ROTATE will be set to the zero 3x3 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 position transformation matrices from one frame to another. ExamplesSee REFCHG. 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 ZZROTGT0 and ZZROTGT1, 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, 21-MAR-2014 (BVS) To prevent operations with un-initialized DP numbers, wrapped IF ( .NOT. FAILED() ) ... END IF around output matrix transposition operation in the PCK frame branch where the routine returning the matrix might fail. Incremented major version token by 2 to sync up versions with FRMGET. SPICELIB Version 2.1.0, 02-MAR-2010 (NJB) Bug fix: frame ID rather than frame class ID is now passed to dynamic frame evaluation routine ZZDYNROT. Order of header sections was corrected. SPICELIB Version 2.0.0, 18-DEC-2004 (NJB) Added the new frame type 'DYN' to the list of frame types recognized by ROTGET. SPICELIB Version 1.0.0, 03-MAR-1999 (WLT) |
Fri Dec 31 18:36:44 2021