Atmospheric refraction for radio and optical wavelengths.
zobs double observed zenith distance of the source (radian) hm double height of the observer above sea level (metre) tdk double ambient temperature at the observer (deg K) pmb double pressure at the observer (millibar) rh double relative humidity at the observer (range 0-1) wl double effective wavelength of the source (micrometre) phi double latitude of the observer (radian, astronomical) tlr double temperature lapse rate in the troposphere (degK/metre) eps double precision required to terminate iteration (radian)
ref double refraction: in vacuo ZD minus observed ZD (radian) Typical values for the tlr and eps arguments are 0.0065 and 1e-9 respectively. This routine computes the refraction for zenith distances up to and a little beyond 90 deg using the method of Hohenkerk and Sinclair (NAO Technical Notes 59 and 63). The C code is an adaptation of the Fortran optical refraction subroutine AREF of C.Hohenkerk (HMNAO, September 1984), with extensions to support radio wavelengths. Most of the modifications to the HMNAO optical algorithm are cosmetic; in addition the angle arguments have been changed to radians, any value of zobs is allowed, and other values have been limited to safe values. The radio expressions were devised by A.T.Sinclair (RGO - private communication), based on the Essen & Froome refractivity formula adopted in Resolution 1 of the 13th International Geodesy Association General Assembly (Bulletin Geodesique 1963 p390). The radio refraction is chosen by specifying wl > 100 micrometres. Before use, the value of zobs is expressed in the range +/- Pi. If this ranged zobs is -ve, the result ref is computed from its absolute value before being made -ve to match. In addition, if it has an absolute value greater than 93 deg, a fixed ref value equal to the result for zobs = 93 deg is returned, appropriately signed. Fixed values of the water vapour exponent, height of tropopause, and height at which refraction is negligible are used.
slaDrange, atmt, atms Defined in slamac.h: TRUE, FALSE Original version by C.Hohenkerk, HMNAO, September 1986. Starlink version by P.T.Wallace, revised 22 December 1993.