Changes for SOFA Issue: 2021-05-12 (Release 18)
Summary of Changes
The changes for this major release fall into the following categories:
- Introduction of three new support routines. Two deal with
calculating astrometric places, while the third provides the
approximate lunar position and velocity. The validation program
has been duly updated.
- A rearrangement of the ANSI C header files sofam.h and sofa.h.
The consequence of this is that an explicit #include "sofam.h"
has been added to many of the SOFA functions. Thus developers
of applications that use constants from sofa.h will now need to
include an explicit #include <sofam.h>. Further explanation
is given below.
- The year of validity for the leap second (dat) routine has been
extended.
- Typographical and other minor corrections to the documentation.
Those that are purely typographical (e.g. punctuation) are not
listed).
Changes to the SOFA FORTRAN Library
- iau_ATCC13 — New support routine to transform a star's
ICRS catalog entry (epoch J2000.0) into ICRS astrometric place.
- iau_ATCCQ — New support routine; a "quick" transformation
of a star's ICRS catalog entry (epoch J2000.0) into ICRS
astrometric place, given precomputed star-independent astrometry
parameters.
- iau_dat — Year extended to 2021.
- iau_G2ICRS & iau_ICRS2G — Documentation updated.
- iau_MOON98 — New support routine for calculating approximate
geocentric position and velocity of the Moon.
- iau_PLAN94 — Documentation updates and corrections.
- t_sofa_f — The test program has been updated to include the
three new routines.
N.B. Both iau_MOON98 and iau_PLAN94 provide only approximate positions and do
not use IAU endorsed theories.
Changes to the SOFA ANSI C Library
- sofa.h & sofam.h — The information in both these files
has been rearranged to eliminate problems encountered by C++
developers. The change has
- moved the structures from sofam.h into sofa.h and
- thus eliminated the #include "sofam.h" from sofa.h.
The consequence of this change for SOFA functions is that
an explicit #include "sofam.h" has had to be added to some
of them.
Previously, sofam.h contained both structure definitions and
constants, and was #included by sofa.h, which was otherwise
dedicated to function prototypes. The difficulty was that
short uppercase names in sofam.h were colliding with
C++ variables.
The consequence of the change for developers is that any
application that uses constants from sofa.h will now need an
explicit #include <sofam.h>. It should, however, be noted
that the contents of sofam.h are not formally part of the
SOFA API, and so such an application is vulnerable to
future changes. Rather than adding an #include <sofam.h>
to applications, it would be better to replicate the needed
macros in the user code.
- iauAtcc13 — New support function to transform a star's ICRS
catalog entry (epoch J2000.0) into ICRS astrometric place.
- iauAtccq — New support function, a "quick" transformation
of a star's ICRS catalog entry (epoch J2000.0) into ICRS astrometric
place, given precomputed star-independent astrometry parameters.
- iauDat — Year extended to 2021.
- iauG2icrs & iauIcrs2g — Documentation updated.
- makefile — An error has been corrected when using "make check".
The directory for the include files was incorrect.
- iauMoon98 — New support function for calculating approximate
geocentric position and velocity of the Moon.
- iauPlan94 — Documentation updates and corrections.
- t_sofa_c — The test program has been updated to include the
three new routines.
- Cosmetic changes to improve consistency have been made to the ANSI C code.
N.B. Both iauMoon98 and iauPlan94 provide only approximate positions and do
not use IAU endorsed theories.
The SOFA Board thanks all those who have reported the various issues
that go to ensuring the libraries and documentation are kept up-to-date
and relevant.
SOFA Release 18: This changes file was updated on 2021 May 11.