LAL  7.5.0.1-08ee4f4
XLALLeapSeconds.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2007 Bernd Machenschalk, Jolien Creighton
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with with program; see the file COPYING. If not, write to the
16 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17 * MA 02110-1301 USA
18 */
19 
20 #ifndef XLALLEAPSECONDS_H
21 #define XLALLEAPSECONDS_H
22 
23 #include <lal/LALAtomicDatatypes.h>
24 
25 /*
26  * Leap seconds table
27  *
28  * JD and GPS time of leap seconds and the value of TAI-UTC.
29  *
30  * reference: http://maia.usno.navy.mil/
31  * http://maia.usno.navy.mil/ser7/tai-utc.dat
32  *
33  * notes: the table below must be updated whenever a leap second is added
34  * Use the program XLALAddLeapSecond to construct a new table.
35  */
36 
37 static const struct leaps_table { REAL8 jd; INT4 gpssec; int taiutc; } leaps[] =
38 {
39  {2444239.5, -43200, 19}, /* 1980-Jan-01 */
40  {2444786.5, 46828800, 20}, /* 1981-Jul-01 */
41  {2445151.5, 78364801, 21}, /* 1982-Jul-01 */
42  {2445516.5, 109900802, 22}, /* 1983-Jul-01 */
43  {2446247.5, 173059203, 23}, /* 1985-Jul-01 */
44 #if 0
45  /* NOTE: IF THIS WERE A NEGATIVE LEAP SECOND, INSERT AS FOLLOWS */
46  {2447161.5, 252028803, 22}, /* 1988-Jan-01 EXAMPLE ONLY! */
47 #endif
48  {2447161.5, 252028804, 24}, /* 1988-Jan-01 */
49  {2447892.5, 315187205, 25}, /* 1990-Jan-01 */
50  {2448257.5, 346723206, 26}, /* 1991-Jan-01 */
51  {2448804.5, 393984007, 27}, /* 1992-Jul-01 */
52  {2449169.5, 425520008, 28}, /* 1993-Jul-01 */
53  {2449534.5, 457056009, 29}, /* 1994-Jul-01 */
54  {2450083.5, 504489610, 30}, /* 1996-Jan-01 */
55  {2450630.5, 551750411, 31}, /* 1997-Jul-01 */
56  {2451179.5, 599184012, 32}, /* 1999-Jan-01 */
57  {2453736.5, 820108813, 33}, /* 2006-Jan-01 */
58  {2454832.5, 914803214, 34}, /* 2009-Jan-01 */
59  {2456109.5, 1025136015, 35}, /* 2012-Jul-01 */
60  {2457204.5, 1119744016, 36}, /* 2015-Jul-01 */
61  {2457754.5, 1167264017, 37}, /* 2017-Jan-01 */
62 };
63 static const int numleaps = sizeof( leaps ) / sizeof( *leaps );
64 
65 #endif /* XLALLEAPSECONDS_H */
static const struct leaps_table leaps[]
static const int numleaps
double REAL8
Double precision real floating-point number (8 bytes).
int32_t INT4
Four-byte signed integer.