| 1 | #include "slalib.h" | 
|---|
| 2 | #include "slamac.h" | 
|---|
| 3 | double slaAirmas ( double zd ) | 
|---|
| 4 | /* | 
|---|
| 5 | **  - - - - - - - - - - | 
|---|
| 6 | **   s l a A i r m a s | 
|---|
| 7 | **  - - - - - - - - - - | 
|---|
| 8 | ** | 
|---|
| 9 | **  Air mass at given zenith distance. | 
|---|
| 10 | ** | 
|---|
| 11 | **  (double precision) | 
|---|
| 12 | ** | 
|---|
| 13 | **  Given: | 
|---|
| 14 | **     zd     d     observed zenith distance (radians) | 
|---|
| 15 | ** | 
|---|
| 16 | **  The result is an estimate of the air mass, in units of that | 
|---|
| 17 | **  at the zenith. | 
|---|
| 18 | ** | 
|---|
| 19 | **  Notes: | 
|---|
| 20 | ** | 
|---|
| 21 | **  1)  The "observed" zenith distance referred to above means "as | 
|---|
| 22 | **      affected by refraction". | 
|---|
| 23 | ** | 
|---|
| 24 | **  2)  Uses Hardie's (1962) polynomial fit to Bemporad's data for | 
|---|
| 25 | **      the relative air mass, X, in units of thickness at the zenith | 
|---|
| 26 | **      as tabulated by Schoenberg (1929). This is adequate for all | 
|---|
| 27 | **      normal needs as it is accurate to better than 0.1% up to X = | 
|---|
| 28 | **      6.8 and better than 1% up to X = 10. Bemporad's tabulated | 
|---|
| 29 | **      values are unlikely to be trustworthy to such accuracy | 
|---|
| 30 | **      because of variations in density, pressure and other | 
|---|
| 31 | **      conditions in the atmosphere from those assumed in his work. | 
|---|
| 32 | ** | 
|---|
| 33 | **  3)  The sign of the ZD is ignored. | 
|---|
| 34 | ** | 
|---|
| 35 | **  4)  At zenith distances greater than about ZD = 87 degrees the | 
|---|
| 36 | **      air mass is held constant to avoid arithmetic overflows. | 
|---|
| 37 | ** | 
|---|
| 38 | **  References: | 
|---|
| 39 | **     Hardie, R.H., 1962, in "Astronomical Techniques" | 
|---|
| 40 | **        ed. W.A. Hiltner, University of Chicago Press, p180. | 
|---|
| 41 | **     Schoenberg, E., 1929, Hdb. d. Ap., | 
|---|
| 42 | **        Berlin, Julius Springer, 2, 268. | 
|---|
| 43 | ** | 
|---|
| 44 | **  Adapted from original Fortran code by P.W.Hill, St Andrews. | 
|---|
| 45 | ** | 
|---|
| 46 | **  Last revision:   5 October 1994 | 
|---|
| 47 | ** | 
|---|
| 48 | **  Copyright P.T.Wallace.  All rights reserved. | 
|---|
| 49 | */ | 
|---|
| 50 | { | 
|---|
| 51 | double w, seczm1; | 
|---|
| 52 |  | 
|---|
| 53 | w = fabs ( zd ); | 
|---|
| 54 | seczm1 = 1.0 / ( cos ( gmin ( 1.52, w ) ) ) - 1.0; | 
|---|
| 55 | return 1.0 + seczm1 * ( 0.9981833 | 
|---|
| 56 | - seczm1 * ( 0.002875 + 0.0008083 * seczm1 ) ); | 
|---|
| 57 | } | 
|---|