Viewing contents of file '../idllib/jhuapls1r/usr/f2fi16.pro'
;-------------------------------------------------------------
;+
; NAME:
; F2FI16
; PURPOSE:
; Convert feet to feet, inches, and fractions to 1/16 inch.
; CATEGORY:
; CALLING SEQUENCE:
; s = f2fi16(f)
; INPUTS:
; f = distance in feet. in
; KEYWORD PARAMETERS:
; Keywords:
; MIN_INCHES=d convert values < d to mm.
; MAX_MILES=D convert values > D to miles.
; OUTPUTS:
; s = distance as a text string. out
; COMMON BLOCKS:
; NOTES:
; MODIFICATION HISTORY:
; R. Sterner. 4 Oct, 1988.
; Johns Hopkins University Applied Physics Laboratory.
; RES 13 Sep, 1989 --- converted to SUN.
;
; Copyright (C) 1988, 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 F2FI16, FEET, min_inches=mi, max_miles=mxm, help=hlp
if (n_params(0) lt 1) or keyword_set(hlp) then begin
print,' Convert feet to feet, inches, and fractions to 1/16 inch.'
print,' s = f2fi16(f)'
print,' f = distance in feet. in'
print,' s = distance as a text string. out'
print,' Keywords:'
print,' MIN_INCHES=d convert values < d to mm.'
print,' MAX_MILES=D convert values > D to miles.'
return, -1
endif
;------- convert small values to mm ------------
inch = feet*12.
if keyword_set(mi) then begin
if inch lt mi then begin
s = string(inch*25.4,'$(f6.2)')
s = strtrim(s,2)+ ' mm'
return, s
endif
endif
;------- convert large values to miles ------------
miles = feet/5280.
if keyword_set(mxm) then begin
if miles gt mxm then begin
s = string(miles,'$(f10.2)')
s = strtrim(s,2)+ ' miles'
return, s
endif
endif
FR = ['Error','1/16 ','1/8 ','3/16 ','1/4 ','5/16 ','3/8 ','7/16 ',$
'1/2 ','9/16 ','5/8 ','11/16','3/4 ','13/16','7/8 ','15/16']
sn = ' '
if feet lt 0. then sn = '-'
feet = abs(feet)
T = LONG(FEET)
I = 12.0*(FEET-T)
F = FIX(.5 + 16*(I-FIX(I)))
IF F EQ 16 THEN BEGIN
I = I + 1
F = 0
ENDIF
S = sn + STRTRIM(T,2)+"'"
IF ((F GT 0) OR (I GT 0)) THEN S = S+' '+STRTRIM(FIX(I),2)+'"'
IF F GT 0 THEN S = S + FR(F)
RETURN, S
END