1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
use utctai;
/// Time scale transformation: International Atomic Time, TAI, to
/// Coordinated Universal Time, UTC.
///
/// This function is part of the International Astronomical Union's
/// SOFA (Standards of Fundamental Astronomy) software collection.
///
/// Status: canonical.
///
/// Given:
/// tai1,tai2 double TAI as a 2-part Julian Date (Note 1)
///
/// Returned:
/// utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-3)
///
/// Returned (function value):
/// int status: +1 = dubious year (Note 4)
/// 0 = OK
/// -1 = unacceptable date
///
/// Notes:
///
/// 1) tai1+tai2 is Julian Date, apportioned in any convenient way
/// between the two arguments, for example where tai1 is the Julian
/// Day Number and tai2 is the fraction of a day. The returned utc1
/// and utc2 form an analogous pair, except that a special convention
/// is used, to deal with the problem of leap seconds - see the next
/// note.
///
/// 2) JD cannot unambiguously represent UTC during a leap second unless
/// special measures are taken. The convention in the present
/// function is that the JD day represents UTC days whether the
/// length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era
/// there were smaller jumps (in either direction) each time the
/// linear UTC(TAI) expression was changed, and these "mini-leaps"
/// are also included in the SOFA convention.
///
/// 3) The function iauD2dtf can be used to transform the UTC quasi-JD
/// into calendar date and clock time, including UTC leap second
/// handling.
///
/// 4) The warning status "dubious year" flags UTCs that predate the
/// introduction of the time scale or that are too far in the future
/// to be trusted. See iauDat for further details.
///
/// Called:
/// iauUtctai UTC to TAI
///