Viewing contents of file '../idllib/jhuapls1r/usr/d2dms.pro'
;-------------------------------------------------------------
;+
; NAME:
;       D2DMS
; PURPOSE:
;       Function to convert from degrees to deg, min, sec.
; CATEGORY:
; CALLING SEQUENCE:
;       s = d2dms( deg)
; INPUTS:
;       deg = input in degrees.             in
; KEYWORD PARAMETERS:
;       Keywords:
;         DIGITS=n  Force degrees to have n digits.
; OUTPUTS:
;       s = output string.                  out
; COMMON BLOCKS:
; NOTES:
; MODIFICATION HISTORY:
;       R. Sterner, 1997 Jan 17
;
; Copyright (C) 1997, Johns Hopkins University/Applied Physics Laboratory
; This software may be used, copied, or redistributed as long as it is not
; sold and this copyright notice is reproduced on each copy made.  This
; routine is provided as is without any express or implied warranties
; whatsoever.  Other limitations apply as described in the file disclaimer.txt.
;-
;-------------------------------------------------------------
	function d2dms, a, help=hlp, digits=digits
 
	if (n_params(0) lt 1) or keyword_set(hlp) then begin
	  print,' Function to convert from degrees to deg, min, sec.'
	  print,' s = d2dms( deg)'
	  print,'   deg = input in degrees.             in'
	  print,'   s = output string.                  out'
	  print,' Keywords:'
	  print,'   DIGITS=n  Force degrees to have n digits.'
	  return,''
	endif
 
	;----  Break degrees into deg, min, sec  -----------
	sn = a lt 0.	; Sign.
	aa = abs(a)
	d = fix(aa)	; Degrees.
	t = (aa-d)*60.
	m = fix(t)	; Minutes.
	s = round((t-m)*60.)
	if s eq 60 then begin	; Deal with seconds > 59.5.
	  m = m + 1
	  s = 0
	endif
 
	;----  Format output string  --------------
	ds = string(179B)	; Deg symbol.
	ms = string(39B)
	ss = string([39B,39B])
 
	if n_elements(digits) gt 0 then begin
	  frm = '(I'+strtrim(digits,2)+'.'+strtrim(digits,2)+')'
	  dt = string(d,form=frm)
	endif else dt = strtrim(d,2)
	if sn eq 1 then dt='-'+dt else dt=' '+dt
	dt = dt+ds
 
	mt = string(m,form='(I2.2)')
	st = string(s,form='(I2.2)')
 
	out = dt+' '+mt+ms+' '+st+ss
 
	return,out
	end