167 std::vector<real> obamp = {-2462.2214466, -857.3232075, -629.3231835,
168 -414.2804924, -311.7632587, 308.9408604,
169 -162.5533601, -116.1077911, 101.1189923,
170 -67.6856209, 24.9079067, 22.5811241,
171 -21.1648355, -15.6549876, 15.3936813,
172 14.6660938, -11.7273029, 10.2742696,
173 6.4914588, 5.8539148, -5.4872205,
174 -5.4290191, 5.1609570, 5.0786314,
175 -4.0735782, 3.7227167, 3.3971932,
176 -2.8347004, -2.6550721, -2.5717867,
177 -2.4712188, 2.4625410, 2.2464112,
178 -2.0755511, -1.9713669, -1.8813061,
179 -1.8468785, 1.8186742, 1.7601888,
180 -1.5428851, 1.4738838, -1.4593669,
181 1.4192259, -1.1818980, 1.1756474,
182 -1.1316126, 1.0896928};
184 std::vector<real> obrate = {31.609974, 32.620504, 24.172203,
185 31.983787, 44.828336, 30.973257,
186 43.668246, 32.246691, 30.599444,
187 42.681324, 43.836462, 47.439436,
188 63.219948, 64.230478, 1.010530,
189 7.437771, 55.782177, 0.373813,
190 13.218362, 62.583231, 63.593761,
191 76.438310, 45.815258, 8.448301,
192 56.792707, 49.747842, 12.058272,
193 75.278220, 65.241008, 64.604291,
194 1.647247, 7.811584, 12.207832,
195 63.856665, 56.155990, 77.448840,
196 6.801054, 62.209418, 20.656133,
197 48.344406, 55.145460, 69.000539,
198 11.071350, 74.291298, 11.047742,
199 0.636717, 12.844549};
202 std::vector<real> obphas = {251.9025, 280.8325, 128.3057,
203 292.7252, 15.3747, 263.7951,
204 308.4258, 240.0099, 222.9725,
205 268.7809, 316.7998, 319.6024,
206 143.8050, 172.7351, 28.9300,
207 123.5968, 20.2082, 40.8226,
208 123.4722, 155.6977, 184.6277,
209 267.2772, 55.0196, 152.5268,
210 49.1382, 204.6609, 56.5233,
211 200.3284, 201.6651, 213.5577,
212 17.0374, 164.4194, 94.5422,
213 131.9124, 61.0309, 296.2073,
214 135.4894, 114.8750, 247.0691,
215 256.6114, 32.1008, 143.6804,
216 16.8784, 160.6835, 27.5932,
224 std::vector<real> ecamp = { 0.01860798, 0.01627522, -0.01300660,
225 0.00988829, -0.00336700, 0.00333077,
226 -0.00235400, 0.00140015, 0.00100700,
227 0.00085700, 0.00064990, 0.00059900,
228 0.00037800, -0.00033700, 0.00027600,
229 0.00018200, -0.00017400, -0.00012400,
233 std::vector<real> ecrate = { 4.2072050, 7.3460910, 17.8572630,
234 17.2205460, 16.8467330, 5.1990790,
235 18.2310760, 26.2167580, 6.3591690,
236 16.2100160, 3.0651810, 16.5838290,
237 18.4939800, 6.1909530, 18.8677930,
238 17.4255670, 6.1860010, 18.4174410,
242 std::vector<real> ecphas = { 28.620089, 193.788772, 308.307024,
243 320.199637, 279.376984, 87.195000,
244 349.129677, 128.443387, 154.143880,
245 291.269597, 114.860583, 332.092251,
246 296.414411, 145.769910, 337.237063,
247 152.092288, 126.839891, 210.667199,
254 std::vector<real> mvamp = { 7391.0225890, 2555.1526947, 2022.7629188,
255 -1973.6517951, 1240.2321818, 953.8679112,
256 -931.7537108, 872.3795383, 606.3544732,
257 -496.0274038, 456.9608039, 346.9462320,
258 -305.8412902, 249.6173246, -199.1027200,
259 191.0560889, -175.2936572, 165.9068833,
260 161.1285917, 139.7878093, -133.5228399,
261 117.0673811, 104.6907281, 95.3227476,
262 86.7824524, 86.0857729, 70.5893698,
263 -69.9719343, -62.5817473, 61.5450059,
264 -57.9364011, 57.1899832, -57.0236109,
265 -54.2119253, 53.2834147, 52.1223575,
266 -49.0059908, -48.3118757, -45.4191685,
267 -42.2357920, -34.7971099, 34.4623613,
268 -33.8356643, 33.6689362, -31.2521586,
269 -30.8798701, 28.4640769, -27.1960802,
270 27.0860736, -26.3437456, 24.7253740,
271 24.6732126, 24.4272733, 24.0127327,
272 21.7150294, -21.5375347, 18.1148363,
273 -16.9603104, -16.1765215, 15.5567653,
274 15.4846529, 15.2150632, 14.5047426,
275 -14.3873316, 13.1351419, 12.8776311,
276 11.9867234, 11.9385578, 11.7030822,
277 11.6018181, -11.2617293, -10.4664199,
278 10.4333970, -10.2377466, 10.1934446,
279 -10.1280191, 10.0289441, -10.0034259};
282 std::vector<real> mvrate = {31.609974, 32.620504, 24.172203,
283 0.636717, 31.983787, 3.138886,
284 30.973257, 44.828336, 0.991874,
285 0.373813, 43.668246, 32.246691,
286 30.599444, 2.147012, 10.511172,
287 42.681324, 13.650058, 0.986922,
288 9.874455, 13.013341, 0.262904,
289 0.004952, 1.142024, 63.219948,
290 0.205021, 2.151964, 64.230478,
291 43.836462, 47.439436, 1.384343,
292 7.437771, 18.829299, 9.500642,
293 0.431696, 1.160090, 55.782177,
294 12.639528, 1.155138, 0.168216,
295 1.647247, 10.884985, 5.610937,
296 12.658184, 1.010530, 1.983748,
297 14.023871, 0.560178, 1.273434,
298 12.021467, 62.583231, 63.593761,
299 76.438310, 4.280910, 13.218362,
300 17.818769, 8.359495, 56.792707,
301 8.448301, 1.978796, 8.863925,
302 0.186365, 8.996212, 6.771027,
303 45.815258, 12.002811, 75.278220,
304 65.241008, 18.870667, 22.009553,
305 64.604291, 11.498094, 0.578834,
306 9.237738, 49.747842, 2.147012,
307 1.196895, 2.133898, 0.173168};
310 std::vector<real> mvphas = {251.9025, 280.8325, 128.3057,
311 348.1074, 292.7252, 165.1686,
312 263.7951, 15.3747, 58.5749,
313 40.8226, 308.4258, 240.0099,
314 222.9725, 106.5937, 114.5182,
315 268.7809, 279.6869, 39.6448,
316 126.4108, 291.5795, 307.2848,
317 18.9300, 273.7596, 143.8050,
318 191.8927, 125.5237, 172.7351,
319 316.7998, 319.6024, 69.7526,
320 123.5968, 217.6432, 85.5882,
321 156.2147, 66.9489, 20.2082,
322 250.7568, 48.0188, 8.3739,
323 17.0374, 155.3409, 94.1709,
324 221.1120, 28.9300, 117.1498,
325 320.5095, 262.3602, 336.2148,
326 233.0046, 155.6977, 184.6277,
327 267.2772, 78.9281, 123.4722,
328 188.7132, 180.1364, 49.1382,
329 152.5268, 98.2198, 97.4808,
330 221.5376, 168.2438, 161.1199,
331 55.0196, 262.6495, 200.3284,
332 201.6651, 294.6547, 99.8233,
333 213.5577, 154.1631, 232.7153,
334 138.3034, 204.6609, 106.5938,
335 250.4676, 332.3345, 27.3039};
356 eccen2 = eccen*eccen;
357 eccen3 = eccen2*eccen;
386 yb4_1950AD =
real(1950.0) -
real(iyear_AD);
387 years = - yb4_1950AD;
401 for (
int i(0); i<poblen; ++i) {
402 obsum = obsum + obamp[i]*psecdeg*std::cos( (obrate[i]*psecdeg*years + obphas[i]) * degrad );
404 obliq =
real(23.320556) + obsum;
415 for (
int i(0); i<pecclen; ++i) {
416 cossum = cossum + ecamp[i]*std::cos( (ecrate[i]*psecdeg*years+ecphas[i]) * degrad );
420 for (
int i(0); i<pecclen; ++i) {
421 sinsum = sinsum + ecamp[i]*std::sin( (ecrate[i]*psecdeg*years+ecphas[i]) * degrad );
426 eccen2 = cossum*cossum + sinsum*sinsum;
427 eccen = std::sqrt(eccen2);
428 eccen3 = eccen2*eccen;
431 if (std::fabs(cossum) <= 1.0e-8) {
434 }
else if (sinsum <= 0.0) {
436 }
else if (sinsum > 0.0) {
439 }
else if (cossum <= 0.0) {
440 fvelp = std::atan(sinsum/cossum) +
PI;
443 fvelp = std::atan(sinsum/cossum) + 2.0*
PI;
445 fvelp = std::atan(sinsum/cossum);
460 for (
int i(0); i<pmvelen; ++i) {
461 mvsum = mvsum + mvamp[i]*psecdeg*std::sin( (mvrate[i]*psecdeg*years + mvphas[i]) * degrad);
463 mvelp = fvelp/degrad +
real(50.439273)*psecdeg*years +
real(3.392506) + mvsum;
468 }
while (mvelp < 0.0);
472 }
while (mvelp >= 360.0);
478 obliqr = obliq*degrad;
492 mvelpp = (mvelp + 180.0)*degrad;
496 beta = std::sqrt(1.0 - eccen2);
505 lambm0 = 2.0*( (.5*eccen + .125*eccen3)*(1.0 + beta)*std::sin(mvelpp)
506 - .250*eccen2*(.5 + beta)*std::sin(2.0*mvelpp)
507 + .125*eccen3*(1./3. + beta)*std::sin(3.0*mvelpp) );
static constexpr int ORB_UNDEF_INT
Definition: ERF_Constants.H:96