source: trunk/FACT++/sofa/doc/intro.lis@ 18368

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