;+
; NAME:
; refrac
; PURPOSE:
; Apply atmospheric refraction to a ``true'' zenith angle
; DESCRIPTION:
; This calculation is based on a few different sources. First, it is
; assumed that the index of refraction of air at the base of the atmosphere
; can be calculated (see AIRINDEX). From the index of refraction, the
; bending is computed from the formula on p.55 of the old Explanatory Supplment
; to the Nautical Almanac. This formula has been modified by removing the
; h/rho term. The explanatory supplement doesn't indicate that this is
; legitimate but I've validated this computation against a more emperical
; formalism from Eisele and Shannon (NRL memo 3058, May 1975). Eisele and
; Shannon don't indicate the wavelength of light used but if I use 0.56 microns
; and compare for the same input conditions (dry air only), the refraction
; computed agrees to within 1 arcsec down to 51 degrees zenith angle and
; is good to 10 arcsec down to 80 degrees.
; CATEGORY:
; Astronomy
; CALLING SEQUENCE:
; zref = refrac(z,wave,pressure,temp,relhum)
; INPUTS:
; z - true zenith angle (as if there were no atmosphere), in radians
; wave - wavelength of light, in microns
; pressure - atmospheric pressure in mm of Hg
; temp - atmospheric temperature in degrees C
; relhum - Relative humidity (in percent)
;
; OPTIONAL INPUT PARAMETERS:
;
; KEYWORD INPUT PARAMETERS:
;
; OUTPUTS:
; returned is the refracted (or apparent) zenith distance.
; KEYWORD OUTPUT PARAMETERS:
;
; COMMON BLOCKS:
;
; SIDE EFFECTS:
;
; RESTRICTIONS:
; Not accurate (nor useful) for z > 85 degrees.
;
; PROCEDURE:
;
; MODIFICATION HISTORY:
; 97/03/03, Written by Marc W. Buie, Lowell Observatory
;
;-
function refrac,z,wave,pressure,temp,relhum
n = airindex(wave,pressure,temp,relhum)
zref = asin(sin(z)/n)
return,zref
end