1 | intro.lis 2015 January 29
|
---|
2 |
|
---|
3 |
|
---|
4 | -------------------------------
|
---|
5 | THE IAU-SOFA SOFTWARE LIBRARIES
|
---|
6 | -------------------------------
|
---|
7 |
|
---|
8 |
|
---|
9 | SOFA stands for "Standards Of Fundamental Astronomy". The SOFA
|
---|
10 | software libraries are a collection of subprograms, in source-
|
---|
11 | code form, which implement official IAU algorithms for fundamental-
|
---|
12 | astronomy computations. The subprograms at present comprise 166
|
---|
13 | "astronomy" routines supported by 55 "vector/matrix" routines,
|
---|
14 | available in both Fortran77 and C implementations.
|
---|
15 |
|
---|
16 |
|
---|
17 | THE SOFA INITIATIVE
|
---|
18 |
|
---|
19 | SOFA is an IAU Service which operates as a Standing Working Group under
|
---|
20 | Division A (Fundamental Astronomy).
|
---|
21 |
|
---|
22 | The IAU set up the SOFA initiative at the 1994 General Assembly, to
|
---|
23 | promulgate an authoritative set of fundamental-astronomy constants and
|
---|
24 | algorithms. At the subsequent General Assembly, in 1997, the
|
---|
25 | appointment of a review board and the selection of a site for the SOFA
|
---|
26 | Center (the outlet for SOFA products) were announced.
|
---|
27 |
|
---|
28 | The SOFA initiative was originally proposed by the IAU Working Group on
|
---|
29 | Astronomical Standards (WGAS), under the chairmanship of
|
---|
30 | Toshio Fukushima. The proposal was for "...new arrangements to
|
---|
31 | establish and maintain an accessible and authoritative set of constants,
|
---|
32 | algorithms and procedures that implement standard models used in
|
---|
33 | fundamental astronomy". The SOFA Software Libraries implement the
|
---|
34 | "algorithms" part of the SOFA initiative. They were developed under the
|
---|
35 | supervision of an international panel called the SOFA Board. The
|
---|
36 | current membership of this panel is listed in an appendix.
|
---|
37 |
|
---|
38 | A feature of the original SOFA software proposals was that the products
|
---|
39 | would be self-contained and not depend on other software. This includes
|
---|
40 | basic documentation, which, like the present file, will mostly be plain
|
---|
41 | ASCII text. It should also be noted that there is no assumption that
|
---|
42 | the software will be used on a particular computer and Operating System.
|
---|
43 | Although OS-related facilities may be present (Unix make files for
|
---|
44 | instance, use by the SOFA Center of automatic code management systems,
|
---|
45 | HTML versions of some documentation), the routines themselves will be
|
---|
46 | visible as individual text files and will run on a variety of platforms.
|
---|
47 |
|
---|
48 |
|
---|
49 | ALGORITHMS
|
---|
50 |
|
---|
51 | The SOFA Board's initial goal has been to create a set of callable
|
---|
52 | subprograms. Whether "subroutines" or "functions", they are all
|
---|
53 | referred to simply as "routines". They are designed for use by software
|
---|
54 | developers wishing to write complete applications; no runnable, free-
|
---|
55 | standing applications are included in SOFA's present plans.
|
---|
56 |
|
---|
57 | The algorithms are drawn from a variety of sources. Because most of the
|
---|
58 | routines so far developed have either been standard "text-book"
|
---|
59 | operations or implement well-documented standard algorithms, it has not
|
---|
60 | been necessary to invite the whole community to submit algorithms,
|
---|
61 | though consultation with authorities has occurred where necessary. It
|
---|
62 | should also be noted that consistency with the conventions published by
|
---|
63 | the International Earth Rotation Service was a stipulation in the
|
---|
64 | original SOFA proposals, further constraining the software designs.
|
---|
65 | This state of affairs will continue to exist for some time, as there is
|
---|
66 | a large backlog of agreed extensions to work on. However, in the future
|
---|
67 | the Board may decide to call for proposals, and is in the meantime
|
---|
68 | willing to look into any suggestions that are received by the SOFA
|
---|
69 | Center.
|
---|
70 |
|
---|
71 |
|
---|
72 | SCOPE
|
---|
73 |
|
---|
74 | The routines currently available are listed in the next two chapters of
|
---|
75 | this document.
|
---|
76 |
|
---|
77 | The "astronomy" library comprises 164 routines (plus one obsolete
|
---|
78 | Fortran routine that now appears under a revised name). The areas
|
---|
79 | addressed include calendars, astrometry, time scales, Earth rotation,
|
---|
80 | ephemerides, precession-nutation, star catalog transformations,
|
---|
81 | and geodetic/geocentric transformations.
|
---|
82 |
|
---|
83 | The "vector-matrix" library, comprising 55 routines, contains a
|
---|
84 | collection of simple tools for manipulating the vectors, matrices and
|
---|
85 | angles used by the astronomy routines.
|
---|
86 |
|
---|
87 | There is no explicit commitment by SOFA to support historical models,
|
---|
88 | though as time goes on a legacy of superseded models will naturally
|
---|
89 | accumulate. There is, for example, no support of B1950/FK4 star
|
---|
90 | coordinates, or pre-1976 precession models, though these capabilities
|
---|
91 | could be added were there significant demand.
|
---|
92 |
|
---|
93 | Though the SOFA software libraries are rather limited in scope, and are
|
---|
94 | likely to remain so for a considerable time, they do offer distinct
|
---|
95 | advantages to prospective users. In particular, the routines are:
|
---|
96 |
|
---|
97 | * authoritative: they are IAU-backed and have been constructed with
|
---|
98 | great care;
|
---|
99 |
|
---|
100 | * practical: they are straightforward to use in spite of being
|
---|
101 | precise and rigorous (to some stated degree);
|
---|
102 |
|
---|
103 | * accessible and supported: they are downloadable from an easy-to-
|
---|
104 | find place, they are in an integrated and consistent form, they
|
---|
105 | come with adequate internal documentation, and help for users is
|
---|
106 | available.
|
---|
107 |
|
---|
108 |
|
---|
109 | VERSIONS
|
---|
110 |
|
---|
111 | Once it has been published, an issue is never revised or updated, and
|
---|
112 | remains accessible indefinitely. Subsequent issues may, however,
|
---|
113 | include corrected versions under the original routine name and
|
---|
114 | filenames. However, where a different model is introduced, it will have
|
---|
115 | a different name.
|
---|
116 |
|
---|
117 | The issues will be referred to by the date when they were announced.
|
---|
118 | The frequency of re-issue will be decided by the Board, taking into
|
---|
119 | account the importance of the changes and the impact on the user
|
---|
120 | community.
|
---|
121 |
|
---|
122 |
|
---|
123 | DOCUMENTATION
|
---|
124 |
|
---|
125 | At present there is little free-standing documentation about individual
|
---|
126 | routines. However, each routine has preamble comments which specify in
|
---|
127 | detail what the routine does and how it is used.
|
---|
128 |
|
---|
129 | The file sofa_pn.pdf describes the SOFA tools for precession-nutation
|
---|
130 | and other aspects of Earth attitude and includes example code and (see
|
---|
131 | the appendix) diagrams showing the interrelationships between the
|
---|
132 | routines supporting the latest (IAU 2006/2000A) models. Four other
|
---|
133 | documents introduce time scale transformations (sofa_ts_f.pdf and
|
---|
134 | sofa_ts_c.pdf for Fortran and C users respectively) and astrometric
|
---|
135 | transformations (sofa_ast_f.pdf and sofa_ast_c.pdf).
|
---|
136 |
|
---|
137 |
|
---|
138 | PROGRAMMING LANGUAGES AND STANDARDS
|
---|
139 |
|
---|
140 | The SOFA routines are available in two programming languages at present:
|
---|
141 | Fortran77 and ANSI C. Related software in other languages is under
|
---|
142 | consideration.
|
---|
143 |
|
---|
144 | The Fortran code conforms to ANSI X3.9-1978 in all but two minor
|
---|
145 | respects: each has an IMPLICIT NONE declaration, and its name has a
|
---|
146 | prefix of "iau_" and may be longer than 6 characters. A global edit to
|
---|
147 | erase both of these will produce ANSI-compliant code with no change in
|
---|
148 | its function.
|
---|
149 |
|
---|
150 | Coding style, and restrictions on the range of language features, have
|
---|
151 | been much debated by the Board, and the results comply with the majority
|
---|
152 | view. There is (at present) no document that defines the standards, but
|
---|
153 | the code itself offers a wide range of examples of what is acceptable.
|
---|
154 |
|
---|
155 | The Fortran routines contain explicit numerical constants (the INCLUDE
|
---|
156 | statement is not part of ANSI Fortran77). These are drawn from the
|
---|
157 | file consts.lis, which is listed in an appendix. Constants for the
|
---|
158 | SOFA/C functions are defined in a header file sofam.h.
|
---|
159 |
|
---|
160 | The naming convention is such that a SOFA routine referred to
|
---|
161 | generically as "EXAMPL" exists as a Fortran subprogram iau_EXAMPL and a
|
---|
162 | C function iauExampl. The calls for the two versions are very similar,
|
---|
163 | with the same arguments in the same order. In a few cases, the C
|
---|
164 | equivalent of a Fortran SUBROUTINE subprogram uses a return value rather
|
---|
165 | than an argument.
|
---|
166 |
|
---|
167 | Each language version includes a "testbed" main-program that can be used
|
---|
168 | to verify that the SOFA routines have been correctly compiled on the end
|
---|
169 | user's system. The Fortran and C versions are called t_sofa_f.for and
|
---|
170 | t_sofa_c.c respectively. The testbeds execute every SOFA routine and
|
---|
171 | check that the results are within expected accuracy margins. It is not
|
---|
172 | possible to guarantee that all platforms will meet the rather stringent
|
---|
173 | criteria that have been used, and an occasional warning message may be
|
---|
174 | encountered on some systems.
|
---|
175 |
|
---|
176 |
|
---|
177 | COPYRIGHT ISSUES
|
---|
178 |
|
---|
179 | Copyright for all of the SOFA software and documentation is owned by the
|
---|
180 | IAU SOFA Board. The Software is made available free of charge for all
|
---|
181 | classes of user, including commercial. However, there are strict rules
|
---|
182 | designed to avoid unauthorized variants coming into circulation. It is
|
---|
183 | permissible to distribute derived works and other modifications, but
|
---|
184 | they must be clearly marked to avoid confusion with the SOFA originals.
|
---|
185 |
|
---|
186 | Further details are included in the block of comments which concludes
|
---|
187 | every routine. The text is also set out in an appendix to the present
|
---|
188 | document.
|
---|
189 |
|
---|
190 |
|
---|
191 | ACCURACY
|
---|
192 |
|
---|
193 | The SOFA policy is to organize the calculations so that the machine
|
---|
194 | accuracy is fully exploited. The gap between the precision of the
|
---|
195 | underlying model or theory and the computational resolution has to be
|
---|
196 | kept as large as possible, hopefully leaving several orders of
|
---|
197 | magnitude of headroom.
|
---|
198 |
|
---|
199 | The SOFA routines in some cases involve design compromises between rigor
|
---|
200 | and ease of use (and also speed, though nowadays this is seldom a major
|
---|
201 | concern).
|
---|
202 |
|
---|
203 |
|
---|
204 | ACKNOWLEDGEMENTS
|
---|
205 |
|
---|
206 | The Board is indebted to a number of contributors, who are acknowledged
|
---|
207 | in the preamble comments of the routines concerned.
|
---|
208 |
|
---|
209 | The Board's effort is provided by the members' individual institutes.
|
---|
210 |
|
---|
211 | Resources for operating the SOFA Center are provided by Her Majesty's
|
---|
212 | Nautical Almanac Office, operated by the United Kingdom Hydrographic
|
---|
213 | Office.
|
---|