26 #include <QtCore/QFile>
27 #include <QtCore/QStringList>
28 #include <QtCore/QTextStream>
42 void calcUT1ZT (
const double[5],
double&);
99 ", is undocumented. Removing of zonal tides from UT1 is impossible");
125 (*fundArgs)(t, fArgs);
128 (*calcUT1_UTC)(fArgs, dUt);
155 args[0] = args[1] = args[2] = args[3] = args[4] = 0.0;
180 const double seccon(206264.8062470964);
181 const double sec360(1296000.0);
182 double el, elp, f, d, om;
183 double cent((t -
tEphem)/36525.0);
185 el = (( 0.064*cent + 31.310)*cent + 715922.633)*cent + 485866.733 +
186 fmod(1325.0*cent, 1.0)*1296000.0;
187 args[0] = fmod(el, sec360);
189 elp = ((-0.012*cent - 0.577)*cent + 1292581.224)*cent + 1287099.804 +
190 fmod( 99.0*cent, 1.0)*1296000.0;
191 args[1] = fmod(elp, sec360);
193 f = (( 0.011*cent - 13.257)*cent + 295263.137)*cent + 335778.877 +
194 fmod(1342.0*cent, 1.0)*1296000.0;
195 args[2] = fmod(f, sec360);
197 d = (( 0.019*cent - 6.891)*cent + 1105601.328)*cent + 1072261.307 +
198 fmod(1236.0*cent, 1.0)*1296000.0;
199 args[3] = fmod(d, sec360);
201 om = (( 0.008*cent + 7.455)*cent - 482890.539)*cent + 450160.280 -
202 fmod( 5.0*cent, 1.0)*1296000.0;
203 args[4] = fmod(om, sec360);
205 for (
int i=0; i<5; i++)
221 const double elc [5] = { 0.064, 31.310, 715922.633, 485866.733, 1325.0};
222 const double elpc[5] = {-0.012, -0.577, 1292581.224, 1287099.804, 99.0};
223 const double fc [5] = { 0.011,-13.257, 295263.137, 335778.877, 1342.0};
224 const double dc [5] = { 0.019, -6.891, 1105601.328, 1072261.307, 1236.0};
225 const double omc [5] = { 0.008, 7.455, -482890.539, 450160.280, -5.0};
226 const double sec360(1296000.0);
227 const double convds(4.8481368110953599E-06);
228 double cent((t -
tEphem)/36525.0);
230 double el, elp, f, d, om;
234 el = elc [0]*cent3 + elc [1]*cent2 + elc [2]*cent + elc [3] + fmod(elc [4]*cent, 1.0)*sec360;
235 args[0] = fmod(el, sec360);
237 elp = elpc[0]*cent3 + elpc[1]*cent2 + elpc[2]*cent + elpc[3] + fmod(elpc[4]*cent, 1.0)*sec360;
238 args[1] = fmod(elp, sec360);
240 f = fc [0]*cent3 + fc [1]*cent2 + fc [2]*cent + fc [3] + fmod(fc [4]*cent, 1.0)*sec360;
241 args[2] = fmod(f, sec360);
243 d = dc [0]*cent3 + dc [1]*cent2 + dc [2]*cent + dc [3] + fmod(dc [4]*cent, 1.0)*sec360;
244 args[3] = fmod(d, sec360);
246 om = omc [0]*cent3 + omc [1]*cent2 + omc [2]*cent + omc [3] + fmod(omc [4]*cent, 1.0)*sec360;
247 args[4] = fmod(om, sec360);
249 for (
int i=0; i<5; i++)
273 const double elc [5] = {-0.00024470, 0.051635, 31.8792, 1717915923.2178, 485868.249036};
274 const double elpc[5] = {-0.00001149, -0.000136, -0.5532, 129596581.0481, 1287104.79305};
275 const double fc [5] = { 0.00000417, -0.001037, -12.7512, 1739527262.8478, 335779.526232};
276 const double dc [5] = {-0.00003169, 0.006593, -6.3706, 1602961601.2090, 1072260.70369};
277 const double omc [5] = {-0.00005939, 0.007702, 7.4722, -6962890.2665, 450160.398036};
278 const double sec360(1296000.0);
279 const double convds(4.8481368110953599E-06);
280 double cent((t -
tEphem)/36525.0);
281 double cent2, cent3, cent4;
282 double el, elp, f, d, om;
287 el = elc [0]*cent4 + elc [1]*cent3 + elc [2]*cent2 + elc [3]*cent + elc[4];
288 args[0] = fmod(el, sec360);
290 elp = elpc[0]*cent4 + elpc[1]*cent3 + elpc[2]*cent2 + elpc[3]*cent + elpc[4];
291 args[1] = fmod(elp, sec360);
293 f = fc [0]*cent4 + fc [1]*cent3 + fc [2]*cent2 + fc [3]*cent + fc[3];
294 args[2] = fmod(f, sec360);
296 d = dc [0]*cent4 + dc [1]*cent3 + dc [2]*cent2 + dc [3]*cent + dc[4];
297 args[3] = fmod(d, sec360);
299 om = omc [0]*cent4 + omc [1]*cent3 + omc [2]*cent2 + omc [3]*cent + omc[4];
300 args[4] = fmod(om, sec360);
302 for (
int i=0; i<5; i++)
318 const double elc2 [5] = {-0.00024470, 0.051635, 31.8792, 1717915923.2178, 485868.249036};
319 const double elpc2[5] = {-0.00001149, 0.000136, -0.5532, 129596581.0481, 1287104.793048};
320 const double fc2 [5] = { 0.00000417,-0.001037,-12.7512, 1739527262.8478, 335779.526232};
321 const double dc2 [5] = {-0.00003169, 0.006593, -6.3706, 1602961601.2090, 1072260.703692};
322 const double omc2 [5] = {-0.00005939, 0.007702, 7.4722, -6962890.5431, 450160.398036};
323 const double sec360(1296000.0);
324 const double convds(4.8481368110953599E-06);
325 double cent((t -
tEphem)/36525.0);
326 double cent2, cent3, cent4;
327 double el, elp, f, d, om;
332 el = elc2[0]*cent4 + elc2[1]*cent3 + elc2[2]*cent2 + elc2[3]*cent + elc2[4];
333 args[0] = fmod(el, sec360);
335 elp = elpc2[0]*cent4 + elpc2[1]*cent3 + elpc2[2]*cent2 + elpc2[3]*cent + elpc2[4];
336 args[1] = fmod(elp, sec360);
338 f = fc2[0]*cent4 + fc2[1]*cent3 + fc2[2]*cent2 + fc2[3]*cent + fc2[3];
339 args[2] = fmod(f, sec360);
341 d = dc2[0]*cent4 + dc2[1]*cent3 + dc2[2]*cent2 + dc2[3]*cent + dc2[4];
342 args[3] = fmod(d, sec360);
344 om = omc2[0]*cent4 + omc2[1]*cent3 + omc2[2]*cent2 + omc2[3]*cent + omc2[4];
345 args[4] = fmod(om, sec360);
347 for (
int i=0; i<5; i++)
391 arg = fmod(arg, M_PI*2.0);
416 double arg, sinArg, cosArg;
421 for (
int j=0; j<5; j++)
423 arg = fmod(arg, M_PI*2.0);
424 sincos(arg, &sinArg, &cosArg);
456 double arg, sinArg, cosArg;
461 for (
int j=0; j<5; j++)
463 arg = fmod(arg, M_PI*2.0);
464 sincos(arg, &sinArg, &cosArg);
482 double arg, sinArg, cosArg;
487 for (
int j=0; j<5; j++)
489 arg = fmod(arg, M_PI*2.0);
490 sincos(arg, &sinArg, &cosArg);
const SgMJD tEphem(51544.5)
void fundArgs_NUTFA(const SgMJD &, double[5])
void calcUT1S2K(const double[5], double &)
void fundArgs_NUTF96(const SgMJD &, double[5])
void calcUT1S_83(const double[5], double &)
void calcUT1ZT(const double[5], double &)
void calcUT1S_82(const double[5], double &)
void fundArgs_NUTFA10(const SgMJD &, double[5])
void calcUT1stub(const double[5], double &)
void fundArgs_UT1ZT(const SgMJD &, double[5])
void fundArgs_stub(const SgMJD &, double[5])
const int numOfRecs_Ut1s83
const int numOfRecs_Ut1s82
const int numOfRecs_Ut1s2k
const SgUt1TidalTableEntry_Standard ut1Ttable_Ut1s82[]
const SgUt1TidalTableEntry_Clipped ut1Ttable_Ut1s83[]
const SgUt1TidalTableEntry_Simplified ut1Ttable_Ut1cm[]
const SgUt1TidalTableEntry_Standard ut1Ttable_Ut1s2k[]
const int numOfRecs_Ut1cm
virtual void write(LogLevel, quint32, const QString &, bool=false)
UT1TideContentType tideContent_
SgTidalUt1(UT1TideContentType, double)
double calc(const SgMJD &)
void(* fundArgs)(const SgMJD &, double[5])
static const QString className()
void(* calcUT1_UTC)(const double[5], double &)