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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +