Adjust an unrefracted Cartesian vector to include the effect of
atmospheric refraction, using the simple
model.
CALL:
CALL sla_REFV (VU, REFA, REFB, VR)
GIVEN:
VU
D
unrefracted position of the source ( 3-vector)
REFA
D
coefficient (radians)
REFB
D
coefficient (radians)
RETURNED:
VR
D
refracted position of the source ( 3-vector)
NOTES:
1.
This routine applies the adjustment for refraction in the
opposite sense to the usual one - it takes an unrefracted
(in vacuo) position and produces an observed (refracted)
position, whereas the
model strictly
applies to the case where an observed position is to have the
refraction removed. The unrefracted to refracted case is
harder, and requires an inverted form of the text-book
refraction models; the algorithm used here is equivalent to
one iteration of the Newton-Raphson method applied to the
above formula.
2.
Though optimized for speed rather than precision, the present
routine achieves consistency with the refracted-to-unrefracted
model at better than 1 microarcsecond within
of the zenith and remains within 1 milliarcsecond to
. The inherent accuracy of the model is, of
course, far worse than this - see the documentation for sla_REFCO
for more information.
3.
At low elevations (below about ) the refraction
correction is held back to prevent arithmetic problems and
wildly wrong results. Over a wide range of observer heights
and corresponding temperatures and pressures, the following
levels of accuracy are achieved, relative to numerical
integration through a model atmosphere:
error
< high-altitude
< sites only
4.
See also the routine sla_REFZ, which performs the adjustment to
the zenith distance rather than in . The present routine is faster than sla_REFZ and,
except very low down,
is equally accurate for all practical purposes. However, beyond
about sla_REFZ should be used, and for the utmost
accuracy iterative use of sla_REFRO should be considered.