CNMFRM ( Center NaMe to FRaMe id and name )
ENTRY CNMFRM ( CNAME, FRCODE, FRNAME, FOUND )
Retrieve frame ID code and name to associate with an object.
VARIABLE I/O DESCRIPTION
-------- --- --------------------------------------------------
CNAME I name of the object to find a frame for
FRCODE O the ID code of the frame associated with CNAME
FRNAME O the name of the frame with ID FRCODE
FOUND O TRUE if the requested information is available.
CNAME is the name for object for which there is a
preferred reference frame
FRCODE is the frame ID code to associate with a the object
specified by CNAME.
FRNAME is the name of the frame that should be associated
with the object specified by CNAME. FRNAME should be
declared as CHARACTER*(26) to ensure that it can
contain the full name of the frame. If FRNAME does
not have enough room to hold the full name of the
frame, the name will be truncated on the right.
FOUND is TRUE if the appropriate frame ID code and frame
name can be determined. Otherwise FOUND is returned
with the value FALSE.
1) If FRNAME is not have room to contain the frame name, the name
will be truncated on the right. ( Declaring FRNAME to be
CHARACTER*(26) will ensure that the name will not be
This routine allows the user to determine the frame that should
be associated with a particular object. For example, if you
need the frame to associate with the Io, you can call CNMFRM
to determine the frame name and ID code for the bodyfixed frame
The preferred frame to use with an object is specified via one
of the kernel pool variables:
where <cname> is the non-blank portion of the string CNAME.
For those PCK objects that have "built-in" frame names this
routine returns the corresponding "IAU" frame and frame ID code.
Suppose that you want to determine the state of a target
in the preferred reference frame of some observer. This
routine can be used in conjunction with SPKEZR to compute
CALL CNMFRM ( OBSNAM, FRCODE, FRNAME, FOUND )
IF ( .NOT. FOUND ) THEN
WRITE (*,*) 'The bodyfixed frame for object ', OBSNAM
WRITE (*,*) 'could not be identified.'
CALL SPKEZR ( TARGET, ET, FRNAME, ABCORR, OBSNAM, STATE, LT )
N.J. Bachman (JPL)
B.V. Semenov (JPL)
W.L. Taber (JPL)
SPICELIB Version 3.2.0, 08-AUG-2012 (BVS)
The routine was updated to be more efficient by using hashes
instead kernel POOL look-ups for kernel POOL frames and by
using hases instead of ordered array searches for built-in
SPICELIB Version 3.1.0, 28-NOV-2002 (NJB)
Bug fix: updated this routine so a TK frame specified by name
and designated as an object's preferred frame via kernel pool
assignments is found, and so that the correct name of this
frame is returned.
SPICELIB Version 3.0.1, 25-JUN-1999 (WLT)
Extended documentation of entry point CNMFRM and
corrected example for that entry point.
SPICELIB Version 3.0.0, 03-JUN-1997 (WLT)
The entry points CIDFRM and CNMFRM were added so that
user's may determine the frame-id and name to associated
with a planetary object.
SPICELIB Version 2.0.0, 04-APR-1997 (WLT)
The routine was upgraded to reflect that a block of
frame ID codes have been reserved for use by the DSN.
ID codes 13001 to 13999 have been set aside for DSN
models for the orientation of the earth. These frames
are all PCK frames. Moreover, the PCK ID code to
use with these frames is simply the Frame-Code minus 10000.
All of these frames are centered at the earth (body 399).
SPICELIB Version 1.1.0, 14-OCT-1996 (WLT)
The values NINERT and NNINRT are included instead of
being declared locally.
SPICELIB Version 1.0.0, 18-SEP-1995 (WLT)