Updates for SOFA Release 12 : 2016 May
--------------------------------------
Changes/updates fall into the following categories:
1. The addition of four routines to the Precession/Nutation/Polar Motion
section, which deliver long-term (+/-200,000 years) precession using
the model of Vondrak, Capitaine and Wallace (2011, 2012).
2. Introduction of a new section entitled Ecliptic Coordinates. This
section consists of six routines dealing with the transformation
between equatorial and ecliptic coordinates using either the IAU 2006
precession model or the long-term precession model of Vondrak et al.
3. Separate Earth Attitude Cookbooks for Fortran and C users, replacing
the existing Fortran-only edition.
4. Some documentation corrections.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FORTRAN Routines
----------------
New routines that implement a long-term precession model:
iau_LTP Precession matrix, J2000.0 to date using the Vondrak
et al. long-term model.
iau_LTPB Precession+bias matrix, J2000.0 to date using the Vondrak
et al. long-term model.
iau_LTPECL Precession (Vondrak et al. long-term) of the ecliptic. A
unit vector representing the direction of the ecliptic
pole with respect to the J2000.0 mean equator and equinox.
iau_LTPEQU Precession (Vondrak et al. long-term) of the equator. A
unit vector representing the direction of the pole of the
equator with respect to the J2000.0 mean equator and
equinox.
Routines comprising a new section on ecliptic coordinates:
iau_ECEQ06 Ecliptic coords to equatorial: transformation of
longitude and latitude (mean equinox and ecliptic of date)
to mean J2000.0 right ascension and declination, using
IAU 2006 precession.
iau_ECM06 ICRS (equatorial) to ecliptic rotation matrix using
IAU 2006 precession.
iau_EQEC06 Equatorial to ecliptic coords: transformation of ICRS
right ascension and declination to ecliptic longitude and
latitude (mean equinox and ecliptic of date) using
IAU 2006 precession.
iau_LTECEQ Ecliptic coords to equatorial: transformation of
ecliptic longitude and latitude (mean equinox and
ecliptic of date) to mean J2000.0 right ascension and
declination, using the Vondrak et al. long-term
precession.
iau_LTECM ICRS (equatorial) to ecliptic rotation matrix using the
Vondrak et al. long-term precession.
iau_LTEQEC Equatorial to ecliptic coords: transformation of ICRS
right ascension and declination to ecliptic longitude and
latitude (mean equinox and ecliptic of date) using the
Vondrak et al. long-term precession.
Updated:
t_sofa_f.for Test program, incorporating the ten new routines.
Revisions:
iau_ATCO13 List of called routines corrected.
iau_ATIO13 List of called routines corrected.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANSI C Routines
---------------
New functions that implement a long-term precession model:
iauLtp Precession matrix, J2000.0 to date using the Vondrak
et al. long-term model. A new routine.
iauLtpb Precession+bias matrix, J2000.0 to date using the Vondrak
et al. long-term model. A new routine.
iauLtpecl Precession (Vondrak et al. long-term) of the ecliptic. A
unit vector representing the direction of the ecliptic
pole with respect to the J2000.0 mean equator and equinox.
A new routine.
iauLtpequ Precession (Vondrak et al. long-term) of the equator. A
unit vector representing the direction of the pole of the
equator with respect to the J2000.0 mean equator and
equinox. A new routine.
Functions comprising a new section on ecliptic coordinates:
iauEceq06 Ecliptic coords to equatorial: transformation of
longitude and latitude (mean equinox and ecliptic of date)
to mean J2000.0 right ascension and declination, using
IAU 2006 precession.
iauEcm06 ICRS (equatorial) to ecliptic rotation matrix using
IAU 2006 precession.
iauEqec06 Equatorial to ecliptic coords: transformation of ICRS
right ascension and declination to ecliptic longitude and
latitude (mean equinox and ecliptic of date) using
IAU 2006 precession.
iauLteceq Ecliptic coords to equatorial: transformation of
ecliptic longitude and latitude (mean equinox and
ecliptic of date) to mean J2000.0 right ascension and
declination, using the Vondrak et al. long-term
precession.
iauLtecm ICRS (equatorial) to ecliptic rotation matrix using the
Vondrak et al. long-term precession.
iauLteqec Equatorial to ecliptic coords: transformation of ICRS
right ascension and declination to ecliptic longitude and
latitude (mean equinox and ecliptic of date) using the
Vondrak et al. long-term precession.
Updated:
sofa.h Addition of prototypes for the ten new functions listed
above.
t_sofa_c Updated test program incorporating the ten new routines,
plus a handful of constants extended to more decimal
places.
Revisions:
iauAtco13 List of called functions corrected.
iauAtio13 List of called functions corrected.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Documentation:
board.lis Inclusion of the new board members.
title.lis Release number and date updated.
intro.lis Updated to reflect the updates and additions of this 12th
release.
sofa_lib.lis New routines added.
sofa_pn_f.pdf SOFA Earth Attitude Cookbook for those using Fortran. The
former Fortran-only version was called sofa_pn.pdf. A few
typographic corrections have been made.
sofa_pn_c.pdf SOFA Earth Attitude Cookbook for those using ANSI C. Like
the former Fortran-only version but with function names
and argument lists appropriate for the C case.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
End of Updates
2016 April 8
CYH/SAB
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Updates for SOFA Release 12a : 2016 July
- - - - - - - - - - - - - - - - - - - - -
Summary of Changes
------------------
Changes/updates for this minor release (12a) fall into the following
categories:
1. A leap second at the end of December 2016, requires updates to the
iau_DAT (dat.for) and iauDat (Dat.c) routines. The test-bed
programs t_sofa_f.for and t_sofa_c.c are also updated to test this
change.
2. The routines iau_LDSUN and iauLdsun, that calculate the deflection
of starlight by the Sun, have changed, though without affecting
the results for normal use. As a defensive measure, an internal
threshold value tapers off the returned value for cases close to
the center of the solar disk so that it becomes zero rather than
infinity at the center. By making the formerly fixed threshold
value depend on observer location, it has been possible to make
the onset of the defensive measure less abrupt, which has greatly
improved round-trip closure even for impossible (i.e. occulted)
cases. For a terrestrial observer, the new threshold corresponds
to a distance of about 5 arcminutes (formerly 9 arcseconds) from
the center of the disk.
3. Documentation updates and corrections.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FORTRAN Routines
----------------
iau_DAT a leap second is now required in UTC for 2016 December 31.
iau_LDSUN internal threshold value changed from 1D-9 to DLIM, where
DLIM = 1D-6 / MAX(EM*EM,1D0) and EM is the distance in au
from the Sun to the observer.
t_sofa_f this test program has been modified to test the updated
leap second routine.
Documentation
-------------
sofa_ast_f Astrometry cookbook has been modified to take account of
the updated LDSUN routine.
sofa_ts_f Version number of this cookbook corrected.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANSI C:
-------
iauDat a leap second is now required in UTC for 2016 December 31.
iauLdsun internal threshold value changed from 1e-9 to dlim, where
dlim = 1e-6 / (em*em > 1.0 ? em*em : 1.0) and em is the
distance in au from the Sun to the observer.
Cr In the list of "Returned:" arguments listed in the
documentation the one argument was listed as "char[]"
rather than just "c".
t_sofa_c this test program has been modified to test the updated
leap second routine.
Documentation
-------------
sofa_ast_c Astrometry cookbook has been modified to take account of
the updated Ldsun routine.
sofa_ts_c Version number of this cookbook corrected.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
End of Updates
2016 July 18
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Updates for SOFA Release 12b : 2016 Dec 21
- - - - - - - - - - - - - - - - - - - - -
Summary of Changes
------------------
Changes/updates for this minor release (12b) fall into the following
categories:
1. iauJd2cal and iauJdcalf, coding change to removing inconsistent
results on certain processors and compilers.
2. iauStarpv coding change to deliver better precision.
3. iau_REFCO, coding change (Fortran only). This only affects cases
when the input temperature is "outlandish", i.e. outside the range
of -15 to +200 degrees Celsius.
4. Documentation - minor update.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FORTRAN Routines
----------------
iau_STARPV An expression (sqrt(1-x)-1), where x is usually tiny,
has been replaced with (-x/(sqrt(1-x)+1) to improve
numerical precision.
iau_REFCO The line that forms the temperature (TK) in degrees Kelvin
uses the the input temperature (TC), rather than T, the
TC restricted to the "safe" range of -15 degrees Celsius
to +200 degrees Celsius.
Documentation
-------------
sofa_ts_f Julian epoch 2000 has changed to Julian epoch 2000.0.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANSI C:
-------
iauJd2cal Change in coding (see below);
iauJdcalf Change in coding;
The current C versions of the JD2CAL and JDCALF routines
can, under certain special circumstances, produce incorrect
results. The coding of the new versions has been changed
to remove this possibility. The Fortran versions do not
have the problem.
The misbehavior has been detected only under the following
circumstances:
* on Intel and AMD processors;
* when compiled with the GNU C compiler (gcc);
* on any operating system that produces a 32-bit
executable file;
* with certain combinations of compiler flags, such as
"-fno-caller-saves -m32"; and
* Julian dates split (dj1+dj2) such that dj2 is in the
range 0.1 to 0.5.
Calling iauJd2cal or iauJdcalf in these circumstances
sometimes returns a result one day too small.
As an example, take 2014 September 24 at 19:12:00, which
is Julian date 2456925.3 (exactly). If we elect to split
the JD as follows:
dj1 = 2456925.0, dj2 = 0.3,
then the old iauJd2cal returns 2014 9 23 0.8, which is
incorrect, while the new iauJd2cal returns the correct
2014 9 24 0.8.
iauStarpv An expression (sqrt(1-x)-1), where x is usually tiny,
has been replaced with (-x/(sqrt(1-x)+1) to improve
numerical precision.
Documentation
-------------
sofa_ts_c Julian epoch 2000 has changed to Julian epoch 2000.0.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
End of Updates
2016 Dec 21
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Updates for SOFA Release 12c : 2016 Dec 23
- - - - - - - - - - - - - - - - - - - - -
Summary of Changes
------------------
Changes/updates for this minor release (12c) fall into the category of
changes to the test-bed routines only. Minor release 12c differs from 12b
only in terms of the Fortran and ANSI C test-bed routines.
1. The test-bed programs t_sofa_f.for and t_sofa_c.c have been updated
to reflect changes introduced in the minor release 12b described above.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FORTRAN Routines
----------------
t_sofa_f this test program has been modified to reflect the changes
introduced in minor release 12b described above.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANSI C:
-------
t_sofa_c this test program has been modified to reflect the changes
introduced in minor release 12b described above.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
End of Updates
2016 Dec 23
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +