| rotget |
|
Table of contents
Procedure
ROTGET ( Frame get rotation )
SUBROUTINE ROTGET ( INFRM, ET, ROTATE, OUTFRM, FOUND )
Abstract
Find the rotation from a user specified frame to another frame at
a user specified epoch.
Required_Reading
FRAMES
Keywords
FRAMES
Declarations
IMPLICIT NONE
INCLUDE 'frmtyp.inc'
INTEGER INFRM
DOUBLE PRECISION ET
DOUBLE PRECISION ROTATE ( 3, 3 )
INTEGER OUTFRM
LOGICAL FOUND
Brief_I/O
VARIABLE 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_Input
INFRM 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_Output
ROTATE 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.
Parameters
None.
Exceptions
1) 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.
Files
LSK, SCLK, PCK, FK, SPK, and/or CK kernels may need to be loaded
to provide the needed frame definition and transformation data.
Particulars
This is a low level routine used for determining a chain of
position transformation matrices from one frame to another.
Examples
See REFCHG.
Restrictions
None.
Literature_References
None.
Author_and_Institution
N.J. Bachman (JPL)
J. Diaz del Rio (ODC Space)
B.V. Semenov (JPL)
W.L. Taber (JPL)
Version
SPICELIB 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