equationoftime 4.0.0 → 4.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (265) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +8 -3
  3. data/Gemfile.lock +48 -0
  4. data/README.md +22 -19
  5. data/Rakefile +14 -7
  6. data/equationoftime.gemspec +9 -6
  7. data/ext/ceot/ceot.c +52 -0
  8. data/ext/ceot/eot.c +79 -0
  9. data/ext/ceot/eot.h +8 -0
  10. data/ext/ceot/extconf.rb +5 -0
  11. data/lib/eot.rb +2 -1
  12. data/lib/eot/angles.rb +44 -43
  13. data/lib/eot/init.rb +13 -6
  14. data/lib/eot/version.rb +1 -1
  15. data/wiki.md +6 -7
  16. metadata +26 -255
  17. data/.settings/org.eclipse.ltk.core.refactoring.prefs +0 -2
  18. data/Makefile +0 -238
  19. data/analemma_data.yml +0 -2925
  20. data/examples/Equation_of_Time.jpg +0 -0
  21. data/examples/analemma_data_generator.rb +0 -53
  22. data/examples/celes_parts/.RUBYARCHDIR.time +0 -0
  23. data/examples/celes_parts/.cproject +0 -56
  24. data/examples/celes_parts/.project +0 -78
  25. data/examples/celes_parts/a2af.c +0 -120
  26. data/examples/celes_parts/a2tf.c +0 -116
  27. data/examples/celes_parts/af2a.c +0 -107
  28. data/examples/celes_parts/anp.c +0 -82
  29. data/examples/celes_parts/anpm.c +0 -82
  30. data/examples/celes_parts/bi00.c +0 -116
  31. data/examples/celes_parts/bp00.c +0 -173
  32. data/examples/celes_parts/bp06.c +0 -136
  33. data/examples/celes_parts/bpn2xy.c +0 -100
  34. data/examples/celes_parts/c2i00a.c +0 -139
  35. data/examples/celes_parts/c2i00b.c +0 -139
  36. data/examples/celes_parts/c2i06a.c +0 -136
  37. data/examples/celes_parts/c2ibpn.c +0 -142
  38. data/examples/celes_parts/c2ixy.c +0 -131
  39. data/examples/celes_parts/c2ixys.c +0 -123
  40. data/examples/celes_parts/c2s.c +0 -96
  41. data/examples/celes_parts/c2t00a.c +0 -154
  42. data/examples/celes_parts/c2t00b.c +0 -150
  43. data/examples/celes_parts/c2t06a.c +0 -152
  44. data/examples/celes_parts/c2tcio.c +0 -122
  45. data/examples/celes_parts/c2teqx.c +0 -122
  46. data/examples/celes_parts/c2tpe.c +0 -167
  47. data/examples/celes_parts/c2txy.c +0 -159
  48. data/examples/celes_parts/cal2jd.c +0 -139
  49. data/examples/celes_parts/celes_core.c +0 -2522
  50. data/examples/celes_parts/cp.c +0 -80
  51. data/examples/celes_parts/cpv.c +0 -82
  52. data/examples/celes_parts/cr.c +0 -83
  53. data/examples/celes_parts/d2dtf.c +0 -206
  54. data/examples/celes_parts/d2tf.c +0 -160
  55. data/examples/celes_parts/dat.c +0 -289
  56. data/examples/celes_parts/depend +0 -25
  57. data/examples/celes_parts/dtdb.c +0 -1213
  58. data/examples/celes_parts/dtf2d.c +0 -196
  59. data/examples/celes_parts/ee00.c +0 -128
  60. data/examples/celes_parts/ee00a.c +0 -135
  61. data/examples/celes_parts/ee00b.c +0 -141
  62. data/examples/celes_parts/ee06a.c +0 -122
  63. data/examples/celes_parts/eect00.c +0 -282
  64. data/examples/celes_parts/eform.c +0 -147
  65. data/examples/celes_parts/eo06a.c +0 -131
  66. data/examples/celes_parts/eors.c +0 -108
  67. data/examples/celes_parts/epb.c +0 -96
  68. data/examples/celes_parts/epb2jd.c +0 -91
  69. data/examples/celes_parts/epj.c +0 -93
  70. data/examples/celes_parts/epj2jd.c +0 -91
  71. data/examples/celes_parts/epv00.c +0 -2589
  72. data/examples/celes_parts/eqeq94.c +0 -131
  73. data/examples/celes_parts/era00.c +0 -136
  74. data/examples/celes_parts/extconf.rb +0 -4
  75. data/examples/celes_parts/fad03.c +0 -103
  76. data/examples/celes_parts/fae03.c +0 -102
  77. data/examples/celes_parts/faf03.c +0 -106
  78. data/examples/celes_parts/faju03.c +0 -102
  79. data/examples/celes_parts/fal03.c +0 -103
  80. data/examples/celes_parts/falp03.c +0 -103
  81. data/examples/celes_parts/fama03.c +0 -102
  82. data/examples/celes_parts/fame03.c +0 -102
  83. data/examples/celes_parts/fane03.c +0 -99
  84. data/examples/celes_parts/faom03.c +0 -104
  85. data/examples/celes_parts/fapa03.c +0 -103
  86. data/examples/celes_parts/fasa03.c +0 -102
  87. data/examples/celes_parts/faur03.c +0 -99
  88. data/examples/celes_parts/fave03.c +0 -102
  89. data/examples/celes_parts/fk52h.c +0 -143
  90. data/examples/celes_parts/fk5hip.c +0 -126
  91. data/examples/celes_parts/fk5hz.c +0 -160
  92. data/examples/celes_parts/fw2m.c +0 -134
  93. data/examples/celes_parts/fw2xy.c +0 -120
  94. data/examples/celes_parts/gc2gd.c +0 -134
  95. data/examples/celes_parts/gc2gde.c +0 -200
  96. data/examples/celes_parts/gd2gc.c +0 -134
  97. data/examples/celes_parts/gd2gce.c +0 -138
  98. data/examples/celes_parts/gmst00.c +0 -145
  99. data/examples/celes_parts/gmst06.c +0 -136
  100. data/examples/celes_parts/gmst82.c +0 -151
  101. data/examples/celes_parts/gst00a.c +0 -138
  102. data/examples/celes_parts/gst00b.c +0 -146
  103. data/examples/celes_parts/gst06.c +0 -140
  104. data/examples/celes_parts/gst06a.c +0 -131
  105. data/examples/celes_parts/gst94.c +0 -131
  106. data/examples/celes_parts/h2fk5.c +0 -148
  107. data/examples/celes_parts/hfk5z.c +0 -175
  108. data/examples/celes_parts/ir.c +0 -83
  109. data/examples/celes_parts/jd2cal.c +0 -155
  110. data/examples/celes_parts/jdcalf.c +0 -161
  111. data/examples/celes_parts/num00a.c +0 -121
  112. data/examples/celes_parts/num00b.c +0 -121
  113. data/examples/celes_parts/num06a.c +0 -125
  114. data/examples/celes_parts/numat.c +0 -109
  115. data/examples/celes_parts/nut00a.c +0 -2047
  116. data/examples/celes_parts/nut00b.c +0 -372
  117. data/examples/celes_parts/nut06a.c +0 -153
  118. data/examples/celes_parts/nut80.c +0 -325
  119. data/examples/celes_parts/nutm80.c +0 -117
  120. data/examples/celes_parts/obl06.c +0 -118
  121. data/examples/celes_parts/obl80.c +0 -118
  122. data/examples/celes_parts/p06e.c +0 -321
  123. data/examples/celes_parts/p2pv.c +0 -83
  124. data/examples/celes_parts/p2s.c +0 -91
  125. data/examples/celes_parts/pap.c +0 -139
  126. data/examples/celes_parts/pas.c +0 -96
  127. data/examples/celes_parts/pb06.c +0 -144
  128. data/examples/celes_parts/pdp.c +0 -84
  129. data/examples/celes_parts/pfw06.c +0 -165
  130. data/examples/celes_parts/plan94.c +0 -514
  131. data/examples/celes_parts/pm.c +0 -83
  132. data/examples/celes_parts/pmat00.c +0 -118
  133. data/examples/celes_parts/pmat06.c +0 -122
  134. data/examples/celes_parts/pmat76.c +0 -141
  135. data/examples/celes_parts/pmp.c +0 -85
  136. data/examples/celes_parts/pn.c +0 -109
  137. data/examples/celes_parts/pn00.c +0 -177
  138. data/examples/celes_parts/pn00a.c +0 -162
  139. data/examples/celes_parts/pn00b.c +0 -162
  140. data/examples/celes_parts/pn06.c +0 -187
  141. data/examples/celes_parts/pn06a.c +0 -152
  142. data/examples/celes_parts/pnm00a.c +0 -121
  143. data/examples/celes_parts/pnm00b.c +0 -121
  144. data/examples/celes_parts/pnm06a.c +0 -124
  145. data/examples/celes_parts/pnm80.c +0 -126
  146. data/examples/celes_parts/pom00.c +0 -115
  147. data/examples/celes_parts/ppp.c +0 -85
  148. data/examples/celes_parts/ppsp.c +0 -94
  149. data/examples/celes_parts/pr00.c +0 -142
  150. data/examples/celes_parts/prec76.c +0 -148
  151. data/examples/celes_parts/pv2p.c +0 -81
  152. data/examples/celes_parts/pv2s.c +0 -144
  153. data/examples/celes_parts/pvdpv.c +0 -102
  154. data/examples/celes_parts/pvm.c +0 -86
  155. data/examples/celes_parts/pvmpv.c +0 -87
  156. data/examples/celes_parts/pvppv.c +0 -87
  157. data/examples/celes_parts/pvstar.c +0 -207
  158. data/examples/celes_parts/pvu.c +0 -93
  159. data/examples/celes_parts/pvup.c +0 -88
  160. data/examples/celes_parts/pvxpv.c +0 -107
  161. data/examples/celes_parts/pxp.c +0 -94
  162. data/examples/celes_parts/rm2v.c +0 -111
  163. data/examples/celes_parts/rv2m.c +0 -118
  164. data/examples/celes_parts/rx.c +0 -110
  165. data/examples/celes_parts/rxp.c +0 -99
  166. data/examples/celes_parts/rxpv.c +0 -86
  167. data/examples/celes_parts/rxr.c +0 -99
  168. data/examples/celes_parts/ry.c +0 -110
  169. data/examples/celes_parts/rz.c +0 -110
  170. data/examples/celes_parts/s00.c +0 -371
  171. data/examples/celes_parts/s00a.c +0 -143
  172. data/examples/celes_parts/s00b.c +0 -143
  173. data/examples/celes_parts/s06.c +0 -368
  174. data/examples/celes_parts/s06a.c +0 -145
  175. data/examples/celes_parts/s2c.c +0 -85
  176. data/examples/celes_parts/s2p.c +0 -88
  177. data/examples/celes_parts/s2pv.c +0 -103
  178. data/examples/celes_parts/s2xpv.c +0 -87
  179. data/examples/celes_parts/sepp.c +0 -105
  180. data/examples/celes_parts/seps.c +0 -93
  181. data/examples/celes_parts/sofa.h +0 -379
  182. data/examples/celes_parts/sofam.h +0 -155
  183. data/examples/celes_parts/sp00.c +0 -118
  184. data/examples/celes_parts/starpm.c +0 -205
  185. data/examples/celes_parts/starpv.c +0 -264
  186. data/examples/celes_parts/sxp.c +0 -84
  187. data/examples/celes_parts/sxpv.c +0 -85
  188. data/examples/celes_parts/taitt.c +0 -110
  189. data/examples/celes_parts/taiut1.c +0 -112
  190. data/examples/celes_parts/taiutc.c +0 -182
  191. data/examples/celes_parts/tcbtdb.c +0 -132
  192. data/examples/celes_parts/tcgtt.c +0 -109
  193. data/examples/celes_parts/tdbtcb.c +0 -137
  194. data/examples/celes_parts/tdbtt.c +0 -122
  195. data/examples/celes_parts/test_celes.rb +0 -48
  196. data/examples/celes_parts/tf2a.c +0 -107
  197. data/examples/celes_parts/tf2d.c +0 -107
  198. data/examples/celes_parts/tr.c +0 -93
  199. data/examples/celes_parts/trxp.c +0 -93
  200. data/examples/celes_parts/trxpv.c +0 -93
  201. data/examples/celes_parts/tttai.c +0 -110
  202. data/examples/celes_parts/tttcg.c +0 -112
  203. data/examples/celes_parts/tttdb.c +0 -121
  204. data/examples/celes_parts/ttut1.c +0 -110
  205. data/examples/celes_parts/ut1tai.c +0 -111
  206. data/examples/celes_parts/ut1tt.c +0 -110
  207. data/examples/celes_parts/ut1utc.c +0 -193
  208. data/examples/celes_parts/utctai.c +0 -163
  209. data/examples/celes_parts/utcut1.c +0 -151
  210. data/examples/celes_parts/xy06.c +0 -2758
  211. data/examples/celes_parts/xys00a.c +0 -133
  212. data/examples/celes_parts/xys00b.c +0 -133
  213. data/examples/celes_parts/xys06a.c +0 -133
  214. data/examples/celes_parts/zp.c +0 -77
  215. data/examples/celes_parts/zpv.c +0 -79
  216. data/examples/celes_parts/zr.c +0 -83
  217. data/examples/check_date_type.rb +0 -55
  218. data/examples/compare_geoc_long_ra.rb +0 -39
  219. data/examples/data_table_for_astro_dog.rb +0 -40
  220. data/examples/earth_rotation.rb +0 -38
  221. data/examples/eot.c +0 -15
  222. data/examples/eot.h +0 -2
  223. data/examples/eot_methods_list.rb +0 -43
  224. data/examples/eot_plot.r +0 -57
  225. data/examples/eot_suntimes.rb +0 -144
  226. data/examples/equation_of_time.py +0 -186
  227. data/examples/extconf.rb +0 -2
  228. data/examples/figure_1.jpg +0 -0
  229. data/examples/file_converter.rb +0 -31
  230. data/examples/from_readme.rb +0 -10
  231. data/examples/geo_locator.rb +0 -12
  232. data/examples/getjd.rb +0 -45
  233. data/examples/gmst_gast_non_sofa.rb +0 -404
  234. data/examples/input_suntimes.rb +0 -21
  235. data/examples/julian_day_formula.rb +0 -29
  236. data/examples/julian_day_formula.txt +0 -12
  237. data/examples/my_time_conversion.rb +0 -21
  238. data/examples/nutation_series.txt +0 -678
  239. data/examples/nutation_series.yaml +0 -14239
  240. data/examples/nutation_table5_3a.txt +0 -682
  241. data/examples/nutation_table5_3a.yaml +0 -9532
  242. data/examples/ptime.rb +0 -162
  243. data/examples/rbeot.c +0 -24
  244. data/examples/suntimes.rb +0 -28
  245. data/examples/suntimes_test.rb +0 -47
  246. data/examples/test_eot.rb +0 -17
  247. data/examples/test_poly_eval.rb +0 -27
  248. data/examples/time_scales.rb +0 -26
  249. data/examples/times_year.rb +0 -50
  250. data/examples/usage_example.rb +0 -23
  251. data/examples/use_angles.rb +0 -219
  252. data/rise_set_data.yml +0 -1461
  253. data/tests/minitest/aliased_angles_spec.rb +0 -241
  254. data/tests/minitest/aliased_displays_spec.rb +0 -108
  255. data/tests/minitest/aliased_utilities_spec.rb +0 -38
  256. data/tests/minitest/angles_spec.rb +0 -266
  257. data/tests/minitest/constants_spec.rb +0 -21
  258. data/tests/minitest/delta_epsilon_spec.rb +0 -32
  259. data/tests/minitest/displays_spec.rb +0 -113
  260. data/tests/minitest/geo_spec.rb +0 -40
  261. data/tests/minitest/init_spec.rb +0 -46
  262. data/tests/minitest/nutation_spec.rb +0 -39
  263. data/tests/minitest/times_spec.rb +0 -139
  264. data/tests/minitest/utilities_spec.rb +0 -37
  265. data/tests/spec_config.rb +0 -3
@@ -1,372 +0,0 @@
1
- #include "sofam.h"
2
-
3
- void iauNut00b(double date1, double date2, double *dpsi, double *deps)
4
- /*
5
- ** - - - - - - - - - -
6
- ** i a u N u t 0 0 b
7
- ** - - - - - - - - - -
8
- **
9
- ** Nutation, IAU 2000B model.
10
- **
11
- ** Status: canonical model.
12
- **
13
- ** Given:
14
- ** date1,date2 double TT as a 2-part Julian Date (Note 1)
15
- **
16
- ** Returned:
17
- ** dpsi,deps double nutation, luni-solar + planetary (Note 2)
18
- **
19
- ** Notes:
20
- **
21
- ** 1) The TT date date1+date2 is a Julian Date, apportioned in any
22
- ** convenient way between the two arguments. For example,
23
- ** JD(TT)=2450123.7 could be expressed in any of these ways,
24
- ** among others:
25
- **
26
- ** date1 date2
27
- **
28
- ** 2450123.7 0.0 (JD method)
29
- ** 2451545.0 -1421.3 (J2000 method)
30
- ** 2400000.5 50123.2 (MJD method)
31
- ** 2450123.5 0.2 (date & time method)
32
- **
33
- ** The JD method is the most natural and convenient to use in
34
- ** cases where the loss of several decimal digits of resolution
35
- ** is acceptable. The J2000 method is best matched to the way
36
- ** the argument is handled internally and will deliver the
37
- ** optimum resolution. The MJD method and the date & time methods
38
- ** are both good compromises between resolution and convenience.
39
- **
40
- ** 2) The nutation components in longitude and obliquity are in radians
41
- ** and with respect to the equinox and ecliptic of date. The
42
- ** obliquity at J2000.0 is assumed to be the Lieske et al. (1977)
43
- ** value of 84381.448 arcsec. (The errors that result from using
44
- ** this function with the IAU 2006 value of 84381.406 arcsec can be
45
- ** neglected.)
46
- **
47
- ** The nutation model consists only of luni-solar terms, but
48
- ** includes also a fixed offset which compensates for certain long-
49
- ** period planetary terms (Note 7).
50
- **
51
- ** 3) This function is an implementation of the IAU 2000B abridged
52
- ** nutation model formally adopted by the IAU General Assembly in
53
- ** 2000. The function computes the MHB_2000_SHORT luni-solar
54
- ** nutation series (Luzum 2001), but without the associated
55
- ** corrections for the precession rate adjustments and the offset
56
- ** between the GCRS and J2000.0 mean poles.
57
- **
58
- ** 4) The full IAU 2000A (MHB2000) nutation model contains nearly 1400
59
- ** terms. The IAU 2000B model (McCarthy & Luzum 2003) contains only
60
- ** 77 terms, plus additional simplifications, yet still delivers
61
- ** results of 1 mas accuracy at present epochs. This combination of
62
- ** accuracy and size makes the IAU 2000B abridged nutation model
63
- ** suitable for most practical applications.
64
- **
65
- ** The function delivers a pole accurate to 1 mas from 1900 to 2100
66
- ** (usually better than 1 mas, very occasionally just outside
67
- ** 1 mas). The full IAU 2000A model, which is implemented in the
68
- ** function iauNut00a (q.v.), delivers considerably greater accuracy
69
- ** at current dates; however, to realize this improved accuracy,
70
- ** corrections for the essentially unpredictable free-core-nutation
71
- ** (FCN) must also be included.
72
- **
73
- ** 5) The present function provides classical nutation. The
74
- ** MHB_2000_SHORT algorithm, from which it is adapted, deals also
75
- ** with (i) the offsets between the GCRS and mean poles and (ii) the
76
- ** adjustments in longitude and obliquity due to the changed
77
- ** precession rates. These additional functions, namely frame bias
78
- ** and precession adjustments, are supported by the SOFA functions
79
- ** iauBi00 and iauPr00.
80
- **
81
- ** 6) The MHB_2000_SHORT algorithm also provides "total" nutations,
82
- ** comprising the arithmetic sum of the frame bias, precession
83
- ** adjustments, and nutation (luni-solar + planetary). These total
84
- ** nutations can be used in combination with an existing IAU 1976
85
- ** precession implementation, such as iauPmat76, to deliver GCRS-
86
- ** to-true predictions of mas accuracy at current epochs. However,
87
- ** for symmetry with the iauNut00a function (q.v. for the reasons),
88
- ** the SOFA functions do not generate the "total nutations"
89
- ** directly. Should they be required, they could of course easily
90
- ** be generated by calling iauBi00, iauPr00 and the present function
91
- ** and adding the results.
92
- **
93
- ** 7) The IAU 2000B model includes "planetary bias" terms that are
94
- ** fixed in size but compensate for long-period nutations. The
95
- ** amplitudes quoted in McCarthy & Luzum (2003), namely
96
- ** Dpsi = -1.5835 mas and Depsilon = +1.6339 mas, are optimized for
97
- ** the "total nutations" method described in Note 6. The Luzum
98
- ** (2001) values used in this SOFA implementation, namely -0.135 mas
99
- ** and +0.388 mas, are optimized for the "rigorous" method, where
100
- ** frame bias, precession and nutation are applied separately and in
101
- ** that order. During the interval 1995-2050, the SOFA
102
- ** implementation delivers a maximum error of 1.001 mas (not
103
- ** including FCN).
104
- **
105
- ** References:
106
- **
107
- ** Lieske, J.H., Lederle, T., Fricke, W., Morando, B., "Expressions
108
- ** for the precession quantities based upon the IAU /1976/ system of
109
- ** astronomical constants", Astron.Astrophys. 58, 1-2, 1-16. (1977)
110
- **
111
- ** Luzum, B., private communication, 2001 (Fortran code
112
- ** MHB_2000_SHORT)
113
- **
114
- ** McCarthy, D.D. & Luzum, B.J., "An abridged model of the
115
- ** precession-nutation of the celestial pole", Cel.Mech.Dyn.Astron.
116
- ** 85, 37-49 (2003)
117
- **
118
- ** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
119
- ** Francou, G., Laskar, J., Astron.Astrophys. 282, 663-683 (1994)
120
- **
121
- ** This revision: 2010 September 4
122
- **
123
- ** Original version 2012-03-01
124
- **
125
- ** Copyright (C) 2013 Naoki Arita. See notes at end.
126
- */
127
- {
128
- double t, el, elp, f, d, om, arg, dp, de, sarg, carg,
129
- dpsils, depsls, dpsipl, depspl;
130
- int i;
131
-
132
- /* Units of 0.1 microarcsecond to radians */
133
- static const double U2R = DAS2R / 1e7;
134
-
135
- /* ---------------------------------------- */
136
- /* Fixed offsets in lieu of planetary terms */
137
- /* ---------------------------------------- */
138
-
139
- static const double DPPLAN = -0.135 * DMAS2R;
140
- static const double DEPLAN = 0.388 * DMAS2R;
141
-
142
- /* --------------------------------------------------- */
143
- /* Luni-solar nutation: argument and term coefficients */
144
- /* --------------------------------------------------- */
145
-
146
- /* The units for the sine and cosine coefficients are */
147
- /* 0.1 microarcsec and the same per Julian century */
148
-
149
- static const struct {
150
- int nl,nlp,nf,nd,nom; /* coefficients of l,l',F,D,Om */
151
- double ps,pst,pc; /* longitude sin, t*sin, cos coefficients */
152
- double ec,ect,es; /* obliquity cos, t*cos, sin coefficients */
153
-
154
- } x[] = {
155
-
156
- /* 1-10 */
157
- { 0, 0, 0, 0,1,
158
- -172064161.0, -174666.0, 33386.0, 92052331.0, 9086.0, 15377.0},
159
- { 0, 0, 2,-2,2,
160
- -13170906.0, -1675.0, -13696.0, 5730336.0, -3015.0, -4587.0},
161
- { 0, 0, 2, 0,2,-2276413.0,-234.0, 2796.0, 978459.0,-485.0,1374.0},
162
- { 0, 0, 0, 0,2,2074554.0, 207.0, -698.0,-897492.0, 470.0,-291.0},
163
- { 0, 1, 0, 0,0,1475877.0,-3633.0,11817.0, 73871.0,-184.0,-1924.0},
164
- { 0, 1, 2,-2,2,-516821.0, 1226.0, -524.0, 224386.0,-677.0,-174.0},
165
- { 1, 0, 0, 0,0, 711159.0, 73.0, -872.0, -6750.0, 0.0, 358.0},
166
- { 0, 0, 2, 0,1,-387298.0, -367.0, 380.0, 200728.0, 18.0, 318.0},
167
- { 1, 0, 2, 0,2,-301461.0, -36.0, 816.0, 129025.0, -63.0, 367.0},
168
- { 0,-1, 2,-2,2, 215829.0, -494.0, 111.0, -95929.0, 299.0, 132.0},
169
-
170
- /* 11-20 */
171
- { 0, 0, 2,-2,1, 128227.0, 137.0, 181.0, -68982.0, -9.0, 39.0},
172
- {-1, 0, 2, 0,2, 123457.0, 11.0, 19.0, -53311.0, 32.0, -4.0},
173
- {-1, 0, 0, 2,0, 156994.0, 10.0, -168.0, -1235.0, 0.0, 82.0},
174
- { 1, 0, 0, 0,1, 63110.0, 63.0, 27.0, -33228.0, 0.0, -9.0},
175
- {-1, 0, 0, 0,1, -57976.0, -63.0, -189.0, 31429.0, 0.0, -75.0},
176
- {-1, 0, 2, 2,2, -59641.0, -11.0, 149.0, 25543.0, -11.0, 66.0},
177
- { 1, 0, 2, 0,1, -51613.0, -42.0, 129.0, 26366.0, 0.0, 78.0},
178
- {-2, 0, 2, 0,1, 45893.0, 50.0, 31.0, -24236.0, -10.0, 20.0},
179
- { 0, 0, 0, 2,0, 63384.0, 11.0, -150.0, -1220.0, 0.0, 29.0},
180
- { 0, 0, 2, 2,2, -38571.0, -1.0, 158.0, 16452.0, -11.0, 68.0},
181
-
182
- /* 21-30 */
183
- { 0,-2, 2,-2,2, 32481.0, 0.0, 0.0, -13870.0, 0.0, 0.0},
184
- {-2, 0, 0, 2,0, -47722.0, 0.0, -18.0, 477.0, 0.0, -25.0},
185
- { 2, 0, 2, 0,2, -31046.0, -1.0, 131.0, 13238.0, -11.0, 59.0},
186
- { 1, 0, 2,-2,2, 28593.0, 0.0, -1.0, -12338.0, 10.0, -3.0},
187
- {-1, 0, 2, 0,1, 20441.0, 21.0, 10.0, -10758.0, 0.0, -3.0},
188
- { 2, 0, 0, 0,0, 29243.0, 0.0, -74.0, -609.0, 0.0, 13.0},
189
- { 0, 0, 2, 0,0, 25887.0, 0.0, -66.0, -550.0, 0.0, 11.0},
190
- { 0, 1, 0, 0,1, -14053.0, -25.0, 79.0, 8551.0, -2.0, -45.0},
191
- {-1, 0, 0, 2,1, 15164.0, 10.0, 11.0, -8001.0, 0.0, -1.0},
192
- { 0, 2, 2,-2,2, -15794.0, 72.0, -16.0, 6850.0, -42.0, -5.0},
193
-
194
- /* 31-40 */
195
- { 0, 0,-2, 2,0, 21783.0, 0.0, 13.0, -167.0, 0.0, 13.0},
196
- { 1, 0, 0,-2,1, -12873.0, -10.0, -37.0, 6953.0, 0.0, -14.0},
197
- { 0,-1, 0, 0,1, -12654.0, 11.0, 63.0, 6415.0, 0.0, 26.0},
198
- {-1, 0, 2, 2,1, -10204.0, 0.0, 25.0, 5222.0, 0.0, 15.0},
199
- { 0, 2, 0, 0,0, 16707.0, -85.0, -10.0, 168.0, -1.0, 10.0},
200
- { 1, 0, 2, 2,2, -7691.0, 0.0, 44.0, 3268.0, 0.0, 19.0},
201
- {-2, 0, 2, 0,0, -11024.0, 0.0, -14.0, 104.0, 0.0, 2.0},
202
- { 0, 1, 2, 0,2, 7566.0, -21.0, -11.0, -3250.0, 0.0, -5.0},
203
- { 0, 0, 2, 2,1, -6637.0, -11.0, 25.0, 3353.0, 0.0, 14.0},
204
- { 0,-1, 2, 0,2, -7141.0, 21.0, 8.0, 3070.0, 0.0, 4.0},
205
-
206
- /* 41-50 */
207
- { 0, 0, 0, 2,1, -6302.0, -11.0, 2.0, 3272.0, 0.0, 4.0},
208
- { 1, 0, 2,-2,1, 5800.0, 10.0, 2.0, -3045.0, 0.0, -1.0},
209
- { 2, 0, 2,-2,2, 6443.0, 0.0, -7.0, -2768.0, 0.0, -4.0},
210
- {-2, 0, 0, 2,1, -5774.0, -11.0, -15.0, 3041.0, 0.0, -5.0},
211
- { 2, 0, 2, 0,1, -5350.0, 0.0, 21.0, 2695.0, 0.0, 12.0},
212
- { 0,-1, 2,-2,1, -4752.0, -11.0, -3.0, 2719.0, 0.0, -3.0},
213
- { 0, 0, 0,-2,1, -4940.0, -11.0, -21.0, 2720.0, 0.0, -9.0},
214
- {-1,-1, 0, 2,0, 7350.0, 0.0, -8.0, -51.0, 0.0, 4.0},
215
- { 2, 0, 0,-2,1, 4065.0, 0.0, 6.0, -2206.0, 0.0, 1.0},
216
- { 1, 0, 0, 2,0, 6579.0, 0.0, -24.0, -199.0, 0.0, 2.0},
217
-
218
- /* 51-60 */
219
- { 0, 1, 2,-2,1, 3579.0, 0.0, 5.0, -1900.0, 0.0, 1.0},
220
- { 1,-1, 0, 0,0, 4725.0, 0.0, -6.0, -41.0, 0.0, 3.0},
221
- {-2, 0, 2, 0,2, -3075.0, 0.0, -2.0, 1313.0, 0.0, -1.0},
222
- { 3, 0, 2, 0,2, -2904.0, 0.0, 15.0, 1233.0, 0.0, 7.0},
223
- { 0,-1, 0, 2,0, 4348.0, 0.0, -10.0, -81.0, 0.0, 2.0},
224
- { 1,-1, 2, 0,2, -2878.0, 0.0, 8.0, 1232.0, 0.0, 4.0},
225
- { 0, 0, 0, 1,0, -4230.0, 0.0, 5.0, -20.0, 0.0, -2.0},
226
- {-1,-1, 2, 2,2, -2819.0, 0.0, 7.0, 1207.0, 0.0, 3.0},
227
- {-1, 0, 2, 0,0, -4056.0, 0.0, 5.0, 40.0, 0.0, -2.0},
228
- { 0,-1, 2, 2,2, -2647.0, 0.0, 11.0, 1129.0, 0.0, 5.0},
229
-
230
- /* 61-70 */
231
- {-2, 0, 0, 0,1, -2294.0, 0.0, -10.0, 1266.0, 0.0, -4.0},
232
- { 1, 1, 2, 0,2, 2481.0, 0.0, -7.0, -1062.0, 0.0, -3.0},
233
- { 2, 0, 0, 0,1, 2179.0, 0.0, -2.0, -1129.0, 0.0, -2.0},
234
- {-1, 1, 0, 1,0, 3276.0, 0.0, 1.0, -9.0, 0.0, 0.0},
235
- { 1, 1, 0, 0,0, -3389.0, 0.0, 5.0, 35.0, 0.0, -2.0},
236
- { 1, 0, 2, 0,0, 3339.0, 0.0, -13.0, -107.0, 0.0, 1.0},
237
- {-1, 0, 2,-2,1, -1987.0, 0.0, -6.0, 1073.0, 0.0, -2.0},
238
- { 1, 0, 0, 0,2, -1981.0, 0.0, 0.0, 854.0, 0.0, 0.0},
239
- {-1, 0, 0, 1,0, 4026.0, 0.0, -353.0, -553.0, 0.0,-139.0},
240
- { 0, 0, 2, 1,2, 1660.0, 0.0, -5.0, -710.0, 0.0, -2.0},
241
-
242
- /* 71-77 */
243
- {-1, 0, 2, 4,2, -1521.0, 0.0, 9.0, 647.0, 0.0, 4.0},
244
- {-1, 1, 0, 1,1, 1314.0, 0.0, 0.0, -700.0, 0.0, 0.0},
245
- { 0,-2, 2,-2,1, -1283.0, 0.0, 0.0, 672.0, 0.0, 0.0},
246
- { 1, 0, 2, 2,1, -1331.0, 0.0, 8.0, 663.0, 0.0, 4.0},
247
- {-2, 0, 2, 2,2, 1383.0, 0.0, -2.0, -594.0, 0.0, -2.0},
248
- {-1, 0, 0, 0,2, 1405.0, 0.0, 4.0, -610.0, 0.0, 2.0},
249
- { 1, 1, 2,-2,2, 1290.0, 0.0, 0.0, -556.0, 0.0, 0.0}
250
- };
251
-
252
- /* Number of terms in the series */
253
- const int NLS = (int) (sizeof x / sizeof x[0]);
254
-
255
- /*--------------------------------------------------------------------*/
256
-
257
- /* Interval between fundamental epoch J2000.0 and given date (JC). */
258
- t = ((date1 - DJ00) + date2) / DJC;
259
-
260
- /* --------------------*/
261
- /* LUNI-SOLAR NUTATION */
262
- /* --------------------*/
263
-
264
- /* Fundamental (Delaunay) arguments from Simon et al. (1994) */
265
-
266
- /* Mean anomaly of the Moon. */
267
- el = fmod(485868.249036 + (1717915923.2178) * t, TURNAS) * DAS2R;
268
-
269
- /* Mean anomaly of the Sun. */
270
- elp = fmod(1287104.79305 + (129596581.0481) * t, TURNAS) * DAS2R;
271
-
272
- /* Mean argument of the latitude of the Moon. */
273
- f = fmod(335779.526232 + (1739527262.8478) * t, TURNAS) * DAS2R;
274
-
275
- /* Mean elongation of the Moon from the Sun. */
276
- d = fmod(1072260.70369 + (1602961601.2090) * t, TURNAS) * DAS2R;
277
-
278
- /* Mean longitude of the ascending node of the Moon. */
279
- om = fmod(450160.398036 + (-6962890.5431) * t, TURNAS) * DAS2R;
280
-
281
- /* Initialize the nutation values. */
282
- dp = 0.0;
283
- de = 0.0;
284
-
285
- /* Summation of luni-solar nutation series (smallest terms first). */
286
- for (i = NLS-1; i >= 0; i--) {
287
-
288
- /* Argument and functions. */
289
- arg = fmod( (double)x[i].nl * el +
290
- (double)x[i].nlp * elp +
291
- (double)x[i].nf * f +
292
- (double)x[i].nd * d +
293
- (double)x[i].nom * om, D2PI );
294
- sarg = sin(arg);
295
- carg = cos(arg);
296
-
297
- /* Term. */
298
- dp += (x[i].ps + x[i].pst * t) * sarg + x[i].pc * carg;
299
- de += (x[i].ec + x[i].ect * t) * carg + x[i].es * sarg;
300
- }
301
-
302
- /* Convert from 0.1 microarcsec units to radians. */
303
- dpsils = dp * U2R;
304
- depsls = de * U2R;
305
-
306
- /* ------------------------------*/
307
- /* IN LIEU OF PLANETARY NUTATION */
308
- /* ------------------------------*/
309
-
310
- /* Fixed offset to correct for missing terms in truncated series. */
311
- dpsipl = DPPLAN;
312
- depspl = DEPLAN;
313
-
314
- /* --------*/
315
- /* RESULTS */
316
- /* --------*/
317
-
318
- /* Add luni-solar and planetary components. */
319
- *dpsi = dpsils + dpsipl;
320
- *deps = depsls + depspl;
321
-
322
- return;
323
-
324
- /*----------------------------------------------------------------------
325
- **
326
- ** Celes is a wrapper of the SOFA Library for Ruby.
327
- **
328
- ** This file is redistributed and relicensed in accordance with
329
- ** the SOFA Software License (http://www.iausofa.org/tandc.html).
330
- **
331
- ** The original library is available from IAU Standards of
332
- ** Fundamental Astronomy (http://www.iausofa.org/).
333
- **
334
- **
335
- **
336
- **
337
- **
338
- ** Copyright (C) 2013, Naoki Arita
339
- ** All rights reserved.
340
- **
341
- ** Redistribution and use in source and binary forms, with or without
342
- ** modification, are permitted provided that the following conditions
343
- ** are met:
344
- **
345
- ** 1 Redistributions of source code must retain the above copyright
346
- ** notice, this list of conditions and the following disclaimer.
347
- **
348
- ** 2 Redistributions in binary form must reproduce the above copyright
349
- ** notice, this list of conditions and the following disclaimer in
350
- ** the documentation and/or other materials provided with the
351
- ** distribution.
352
- **
353
- ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
354
- ** the International Astronomical Union nor the names of its
355
- ** contributors may be used to endorse or promote products derived
356
- ** from this software without specific prior written permission.
357
- **
358
- ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
359
- ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
360
- ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
361
- ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
362
- ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
363
- ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
364
- ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
365
- ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
366
- ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
367
- ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
368
- ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
369
- ** POSSIBILITY OF SUCH DAMAGE.
370
- **
371
- **--------------------------------------------------------------------*/
372
- }
@@ -1,153 +0,0 @@
1
- #include "sofam.h"
2
-
3
- void iauNut06a(double date1, double date2, double *dpsi, double *deps)
4
- /*
5
- ** - - - - - - - - - -
6
- ** i a u N u t 0 6 a
7
- ** - - - - - - - - - -
8
- **
9
- ** IAU 2000A nutation with adjustments to match the IAU 2006
10
- ** precession.
11
- **
12
- ** Given:
13
- ** date1,date2 double TT as a 2-part Julian Date (Note 1)
14
- **
15
- ** Returned:
16
- ** dpsi,deps double nutation, luni-solar + planetary (Note 2)
17
- **
18
- ** Status: canonical model.
19
- **
20
- ** Notes:
21
- **
22
- ** 1) The TT date date1+date2 is a Julian Date, apportioned in any
23
- ** convenient way between the two arguments. For example,
24
- ** JD(TT)=2450123.7 could be expressed in any of these ways,
25
- ** among others:
26
- **
27
- ** date1 date2
28
- **
29
- ** 2450123.7 0.0 (JD method)
30
- ** 2451545.0 -1421.3 (J2000 method)
31
- ** 2400000.5 50123.2 (MJD method)
32
- ** 2450123.5 0.2 (date & time method)
33
- **
34
- ** The JD method is the most natural and convenient to use in
35
- ** cases where the loss of several decimal digits of resolution
36
- ** is acceptable. The J2000 method is best matched to the way
37
- ** the argument is handled internally and will deliver the
38
- ** optimum resolution. The MJD method and the date & time methods
39
- ** are both good compromises between resolution and convenience.
40
- **
41
- ** 2) The nutation components in longitude and obliquity are in radians
42
- ** and with respect to the mean equinox and ecliptic of date,
43
- ** IAU 2006 precession model (Hilton et al. 2006, Capitaine et al.
44
- ** 2005).
45
- **
46
- ** 3) The function first computes the IAU 2000A nutation, then applies
47
- ** adjustments for (i) the consequences of the change in obliquity
48
- ** from the IAU 1980 ecliptic to the IAU 2006 ecliptic and (ii) the
49
- ** secular variation in the Earth's dynamical form factor J2.
50
- **
51
- ** 4) The present function provides classical nutation, complementing
52
- ** the IAU 2000 frame bias and IAU 2006 precession. It delivers a
53
- ** pole which is at current epochs accurate to a few tens of
54
- ** microarcseconds, apart from the free core nutation.
55
- **
56
- ** Called:
57
- ** iauNut00a nutation, IAU 2000A
58
- **
59
- ** References:
60
- **
61
- ** Chapront, J., Chapront-Touze, M. & Francou, G. 2002,
62
- ** Astron.Astrophys. 387, 700
63
- **
64
- ** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977,
65
- ** Astron.Astrophys. 58, 1-16
66
- **
67
- ** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res.
68
- ** 107, B4. The MHB_2000 code itself was obtained on 9th September
69
- ** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A.
70
- **
71
- ** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
72
- ** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
73
- **
74
- ** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999,
75
- ** Astron.Astrophys.Supp.Ser. 135, 111
76
- **
77
- ** Wallace, P.T., "Software for Implementing the IAU 2000
78
- ** Resolutions", in IERS Workshop 5.1 (2002)
79
- **
80
- ** This revision: 2011 April 3
81
- **
82
- ** Original version 2012-03-01
83
- **
84
- ** Copyright (C) 2013 Naoki Arita. See notes at end.
85
- */
86
- {
87
- double t, fj2, dp, de;
88
-
89
-
90
- /* Interval between fundamental date J2000.0 and given date (JC). */
91
- t = ((date1 - DJ00) + date2) / DJC;
92
-
93
- /* Factor correcting for secular variation of J2. */
94
- fj2 = -2.7774e-6 * t;
95
-
96
- /* Obtain IAU 2000A nutation. */
97
- iauNut00a(date1, date2, &dp, &de);
98
-
99
- /* Apply P03 adjustments (Wallace & Capitaine, 2006, Eqs.5). */
100
- *dpsi = dp + dp * (0.4697e-6 + fj2);
101
- *deps = de + de * fj2;
102
-
103
- return;
104
-
105
- /*----------------------------------------------------------------------
106
- **
107
- ** Celes is a wrapper of the SOFA Library for Ruby.
108
- **
109
- ** This file is redistributed and relicensed in accordance with
110
- ** the SOFA Software License (http://www.iausofa.org/tandc.html).
111
- **
112
- ** The original library is available from IAU Standards of
113
- ** Fundamental Astronomy (http://www.iausofa.org/).
114
- **
115
- **
116
- **
117
- **
118
- **
119
- ** Copyright (C) 2013, Naoki Arita
120
- ** All rights reserved.
121
- **
122
- ** Redistribution and use in source and binary forms, with or without
123
- ** modification, are permitted provided that the following conditions
124
- ** are met:
125
- **
126
- ** 1 Redistributions of source code must retain the above copyright
127
- ** notice, this list of conditions and the following disclaimer.
128
- **
129
- ** 2 Redistributions in binary form must reproduce the above copyright
130
- ** notice, this list of conditions and the following disclaimer in
131
- ** the documentation and/or other materials provided with the
132
- ** distribution.
133
- **
134
- ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
135
- ** the International Astronomical Union nor the names of its
136
- ** contributors may be used to endorse or promote products derived
137
- ** from this software without specific prior written permission.
138
- **
139
- ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
140
- ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
141
- ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
142
- ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
143
- ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
144
- ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
145
- ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
146
- ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
147
- ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
148
- ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
149
- ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
150
- ** POSSIBILITY OF SUCH DAMAGE.
151
- **
152
- **--------------------------------------------------------------------*/
153
- }