ADSTRING
Name
     
       ADSTRING
Purpose
     
       Return RA and Dec as character string(s) in sexagesimal format.
Explanation
     
       RA and Dec may be entered as either a 2 element vector or as
      
       two separate vectors (or scalars).  One can also specify the precision 
      
       of the declination in digits after the decimal point.
Calling Sequence
     
       result = ADSTRING( ra_dec, precision, /TRUNCATE )           
              
               or
      
       result = ADSTRING( ra,dec,[ precision, /TRUNCATE ] )
              
               or
      
       result = ADSTRING( dec, [ PRECISION= ] 
Inputs
     
       RA_DEC - 2 element vector giving the Right Ascension and declination
              
               in decimal degrees.
                    
                     or
      
       RA     - Right ascension in decimal degrees, numeric scalar or vector
      
       DEC    - Declination in decimal degrees, numeric scalar or vector
Optional Input
     
       PRECISION  - Integer scalar (0-4) giving the number of digits after the 
              
               decimal of DEClination.   The RA is automatically 1 digit more.
              
               This parameter may either be the third parameter after RA,DEC 
              
               or the second parameter after [RA,DEC].  If only DEC is supplied 
              
               then precision must be supplied as a keyword parameter.   If no
              
               PRECISION parameter or keyword is passed, a  precision of 1 for
              
               both RA and DEC is returned to maintain  compatibility with past
              
               ADSTRING versions.    Values of  precision larger than 4 will 
              
               be truncated to 4.    If PRECISION is 3 or 4, then RA and Dec 
              
               should be input as double precision.
Optional Input Keyword
     
       /TRUNCATE - if set, then the last displayed digit in the output is 
              
               truncated in precision rather than rounded.   This option is
              
               useful if ADSTRING() is used to form an official IAU name 
              
               (see http://vizier.u-strasbg.fr/Dic/iau-spec.htx) with 
              
               coordinate specification.   The IAU name will typically be
              
               be created by applying STRCOMPRESS/REMOVE) after the ADSTRING()
              
               call, e.g. 
              
              strcompress( adstring(ra,dec,0,/truncate), /remove)   ;IAU format
        
        PRECISION = Alternate method of supplying the precision parameter, 
Output
     
       RESULT - Character string(s) containing HR,MIN,SEC,DEC,MIN,SEC formatted
              
               as ( 2I3,F5.(p+1),2I3,F4.p ) where p is the PRECISION 
              
               parameter.    If only a single scalar is supplied it is 
              
               converted to a sexagesimal string (2I3,F5.1).
Example
     
       (1) Display CRVAL coordinates in a FITS header, H
      
       IDL> crval = sxpar(h,'CRVAL*')  ;Extract 2 element CRVAL vector (degs)
      
       IDL> print, adstring(crval)     ;Print CRVAL vector sexagesimal format
      
       (2)  print,adstring(30.42,-1.23,1)  ==>  ' 02 01 40.80  -01 13 48.0'
            
            print,adstring(30.42,+0.23)    ==>  ' 02 01 40.8   +00 13 48.0'    
            
            print,adstring(+0.23)          ==>  '+00 13 48.0'
      
       (3) The first two calls in (2) can be combined in a single call using
          
           vector input
              
              print,adstring([30.42,30.42],[-1.23,0.23], 1)
Procedures Called
     
       RADEC, SIXTY()
Revision History
     
       Written   W. Landsman                      June 1988
      
       Addition of variable precision and DEC seconds precision fix. 
      
       ver.  Aug. 1990 [E. Deutsch]
      
       Output formatting spiffed up       October 1991 [W. Landsman]
      
       Remove ZPARCHECK call, accept 1 element vector  April 1992 [W. Landsman]
      
       Call ROUND() instead of NINT()    February 1996  [W. Landsman]
      
       Check roundoff past 60s           October 1997   [W. Landsman]
      
       Work for Precision =4             November 1997  [W. Landsman]
      
       Major rewrite to allow vector inputs   W. Landsman  February 2000
      
       Fix possible error in seconds display when Precision=0 
                    
         
                               P. Broos/W. Landsman April 2002
      
       Added /TRUNCATE keyword, put leading zeros in seconds display
                    
         
                               P. Broos/W. Landsman September 2002
      
       Fix declination zero values under vector processing W.Landsman Feb 2004
      
       Fix possible problem in leading zero display W. Landsman June 2004
      
       Assume since V5.4, omit fstring() call  W. Landsman April 2006
      
       Fix significant bug when round a declination with -1<dec<0 
          
          Add PRECISION keyword    W.L. Aug 2008
      
       Use formatting for "+" and "0"  W. L.    May 2009