File Coverage

erfasrc/src/dtdb.c
Criterion Covered Total %
statement 0 37 0.0
branch 0 10 0.0
condition n/a
subroutine n/a
pod n/a
total 0 47 0.0


line stmt bran cond sub pod time code
1             #include "erfa.h"
2              
3 0           double eraDtdb(double date1, double date2,
4             double ut, double elong, double u, double v)
5             /*
6             ** - - - - - - - -
7             ** e r a D t d b
8             ** - - - - - - - -
9             **
10             ** An approximation to TDB-TT, the difference between barycentric
11             ** dynamical time and terrestrial time, for an observer on the Earth.
12             **
13             ** The different time scales - proper, coordinate and realized - are
14             ** related to each other:
15             **
16             ** TAI <- physically realized
17             ** :
18             ** offset <- observed (nominally +32.184s)
19             ** :
20             ** TT <- terrestrial time
21             ** :
22             ** rate adjustment (L_G) <- definition of TT
23             ** :
24             ** TCG <- time scale for GCRS
25             ** :
26             ** "periodic" terms <- eraDtdb is an implementation
27             ** :
28             ** rate adjustment (L_C) <- function of solar-system ephemeris
29             ** :
30             ** TCB <- time scale for BCRS
31             ** :
32             ** rate adjustment (-L_B) <- definition of TDB
33             ** :
34             ** TDB <- TCB scaled to track TT
35             ** :
36             ** "periodic" terms <- -eraDtdb is an approximation
37             ** :
38             ** TT <- terrestrial time
39             **
40             ** Adopted values for the various constants can be found in the IERS
41             ** Conventions (McCarthy & Petit 2003).
42             **
43             ** Given:
44             ** date1,date2 double date, TDB (Notes 1-3)
45             ** ut double universal time (UT1, fraction of one day)
46             ** elong double longitude (east positive, radians)
47             ** u double distance from Earth spin axis (km)
48             ** v double distance north of equatorial plane (km)
49             **
50             ** Returned (function value):
51             ** double TDB-TT (seconds)
52             **
53             ** Notes:
54             **
55             ** 1) The date date1+date2 is a Julian Date, apportioned in any
56             ** convenient way between the two arguments. For example,
57             ** JD(TT)=2450123.7 could be expressed in any of these ways,
58             ** among others:
59             **
60             ** date1 date2
61             **
62             ** 2450123.7 0.0 (JD method)
63             ** 2451545.0 -1421.3 (J2000 method)
64             ** 2400000.5 50123.2 (MJD method)
65             ** 2450123.5 0.2 (date & time method)
66             **
67             ** The JD method is the most natural and convenient to use in
68             ** cases where the loss of several decimal digits of resolution
69             ** is acceptable. The J2000 method is best matched to the way
70             ** the argument is handled internally and will deliver the
71             ** optimum resolution. The MJD method and the date & time methods
72             ** are both good compromises between resolution and convenience.
73             **
74             ** Although the date is, formally, barycentric dynamical time (TDB),
75             ** the terrestrial dynamical time (TT) can be used with no practical
76             ** effect on the accuracy of the prediction.
77             **
78             ** 2) TT can be regarded as a coordinate time that is realized as an
79             ** offset of 32.184s from International Atomic Time, TAI. TT is a
80             ** specific linear transformation of geocentric coordinate time TCG,
81             ** which is the time scale for the Geocentric Celestial Reference
82             ** System, GCRS.
83             **
84             ** 3) TDB is a coordinate time, and is a specific linear transformation
85             ** of barycentric coordinate time TCB, which is the time scale for
86             ** the Barycentric Celestial Reference System, BCRS.
87             **
88             ** 4) The difference TCG-TCB depends on the masses and positions of the
89             ** bodies of the solar system and the velocity of the Earth. It is
90             ** dominated by a rate difference, the residual being of a periodic
91             ** character. The latter, which is modeled by the present function,
92             ** comprises a main (annual) sinusoidal term of amplitude
93             ** approximately 0.00166 seconds, plus planetary terms up to about
94             ** 20 microseconds, and lunar and diurnal terms up to 2 microseconds.
95             ** These effects come from the changing transverse Doppler effect
96             ** and gravitational red-shift as the observer (on the Earth's
97             ** surface) experiences variations in speed (with respect to the
98             ** BCRS) and gravitational potential.
99             **
100             ** 5) TDB can be regarded as the same as TCB but with a rate adjustment
101             ** to keep it close to TT, which is convenient for many applications.
102             ** The history of successive attempts to define TDB is set out in
103             ** Resolution 3 adopted by the IAU General Assembly in 2006, which
104             ** defines a fixed TDB(TCB) transformation that is consistent with
105             ** contemporary solar-system ephemerides. Future ephemerides will
106             ** imply slightly changed transformations between TCG and TCB, which
107             ** could introduce a linear drift between TDB and TT; however, any
108             ** such drift is unlikely to exceed 1 nanosecond per century.
109             **
110             ** 6) The geocentric TDB-TT model used in the present function is that of
111             ** Fairhead & Bretagnon (1990), in its full form. It was originally
112             ** supplied by Fairhead (private communications with P.T.Wallace,
113             ** 1990) as a Fortran subroutine. The present C function contains an
114             ** adaptation of the Fairhead code. The numerical results are
115             ** essentially unaffected by the changes, the differences with
116             ** respect to the Fairhead & Bretagnon original being at the 1e-20 s
117             ** level.
118             **
119             ** The topocentric part of the model is from Moyer (1981) and
120             ** Murray (1983), with fundamental arguments adapted from
121             ** Simon et al. 1994. It is an approximation to the expression
122             ** ( v / c ) . ( r / c ), where v is the barycentric velocity of
123             ** the Earth, r is the geocentric position of the observer and
124             ** c is the speed of light.
125             **
126             ** By supplying zeroes for u and v, the topocentric part of the
127             ** model can be nullified, and the function will return the Fairhead
128             ** & Bretagnon result alone.
129             **
130             ** 7) During the interval 1950-2050, the absolute accuracy is better
131             ** than +/- 3 nanoseconds relative to time ephemerides obtained by
132             ** direct numerical integrations based on the JPL DE405 solar system
133             ** ephemeris.
134             **
135             ** 8) It must be stressed that the present function is merely a model,
136             ** and that numerical integration of solar-system ephemerides is the
137             ** definitive method for predicting the relationship between TCG and
138             ** TCB and hence between TT and TDB.
139             **
140             ** References:
141             **
142             ** Fairhead, L., & Bretagnon, P., Astron.Astrophys., 229, 240-247
143             ** (1990).
144             **
145             ** IAU 2006 Resolution 3.
146             **
147             ** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
148             ** IERS Technical Note No. 32, BKG (2004)
149             **
150             ** Moyer, T.D., Cel.Mech., 23, 33 (1981).
151             **
152             ** Murray, C.A., Vectorial Astrometry, Adam Hilger (1983).
153             **
154             ** Seidelmann, P.K. et al., Explanatory Supplement to the
155             ** Astronomical Almanac, Chapter 2, University Science Books (1992).
156             **
157             ** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
158             ** Francou, G. & Laskar, J., Astron.Astrophys., 282, 663-683 (1994).
159             **
160             ** Copyright (C) 2013-2019, NumFOCUS Foundation.
161             ** Derived, with permission, from the SOFA library. See notes at end of file.
162             */
163             {
164             double t, tsol, w, elsun, emsun, d, elj, els, wt, w0, w1, w2, w3, w4,
165             wf, wj;
166             int j;
167              
168             /*
169             ** =====================
170             ** Fairhead et al. model
171             ** =====================
172             **
173             ** 787 sets of three coefficients.
174             **
175             ** Each set is
176             ** amplitude (microseconds)
177             ** frequency (radians per Julian millennium since J2000.0)
178             ** phase (radians)
179             **
180             ** Sets 1-474 are the T**0 terms
181             ** " 475-679 " " T**1
182             ** " 680-764 " " T**2
183             ** " 765-784 " " T**3
184             ** " 785-787 " " T**4
185             */
186              
187             static const double fairhd[787][3] = {
188             /* 1, 10 */
189             { 1656.674564e-6, 6283.075849991, 6.240054195 },
190             { 22.417471e-6, 5753.384884897, 4.296977442 },
191             { 13.839792e-6, 12566.151699983, 6.196904410 },
192             { 4.770086e-6, 529.690965095, 0.444401603 },
193             { 4.676740e-6, 6069.776754553, 4.021195093 },
194             { 2.256707e-6, 213.299095438, 5.543113262 },
195             { 1.694205e-6, -3.523118349, 5.025132748 },
196             { 1.554905e-6, 77713.771467920, 5.198467090 },
197             { 1.276839e-6, 7860.419392439, 5.988822341 },
198             { 1.193379e-6, 5223.693919802, 3.649823730 },
199             /* 11, 20 */
200             { 1.115322e-6, 3930.209696220, 1.422745069 },
201             { 0.794185e-6, 11506.769769794, 2.322313077 },
202             { 0.447061e-6, 26.298319800, 3.615796498 },
203             { 0.435206e-6, -398.149003408, 4.349338347 },
204             { 0.600309e-6, 1577.343542448, 2.678271909 },
205             { 0.496817e-6, 6208.294251424, 5.696701824 },
206             { 0.486306e-6, 5884.926846583, 0.520007179 },
207             { 0.432392e-6, 74.781598567, 2.435898309 },
208             { 0.468597e-6, 6244.942814354, 5.866398759 },
209             { 0.375510e-6, 5507.553238667, 4.103476804 },
210             /* 21, 30 */
211             { 0.243085e-6, -775.522611324, 3.651837925 },
212             { 0.173435e-6, 18849.227549974, 6.153743485 },
213             { 0.230685e-6, 5856.477659115, 4.773852582 },
214             { 0.203747e-6, 12036.460734888, 4.333987818 },
215             { 0.143935e-6, -796.298006816, 5.957517795 },
216             { 0.159080e-6, 10977.078804699, 1.890075226 },
217             { 0.119979e-6, 38.133035638, 4.551585768 },
218             { 0.118971e-6, 5486.777843175, 1.914547226 },
219             { 0.116120e-6, 1059.381930189, 0.873504123 },
220             { 0.137927e-6, 11790.629088659, 1.135934669 },
221             /* 31, 40 */
222             { 0.098358e-6, 2544.314419883, 0.092793886 },
223             { 0.101868e-6, -5573.142801634, 5.984503847 },
224             { 0.080164e-6, 206.185548437, 2.095377709 },
225             { 0.079645e-6, 4694.002954708, 2.949233637 },
226             { 0.062617e-6, 20.775395492, 2.654394814 },
227             { 0.075019e-6, 2942.463423292, 4.980931759 },
228             { 0.064397e-6, 5746.271337896, 1.280308748 },
229             { 0.063814e-6, 5760.498431898, 4.167901731 },
230             { 0.048042e-6, 2146.165416475, 1.495846011 },
231             { 0.048373e-6, 155.420399434, 2.251573730 },
232             /* 41, 50 */
233             { 0.058844e-6, 426.598190876, 4.839650148 },
234             { 0.046551e-6, -0.980321068, 0.921573539 },
235             { 0.054139e-6, 17260.154654690, 3.411091093 },
236             { 0.042411e-6, 6275.962302991, 2.869567043 },
237             { 0.040184e-6, -7.113547001, 3.565975565 },
238             { 0.036564e-6, 5088.628839767, 3.324679049 },
239             { 0.040759e-6, 12352.852604545, 3.981496998 },
240             { 0.036507e-6, 801.820931124, 6.248866009 },
241             { 0.036955e-6, 3154.687084896, 5.071801441 },
242             { 0.042732e-6, 632.783739313, 5.720622217 },
243             /* 51, 60 */
244             { 0.042560e-6, 161000.685737473, 1.270837679 },
245             { 0.040480e-6, 15720.838784878, 2.546610123 },
246             { 0.028244e-6, -6286.598968340, 5.069663519 },
247             { 0.033477e-6, 6062.663207553, 4.144987272 },
248             { 0.034867e-6, 522.577418094, 5.210064075 },
249             { 0.032438e-6, 6076.890301554, 0.749317412 },
250             { 0.030215e-6, 7084.896781115, 3.389610345 },
251             { 0.029247e-6, -71430.695617928, 4.183178762 },
252             { 0.033529e-6, 9437.762934887, 2.404714239 },
253             { 0.032423e-6, 8827.390269875, 5.541473556 },
254             /* 61, 70 */
255             { 0.027567e-6, 6279.552731642, 5.040846034 },
256             { 0.029862e-6, 12139.553509107, 1.770181024 },
257             { 0.022509e-6, 10447.387839604, 1.460726241 },
258             { 0.020937e-6, 8429.241266467, 0.652303414 },
259             { 0.020322e-6, 419.484643875, 3.735430632 },
260             { 0.024816e-6, -1194.447010225, 1.087136918 },
261             { 0.025196e-6, 1748.016413067, 2.901883301 },
262             { 0.021691e-6, 14143.495242431, 5.952658009 },
263             { 0.017673e-6, 6812.766815086, 3.186129845 },
264             { 0.022567e-6, 6133.512652857, 3.307984806 },
265             /* 71, 80 */
266             { 0.016155e-6, 10213.285546211, 1.331103168 },
267             { 0.014751e-6, 1349.867409659, 4.308933301 },
268             { 0.015949e-6, -220.412642439, 4.005298270 },
269             { 0.015974e-6, -2352.866153772, 6.145309371 },
270             { 0.014223e-6, 17789.845619785, 2.104551349 },
271             { 0.017806e-6, 73.297125859, 3.475975097 },
272             { 0.013671e-6, -536.804512095, 5.971672571 },
273             { 0.011942e-6, 8031.092263058, 2.053414715 },
274             { 0.014318e-6, 16730.463689596, 3.016058075 },
275             { 0.012462e-6, 103.092774219, 1.737438797 },
276             /* 81, 90 */
277             { 0.010962e-6, 3.590428652, 2.196567739 },
278             { 0.015078e-6, 19651.048481098, 3.969480770 },
279             { 0.010396e-6, 951.718406251, 5.717799605 },
280             { 0.011707e-6, -4705.732307544, 2.654125618 },
281             { 0.010453e-6, 5863.591206116, 1.913704550 },
282             { 0.012420e-6, 4690.479836359, 4.734090399 },
283             { 0.011847e-6, 5643.178563677, 5.489005403 },
284             { 0.008610e-6, 3340.612426700, 3.661698944 },
285             { 0.011622e-6, 5120.601145584, 4.863931876 },
286             { 0.010825e-6, 553.569402842, 0.842715011 },
287             /* 91, 100 */
288             { 0.008666e-6, -135.065080035, 3.293406547 },
289             { 0.009963e-6, 149.563197135, 4.870690598 },
290             { 0.009858e-6, 6309.374169791, 1.061816410 },
291             { 0.007959e-6, 316.391869657, 2.465042647 },
292             { 0.010099e-6, 283.859318865, 1.942176992 },
293             { 0.007147e-6, -242.728603974, 3.661486981 },
294             { 0.007505e-6, 5230.807466803, 4.920937029 },
295             { 0.008323e-6, 11769.853693166, 1.229392026 },
296             { 0.007490e-6, -6256.777530192, 3.658444681 },
297             { 0.009370e-6, 149854.400134205, 0.673880395 },
298             /* 101, 110 */
299             { 0.007117e-6, 38.027672636, 5.294249518 },
300             { 0.007857e-6, 12168.002696575, 0.525733528 },
301             { 0.007019e-6, 6206.809778716, 0.837688810 },
302             { 0.006056e-6, 955.599741609, 4.194535082 },
303             { 0.008107e-6, 13367.972631107, 3.793235253 },
304             { 0.006731e-6, 5650.292110678, 5.639906583 },
305             { 0.007332e-6, 36.648562930, 0.114858677 },
306             { 0.006366e-6, 4164.311989613, 2.262081818 },
307             { 0.006858e-6, 5216.580372801, 0.642063318 },
308             { 0.006919e-6, 6681.224853400, 6.018501522 },
309             /* 111, 120 */
310             { 0.006826e-6, 7632.943259650, 3.458654112 },
311             { 0.005308e-6, -1592.596013633, 2.500382359 },
312             { 0.005096e-6, 11371.704689758, 2.547107806 },
313             { 0.004841e-6, 5333.900241022, 0.437078094 },
314             { 0.005582e-6, 5966.683980335, 2.246174308 },
315             { 0.006304e-6, 11926.254413669, 2.512929171 },
316             { 0.006603e-6, 23581.258177318, 5.393136889 },
317             { 0.005123e-6, -1.484472708, 2.999641028 },
318             { 0.004648e-6, 1589.072895284, 1.275847090 },
319             { 0.005119e-6, 6438.496249426, 1.486539246 },
320             /* 121, 130 */
321             { 0.004521e-6, 4292.330832950, 6.140635794 },
322             { 0.005680e-6, 23013.539539587, 4.557814849 },
323             { 0.005488e-6, -3.455808046, 0.090675389 },
324             { 0.004193e-6, 7234.794256242, 4.869091389 },
325             { 0.003742e-6, 7238.675591600, 4.691976180 },
326             { 0.004148e-6, -110.206321219, 3.016173439 },
327             { 0.004553e-6, 11499.656222793, 5.554998314 },
328             { 0.004892e-6, 5436.993015240, 1.475415597 },
329             { 0.004044e-6, 4732.030627343, 1.398784824 },
330             { 0.004164e-6, 12491.370101415, 5.650931916 },
331             /* 131, 140 */
332             { 0.004349e-6, 11513.883316794, 2.181745369 },
333             { 0.003919e-6, 12528.018664345, 5.823319737 },
334             { 0.003129e-6, 6836.645252834, 0.003844094 },
335             { 0.004080e-6, -7058.598461315, 3.690360123 },
336             { 0.003270e-6, 76.266071276, 1.517189902 },
337             { 0.002954e-6, 6283.143160294, 4.447203799 },
338             { 0.002872e-6, 28.449187468, 1.158692983 },
339             { 0.002881e-6, 735.876513532, 0.349250250 },
340             { 0.003279e-6, 5849.364112115, 4.893384368 },
341             { 0.003625e-6, 6209.778724132, 1.473760578 },
342             /* 141, 150 */
343             { 0.003074e-6, 949.175608970, 5.185878737 },
344             { 0.002775e-6, 9917.696874510, 1.030026325 },
345             { 0.002646e-6, 10973.555686350, 3.918259169 },
346             { 0.002575e-6, 25132.303399966, 6.109659023 },
347             { 0.003500e-6, 263.083923373, 1.892100742 },
348             { 0.002740e-6, 18319.536584880, 4.320519510 },
349             { 0.002464e-6, 202.253395174, 4.698203059 },
350             { 0.002409e-6, 2.542797281, 5.325009315 },
351             { 0.003354e-6, -90955.551694697, 1.942656623 },
352             { 0.002296e-6, 6496.374945429, 5.061810696 },
353             /* 151, 160 */
354             { 0.003002e-6, 6172.869528772, 2.797822767 },
355             { 0.003202e-6, 27511.467873537, 0.531673101 },
356             { 0.002954e-6, -6283.008539689, 4.533471191 },
357             { 0.002353e-6, 639.897286314, 3.734548088 },
358             { 0.002401e-6, 16200.772724501, 2.605547070 },
359             { 0.003053e-6, 233141.314403759, 3.029030662 },
360             { 0.003024e-6, 83286.914269554, 2.355556099 },
361             { 0.002863e-6, 17298.182327326, 5.240963796 },
362             { 0.002103e-6, -7079.373856808, 5.756641637 },
363             { 0.002303e-6, 83996.847317911, 2.013686814 },
364             /* 161, 170 */
365             { 0.002303e-6, 18073.704938650, 1.089100410 },
366             { 0.002381e-6, 63.735898303, 0.759188178 },
367             { 0.002493e-6, 6386.168624210, 0.645026535 },
368             { 0.002366e-6, 3.932153263, 6.215885448 },
369             { 0.002169e-6, 11015.106477335, 4.845297676 },
370             { 0.002397e-6, 6243.458341645, 3.809290043 },
371             { 0.002183e-6, 1162.474704408, 6.179611691 },
372             { 0.002353e-6, 6246.427287062, 4.781719760 },
373             { 0.002199e-6, -245.831646229, 5.956152284 },
374             { 0.001729e-6, 3894.181829542, 1.264976635 },
375             /* 171, 180 */
376             { 0.001896e-6, -3128.388765096, 4.914231596 },
377             { 0.002085e-6, 35.164090221, 1.405158503 },
378             { 0.002024e-6, 14712.317116458, 2.752035928 },
379             { 0.001737e-6, 6290.189396992, 5.280820144 },
380             { 0.002229e-6, 491.557929457, 1.571007057 },
381             { 0.001602e-6, 14314.168113050, 4.203664806 },
382             { 0.002186e-6, 454.909366527, 1.402101526 },
383             { 0.001897e-6, 22483.848574493, 4.167932508 },
384             { 0.001825e-6, -3738.761430108, 0.545828785 },
385             { 0.001894e-6, 1052.268383188, 5.817167450 },
386             /* 181, 190 */
387             { 0.001421e-6, 20.355319399, 2.419886601 },
388             { 0.001408e-6, 10984.192351700, 2.732084787 },
389             { 0.001847e-6, 10873.986030480, 2.903477885 },
390             { 0.001391e-6, -8635.942003763, 0.593891500 },
391             { 0.001388e-6, -7.046236698, 1.166145902 },
392             { 0.001810e-6, -88860.057071188, 0.487355242 },
393             { 0.001288e-6, -1990.745017041, 3.913022880 },
394             { 0.001297e-6, 23543.230504682, 3.063805171 },
395             { 0.001335e-6, -266.607041722, 3.995764039 },
396             { 0.001376e-6, 10969.965257698, 5.152914309 },
397             /* 191, 200 */
398             { 0.001745e-6, 244287.600007027, 3.626395673 },
399             { 0.001649e-6, 31441.677569757, 1.952049260 },
400             { 0.001416e-6, 9225.539273283, 4.996408389 },
401             { 0.001238e-6, 4804.209275927, 5.503379738 },
402             { 0.001472e-6, 4590.910180489, 4.164913291 },
403             { 0.001169e-6, 6040.347246017, 5.841719038 },
404             { 0.001039e-6, 5540.085789459, 2.769753519 },
405             { 0.001004e-6, -170.672870619, 0.755008103 },
406             { 0.001284e-6, 10575.406682942, 5.306538209 },
407             { 0.001278e-6, 71.812653151, 4.713486491 },
408             /* 201, 210 */
409             { 0.001321e-6, 18209.330263660, 2.624866359 },
410             { 0.001297e-6, 21228.392023546, 0.382603541 },
411             { 0.000954e-6, 6282.095528923, 0.882213514 },
412             { 0.001145e-6, 6058.731054289, 1.169483931 },
413             { 0.000979e-6, 5547.199336460, 5.448375984 },
414             { 0.000987e-6, -6262.300454499, 2.656486959 },
415             { 0.001070e-6, -154717.609887482, 1.827624012 },
416             { 0.000991e-6, 4701.116501708, 4.387001801 },
417             { 0.001155e-6, -14.227094002, 3.042700750 },
418             { 0.001176e-6, 277.034993741, 3.335519004 },
419             /* 211, 220 */
420             { 0.000890e-6, 13916.019109642, 5.601498297 },
421             { 0.000884e-6, -1551.045222648, 1.088831705 },
422             { 0.000876e-6, 5017.508371365, 3.969902609 },
423             { 0.000806e-6, 15110.466119866, 5.142876744 },
424             { 0.000773e-6, -4136.910433516, 0.022067765 },
425             { 0.001077e-6, 175.166059800, 1.844913056 },
426             { 0.000954e-6, -6284.056171060, 0.968480906 },
427             { 0.000737e-6, 5326.786694021, 4.923831588 },
428             { 0.000845e-6, -433.711737877, 4.749245231 },
429             { 0.000819e-6, 8662.240323563, 5.991247817 },
430             /* 221, 230 */
431             { 0.000852e-6, 199.072001436, 2.189604979 },
432             { 0.000723e-6, 17256.631536341, 6.068719637 },
433             { 0.000940e-6, 6037.244203762, 6.197428148 },
434             { 0.000885e-6, 11712.955318231, 3.280414875 },
435             { 0.000706e-6, 12559.038152982, 2.824848947 },
436             { 0.000732e-6, 2379.164473572, 2.501813417 },
437             { 0.000764e-6, -6127.655450557, 2.236346329 },
438             { 0.000908e-6, 131.541961686, 2.521257490 },
439             { 0.000907e-6, 35371.887265976, 3.370195967 },
440             { 0.000673e-6, 1066.495477190, 3.876512374 },
441             /* 231, 240 */
442             { 0.000814e-6, 17654.780539750, 4.627122566 },
443             { 0.000630e-6, 36.027866677, 0.156368499 },
444             { 0.000798e-6, 515.463871093, 5.151962502 },
445             { 0.000798e-6, 148.078724426, 5.909225055 },
446             { 0.000806e-6, 309.278322656, 6.054064447 },
447             { 0.000607e-6, -39.617508346, 2.839021623 },
448             { 0.000601e-6, 412.371096874, 3.984225404 },
449             { 0.000646e-6, 11403.676995575, 3.852959484 },
450             { 0.000704e-6, 13521.751441591, 2.300991267 },
451             { 0.000603e-6, -65147.619767937, 4.140083146 },
452             /* 241, 250 */
453             { 0.000609e-6, 10177.257679534, 0.437122327 },
454             { 0.000631e-6, 5767.611978898, 4.026532329 },
455             { 0.000576e-6, 11087.285125918, 4.760293101 },
456             { 0.000674e-6, 14945.316173554, 6.270510511 },
457             { 0.000726e-6, 5429.879468239, 6.039606892 },
458             { 0.000710e-6, 28766.924424484, 5.672617711 },
459             { 0.000647e-6, 11856.218651625, 3.397132627 },
460             { 0.000678e-6, -5481.254918868, 6.249666675 },
461             { 0.000618e-6, 22003.914634870, 2.466427018 },
462             { 0.000738e-6, 6134.997125565, 2.242668890 },
463             /* 251, 260 */
464             { 0.000660e-6, 625.670192312, 5.864091907 },
465             { 0.000694e-6, 3496.032826134, 2.668309141 },
466             { 0.000531e-6, 6489.261398429, 1.681888780 },
467             { 0.000611e-6, -143571.324284214, 2.424978312 },
468             { 0.000575e-6, 12043.574281889, 4.216492400 },
469             { 0.000553e-6, 12416.588502848, 4.772158039 },
470             { 0.000689e-6, 4686.889407707, 6.224271088 },
471             { 0.000495e-6, 7342.457780181, 3.817285811 },
472             { 0.000567e-6, 3634.621024518, 1.649264690 },
473             { 0.000515e-6, 18635.928454536, 3.945345892 },
474             /* 261, 270 */
475             { 0.000486e-6, -323.505416657, 4.061673868 },
476             { 0.000662e-6, 25158.601719765, 1.794058369 },
477             { 0.000509e-6, 846.082834751, 3.053874588 },
478             { 0.000472e-6, -12569.674818332, 5.112133338 },
479             { 0.000461e-6, 6179.983075773, 0.513669325 },
480             { 0.000641e-6, 83467.156352816, 3.210727723 },
481             { 0.000520e-6, 10344.295065386, 2.445597761 },
482             { 0.000493e-6, 18422.629359098, 1.676939306 },
483             { 0.000478e-6, 1265.567478626, 5.487314569 },
484             { 0.000472e-6, -18.159247265, 1.999707589 },
485             /* 271, 280 */
486             { 0.000559e-6, 11190.377900137, 5.783236356 },
487             { 0.000494e-6, 9623.688276691, 3.022645053 },
488             { 0.000463e-6, 5739.157790895, 1.411223013 },
489             { 0.000432e-6, 16858.482532933, 1.179256434 },
490             { 0.000574e-6, 72140.628666286, 1.758191830 },
491             { 0.000484e-6, 17267.268201691, 3.290589143 },
492             { 0.000550e-6, 4907.302050146, 0.864024298 },
493             { 0.000399e-6, 14.977853527, 2.094441910 },
494             { 0.000491e-6, 224.344795702, 0.878372791 },
495             { 0.000432e-6, 20426.571092422, 6.003829241 },
496             /* 281, 290 */
497             { 0.000481e-6, 5749.452731634, 4.309591964 },
498             { 0.000480e-6, 5757.317038160, 1.142348571 },
499             { 0.000485e-6, 6702.560493867, 0.210580917 },
500             { 0.000426e-6, 6055.549660552, 4.274476529 },
501             { 0.000480e-6, 5959.570433334, 5.031351030 },
502             { 0.000466e-6, 12562.628581634, 4.959581597 },
503             { 0.000520e-6, 39302.096962196, 4.788002889 },
504             { 0.000458e-6, 12132.439962106, 1.880103788 },
505             { 0.000470e-6, 12029.347187887, 1.405611197 },
506             { 0.000416e-6, -7477.522860216, 1.082356330 },
507             /* 291, 300 */
508             { 0.000449e-6, 11609.862544012, 4.179989585 },
509             { 0.000465e-6, 17253.041107690, 0.353496295 },
510             { 0.000362e-6, -4535.059436924, 1.583849576 },
511             { 0.000383e-6, 21954.157609398, 3.747376371 },
512             { 0.000389e-6, 17.252277143, 1.395753179 },
513             { 0.000331e-6, 18052.929543158, 0.566790582 },
514             { 0.000430e-6, 13517.870106233, 0.685827538 },
515             { 0.000368e-6, -5756.908003246, 0.731374317 },
516             { 0.000330e-6, 10557.594160824, 3.710043680 },
517             { 0.000332e-6, 20199.094959633, 1.652901407 },
518             /* 301, 310 */
519             { 0.000384e-6, 11933.367960670, 5.827781531 },
520             { 0.000387e-6, 10454.501386605, 2.541182564 },
521             { 0.000325e-6, 15671.081759407, 2.178850542 },
522             { 0.000318e-6, 138.517496871, 2.253253037 },
523             { 0.000305e-6, 9388.005909415, 0.578340206 },
524             { 0.000352e-6, 5749.861766548, 3.000297967 },
525             { 0.000311e-6, 6915.859589305, 1.693574249 },
526             { 0.000297e-6, 24072.921469776, 1.997249392 },
527             { 0.000363e-6, -640.877607382, 5.071820966 },
528             { 0.000323e-6, 12592.450019783, 1.072262823 },
529             /* 311, 320 */
530             { 0.000341e-6, 12146.667056108, 4.700657997 },
531             { 0.000290e-6, 9779.108676125, 1.812320441 },
532             { 0.000342e-6, 6132.028180148, 4.322238614 },
533             { 0.000329e-6, 6268.848755990, 3.033827743 },
534             { 0.000374e-6, 17996.031168222, 3.388716544 },
535             { 0.000285e-6, -533.214083444, 4.687313233 },
536             { 0.000338e-6, 6065.844601290, 0.877776108 },
537             { 0.000276e-6, 24.298513841, 0.770299429 },
538             { 0.000336e-6, -2388.894020449, 5.353796034 },
539             { 0.000290e-6, 3097.883822726, 4.075291557 },
540             /* 321, 330 */
541             { 0.000318e-6, 709.933048357, 5.941207518 },
542             { 0.000271e-6, 13095.842665077, 3.208912203 },
543             { 0.000331e-6, 6073.708907816, 4.007881169 },
544             { 0.000292e-6, 742.990060533, 2.714333592 },
545             { 0.000362e-6, 29088.811415985, 3.215977013 },
546             { 0.000280e-6, 12359.966151546, 0.710872502 },
547             { 0.000267e-6, 10440.274292604, 4.730108488 },
548             { 0.000262e-6, 838.969287750, 1.327720272 },
549             { 0.000250e-6, 16496.361396202, 0.898769761 },
550             { 0.000325e-6, 20597.243963041, 0.180044365 },
551             /* 331, 340 */
552             { 0.000268e-6, 6148.010769956, 5.152666276 },
553             { 0.000284e-6, 5636.065016677, 5.655385808 },
554             { 0.000301e-6, 6080.822454817, 2.135396205 },
555             { 0.000294e-6, -377.373607916, 3.708784168 },
556             { 0.000236e-6, 2118.763860378, 1.733578756 },
557             { 0.000234e-6, 5867.523359379, 5.575209112 },
558             { 0.000268e-6, -226858.238553767, 0.069432392 },
559             { 0.000265e-6, 167283.761587465, 4.369302826 },
560             { 0.000280e-6, 28237.233459389, 5.304829118 },
561             { 0.000292e-6, 12345.739057544, 4.096094132 },
562             /* 341, 350 */
563             { 0.000223e-6, 19800.945956225, 3.069327406 },
564             { 0.000301e-6, 43232.306658416, 6.205311188 },
565             { 0.000264e-6, 18875.525869774, 1.417263408 },
566             { 0.000304e-6, -1823.175188677, 3.409035232 },
567             { 0.000301e-6, 109.945688789, 0.510922054 },
568             { 0.000260e-6, 813.550283960, 2.389438934 },
569             { 0.000299e-6, 316428.228673312, 5.384595078 },
570             { 0.000211e-6, 5756.566278634, 3.789392838 },
571             { 0.000209e-6, 5750.203491159, 1.661943545 },
572             { 0.000240e-6, 12489.885628707, 5.684549045 },
573             /* 351, 360 */
574             { 0.000216e-6, 6303.851245484, 3.862942261 },
575             { 0.000203e-6, 1581.959348283, 5.549853589 },
576             { 0.000200e-6, 5642.198242609, 1.016115785 },
577             { 0.000197e-6, -70.849445304, 4.690702525 },
578             { 0.000227e-6, 6287.008003254, 2.911891613 },
579             { 0.000197e-6, 533.623118358, 1.048982898 },
580             { 0.000205e-6, -6279.485421340, 1.829362730 },
581             { 0.000209e-6, -10988.808157535, 2.636140084 },
582             { 0.000208e-6, -227.526189440, 4.127883842 },
583             { 0.000191e-6, 415.552490612, 4.401165650 },
584             /* 361, 370 */
585             { 0.000190e-6, 29296.615389579, 4.175658539 },
586             { 0.000264e-6, 66567.485864652, 4.601102551 },
587             { 0.000256e-6, -3646.350377354, 0.506364778 },
588             { 0.000188e-6, 13119.721102825, 2.032195842 },
589             { 0.000185e-6, -209.366942175, 4.694756586 },
590             { 0.000198e-6, 25934.124331089, 3.832703118 },
591             { 0.000195e-6, 4061.219215394, 3.308463427 },
592             { 0.000234e-6, 5113.487598583, 1.716090661 },
593             { 0.000188e-6, 1478.866574064, 5.686865780 },
594             { 0.000222e-6, 11823.161639450, 1.942386641 },
595             /* 371, 380 */
596             { 0.000181e-6, 10770.893256262, 1.999482059 },
597             { 0.000171e-6, 6546.159773364, 1.182807992 },
598             { 0.000206e-6, 70.328180442, 5.934076062 },
599             { 0.000169e-6, 20995.392966449, 2.169080622 },
600             { 0.000191e-6, 10660.686935042, 5.405515999 },
601             { 0.000228e-6, 33019.021112205, 4.656985514 },
602             { 0.000184e-6, -4933.208440333, 3.327476868 },
603             { 0.000220e-6, -135.625325010, 1.765430262 },
604             { 0.000166e-6, 23141.558382925, 3.454132746 },
605             { 0.000191e-6, 6144.558353121, 5.020393445 },
606             /* 381, 390 */
607             { 0.000180e-6, 6084.003848555, 0.602182191 },
608             { 0.000163e-6, 17782.732072784, 4.960593133 },
609             { 0.000225e-6, 16460.333529525, 2.596451817 },
610             { 0.000222e-6, 5905.702242076, 3.731990323 },
611             { 0.000204e-6, 227.476132789, 5.636192701 },
612             { 0.000159e-6, 16737.577236597, 3.600691544 },
613             { 0.000200e-6, 6805.653268085, 0.868220961 },
614             { 0.000187e-6, 11919.140866668, 2.629456641 },
615             { 0.000161e-6, 127.471796607, 2.862574720 },
616             { 0.000205e-6, 6286.666278643, 1.742882331 },
617             /* 391, 400 */
618             { 0.000189e-6, 153.778810485, 4.812372643 },
619             { 0.000168e-6, 16723.350142595, 0.027860588 },
620             { 0.000149e-6, 11720.068865232, 0.659721876 },
621             { 0.000189e-6, 5237.921013804, 5.245313000 },
622             { 0.000143e-6, 6709.674040867, 4.317625647 },
623             { 0.000146e-6, 4487.817406270, 4.815297007 },
624             { 0.000144e-6, -664.756045130, 5.381366880 },
625             { 0.000175e-6, 5127.714692584, 4.728443327 },
626             { 0.000162e-6, 6254.626662524, 1.435132069 },
627             { 0.000187e-6, 47162.516354635, 1.354371923 },
628             /* 401, 410 */
629             { 0.000146e-6, 11080.171578918, 3.369695406 },
630             { 0.000180e-6, -348.924420448, 2.490902145 },
631             { 0.000148e-6, 151.047669843, 3.799109588 },
632             { 0.000157e-6, 6197.248551160, 1.284375887 },
633             { 0.000167e-6, 146.594251718, 0.759969109 },
634             { 0.000133e-6, -5331.357443741, 5.409701889 },
635             { 0.000154e-6, 95.979227218, 3.366890614 },
636             { 0.000148e-6, -6418.140930027, 3.384104996 },
637             { 0.000128e-6, -6525.804453965, 3.803419985 },
638             { 0.000130e-6, 11293.470674356, 0.939039445 },
639             /* 411, 420 */
640             { 0.000152e-6, -5729.506447149, 0.734117523 },
641             { 0.000138e-6, 210.117701700, 2.564216078 },
642             { 0.000123e-6, 6066.595360816, 4.517099537 },
643             { 0.000140e-6, 18451.078546566, 0.642049130 },
644             { 0.000126e-6, 11300.584221356, 3.485280663 },
645             { 0.000119e-6, 10027.903195729, 3.217431161 },
646             { 0.000151e-6, 4274.518310832, 4.404359108 },
647             { 0.000117e-6, 6072.958148291, 0.366324650 },
648             { 0.000165e-6, -7668.637425143, 4.298212528 },
649             { 0.000117e-6, -6245.048177356, 5.379518958 },
650             /* 421, 430 */
651             { 0.000130e-6, -5888.449964932, 4.527681115 },
652             { 0.000121e-6, -543.918059096, 6.109429504 },
653             { 0.000162e-6, 9683.594581116, 5.720092446 },
654             { 0.000141e-6, 6219.339951688, 0.679068671 },
655             { 0.000118e-6, 22743.409379516, 4.881123092 },
656             { 0.000129e-6, 1692.165669502, 0.351407289 },
657             { 0.000126e-6, 5657.405657679, 5.146592349 },
658             { 0.000114e-6, 728.762966531, 0.520791814 },
659             { 0.000120e-6, 52.596639600, 0.948516300 },
660             { 0.000115e-6, 65.220371012, 3.504914846 },
661             /* 431, 440 */
662             { 0.000126e-6, 5881.403728234, 5.577502482 },
663             { 0.000158e-6, 163096.180360983, 2.957128968 },
664             { 0.000134e-6, 12341.806904281, 2.598576764 },
665             { 0.000151e-6, 16627.370915377, 3.985702050 },
666             { 0.000109e-6, 1368.660252845, 0.014730471 },
667             { 0.000131e-6, 6211.263196841, 0.085077024 },
668             { 0.000146e-6, 5792.741760812, 0.708426604 },
669             { 0.000146e-6, -77.750543984, 3.121576600 },
670             { 0.000107e-6, 5341.013788022, 0.288231904 },
671             { 0.000138e-6, 6281.591377283, 2.797450317 },
672             /* 441, 450 */
673             { 0.000113e-6, -6277.552925684, 2.788904128 },
674             { 0.000115e-6, -525.758811831, 5.895222200 },
675             { 0.000138e-6, 6016.468808270, 6.096188999 },
676             { 0.000139e-6, 23539.707386333, 2.028195445 },
677             { 0.000146e-6, -4176.041342449, 4.660008502 },
678             { 0.000107e-6, 16062.184526117, 4.066520001 },
679             { 0.000142e-6, 83783.548222473, 2.936315115 },
680             { 0.000128e-6, 9380.959672717, 3.223844306 },
681             { 0.000135e-6, 6205.325306007, 1.638054048 },
682             { 0.000101e-6, 2699.734819318, 5.481603249 },
683             /* 451, 460 */
684             { 0.000104e-6, -568.821874027, 2.205734493 },
685             { 0.000103e-6, 6321.103522627, 2.440421099 },
686             { 0.000119e-6, 6321.208885629, 2.547496264 },
687             { 0.000138e-6, 1975.492545856, 2.314608466 },
688             { 0.000121e-6, 137.033024162, 4.539108237 },
689             { 0.000123e-6, 19402.796952817, 4.538074405 },
690             { 0.000119e-6, 22805.735565994, 2.869040566 },
691             { 0.000133e-6, 64471.991241142, 6.056405489 },
692             { 0.000129e-6, -85.827298831, 2.540635083 },
693             { 0.000131e-6, 13613.804277336, 4.005732868 },
694             /* 461, 470 */
695             { 0.000104e-6, 9814.604100291, 1.959967212 },
696             { 0.000112e-6, 16097.679950283, 3.589026260 },
697             { 0.000123e-6, 2107.034507542, 1.728627253 },
698             { 0.000121e-6, 36949.230808424, 6.072332087 },
699             { 0.000108e-6, -12539.853380183, 3.716133846 },
700             { 0.000113e-6, -7875.671863624, 2.725771122 },
701             { 0.000109e-6, 4171.425536614, 4.033338079 },
702             { 0.000101e-6, 6247.911759770, 3.441347021 },
703             { 0.000113e-6, 7330.728427345, 0.656372122 },
704             { 0.000113e-6, 51092.726050855, 2.791483066 },
705             /* 471, 480 */
706             { 0.000106e-6, 5621.842923210, 1.815323326 },
707             { 0.000101e-6, 111.430161497, 5.711033677 },
708             { 0.000103e-6, 909.818733055, 2.812745443 },
709             { 0.000101e-6, 1790.642637886, 1.965746028 },
710              
711             /* T */
712             { 102.156724e-6, 6283.075849991, 4.249032005 },
713             { 1.706807e-6, 12566.151699983, 4.205904248 },
714             { 0.269668e-6, 213.299095438, 3.400290479 },
715             { 0.265919e-6, 529.690965095, 5.836047367 },
716             { 0.210568e-6, -3.523118349, 6.262738348 },
717             { 0.077996e-6, 5223.693919802, 4.670344204 },
718             /* 481, 490 */
719             { 0.054764e-6, 1577.343542448, 4.534800170 },
720             { 0.059146e-6, 26.298319800, 1.083044735 },
721             { 0.034420e-6, -398.149003408, 5.980077351 },
722             { 0.032088e-6, 18849.227549974, 4.162913471 },
723             { 0.033595e-6, 5507.553238667, 5.980162321 },
724             { 0.029198e-6, 5856.477659115, 0.623811863 },
725             { 0.027764e-6, 155.420399434, 3.745318113 },
726             { 0.025190e-6, 5746.271337896, 2.980330535 },
727             { 0.022997e-6, -796.298006816, 1.174411803 },
728             { 0.024976e-6, 5760.498431898, 2.467913690 },
729             /* 491, 500 */
730             { 0.021774e-6, 206.185548437, 3.854787540 },
731             { 0.017925e-6, -775.522611324, 1.092065955 },
732             { 0.013794e-6, 426.598190876, 2.699831988 },
733             { 0.013276e-6, 6062.663207553, 5.845801920 },
734             { 0.011774e-6, 12036.460734888, 2.292832062 },
735             { 0.012869e-6, 6076.890301554, 5.333425680 },
736             { 0.012152e-6, 1059.381930189, 6.222874454 },
737             { 0.011081e-6, -7.113547001, 5.154724984 },
738             { 0.010143e-6, 4694.002954708, 4.044013795 },
739             { 0.009357e-6, 5486.777843175, 3.416081409 },
740             /* 501, 510 */
741             { 0.010084e-6, 522.577418094, 0.749320262 },
742             { 0.008587e-6, 10977.078804699, 2.777152598 },
743             { 0.008628e-6, 6275.962302991, 4.562060226 },
744             { 0.008158e-6, -220.412642439, 5.806891533 },
745             { 0.007746e-6, 2544.314419883, 1.603197066 },
746             { 0.007670e-6, 2146.165416475, 3.000200440 },
747             { 0.007098e-6, 74.781598567, 0.443725817 },
748             { 0.006180e-6, -536.804512095, 1.302642751 },
749             { 0.005818e-6, 5088.628839767, 4.827723531 },
750             { 0.004945e-6, -6286.598968340, 0.268305170 },
751             /* 511, 520 */
752             { 0.004774e-6, 1349.867409659, 5.808636673 },
753             { 0.004687e-6, -242.728603974, 5.154890570 },
754             { 0.006089e-6, 1748.016413067, 4.403765209 },
755             { 0.005975e-6, -1194.447010225, 2.583472591 },
756             { 0.004229e-6, 951.718406251, 0.931172179 },
757             { 0.005264e-6, 553.569402842, 2.336107252 },
758             { 0.003049e-6, 5643.178563677, 1.362634430 },
759             { 0.002974e-6, 6812.766815086, 1.583012668 },
760             { 0.003403e-6, -2352.866153772, 2.552189886 },
761             { 0.003030e-6, 419.484643875, 5.286473844 },
762             /* 521, 530 */
763             { 0.003210e-6, -7.046236698, 1.863796539 },
764             { 0.003058e-6, 9437.762934887, 4.226420633 },
765             { 0.002589e-6, 12352.852604545, 1.991935820 },
766             { 0.002927e-6, 5216.580372801, 2.319951253 },
767             { 0.002425e-6, 5230.807466803, 3.084752833 },
768             { 0.002656e-6, 3154.687084896, 2.487447866 },
769             { 0.002445e-6, 10447.387839604, 2.347139160 },
770             { 0.002990e-6, 4690.479836359, 6.235872050 },
771             { 0.002890e-6, 5863.591206116, 0.095197563 },
772             { 0.002498e-6, 6438.496249426, 2.994779800 },
773             /* 531, 540 */
774             { 0.001889e-6, 8031.092263058, 3.569003717 },
775             { 0.002567e-6, 801.820931124, 3.425611498 },
776             { 0.001803e-6, -71430.695617928, 2.192295512 },
777             { 0.001782e-6, 3.932153263, 5.180433689 },
778             { 0.001694e-6, -4705.732307544, 4.641779174 },
779             { 0.001704e-6, -1592.596013633, 3.997097652 },
780             { 0.001735e-6, 5849.364112115, 0.417558428 },
781             { 0.001643e-6, 8429.241266467, 2.180619584 },
782             { 0.001680e-6, 38.133035638, 4.164529426 },
783             { 0.002045e-6, 7084.896781115, 0.526323854 },
784             /* 541, 550 */
785             { 0.001458e-6, 4292.330832950, 1.356098141 },
786             { 0.001437e-6, 20.355319399, 3.895439360 },
787             { 0.001738e-6, 6279.552731642, 0.087484036 },
788             { 0.001367e-6, 14143.495242431, 3.987576591 },
789             { 0.001344e-6, 7234.794256242, 0.090454338 },
790             { 0.001438e-6, 11499.656222793, 0.974387904 },
791             { 0.001257e-6, 6836.645252834, 1.509069366 },
792             { 0.001358e-6, 11513.883316794, 0.495572260 },
793             { 0.001628e-6, 7632.943259650, 4.968445721 },
794             { 0.001169e-6, 103.092774219, 2.838496795 },
795             /* 551, 560 */
796             { 0.001162e-6, 4164.311989613, 3.408387778 },
797             { 0.001092e-6, 6069.776754553, 3.617942651 },
798             { 0.001008e-6, 17789.845619785, 0.286350174 },
799             { 0.001008e-6, 639.897286314, 1.610762073 },
800             { 0.000918e-6, 10213.285546211, 5.532798067 },
801             { 0.001011e-6, -6256.777530192, 0.661826484 },
802             { 0.000753e-6, 16730.463689596, 3.905030235 },
803             { 0.000737e-6, 11926.254413669, 4.641956361 },
804             { 0.000694e-6, 3340.612426700, 2.111120332 },
805             { 0.000701e-6, 3894.181829542, 2.760823491 },
806             /* 561, 570 */
807             { 0.000689e-6, -135.065080035, 4.768800780 },
808             { 0.000700e-6, 13367.972631107, 5.760439898 },
809             { 0.000664e-6, 6040.347246017, 1.051215840 },
810             { 0.000654e-6, 5650.292110678, 4.911332503 },
811             { 0.000788e-6, 6681.224853400, 4.699648011 },
812             { 0.000628e-6, 5333.900241022, 5.024608847 },
813             { 0.000755e-6, -110.206321219, 4.370971253 },
814             { 0.000628e-6, 6290.189396992, 3.660478857 },
815             { 0.000635e-6, 25132.303399966, 4.121051532 },
816             { 0.000534e-6, 5966.683980335, 1.173284524 },
817             /* 571, 580 */
818             { 0.000543e-6, -433.711737877, 0.345585464 },
819             { 0.000517e-6, -1990.745017041, 5.414571768 },
820             { 0.000504e-6, 5767.611978898, 2.328281115 },
821             { 0.000485e-6, 5753.384884897, 1.685874771 },
822             { 0.000463e-6, 7860.419392439, 5.297703006 },
823             { 0.000604e-6, 515.463871093, 0.591998446 },
824             { 0.000443e-6, 12168.002696575, 4.830881244 },
825             { 0.000570e-6, 199.072001436, 3.899190272 },
826             { 0.000465e-6, 10969.965257698, 0.476681802 },
827             { 0.000424e-6, -7079.373856808, 1.112242763 },
828             /* 581, 590 */
829             { 0.000427e-6, 735.876513532, 1.994214480 },
830             { 0.000478e-6, -6127.655450557, 3.778025483 },
831             { 0.000414e-6, 10973.555686350, 5.441088327 },
832             { 0.000512e-6, 1589.072895284, 0.107123853 },
833             { 0.000378e-6, 10984.192351700, 0.915087231 },
834             { 0.000402e-6, 11371.704689758, 4.107281715 },
835             { 0.000453e-6, 9917.696874510, 1.917490952 },
836             { 0.000395e-6, 149.563197135, 2.763124165 },
837             { 0.000371e-6, 5739.157790895, 3.112111866 },
838             { 0.000350e-6, 11790.629088659, 0.440639857 },
839             /* 591, 600 */
840             { 0.000356e-6, 6133.512652857, 5.444568842 },
841             { 0.000344e-6, 412.371096874, 5.676832684 },
842             { 0.000383e-6, 955.599741609, 5.559734846 },
843             { 0.000333e-6, 6496.374945429, 0.261537984 },
844             { 0.000340e-6, 6055.549660552, 5.975534987 },
845             { 0.000334e-6, 1066.495477190, 2.335063907 },
846             { 0.000399e-6, 11506.769769794, 5.321230910 },
847             { 0.000314e-6, 18319.536584880, 2.313312404 },
848             { 0.000424e-6, 1052.268383188, 1.211961766 },
849             { 0.000307e-6, 63.735898303, 3.169551388 },
850             /* 601, 610 */
851             { 0.000329e-6, 29.821438149, 6.106912080 },
852             { 0.000357e-6, 6309.374169791, 4.223760346 },
853             { 0.000312e-6, -3738.761430108, 2.180556645 },
854             { 0.000301e-6, 309.278322656, 1.499984572 },
855             { 0.000268e-6, 12043.574281889, 2.447520648 },
856             { 0.000257e-6, 12491.370101415, 3.662331761 },
857             { 0.000290e-6, 625.670192312, 1.272834584 },
858             { 0.000256e-6, 5429.879468239, 1.913426912 },
859             { 0.000339e-6, 3496.032826134, 4.165930011 },
860             { 0.000283e-6, 3930.209696220, 4.325565754 },
861             /* 611, 620 */
862             { 0.000241e-6, 12528.018664345, 3.832324536 },
863             { 0.000304e-6, 4686.889407707, 1.612348468 },
864             { 0.000259e-6, 16200.772724501, 3.470173146 },
865             { 0.000238e-6, 12139.553509107, 1.147977842 },
866             { 0.000236e-6, 6172.869528772, 3.776271728 },
867             { 0.000296e-6, -7058.598461315, 0.460368852 },
868             { 0.000306e-6, 10575.406682942, 0.554749016 },
869             { 0.000251e-6, 17298.182327326, 0.834332510 },
870             { 0.000290e-6, 4732.030627343, 4.759564091 },
871             { 0.000261e-6, 5884.926846583, 0.298259862 },
872             /* 621, 630 */
873             { 0.000249e-6, 5547.199336460, 3.749366406 },
874             { 0.000213e-6, 11712.955318231, 5.415666119 },
875             { 0.000223e-6, 4701.116501708, 2.703203558 },
876             { 0.000268e-6, -640.877607382, 0.283670793 },
877             { 0.000209e-6, 5636.065016677, 1.238477199 },
878             { 0.000193e-6, 10177.257679534, 1.943251340 },
879             { 0.000182e-6, 6283.143160294, 2.456157599 },
880             { 0.000184e-6, -227.526189440, 5.888038582 },
881             { 0.000182e-6, -6283.008539689, 0.241332086 },
882             { 0.000228e-6, -6284.056171060, 2.657323816 },
883             /* 631, 640 */
884             { 0.000166e-6, 7238.675591600, 5.930629110 },
885             { 0.000167e-6, 3097.883822726, 5.570955333 },
886             { 0.000159e-6, -323.505416657, 5.786670700 },
887             { 0.000154e-6, -4136.910433516, 1.517805532 },
888             { 0.000176e-6, 12029.347187887, 3.139266834 },
889             { 0.000167e-6, 12132.439962106, 3.556352289 },
890             { 0.000153e-6, 202.253395174, 1.463313961 },
891             { 0.000157e-6, 17267.268201691, 1.586837396 },
892             { 0.000142e-6, 83996.847317911, 0.022670115 },
893             { 0.000152e-6, 17260.154654690, 0.708528947 },
894             /* 641, 650 */
895             { 0.000144e-6, 6084.003848555, 5.187075177 },
896             { 0.000135e-6, 5756.566278634, 1.993229262 },
897             { 0.000134e-6, 5750.203491159, 3.457197134 },
898             { 0.000144e-6, 5326.786694021, 6.066193291 },
899             { 0.000160e-6, 11015.106477335, 1.710431974 },
900             { 0.000133e-6, 3634.621024518, 2.836451652 },
901             { 0.000134e-6, 18073.704938650, 5.453106665 },
902             { 0.000134e-6, 1162.474704408, 5.326898811 },
903             { 0.000128e-6, 5642.198242609, 2.511652591 },
904             { 0.000160e-6, 632.783739313, 5.628785365 },
905             /* 651, 660 */
906             { 0.000132e-6, 13916.019109642, 0.819294053 },
907             { 0.000122e-6, 14314.168113050, 5.677408071 },
908             { 0.000125e-6, 12359.966151546, 5.251984735 },
909             { 0.000121e-6, 5749.452731634, 2.210924603 },
910             { 0.000136e-6, -245.831646229, 1.646502367 },
911             { 0.000120e-6, 5757.317038160, 3.240883049 },
912             { 0.000134e-6, 12146.667056108, 3.059480037 },
913             { 0.000137e-6, 6206.809778716, 1.867105418 },
914             { 0.000141e-6, 17253.041107690, 2.069217456 },
915             { 0.000129e-6, -7477.522860216, 2.781469314 },
916             /* 661, 670 */
917             { 0.000116e-6, 5540.085789459, 4.281176991 },
918             { 0.000116e-6, 9779.108676125, 3.320925381 },
919             { 0.000129e-6, 5237.921013804, 3.497704076 },
920             { 0.000113e-6, 5959.570433334, 0.983210840 },
921             { 0.000122e-6, 6282.095528923, 2.674938860 },
922             { 0.000140e-6, -11.045700264, 4.957936982 },
923             { 0.000108e-6, 23543.230504682, 1.390113589 },
924             { 0.000106e-6, -12569.674818332, 0.429631317 },
925             { 0.000110e-6, -266.607041722, 5.501340197 },
926             { 0.000115e-6, 12559.038152982, 4.691456618 },
927             /* 671, 680 */
928             { 0.000134e-6, -2388.894020449, 0.577313584 },
929             { 0.000109e-6, 10440.274292604, 6.218148717 },
930             { 0.000102e-6, -543.918059096, 1.477842615 },
931             { 0.000108e-6, 21228.392023546, 2.237753948 },
932             { 0.000101e-6, -4535.059436924, 3.100492232 },
933             { 0.000103e-6, 76.266071276, 5.594294322 },
934             { 0.000104e-6, 949.175608970, 5.674287810 },
935             { 0.000101e-6, 13517.870106233, 2.196632348 },
936             { 0.000100e-6, 11933.367960670, 4.056084160 },
937              
938             /* T^2 */
939             { 4.322990e-6, 6283.075849991, 2.642893748 },
940             /* 681, 690 */
941             { 0.406495e-6, 0.000000000, 4.712388980 },
942             { 0.122605e-6, 12566.151699983, 2.438140634 },
943             { 0.019476e-6, 213.299095438, 1.642186981 },
944             { 0.016916e-6, 529.690965095, 4.510959344 },
945             { 0.013374e-6, -3.523118349, 1.502210314 },
946             { 0.008042e-6, 26.298319800, 0.478549024 },
947             { 0.007824e-6, 155.420399434, 5.254710405 },
948             { 0.004894e-6, 5746.271337896, 4.683210850 },
949             { 0.004875e-6, 5760.498431898, 0.759507698 },
950             { 0.004416e-6, 5223.693919802, 6.028853166 },
951             /* 691, 700 */
952             { 0.004088e-6, -7.113547001, 0.060926389 },
953             { 0.004433e-6, 77713.771467920, 3.627734103 },
954             { 0.003277e-6, 18849.227549974, 2.327912542 },
955             { 0.002703e-6, 6062.663207553, 1.271941729 },
956             { 0.003435e-6, -775.522611324, 0.747446224 },
957             { 0.002618e-6, 6076.890301554, 3.633715689 },
958             { 0.003146e-6, 206.185548437, 5.647874613 },
959             { 0.002544e-6, 1577.343542448, 6.232904270 },
960             { 0.002218e-6, -220.412642439, 1.309509946 },
961             { 0.002197e-6, 5856.477659115, 2.407212349 },
962             /* 701, 710 */
963             { 0.002897e-6, 5753.384884897, 5.863842246 },
964             { 0.001766e-6, 426.598190876, 0.754113147 },
965             { 0.001738e-6, -796.298006816, 2.714942671 },
966             { 0.001695e-6, 522.577418094, 2.629369842 },
967             { 0.001584e-6, 5507.553238667, 1.341138229 },
968             { 0.001503e-6, -242.728603974, 0.377699736 },
969             { 0.001552e-6, -536.804512095, 2.904684667 },
970             { 0.001370e-6, -398.149003408, 1.265599125 },
971             { 0.001889e-6, -5573.142801634, 4.413514859 },
972             { 0.001722e-6, 6069.776754553, 2.445966339 },
973             /* 711, 720 */
974             { 0.001124e-6, 1059.381930189, 5.041799657 },
975             { 0.001258e-6, 553.569402842, 3.849557278 },
976             { 0.000831e-6, 951.718406251, 2.471094709 },
977             { 0.000767e-6, 4694.002954708, 5.363125422 },
978             { 0.000756e-6, 1349.867409659, 1.046195744 },
979             { 0.000775e-6, -11.045700264, 0.245548001 },
980             { 0.000597e-6, 2146.165416475, 4.543268798 },
981             { 0.000568e-6, 5216.580372801, 4.178853144 },
982             { 0.000711e-6, 1748.016413067, 5.934271972 },
983             { 0.000499e-6, 12036.460734888, 0.624434410 },
984             /* 721, 730 */
985             { 0.000671e-6, -1194.447010225, 4.136047594 },
986             { 0.000488e-6, 5849.364112115, 2.209679987 },
987             { 0.000621e-6, 6438.496249426, 4.518860804 },
988             { 0.000495e-6, -6286.598968340, 1.868201275 },
989             { 0.000456e-6, 5230.807466803, 1.271231591 },
990             { 0.000451e-6, 5088.628839767, 0.084060889 },
991             { 0.000435e-6, 5643.178563677, 3.324456609 },
992             { 0.000387e-6, 10977.078804699, 4.052488477 },
993             { 0.000547e-6, 161000.685737473, 2.841633844 },
994             { 0.000522e-6, 3154.687084896, 2.171979966 },
995             /* 731, 740 */
996             { 0.000375e-6, 5486.777843175, 4.983027306 },
997             { 0.000421e-6, 5863.591206116, 4.546432249 },
998             { 0.000439e-6, 7084.896781115, 0.522967921 },
999             { 0.000309e-6, 2544.314419883, 3.172606705 },
1000             { 0.000347e-6, 4690.479836359, 1.479586566 },
1001             { 0.000317e-6, 801.820931124, 3.553088096 },
1002             { 0.000262e-6, 419.484643875, 0.606635550 },
1003             { 0.000248e-6, 6836.645252834, 3.014082064 },
1004             { 0.000245e-6, -1592.596013633, 5.519526220 },
1005             { 0.000225e-6, 4292.330832950, 2.877956536 },
1006             /* 741, 750 */
1007             { 0.000214e-6, 7234.794256242, 1.605227587 },
1008             { 0.000205e-6, 5767.611978898, 0.625804796 },
1009             { 0.000180e-6, 10447.387839604, 3.499954526 },
1010             { 0.000229e-6, 199.072001436, 5.632304604 },
1011             { 0.000214e-6, 639.897286314, 5.960227667 },
1012             { 0.000175e-6, -433.711737877, 2.162417992 },
1013             { 0.000209e-6, 515.463871093, 2.322150893 },
1014             { 0.000173e-6, 6040.347246017, 2.556183691 },
1015             { 0.000184e-6, 6309.374169791, 4.732296790 },
1016             { 0.000227e-6, 149854.400134205, 5.385812217 },
1017             /* 751, 760 */
1018             { 0.000154e-6, 8031.092263058, 5.120720920 },
1019             { 0.000151e-6, 5739.157790895, 4.815000443 },
1020             { 0.000197e-6, 7632.943259650, 0.222827271 },
1021             { 0.000197e-6, 74.781598567, 3.910456770 },
1022             { 0.000138e-6, 6055.549660552, 1.397484253 },
1023             { 0.000149e-6, -6127.655450557, 5.333727496 },
1024             { 0.000137e-6, 3894.181829542, 4.281749907 },
1025             { 0.000135e-6, 9437.762934887, 5.979971885 },
1026             { 0.000139e-6, -2352.866153772, 4.715630782 },
1027             { 0.000142e-6, 6812.766815086, 0.513330157 },
1028             /* 761, 770 */
1029             { 0.000120e-6, -4705.732307544, 0.194160689 },
1030             { 0.000131e-6, -71430.695617928, 0.000379226 },
1031             { 0.000124e-6, 6279.552731642, 2.122264908 },
1032             { 0.000108e-6, -6256.777530192, 0.883445696 },
1033              
1034             /* T^3 */
1035             { 0.143388e-6, 6283.075849991, 1.131453581 },
1036             { 0.006671e-6, 12566.151699983, 0.775148887 },
1037             { 0.001480e-6, 155.420399434, 0.480016880 },
1038             { 0.000934e-6, 213.299095438, 6.144453084 },
1039             { 0.000795e-6, 529.690965095, 2.941595619 },
1040             { 0.000673e-6, 5746.271337896, 0.120415406 },
1041             /* 771, 780 */
1042             { 0.000672e-6, 5760.498431898, 5.317009738 },
1043             { 0.000389e-6, -220.412642439, 3.090323467 },
1044             { 0.000373e-6, 6062.663207553, 3.003551964 },
1045             { 0.000360e-6, 6076.890301554, 1.918913041 },
1046             { 0.000316e-6, -21.340641002, 5.545798121 },
1047             { 0.000315e-6, -242.728603974, 1.884932563 },
1048             { 0.000278e-6, 206.185548437, 1.266254859 },
1049             { 0.000238e-6, -536.804512095, 4.532664830 },
1050             { 0.000185e-6, 522.577418094, 4.578313856 },
1051             { 0.000245e-6, 18849.227549974, 0.587467082 },
1052             /* 781, 787 */
1053             { 0.000180e-6, 426.598190876, 5.151178553 },
1054             { 0.000200e-6, 553.569402842, 5.355983739 },
1055             { 0.000141e-6, 5223.693919802, 1.336556009 },
1056             { 0.000104e-6, 5856.477659115, 4.239842759 },
1057              
1058             /* T^4 */
1059             { 0.003826e-6, 6283.075849991, 5.705257275 },
1060             { 0.000303e-6, 12566.151699983, 5.407132842 },
1061             { 0.000209e-6, 155.420399434, 1.989815753 }
1062             };
1063              
1064              
1065             /* Time since J2000.0 in Julian millennia. */
1066 0           t = ((date1 - ERFA_DJ00) + date2) / ERFA_DJM;
1067              
1068             /* ================= */
1069             /* Topocentric terms */
1070             /* ================= */
1071              
1072             /* Convert UT to local solar time in radians. */
1073 0           tsol = fmod(ut, 1.0) * ERFA_D2PI + elong;
1074              
1075             /* FUNDAMENTAL ARGUMENTS: Simon et al. 1994. */
1076              
1077             /* Combine time argument (millennia) with deg/arcsec factor. */
1078 0           w = t / 3600.0;
1079              
1080             /* Sun Mean Longitude. */
1081 0           elsun = fmod(280.46645683 + 1296027711.03429 * w, 360.0) * ERFA_DD2R;
1082              
1083             /* Sun Mean Anomaly. */
1084 0           emsun = fmod(357.52910918 + 1295965810.481 * w, 360.0) * ERFA_DD2R;
1085              
1086             /* Mean Elongation of Moon from Sun. */
1087 0           d = fmod(297.85019547 + 16029616012.090 * w, 360.0) * ERFA_DD2R;
1088              
1089             /* Mean Longitude of Jupiter. */
1090 0           elj = fmod(34.35151874 + 109306899.89453 * w, 360.0) * ERFA_DD2R;
1091              
1092             /* Mean Longitude of Saturn. */
1093 0           els = fmod(50.07744430 + 44046398.47038 * w, 360.0) * ERFA_DD2R;
1094              
1095             /* TOPOCENTRIC TERMS: Moyer 1981 and Murray 1983. */
1096 0           wt = + 0.00029e-10 * u * sin(tsol + elsun - els)
1097 0           + 0.00100e-10 * u * sin(tsol - 2.0 * emsun)
1098 0           + 0.00133e-10 * u * sin(tsol - d)
1099 0           + 0.00133e-10 * u * sin(tsol + elsun - elj)
1100 0           - 0.00229e-10 * u * sin(tsol + 2.0 * elsun + emsun)
1101 0           - 0.02200e-10 * v * cos(elsun + emsun)
1102 0           + 0.05312e-10 * u * sin(tsol - emsun)
1103 0           - 0.13677e-10 * u * sin(tsol + 2.0 * elsun)
1104 0           - 1.31840e-10 * v * cos(elsun)
1105 0           + 3.17679e-10 * u * sin(tsol);
1106              
1107             /* ===================== */
1108             /* Fairhead et al. model */
1109             /* ===================== */
1110              
1111             /* T**0 */
1112             w0 = 0;
1113 0 0         for (j = 473; j >= 0; j--) {
1114 0           w0 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]);
1115             }
1116              
1117             /* T**1 */
1118             w1 = 0;
1119 0 0         for (j = 678; j >= 474; j--) {
1120 0           w1 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]);
1121             }
1122              
1123             /* T**2 */
1124             w2 = 0;
1125 0 0         for (j = 763; j >= 679; j--) {
1126 0           w2 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]);
1127             }
1128              
1129             /* T**3 */
1130             w3 = 0;
1131 0 0         for (j = 783; j >= 764; j--) {
1132 0           w3 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]);
1133             }
1134              
1135             /* T**4 */
1136             w4 = 0;
1137 0 0         for (j = 786; j >= 784; j--) {
1138 0           w4 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]);
1139             }
1140              
1141             /* Multiply by powers of T and combine. */
1142 0           wf = t * (t * (t * (t * w4 + w3) + w2) + w1) + w0;
1143              
1144             /* Adjustments to use JPL planetary masses instead of IAU. */
1145 0           wj = 0.00065e-6 * sin(6069.776754 * t + 4.021194) +
1146 0           0.00033e-6 * sin( 213.299095 * t + 5.543132) +
1147 0           (-0.00196e-6 * sin(6208.294251 * t + 5.696701)) +
1148 0           (-0.00173e-6 * sin( 74.781599 * t + 2.435900)) +
1149 0           0.03638e-6 * t * t;
1150              
1151             /* ============ */
1152             /* Final result */
1153             /* ============ */
1154              
1155             /* TDB-TT in seconds. */
1156 0           w = wt + wf + wj;
1157              
1158 0           return w;
1159              
1160             }
1161             /*----------------------------------------------------------------------
1162             **
1163             **
1164             ** Copyright (C) 2013-2019, NumFOCUS Foundation.
1165             ** All rights reserved.
1166             **
1167             ** This library is derived, with permission, from the International
1168             ** Astronomical Union's "Standards of Fundamental Astronomy" library,
1169             ** available from http://www.iausofa.org.
1170             **
1171             ** The ERFA version is intended to retain identical functionality to
1172             ** the SOFA library, but made distinct through different function and
1173             ** file names, as set out in the SOFA license conditions. The SOFA
1174             ** original has a role as a reference standard for the IAU and IERS,
1175             ** and consequently redistribution is permitted only in its unaltered
1176             ** state. The ERFA version is not subject to this restriction and
1177             ** therefore can be included in distributions which do not support the
1178             ** concept of "read only" software.
1179             **
1180             ** Although the intent is to replicate the SOFA API (other than
1181             ** replacement of prefix names) and results (with the exception of
1182             ** bugs; any that are discovered will be fixed), SOFA is not
1183             ** responsible for any errors found in this version of the library.
1184             **
1185             ** If you wish to acknowledge the SOFA heritage, please acknowledge
1186             ** that you are using a library derived from SOFA, rather than SOFA
1187             ** itself.
1188             **
1189             **
1190             ** TERMS AND CONDITIONS
1191             **
1192             ** Redistribution and use in source and binary forms, with or without
1193             ** modification, are permitted provided that the following conditions
1194             ** are met:
1195             **
1196             ** 1 Redistributions of source code must retain the above copyright
1197             ** notice, this list of conditions and the following disclaimer.
1198             **
1199             ** 2 Redistributions in binary form must reproduce the above copyright
1200             ** notice, this list of conditions and the following disclaimer in
1201             ** the documentation and/or other materials provided with the
1202             ** distribution.
1203             **
1204             ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
1205             ** the International Astronomical Union nor the names of its
1206             ** contributors may be used to endorse or promote products derived
1207             ** from this software without specific prior written permission.
1208             **
1209             ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1210             ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1211             ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
1212             ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
1213             ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
1214             ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
1215             ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
1216             ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
1217             ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
1218             ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
1219             ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1220             ** POSSIBILITY OF SUCH DAMAGE.
1221             **
1222             */