diff --git a/.gitignore b/.gitignore index cf34c0e4..cec7a27d 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,7 @@ missing sofa/*.a *t_sofa_c compile -config.* \ No newline at end of file +config.* +*.lo +*.la +*.a \ No newline at end of file diff --git a/Makefile.am b/Makefile.am index 946ad2f9..c17229fd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1 +1 @@ -SUBDIRS = sofa/20150209_a/c/src CppEphem/src \ No newline at end of file +SUBDIRS = sofa/20160503/c/src CppEphem/src \ No newline at end of file diff --git a/README.md b/README.md index fabd803c..fab176c0 100644 --- a/README.md +++ b/README.md @@ -99,3 +99,12 @@ the executables and libraries are) type: ``` make install ``` And that should do it. + +Uninstalling the code: +---------------------------------------------------------- +To uninstall the code, it is advised to first run + +```make uninstall``` + +in the top directory in order to remove the executables from your +base install directory. Then you can delete the downloaded git repository. diff --git a/configure.ac b/configure.ac index 6a16f4c0..d3081ecf 100644 --- a/configure.ac +++ b/configure.ac @@ -62,8 +62,8 @@ fi dnl The following is true if none of the '--with-sofa...' options dnl were specified if test "x$with_sofa$with_sofa_incdir$with_sofa_libdir" = x ; then - sofalibs="-L${curDir}/sofa/20150209_a/c/src -lsofa_c ${sofalibs}" - sofa_CXXFLAGS="-I${curDir}/sofa/20150209_a/c/src ${sofa_CXXFLAGS}" + sofalibs="-L${curDir}/sofa/20160503/c/src -lsofa_c ${sofalibs}" + sofa_CXXFLAGS="-I${curDir}/sofa/20160503/c/src ${sofa_CXXFLAGS}" fi echo "$sofa_CXXFLAGS" diff --git a/sofa/20150209_a/c/doc/board.lis b/sofa/20150209_a/c/doc/board.lis deleted file mode 100644 index a7fb9c28..00000000 --- a/sofa/20150209_a/c/doc/board.lis +++ /dev/null @@ -1,35 +0,0 @@ -board.lis 2014 February 20 - - - -IAU STANDARDS OF FUNDAMENTAL ASTRONOMY BOARD - - -Current Membership - - John Bangert United States Naval Observatory, retired - Steven Bell Her Majesty's Nautical Almanac Office - Nicole Capitaine Paris Observatory - William Folkner Jet Propulsion Laboratory - Catherine Hohenkerk Her Majesty's Nautical Almanac Office (Chair) - Jinling Li Shanghai Astronomical Observatory - Brian Luzum United States Naval Observatory (IERS) - Zinovy Malkin Pulkovo Observatory, St Petersburg - Jeffrey Percival University of Wisconsin - Scott Ransom National Radio Astronomy Observatory - Patrick Wallace RAL Space, retired - - -Past Members - - Mark Calabretta Australia Telescope National Facility, retired - Wim Brouw University of Groningen - Anne-Marie Gontier Paris Observatory - George Hobbs Australia Telescope National Facility - George Kaplan United States Naval Observatory - Dennis McCarthy United States Naval Observatory - Skip Newhall Jet Propulsion Laboratory - Jin Wen-Jing Shanghai Observatory - - -The e-mail for the Board chair is Catherine.Hohenkerk@ukho.gov.uk diff --git a/sofa/20150209_a/c/doc/board.pdf b/sofa/20150209_a/c/doc/board.pdf deleted file mode 100644 index e0631110..00000000 Binary files a/sofa/20150209_a/c/doc/board.pdf and /dev/null differ diff --git a/sofa/20150209_a/c/doc/changes.lis b/sofa/20150209_a/c/doc/changes.lis deleted file mode 100644 index 710fb840..00000000 --- a/sofa/20150209_a/c/doc/changes.lis +++ /dev/null @@ -1,135 +0,0 @@ - Updates for SOFA Release 11 : 2015 February 2 - - - - - - - - - - - - - - - - - - - - - - - - - -Changes/updates fall into the following categories: - -1. A leap second at the end of June 2015, requires updates to the - iau_DAT (dat.for) and iauDat (dat.c) routines. - -2. Introduction of two new routines, G2ICRS and ICRS2G (both Fortran - and C), creating a new category entitled "Galactic coordinates". - -3. A few minor changes to a few routines to remove some compiler - warnings; (1) Changes in the test for zero in C2IXYZ, GC2GDE, RM2V, - RV2M, and multithread precaution in CAL2JD in the Fortan version only. - -4. Updated test programs t_sofa_f.for and t_sofa_c.c. Updated the - include header file sofa.h. - -5. Documentation revision, moving the routines STARPV and PVSTAR - (category Star Space Motion) and PMSAFE and STARPM (category Star - Catalog Conversions) into Astrometry. This results in the removal - of the category Star Space Motion. - -+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -Fortran: --------- - -iau_C2IXYS there was a test for zero that could potentially cause - compiler warnings. The test has been changed. - -iau_CAL2JD a value in a DATA-initialized array was being changed - during execution. This had consequences for multi-thread - code. The algorithm has been changed to avoid the - difficulty. - -iau_DAT a leap second is now required in UTC for 2015 June 30. - -iau_G2ICRS transformation from Galactic Coordinates to ICRS. A new - routine. - -iau_GC2GDE there was a test for zero that could potentially cause - compiler warnings. The test has been changed. - -iau_ICRS2G transformation from ICRS to Galactic Coordinates. A new - routine. - -iau_RM2V there was a test for zero that could potentially cause - compiler warnings. The test has been changed. - -iau_RV2M there was a test for zero that could potentially cause - compiler warnings. The test has been changed. - -t_sofa_f program updated with the two new Galactic Coordinate - tansformations. - -+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -ANSI C: -------- - -iauC2ixys there was a test for zero that could potentially cause - compiler warnings. The test has been changed. - -iauDat a leap second is now required in UTC for 2015 June 30. - -iauG2icrs transformation from Galactic Coordinates to ICRS. A new - routine. - -iauGc2gde there was a test for zero that could potentially cause - compiler warnings. The test has been changed. - -iauIcrs2g transformation from Galactic Coordinates to ICRS. A new - routine. - -iauRm2v there was a test for zero that could potentially cause - compiler warnings. The test has been changed. - -iauRv2m there was a test for zero that could potentially cause - compiler warnings. The test has been changed. - -sofa.h addition of the new functions, removal of duplicate - functions. All functions are listed in the categories - that are given on the website and in the manual. - -t_sofa_c program updated with the two new Galactic Coordinate - tansformations. - -+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -Documentation: --------------- - -intro.lis Minor change. - -sofa_lib.lis New routines added. The routines STARPV, PVSTA, PMSAFE and - STARPM into Astrometry. Category Star Space Motion deleted. - This list harmonised with sofa.h and the website. - -+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -End of Updates -2015 February 9 -CYH/SAB - -+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - Updates for SOFA Release 11a : 2015 March 4 - - - - - - - - - - - - - - - - - - - - - - - - -This minor release (11a) contains a change to suppress a warning message -given by one C compiler. The change does not affect the behaviour of the -routine and it is not essential that you update your libraries -(particularly if you are a Fortran user). - -The change had already been made in the 2014 September 9 (10c) release, -but due to an oversight was not present in the current release. The -Fortran code has also been modified for harmony. - -Summary of Changes - -iauDat A change has been made to the ANSI C version to suppress - an array bounds warning produced by recent gcc versions. - -iau_DAT A change has been made to the Fortran version to ensure - equivalence between the Fortran and ANSI C versions. - -+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -End of Updates -2015 March 4 -CYH -+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/sofa/20150209_a/c/doc/changes.pdf b/sofa/20150209_a/c/doc/changes.pdf deleted file mode 100644 index e9c9416a..00000000 Binary files a/sofa/20150209_a/c/doc/changes.pdf and /dev/null differ diff --git a/sofa/20150209_a/c/doc/consts.pdf b/sofa/20150209_a/c/doc/consts.pdf deleted file mode 100644 index eddfce37..00000000 Binary files a/sofa/20150209_a/c/doc/consts.pdf and /dev/null differ diff --git a/sofa/20150209_a/c/doc/contents.pdf b/sofa/20150209_a/c/doc/contents.pdf deleted file mode 100644 index 56497915..00000000 Binary files a/sofa/20150209_a/c/doc/contents.pdf and /dev/null differ diff --git a/sofa/20150209_a/c/doc/intro.pdf b/sofa/20150209_a/c/doc/intro.pdf deleted file mode 100644 index 7d6be0b8..00000000 Binary files a/sofa/20150209_a/c/doc/intro.pdf and /dev/null differ diff --git a/sofa/20150209_a/c/doc/manual.pdf b/sofa/20150209_a/c/doc/manual.pdf deleted file mode 100644 index fd17065b..00000000 Binary files a/sofa/20150209_a/c/doc/manual.pdf and /dev/null differ diff --git a/sofa/20150209_a/c/doc/sofa_lib.pdf b/sofa/20150209_a/c/doc/sofa_lib.pdf deleted file mode 100644 index e79eed42..00000000 Binary files a/sofa/20150209_a/c/doc/sofa_lib.pdf and /dev/null differ diff --git a/sofa/20150209_a/c/doc/sofa_pn.pdf b/sofa/20150209_a/c/doc/sofa_pn.pdf deleted file mode 100644 index f07bd241..00000000 Binary files a/sofa/20150209_a/c/doc/sofa_pn.pdf and /dev/null differ diff --git a/sofa/20150209_a/c/doc/sofa_vml.pdf b/sofa/20150209_a/c/doc/sofa_vml.pdf deleted file mode 100644 index 7547e304..00000000 Binary files a/sofa/20150209_a/c/doc/sofa_vml.pdf and /dev/null differ diff --git a/sofa/20150209_a/c/doc/title.pdf b/sofa/20150209_a/c/doc/title.pdf deleted file mode 100644 index 2cc1891b..00000000 Binary files a/sofa/20150209_a/c/doc/title.pdf and /dev/null differ diff --git a/sofa/20150209_a/c/src/makefile b/sofa/20150209_a/c/src/makefile deleted file mode 100644 index 5b826701..00000000 --- a/sofa/20150209_a/c/src/makefile +++ /dev/null @@ -1,817 +0,0 @@ -#----------------------------------------------------------------------- -# -# Description: make file for the ANSI-C version of SOFA. This -# make file creates a Unix .a library. Designed for Linux/gcc but -# can be adapted for other platforms or run in an appropriate way -# by means of the macros CCOMPC (compiler command), CFLAGF (qualifiers -# for compiling functions) and CFLAGX (qualifiers for compiling -# executables). -# -# Usage: -# -# To build the library: -# -# make -# -# To install the library and include files: -# -# make install -# -# To delete all object files: -# -# make clean -# -# To build and run the test program using the installed library: -# -# make test -# -# Also: -# make all same as make -# make uninstall deinstall the library and header files -# make check test the build -# make installcheck same as make test -# make distclean delete all generated binaries -# make realclean same as distclean -# -# Last revision: 2015 February 9 -# -# Copyright International Astronomical Union. All rights reserved. -# -#----------------------------------------------------------------------- - -#----------------------------------------------------------------------- -# -# DEFINITIONS -# -#----------------------------------------------------------------------- - -#----YOU MAY HAVE TO MODIFY THE NEXT FEW DEFINITIONS----- - -# Specify the installation home directory. - -INSTALL_DIR = $(HOME) - -# Specify the installation directory for the library. - -SOFA_LIB_DIR = $(INSTALL_DIR)/lib/ - -# Specify the installation directory for the include files. - -SOFA_INC_DIR = $(INSTALL_DIR)/include/ - -# This software is compilable only by ANSI C compilers - give the name -# of your preferred C compiler (CCOMPC) and compilation flags (CFLAGF -# for functions, CFLAGX for executables) here. - -CCOMPC = gcc -CFLAGF = -c -pedantic -Wall -W -O -CFLAGX = -pedantic -Wall -W -O - -#----YOU SHOULDN'T HAVE TO MODIFY ANYTHING BELOW THIS LINE--------- - -SHELL = /bin/sh - -# The list of installation directories. - -INSTALL_DIRS = $(SOFA_LIB_DIR) $(SOFA_INC_DIR) - -# Name the SOFA/C library in its source and target locations. - -SOFA_LIB_NAME = libsofa_c.a -SOFA_LIB = $(SOFA_LIB_DIR)$(SOFA_LIB_NAME) - -# Name the SOFA/C testbed in its source and target locations. - -SOFA_TEST_NAME = t_sofa_c.c -SOFA_TEST = t_sofa_c - -# Name the SOFA/C includes in their source and target locations. - -SOFA_INC_NAMES = sofa.h sofam.h -SOFA_INC = $(SOFA_INC_DIR)sofa.h $(SOFA_INC_DIR)sofam.h - -# The list of SOFA/C library object files. - -SOFA_OBS = iauA2af.o \ - iauA2tf.o \ - iauAb.o \ - iauAf2a.o \ - iauAnp.o \ - iauAnpm.o \ - iauApcg.o \ - iauApcg13.o \ - iauApci.o \ - iauApci13.o \ - iauApco.o \ - iauApco13.o \ - iauApcs.o \ - iauApcs13.o \ - iauAper.o \ - iauAper13.o \ - iauApio.o \ - iauApio13.o \ - iauAtci13.o \ - iauAtciq.o \ - iauAtciqn.o \ - iauAtciqz.o \ - iauAtco13.o \ - iauAtic13.o \ - iauAticq.o \ - iauAticqn.o \ - iauAtio13.o \ - iauAtioq.o \ - iauAtoc13.o \ - iauAtoi13.o \ - iauAtoiq.o \ - iauBi00.o \ - iauBp00.o \ - iauBp06.o \ - iauBpn2xy.o \ - iauC2i00a.o \ - iauC2i00b.o \ - iauC2i06a.o \ - iauC2ibpn.o \ - iauC2ixy.o \ - iauC2ixys.o \ - iauC2s.o \ - iauC2t00a.o \ - iauC2t00b.o \ - iauC2t06a.o \ - iauC2tcio.o \ - iauC2teqx.o \ - iauC2tpe.o \ - iauC2txy.o \ - iauCal2jd.o \ - iauCp.o \ - iauCpv.o \ - iauCr.o \ - iauD2dtf.o \ - iauD2tf.o \ - iauDat.o \ - iauDtdb.o \ - iauDtf2d.o \ - iauEe00.o \ - iauEe00a.o \ - iauEe00b.o \ - iauEe06a.o \ - iauEect00.o \ - iauEform.o \ - iauEo06a.o \ - iauEors.o \ - iauEpb.o \ - iauEpb2jd.o \ - iauEpj.o \ - iauEpj2jd.o \ - iauEpv00.o \ - iauEqeq94.o \ - iauEra00.o \ - iauFad03.o \ - iauFae03.o \ - iauFaf03.o \ - iauFaju03.o \ - iauFal03.o \ - iauFalp03.o \ - iauFama03.o \ - iauFame03.o \ - iauFane03.o \ - iauFaom03.o \ - iauFapa03.o \ - iauFasa03.o \ - iauFaur03.o \ - iauFave03.o \ - iauFk52h.o \ - iauFk5hip.o \ - iauFk5hz.o \ - iauFw2m.o \ - iauFw2xy.o \ - iauG2icrs.o \ - iauGc2gd.o \ - iauGc2gde.o \ - iauGd2gc.o \ - iauGd2gce.o \ - iauGmst00.o \ - iauGmst06.o \ - iauGmst82.o \ - iauGst00a.o \ - iauGst00b.o \ - iauGst06.o \ - iauGst06a.o \ - iauGst94.o \ - iauH2fk5.o \ - iauHfk5z.o \ - iauIcrs2g.o \ - iauIr.o \ - iauJd2cal.o \ - iauJdcalf.o \ - iauLd.o \ - iauLdn.o \ - iauLdsun.o \ - iauNum00a.o \ - iauNum00b.o \ - iauNum06a.o \ - iauNumat.o \ - iauNut00a.o \ - iauNut00b.o \ - iauNut06a.o \ - iauNut80.o \ - iauNutm80.o \ - iauObl06.o \ - iauObl80.o \ - iauP06e.o \ - iauP2pv.o \ - iauP2s.o \ - iauPap.o \ - iauPas.o \ - iauPb06.o \ - iauPdp.o \ - iauPfw06.o \ - iauPlan94.o \ - iauPm.o \ - iauPmat00.o \ - iauPmat06.o \ - iauPmat76.o \ - iauPmp.o \ - iauPmpx.o \ - iauPmsafe.o \ - iauPn.o \ - iauPn00.o \ - iauPn00a.o \ - iauPn00b.o \ - iauPn06.o \ - iauPn06a.o \ - iauPnm00a.o \ - iauPnm00b.o \ - iauPnm06a.o \ - iauPnm80.o \ - iauPom00.o \ - iauPpp.o \ - iauPpsp.o \ - iauPr00.o \ - iauPrec76.o \ - iauPv2p.o \ - iauPv2s.o \ - iauPvdpv.o \ - iauPvm.o \ - iauPvmpv.o \ - iauPvppv.o \ - iauPvstar.o \ - iauPvtob.o \ - iauPvu.o \ - iauPvup.o \ - iauPvxpv.o \ - iauPxp.o \ - iauRefco.o \ - iauRm2v.o \ - iauRv2m.o \ - iauRx.o \ - iauRxp.o \ - iauRxpv.o \ - iauRxr.o \ - iauRy.o \ - iauRz.o \ - iauS00.o \ - iauS00a.o \ - iauS00b.o \ - iauS06.o \ - iauS06a.o \ - iauS2c.o \ - iauS2p.o \ - iauS2pv.o \ - iauS2xpv.o \ - iauSepp.o \ - iauSeps.o \ - iauSp00.o \ - iauStarpm.o \ - iauStarpv.o \ - iauSxp.o \ - iauSxpv.o \ - iauTaitt.o \ - iauTaiut1.o \ - iauTaiutc.o \ - iauTcbtdb.o \ - iauTcgtt.o \ - iauTdbtcb.o \ - iauTdbtt.o \ - iauTf2a.o \ - iauTf2d.o \ - iauTr.o \ - iauTrxp.o \ - iauTrxpv.o \ - iauTttai.o \ - iauTttcg.o \ - iauTttdb.o \ - iauTtut1.o \ - iauUt1tai.o \ - iauUt1tt.o \ - iauUt1utc.o \ - iauUtctai.o \ - iauUtcut1.o \ - iauXy06.o \ - iauXys00a.o \ - iauXys00b.o \ - iauXys06a.o \ - iauZp.o \ - iauZpv.o \ - iauZr.o - -#----------------------------------------------------------------------- -# -# TARGETS -# -#----------------------------------------------------------------------- - -# Build (but do not install) the library. -all : $(SOFA_LIB_NAME) - -@ echo "" - -@ echo "*** Now type 'make test'" \ - " to install the library and run tests ***" - -@ echo "" - -# Install the library and header files. -install $(SOFA_LIB) : $(INSTALL_DIRS) $(SOFA_LIB_NAME) $(SOFA_INC) - cp $(SOFA_LIB_NAME) $(SOFA_LIB_DIR) - -# Deinstall the library and header files. -uninstall: - - $(RM) $(SOFA_LIB) $(SOFA_INC) - -# Test the build. -check: $(SOFA_TEST_NAME) $(SOFA_INC_NAMES) $(SOFA_LIB_NAME) - $(CCOMPC) $(CFLAGX) $(SOFA_TEST_NAME) $(SOFA_LIB_NAME) \ - -lm -o $(SOFA_TEST) - ./$(SOFA_TEST) - -# Test the installed library. -installcheck test: $(SOFA_TEST_NAME) $(SOFA_INC) $(SOFA_LIB) - $(CCOMPC) $(CFLAGX) $(SOFA_TEST_NAME) -I$(SOFA_INC_DIR) \ - -L$(SOFA_LIB_DIR) -lsofa_c -lm -o $(SOFA_TEST) - ./$(SOFA_TEST) - -# Delete object files. -clean : - - $(RM) $(SOFA_OBS) - -# Delete all generated binaries in the current directory. -realclean distclean : clean - - $(RM) $(SOFA_LIB_NAME) $(SOFA_TEST) - -# Create the installation directories if not already present. -$(INSTALL_DIRS): - mkdir -p $@ - -# Build the library. -$(SOFA_LIB_NAME): $(SOFA_OBS) - ar ru $(SOFA_LIB_NAME) $? - -# Install the header files. -$(SOFA_INC) : $(INSTALL_DIRS) $(SOFA_INC_NAMES) - cp $(SOFA_INC_NAMES) $(SOFA_INC_DIR) - -#----------------------------------------------------------------------- - -# The list of object file dependencies - -iauA2af.o : a2af.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ a2af.c -iauA2tf.o : a2tf.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ a2tf.c -iauAb.o : ab.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ab.c -iauAf2a.o : af2a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ af2a.c -iauAnp.o : anp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ anp.c -iauAnpm.o : anpm.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ anpm.c -iauApcg.o : apcg.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ apcg.c -iauApcg13.o : apcg13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ apcg13.c -iauApci.o : apci.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ apci.c -iauApci13.o : apci13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ apci13.c -iauApco.o : apco.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ apco.c -iauApco13.o : apco13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ apco13.c -iauApcs.o : apcs.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ apcs.c -iauApcs13.o : apcs13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ apcs13.c -iauAper.o : aper.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ aper.c -iauAper13.o : aper13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ aper13.c -iauApio.o : apio.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ apio.c -iauApio13.o : apio13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ apio13.c -iauAtci13.o : atci13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atci13.c -iauAtciq.o : atciq.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atciq.c -iauAtciqn.o : atciqn.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atciqn.c -iauAtciqz.o : atciqz.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atciqz.c -iauAtco13.o : atco13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atco13.c -iauAtic13.o : atic13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atic13.c -iauAticq.o : aticq.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ aticq.c -iauAticqn.o : aticqn.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ aticqn.c -iauAtio13.o : atio13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atio13.c -iauAtioq.o : atioq.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atioq.c -iauAtoc13.o : atoc13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atoc13.c -iauAtoi13.o : atoi13.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atoi13.c -iauAtoiq.o : atoiq.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ atoiq.c -iauBi00.o : bi00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ bi00.c -iauBp00.o : bp00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ bp00.c -iauBp06.o : bp06.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ bp06.c -iauBpn2xy.o : bpn2xy.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ bpn2xy.c -iauC2i00a.o : c2i00a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2i00a.c -iauC2i00b.o : c2i00b.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2i00b.c -iauC2i06a.o : c2i06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2i06a.c -iauC2ibpn.o : c2ibpn.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2ibpn.c -iauC2ixy.o : c2ixy.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2ixy.c -iauC2ixys.o : c2ixys.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2ixys.c -iauC2s.o : c2s.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2s.c -iauC2t00a.o : c2t00a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2t00a.c -iauC2t00b.o : c2t00b.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2t00b.c -iauC2t06a.o : c2t06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2t06a.c -iauC2tcio.o : c2tcio.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2tcio.c -iauC2teqx.o : c2teqx.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2teqx.c -iauC2tpe.o : c2tpe.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2tpe.c -iauC2txy.o : c2txy.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ c2txy.c -iauCal2jd.o : cal2jd.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ cal2jd.c -iauCp.o : cp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ cp.c -iauCpv.o : cpv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ cpv.c -iauCr.o : cr.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ cr.c -iauD2dtf.o : d2dtf.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ d2dtf.c -iauD2tf.o : d2tf.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ d2tf.c -iauDat.o : dat.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ dat.c -iauDtdb.o : dtdb.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ dtdb.c -iauDtf2d.o : dtf2d.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ dtf2d.c -iauEe00.o : ee00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ee00.c -iauEe00a.o : ee00a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ee00a.c -iauEe00b.o : ee00b.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ee00b.c -iauEe06a.o : ee06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ee06a.c -iauEect00.o : eect00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ eect00.c -iauEform.o : eform.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ eform.c -iauEo06a.o : eo06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ eo06a.c -iauEors.o : eors.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ eors.c -iauEpb.o : epb.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ epb.c -iauEpb2jd.o : epb2jd.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ epb2jd.c -iauEpj.o : epj.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ epj.c -iauEpj2jd.o : epj2jd.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ epj2jd.c -iauEpv00.o : epv00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ epv00.c -iauEqeq94.o : eqeq94.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ eqeq94.c -iauEra00.o : era00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ era00.c -iauFad03.o : fad03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fad03.c -iauFae03.o : fae03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fae03.c -iauFaf03.o : faf03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ faf03.c -iauFaju03.o : faju03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ faju03.c -iauFal03.o : fal03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fal03.c -iauFalp03.o : falp03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ falp03.c -iauFama03.o : fama03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fama03.c -iauFame03.o : fame03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fame03.c -iauFane03.o : fane03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fane03.c -iauFaom03.o : faom03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ faom03.c -iauFapa03.o : fapa03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fapa03.c -iauFasa03.o : fasa03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fasa03.c -iauFaur03.o : faur03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ faur03.c -iauFave03.o : fave03.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fave03.c -iauFk52h.o : fk52h.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fk52h.c -iauFk5hip.o : fk5hip.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fk5hip.c -iauFk5hz.o : fk5hz.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fk5hz.c -iauFw2m.o : fw2m.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fw2m.c -iauFw2xy.o : fw2xy.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ fw2xy.c -iauG2icrs.o : g2icrs.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ g2icrs.c -iauGc2gd.o : gc2gd.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gc2gd.c -iauGc2gde.o : gc2gde.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gc2gde.c -iauGd2gc.o : gd2gc.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gd2gc.c -iauGd2gce.o : gd2gce.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gd2gce.c -iauGmst00.o : gmst00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gmst00.c -iauGmst06.o : gmst06.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gmst06.c -iauGmst82.o : gmst82.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gmst82.c -iauGst00a.o : gst00a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gst00a.c -iauGst00b.o : gst00b.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gst00b.c -iauGst06.o : gst06.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gst06.c -iauGst06a.o : gst06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gst06a.c -iauGst94.o : gst94.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ gst94.c -iauH2fk5.o : h2fk5.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ h2fk5.c -iauHfk5z.o : hfk5z.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ hfk5z.c -iauIcrs2g.o : icrs2g.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ icrs2g.c -iauIr.o : ir.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ir.c -iauJd2cal.o : jd2cal.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ jd2cal.c -iauJdcalf.o : jdcalf.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ jdcalf.c -iauLd.o : ld.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ld.c -iauLdn.o : ldn.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ldn.c -iauLdsun.o : ldsun.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ldsun.c -iauNum00a.o : num00a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ num00a.c -iauNum00b.o : num00b.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ num00b.c -iauNum06a.o : num06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ num06a.c -iauNumat.o : numat.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ numat.c -iauNut00a.o : nut00a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ nut00a.c -iauNut00b.o : nut00b.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ nut00b.c -iauNut06a.o : nut06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ nut06a.c -iauNut80.o : nut80.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ nut80.c -iauNutm80.o : nutm80.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ nutm80.c -iauObl06.o : obl06.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ obl06.c -iauObl80.o : obl80.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ obl80.c -iauP06e.o : p06e.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ p06e.c -iauP2pv.o : p2pv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ p2pv.c -iauP2s.o : p2s.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ p2s.c -iauPap.o : pap.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pap.c -iauPas.o : pas.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pas.c -iauPb06.o : pb06.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pb06.c -iauPdp.o : pdp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pdp.c -iauPfw06.o : pfw06.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pfw06.c -iauPlan94.o : plan94.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ plan94.c -iauPm.o : pm.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pm.c -iauPmat00.o : pmat00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pmat00.c -iauPmat06.o : pmat06.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pmat06.c -iauPmat76.o : pmat76.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pmat76.c -iauPmp.o : pmp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pmp.c -iauPmpx.o : pmpx.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pmpx.c -iauPmsafe.o : pmsafe.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pmsafe.c -iauPn.o : pn.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pn.c -iauPn00.o : pn00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pn00.c -iauPn00a.o : pn00a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pn00a.c -iauPn00b.o : pn00b.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pn00b.c -iauPn06.o : pn06.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pn06.c -iauPn06a.o : pn06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pn06a.c -iauPnm00a.o : pnm00a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pnm00a.c -iauPnm00b.o : pnm00b.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pnm00b.c -iauPnm06a.o : pnm06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pnm06a.c -iauPnm80.o : pnm80.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pnm80.c -iauPom00.o : pom00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pom00.c -iauPpp.o : ppp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ppp.c -iauPpsp.o : ppsp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ppsp.c -iauPr00.o : pr00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pr00.c -iauPrec76.o : prec76.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ prec76.c -iauPv2p.o : pv2p.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pv2p.c -iauPv2s.o : pv2s.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pv2s.c -iauPvdpv.o : pvdpv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pvdpv.c -iauPvm.o : pvm.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pvm.c -iauPvmpv.o : pvmpv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pvmpv.c -iauPvppv.o : pvppv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pvppv.c -iauPvstar.o : pvstar.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pvstar.c -iauPvtob.o : pvtob.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pvtob.c -iauPvu.o : pvu.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pvu.c -iauPvup.o : pvup.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pvup.c -iauPvxpv.o : pvxpv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pvxpv.c -iauPxp.o : pxp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ pxp.c -iauRefco.o : refco.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ refco.c -iauRm2v.o : rm2v.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ rm2v.c -iauRv2m.o : rv2m.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ rv2m.c -iauRx.o : rx.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ rx.c -iauRxp.o : rxp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ rxp.c -iauRxpv.o : rxpv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ rxpv.c -iauRxr.o : rxr.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ rxr.c -iauRy.o : ry.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ry.c -iauRz.o : rz.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ rz.c -iauS00.o : s00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ s00.c -iauS00a.o : s00a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ s00a.c -iauS00b.o : s00b.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ s00b.c -iauS06.o : s06.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ s06.c -iauS06a.o : s06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ s06a.c -iauS2c.o : s2c.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ s2c.c -iauS2p.o : s2p.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ s2p.c -iauS2pv.o : s2pv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ s2pv.c -iauS2xpv.o : s2xpv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ s2xpv.c -iauSepp.o : sepp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ sepp.c -iauSeps.o : seps.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ seps.c -iauSp00.o : sp00.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ sp00.c -iauStarpm.o : starpm.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ starpm.c -iauStarpv.o : starpv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ starpv.c -iauSxp.o : sxp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ sxp.c -iauSxpv.o : sxpv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ sxpv.c -iauTaitt.o : taitt.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ taitt.c -iauTaiut1.o : taiut1.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ taiut1.c -iauTaiutc.o : taiutc.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ taiutc.c -iauTcbtdb.o : tcbtdb.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ tcbtdb.c -iauTcgtt.o : tcgtt.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ tcgtt.c -iauTdbtcb.o : tdbtcb.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ tdbtcb.c -iauTdbtt.o : tdbtt.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ tdbtt.c -iauTf2a.o : tf2a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ tf2a.c -iauTf2d.o : tf2d.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ tf2d.c -iauTr.o : tr.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ tr.c -iauTrxp.o : trxp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ trxp.c -iauTrxpv.o : trxpv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ trxpv.c -iauTttai.o : tttai.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ tttai.c -iauTttcg.o : tttcg.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ tttcg.c -iauTttdb.o : tttdb.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ tttdb.c -iauTtut1.o : ttut1.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ttut1.c -iauUt1tai.o : ut1tai.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ut1tai.c -iauUt1tt.o : ut1tt.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ut1tt.c -iauUt1utc.o : ut1utc.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ ut1utc.c -iauUtctai.o : utctai.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ utctai.c -iauUtcut1.o : utcut1.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ utcut1.c -iauXy06.o : xy06.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ xy06.c -iauXys00a.o : xys00a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ xys00a.c -iauXys00b.o : xys00b.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ xys00b.c -iauXys06a.o : xys06a.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ xys06a.c -iauZp.o : zp.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ zp.c -iauZpv.o : zpv.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ zpv.c -iauZr.o : zr.c sofa.h sofam.h - $(CCOMPC) $(CFLAGF) -o $@ zr.c - -#----------------------------------------------------------------------- diff --git a/sofa/20150209_a/c/00READ.ME b/sofa/20160503/c/00READ.ME similarity index 94% rename from sofa/20150209_a/c/00READ.ME rename to sofa/20160503/c/00READ.ME index 003a2329..b3b8290b 100644 --- a/sofa/20150209_a/c/00READ.ME +++ b/sofa/20160503/c/00READ.ME @@ -1,8 +1,8 @@ -SOFA-Issue: 2015-02-09 +SOFA-Issue: 2016-05-03 This is the IAU Standards of Fundamental Astronomy (SOFA) Libraries product, -issued on 2015-02-09. The tag `SOFA-Issue' above defines this release and +issued on 2016-05-03. The tag `SOFA-Issue' above defines this release and differentiates it from previous or subsequent releases of the SOFA product. The 00READ.ME file must remain with this distribution set. @@ -46,4 +46,4 @@ Notes: development environment to create the appropriate library or DLL. IAU SOFA Center -2015/02/09 +2016/05/02 diff --git a/sofa/20160503/c/doc/board.lis b/sofa/20160503/c/doc/board.lis new file mode 100644 index 00000000..c054dd6c --- /dev/null +++ b/sofa/20160503/c/doc/board.lis @@ -0,0 +1,37 @@ +board.lis 2015 December 6 + + + +IAU STANDARDS OF FUNDAMENTAL ASTRONOMY BOARD + + +Current Membership + + John Bangert - United States Naval Observatory, retired + Steven Bell - Her Majesty's Nautical Almanac Office + Nicole Capitaine - Paris Observatory + William Folkner - Jet Propulsion Laboratory + Mickaël Gastineau - Paris Observatory, IMCCE + Catherine Hohenkerk - Her Majesty's Nautical Almanac Office (Chair) + Li Jinling - Shanghai Astronomical Observatory + Brian Luzum - United States Naval Observatory (IERS) + Zinovy Malkin - Pulkovo Observatory, St Petersburg + Jeffrey Percival - University of Wisconsin + Wendy Puatua - United States Naval Observatory + Scott Ransom - National Radio Astronomy Observatory + Patrick Wallace - RAL Space, retired + + +Past Members + + Wim Brouw University of Groningen + Mark Calabretta Australia Telescope National Facility + Anne-Marie Gontier Paris Observatory + George Hobbs Australia Telescope National Facility + George Kaplan United States Naval Observatory + Dennis McCarthy United States Naval Observatory + Skip Newhall Jet Propulsion Laboratory + Jin Wen-Jing Shanghai Observatory + + +The e-mail for the Board chair is Catherine.Hohenkerk@ukho.gov.uk diff --git a/sofa/20160503/c/doc/board.pdf b/sofa/20160503/c/doc/board.pdf new file mode 100644 index 00000000..befb5d75 Binary files /dev/null and b/sofa/20160503/c/doc/board.pdf differ diff --git a/sofa/20160503/c/doc/changes.lis b/sofa/20160503/c/doc/changes.lis new file mode 100644 index 00000000..799a1f79 --- /dev/null +++ b/sofa/20160503/c/doc/changes.lis @@ -0,0 +1,177 @@ + + 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 ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sofa/20160503/c/doc/changes.pdf b/sofa/20160503/c/doc/changes.pdf new file mode 100644 index 00000000..586189db Binary files /dev/null and b/sofa/20160503/c/doc/changes.pdf differ diff --git a/sofa/20150209_a/c/doc/consts.lis b/sofa/20160503/c/doc/consts.lis similarity index 100% rename from sofa/20150209_a/c/doc/consts.lis rename to sofa/20160503/c/doc/consts.lis diff --git a/sofa/20160503/c/doc/consts.pdf b/sofa/20160503/c/doc/consts.pdf new file mode 100644 index 00000000..010e14c9 Binary files /dev/null and b/sofa/20160503/c/doc/consts.pdf differ diff --git a/sofa/20150209_a/c/doc/contents.lis b/sofa/20160503/c/doc/contents.lis similarity index 100% rename from sofa/20150209_a/c/doc/contents.lis rename to sofa/20160503/c/doc/contents.lis diff --git a/sofa/20160503/c/doc/contents.pdf b/sofa/20160503/c/doc/contents.pdf new file mode 100644 index 00000000..639bd120 Binary files /dev/null and b/sofa/20160503/c/doc/contents.pdf differ diff --git a/sofa/20150209_a/c/doc/copyr.lis b/sofa/20160503/c/doc/copyr.lis similarity index 99% rename from sofa/20150209_a/c/doc/copyr.lis rename to sofa/20160503/c/doc/copyr.lis index 4a9e8086..662c003b 100644 --- a/sofa/20150209_a/c/doc/copyr.lis +++ b/sofa/20160503/c/doc/copyr.lis @@ -10,7 +10,7 @@ and C versions.) *+---------------------------------------------------------------------- * -* Copyright (C) 2015 +* Copyright (C) 2016 * Standards Of Fundamental Astronomy Board * of the International Astronomical Union. * diff --git a/sofa/20150209_a/c/doc/copyr.pdf b/sofa/20160503/c/doc/copyr.pdf similarity index 76% rename from sofa/20150209_a/c/doc/copyr.pdf rename to sofa/20160503/c/doc/copyr.pdf index c35c3ed7..c63f3bb4 100644 Binary files a/sofa/20150209_a/c/doc/copyr.pdf and b/sofa/20160503/c/doc/copyr.pdf differ diff --git a/sofa/20150209_a/c/doc/intro.lis b/sofa/20160503/c/doc/intro.lis similarity index 93% rename from sofa/20150209_a/c/doc/intro.lis rename to sofa/20160503/c/doc/intro.lis index 6d63e62d..8e72f270 100644 --- a/sofa/20150209_a/c/doc/intro.lis +++ b/sofa/20160503/c/doc/intro.lis @@ -1,4 +1,4 @@ -intro.lis 2015 January 29 +intro.lis 2016 March 14 ------------------------------- @@ -9,7 +9,7 @@ intro.lis 2015 January 29 SOFA stands for "Standards Of Fundamental Astronomy". The SOFA software libraries are a collection of subprograms, in source- code form, which implement official IAU algorithms for fundamental- - astronomy computations. The subprograms at present comprise 166 + astronomy computations. The subprograms at present comprise 176 "astronomy" routines supported by 55 "vector/matrix" routines, available in both Fortran77 and C implementations. @@ -74,7 +74,7 @@ SCOPE The routines currently available are listed in the next two chapters of this document. -The "astronomy" library comprises 164 routines (plus one obsolete +The "astronomy" library comprises 176 routines (plus one obsolete Fortran routine that now appears under a revised name). The areas addressed include calendars, astrometry, time scales, Earth rotation, ephemerides, precession-nutation, star catalog transformations, @@ -126,13 +126,14 @@ At present there is little free-standing documentation about individual routines. However, each routine has preamble comments which specify in detail what the routine does and how it is used. -The file sofa_pn.pdf describes the SOFA tools for precession-nutation -and other aspects of Earth attitude and includes example code and (see -the appendix) diagrams showing the interrelationships between the -routines supporting the latest (IAU 2006/2000A) models. Four other -documents introduce time scale transformations (sofa_ts_f.pdf and -sofa_ts_c.pdf for Fortran and C users respectively) and astrometric -transformations (sofa_ast_f.pdf and sofa_ast_c.pdf). +The files sofa_pn_f.pdf and sofa_pn_c.pdf (for Fortran and C users +respectively) describe the SOFA tools for precession-nutation +and other aspects of Earth attitude, and include example code and, +in an appendix, diagrams showing the interrelationships between the +routines supporting the latest (IAU 2006/2000A) models. Two other pairs +of documents introduce time scale transformations (sofa_ts_f.pdf and +sofa_ts_c.pdf ) and astrometric transformations (sofa_ast_f.pdf and +sofa_ast_c.pdf). PROGRAMMING LANGUAGES AND STANDARDS diff --git a/sofa/20160503/c/doc/intro.pdf b/sofa/20160503/c/doc/intro.pdf new file mode 100644 index 00000000..06a8b357 Binary files /dev/null and b/sofa/20160503/c/doc/intro.pdf differ diff --git a/sofa/20150209_a/c/doc/manual.lis b/sofa/20160503/c/doc/manual.lis similarity index 92% rename from sofa/20150209_a/c/doc/manual.lis rename to sofa/20160503/c/doc/manual.lis index 1e305043..c811842e 100644 --- a/sofa/20150209_a/c/doc/manual.lis +++ b/sofa/20160503/c/doc/manual.lis @@ -53,9 +53,9 @@ - Release 11 + Release 12 - 2015 February 09 + 2016 April 1 contents.lis 2008 October 8 @@ -83,7 +83,7 @@ contents.lis 2008 October 8 A3 SOFA Board membership -intro.lis 2015 January 29 +intro.lis 2016 March 14 ------------------------------- @@ -94,7 +94,7 @@ intro.lis 2015 January 29 SOFA stands for "Standards Of Fundamental Astronomy". The SOFA software libraries are a collection of subprograms, in source- code form, which implement official IAU algorithms for fundamental- - astronomy computations. The subprograms at present comprise 166 + astronomy computations. The subprograms at present comprise 176 "astronomy" routines supported by 55 "vector/matrix" routines, available in both Fortran77 and C implementations. @@ -159,7 +159,7 @@ SCOPE The routines currently available are listed in the next two chapters of this document. -The "astronomy" library comprises 164 routines (plus one obsolete +The "astronomy" library comprises 176 routines (plus one obsolete Fortran routine that now appears under a revised name). The areas addressed include calendars, astrometry, time scales, Earth rotation, ephemerides, precession-nutation, star catalog transformations, @@ -211,13 +211,14 @@ At present there is little free-standing documentation about individual routines. However, each routine has preamble comments which specify in detail what the routine does and how it is used. -The file sofa_pn.pdf describes the SOFA tools for precession-nutation -and other aspects of Earth attitude and includes example code and (see -the appendix) diagrams showing the interrelationships between the -routines supporting the latest (IAU 2006/2000A) models. Four other -documents introduce time scale transformations (sofa_ts_f.pdf and -sofa_ts_c.pdf for Fortran and C users respectively) and astrometric -transformations (sofa_ast_f.pdf and sofa_ast_c.pdf). +The files sofa_pn_f.pdf and sofa_pn_c.pdf (for Fortran and C users +respectively) describe the SOFA tools for precession-nutation +and other aspects of Earth attitude, and include example code and, +in an appendix, diagrams showing the interrelationships between the +routines supporting the latest (IAU 2006/2000A) models. Two other pairs +of documents introduce time scale transformations (sofa_ts_f.pdf and +sofa_ts_c.pdf ) and astrometric transformations (sofa_ast_f.pdf and +sofa_ast_c.pdf). PROGRAMMING LANGUAGES AND STANDARDS @@ -297,7 +298,7 @@ Resources for operating the SOFA Center are provided by Her Majesty's Nautical Almanac Office, operated by the United Kingdom Hydrographic Office. -sofa_lib.lis 2015 January 30 +sofa_lib.lis 2016 March 10 ---------------------- SOFA Astronomy Library @@ -486,6 +487,10 @@ ROUTINES EORS equation of the origins, given NPB matrix and s FW2M Fukushima-Williams angles to r-matrix FW2XY Fukushima-Williams angles to X,Y + LTP long-term precession matrix + LTPB long-term precession matrix, including ICRS frame bias + LTPECL long-term precession of the ecliptic + LTPEQU long-term precession of the equator NUM00A nutation matrix, IAU 2000A NUM00B nutation matrix, IAU 2000B NUM06A nutation matrix, IAU 2006/2000A @@ -551,6 +556,15 @@ ROUTINES H2FK5 transform Hipparcos star data into the FK5 system HFK5Z Hipparcos to FK5 assuming zero Hipparcos proper motion + Ecliptic coordinates + + ECEQ06 ecliptic to ICRS, IAU 2006 + ECM06 rotation matrix, ICRS to ecliptic, IAU 2006 + EQEC06 ICRS to ecliptic, IAU 2006 + LTECEQ ecliptic to ICRS, long term + LTECM rotation matrix, ICRS to ecliptic, long-term + LTEQEC ICRS to ecliptic, long term + Galactic coordinates G2ICRS transform IAU 1958 galactic coordinates to ICRS @@ -632,6 +646,8 @@ CALLS: FORTRAN VERSION CALL iau_DAT ( IY, IM, ID, FD, DELTAT, J ) D = iau_DTDB ( DATE1, DATE2, UT, ELONG, U, V ) CALL iau_DTF2D ( SCALE, IY, IM, ID, IHR, IMN, SEC, D1, D2, J ) + CALL iau_ECEQ06 ( DATE1, DATE2, DL, DB, DR, DD ) + CALL iau_ECM06 ( DATE1, DATE2, RM ); D = iau_EE00 ( DATE1, DATE2, EPSA, DPSI ) D = iau_EE00A ( DATE1, DATE2 ) D = iau_EE00B ( DATE1, DATE2 ) @@ -645,6 +661,7 @@ CALLS: FORTRAN VERSION D = iau_EPJ ( DJ1, DJ2 ) CALL iau_EPJ2JD ( EPJ, DJM0, DJM ) CALL iau_EPV00 ( DJ1, DJ2, PVH, PVB, J ) + CALL iau_EQEC06 ( DATE1, DATE2, DR, DD, DL, DB ) D = iau_EQEQ94 ( DATE1, DATE2 ) D = iau_ERA00 ( DJ1, DJ2 ) D = iau_FAD03 ( T ) @@ -689,6 +706,13 @@ CALLS: FORTRAN VERSION CALL iau_LD ( BM, P, Q, E, EM, DLIM, P1 ) CALL iau_LDN ( N, B, OB, SC, SN ) CALL iau_LDSUN ( P, E, EM, P1 ) + CALL iau_LTECEQ ( EPJ, DL, DB, DR, DD ) + CALL iau_LTECM ( EPJ, RM] ) + CALL iau_LTEQEC ( EPJ, DR, DD, DL, DB ) + CALL iau_LTP ( EPJ, RP ) + CALL iau_LTPB ( EPJ, RPB ) + CALL iau_LTPECL ( EPJ, VEC ) + CALL iau_LTPEQU ( EPJ, VEQ ) CALL iau_NUM00A ( DATE1, DATE2, RMATN ) CALL iau_NUM00B ( DATE1, DATE2, RMATN ) CALL iau_NUM06A ( DATE1, DATE2, RMATN ) @@ -827,6 +851,8 @@ CALLS: C VERSION i = iauDat ( iy, im, id, fd, &deltat ); d = iauDtdb ( date1, date2, ut, elong, u, v ); i = iauDtf2d ( scale, iy, im, id, ihr, imn, sec, &d1, &d2 ); + iauEceq06 ( date1, date2, dl, db, &dr, &dd ); + iauEcm06 ( date1, date2, rm ); d = iauEe00 ( date1, date2, epsa, dpsi ); d = iauEe00a ( date1, date2 ); d = iauEe00b ( date1, date2 ); @@ -840,6 +866,7 @@ CALLS: C VERSION d = iauEpj ( dj1, dj2 ); iauEpj2jd ( epj, &djm0, &djm ); i = iauEpv00 ( dj1, dj2, pvh, pvb ); + iauEqec06 ( date1, date2, dr, dd, &dl, &db ); d = iauEqeq94 ( date1, date2 ); d = iauEra00 ( dj1, dj2 ); d = iauFad03 ( t ); @@ -885,6 +912,13 @@ CALLS: C VERSION iauLd ( bm, p, q, e, em, dlim, p1 ); iauLdn ( n, b, ob, sc, sn ); iauLdsun ( p, e, em, p1 ); + iauLteceq ( epj, dl, db, &dr, &dd ); + iauLtecm ( epj, rm ); + iauLteqec ( epj, dr, dd, &dl, &db ); + iauLtp ( epj, rp ); + iauLtpb ( epj, rpb ); + iauLtpecl ( epj, vec ); + iauLtpequ ( epj, veq ); iauNum00a ( date1, date2, rmatn ); iauNum00b ( date1, date2, rmatn ); iauNum06a ( date1, date2, rmatn ); @@ -3279,6 +3313,7 @@ void iauAtciqn(double rc, double dc, double pr, double pd, ** star-independent parameters can be obtained by calling one of the ** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. ** +** ** If the only light-deflecting body to be taken into account is the ** Sun, the iauAtciq function can be used instead. If in addition the ** parallax and proper motions are zero, the iauAtciqz function can be @@ -3597,7 +3632,7 @@ int iauAtco13(double rc, double dc, ** Called: ** iauApco13 astrometry parameters, ICRS-observed, 2013 ** iauAtciq quick ICRS to CIRS -** iauAtioq quick ICRS to observed +** iauAtioq quick CIRS to observed ** */ @@ -3994,7 +4029,7 @@ int iauAtio13(double ri, double di, ** ** Called: ** iauApio13 astrometry parameters, CIRS-observed, 2013 -** iauAtioq quick ICRS to observed +** iauAtioq quick CIRS to observed ** */ @@ -6390,6 +6425,136 @@ int iauDtf2d(const char *scale, int iy, int im, int id, +void iauEceq06(double date1, double date2, double dl, double db, + double *dr, double *dd) +/* +** - - - - - - - - - - +** i a u E c e q 0 6 +** - - - - - - - - - - +** +** Transformation from ecliptic coordinates (mean equinox and ecliptic +** of date) to ICRS RA,Dec, using the IAU 2006 precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** dl,db double ecliptic longitude and latitude (radians) +** +** Returned: +** dr,dd double ICRS right ascension and declination (radians) +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 3) The transformation is approximately that from ecliptic longitude +** and latitude (mean equinox and ecliptic of date) to mean J2000.0 +** right ascension and declination, with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 +** iauTrxp product of transpose of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +*/ + + + +void iauEcm06(double date1, double date2, double rm[3][3]) +/* +** - - - - - - - - - +** i a u E c m 0 6 +** - - - - - - - - - +** +** ICRS equatorial to ecliptic rotation matrix, IAU 2006. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** +** Returned: +** rm double[3][3] ICRS to ecliptic rotation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 1) The matrix is in the sense +** +** E_ep = rm x P_ICRS, +** +** where P_ICRS is a vector with respect to ICRS right ascension +** and declination axes and E_ep is the same vector with respect to +** the (inertial) ecliptic and equinox of date. +** +** 2) P_ICRS is a free vector, merely a direction, typically of unit +** magnitude, and not bound to any particular spatial origin, such +** as the Earth, Sun or SSB. No assumptions are made about whether +** it represents starlight and embodies astrometric effects such as +** parallax or aberration. The transformation is approximately that +** between mean J2000.0 right ascension and declination and ecliptic +** longitude and latitude, with only frame bias (always less than +** 25 mas) to disturb this classical picture. +** +** Called: +** iauObl06 mean obliquity, IAU 2006 +** iauPmat06 PB matrix, IAU 2006 +** iauIr initialize r-matrix to identity +** iauRx rotate around X-axis +** iauRxr product of two r-matrices +** +*/ + + + double iauEe00(double date1, double date2, double epsa, double dpsi) /* ** - - - - - - - - @@ -7170,6 +7335,69 @@ int iauEpv00(double date1, double date2, +void iauEqec06(double date1, double date2, double dr, double dd, + double *dl, double *db) +/* +** - - - - - - - - - - +** i a u E q e c 0 6 +** - - - - - - - - - - +** +** Transformation from ICRS equatorial coordinates to ecliptic +** coordinates (mean equinox and ecliptic of date) using IAU 2006 +** precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** dr,dd double ICRS right ascension and declination (radians) +** +** Returned: +** dl,db double ecliptic longitude and latitude (radians) +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 3) The transformation is approximately that from mean J2000.0 right +** ascension and declination to ecliptic longitude and latitude +** (mean equinox and ecliptic of date), with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 +** iauRxp product of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +*/ + + + double iauEqeq94(double date1, double date2) /* ** - - - - - - - - - - @@ -9671,412 +9899,408 @@ void iauLdsun(double p[3], double e[3], double em, double p1[3]) -void iauNum00a(double date1, double date2, double rmatn[3][3]) +void iauLteceq(double epj, double dl, double db, double *dr, double *dd) /* ** - - - - - - - - - - -** i a u N u m 0 0 a +** i a u L t e c e q ** - - - - - - - - - - ** -** Form the matrix of nutation for a given date, IAU 2000A model. +** Transformation from ecliptic coordinates (mean equinox and ecliptic +** of date) to ICRS RA,Dec, using a long-term precession model. ** ** This function is part of the International Astronomical Union's -** SOFA (Standards Of Fundamental Astronomy) software collection. +** SOFA (Standards of Fundamental Astronomy) software collection. ** ** Status: support function. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** epj double Julian epoch (TT) +** dl,db double ecliptic longitude and latitude (radians) ** ** Returned: -** rmatn double[3][3] nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) +** dr,dd double ICRS right ascension and declination (radians) ** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. +** 1) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. ** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where -** the p-vector V(true) is with respect to the true equatorial triad -** of date and the p-vector V(mean) is with respect to the mean -** equatorial triad of date. +** 2) The transformation is approximately that from ecliptic longitude +** and latitude (mean equinox and ecliptic of date) to mean J2000.0 +** right ascension and declination, with only frame bias (always +** less than 25 mas) to disturb this classical picture. ** -** 3) A faster, but slightly less accurate result (about 1 mas), can be -** obtained by using instead the iauNum00b function. +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. ** ** Called: -** iauPn00a bias/precession/nutation, IAU 2000A +** iauS2c spherical coordinates to unit vector +** iauLtecm J2000.0 to ecliptic rotation matrix, long term +** iauTrxp product of transpose of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi ** -** Reference: +** References: ** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 ** */ -void iauNum00b(double date1, double date2, double rmatn[3][3]) +void iauLtecm(double epj, double rm[3][3]) /* -** - - - - - - - - - - -** i a u N u m 0 0 b -** - - - - - - - - - - +** - - - - - - - - - +** i a u L t e c m +** - - - - - - - - - ** -** Form the matrix of nutation for a given date, IAU 2000B model. +** ICRS equatorial to ecliptic rotation matrix, long-term. ** ** This function is part of the International Astronomical Union's -** SOFA (Standards Of Fundamental Astronomy) software collection. +** SOFA (Standards of Fundamental Astronomy) software collection. ** ** Status: support function. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** epj double Julian epoch (TT) ** ** Returned: -** rmatn double[3][3] nutation matrix +** rm double[3][3] ICRS to ecliptic rotation matrix ** ** Notes: ** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 +** 1) The matrix is in the sense ** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) +** E_ep = rm x P_ICRS, ** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. +** where P_ICRS is a vector with respect to ICRS right ascension +** and declination axes and E_ep is the same vector with respect to +** the (inertial) ecliptic and equinox of epoch epj. ** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where -** the p-vector V(true) is with respect to the true equatorial triad -** of date and the p-vector V(mean) is with respect to the mean -** equatorial triad of date. +** 2) P_ICRS is a free vector, merely a direction, typically of unit +** magnitude, and not bound to any particular spatial origin, such +** as the Earth, Sun or SSB. No assumptions are made about whether +** it represents starlight and embodies astrometric effects such as +** parallax or aberration. The transformation is approximately that +** between mean J2000.0 right ascension and declination and ecliptic +** longitude and latitude, with only frame bias (always less than +** 25 mas) to disturb this classical picture. ** -** 3) The present function is faster, but slightly less accurate (about -** 1 mas), than the iauNum00a function. +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. ** ** Called: -** iauPn00b bias/precession/nutation, IAU 2000B +** iauLtpequ equator pole, long term +** iauLtpecl ecliptic pole, long term +** iauPxp vector product +** iauPn normalize vector ** -** Reference: +** References: ** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 ** */ -void iauNum06a(double date1, double date2, double rmatn[3][3]) +void iauLteqec(double epj, double dr, double dd, double *dl, double *db) /* ** - - - - - - - - - - -** i a u N u m 0 6 a +** i a u L t e q e c ** - - - - - - - - - - ** -** Form the matrix of nutation for a given date, IAU 2006/2000A model. +** Transformation from ICRS equatorial coordinates to ecliptic +** coordinates (mean equinox and ecliptic of date) using a long-term +** precession model. ** ** This function is part of the International Astronomical Union's -** SOFA (Standards Of Fundamental Astronomy) software collection. +** SOFA (Standards of Fundamental Astronomy) software collection. ** ** Status: support function. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** epj double Julian epoch (TT) +** dr,dd double ICRS right ascension and declination (radians) ** ** Returned: -** rmatn double[3][3] nutation matrix +** dl,db double ecliptic longitude and latitude (radians) ** -** Notes: +** 1) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. ** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: +** 2) The transformation is approximately that from mean J2000.0 right +** ascension and declination to ecliptic longitude and latitude +** (mean equinox and ecliptic of date), with only frame bias (always +** less than 25 mas) to disturb this classical picture. ** -** date1 date2 +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. ** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) +** Called: +** iauS2c spherical coordinates to unit vector +** iauLtecm J2000.0 to ecliptic rotation matrix, long term +** iauRxp product of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi ** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. +** References: ** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where -** the p-vector V(true) is with respect to the true equatorial triad -** of date and the p-vector V(mean) is with respect to the mean -** equatorial triad of date. -** -** Called: -** iauObl06 mean obliquity, IAU 2006 -** iauNut06a nutation, IAU 2006/2000A -** iauNumat form nutation matrix -** -** Reference: +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 ** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 ** */ -void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]) +void iauLtp(double epj, double rp[3][3]) /* -** - - - - - - - - - -** i a u N u m a t -** - - - - - - - - - +** - - - - - - - +** i a u L t p +** - - - - - - - ** -** Form the matrix of nutation. +** Long-term precession matrix. ** ** This function is part of the International Astronomical Union's -** SOFA (Standards Of Fundamental Astronomy) software collection. +** SOFA (Standards of Fundamental Astronomy) software collection. ** ** Status: support function. ** ** Given: -** epsa double mean obliquity of date (Note 1) -** dpsi,deps double nutation (Note 2) +** epj double Julian epoch (TT) ** ** Returned: -** rmatn double[3][3] nutation matrix (Note 3) +** rp double[3][3] precession matrix, J2000.0 to date ** ** Notes: ** -** 1) The supplied mean obliquity epsa, must be consistent with the -** precession-nutation models from which dpsi and deps were obtained. +** 1) The matrix is in the sense ** -** 2) The caller is responsible for providing the nutation components; -** they are in longitude and obliquity, in radians and are with -** respect to the equinox and ecliptic of date. +** P_date = rp x P_J2000, ** -** 3) The matrix operates in the sense V(true) = rmatn * V(mean), -** where the p-vector V(true) is with respect to the true -** equatorial triad of date and the p-vector V(mean) is with -** respect to the mean equatorial triad of date. +** where P_J2000 is a vector with respect to the J2000.0 mean +** equator and equinox and P_date is the same vector with respect to +** the equator and equinox of epoch epj. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. ** ** Called: -** iauIr initialize r-matrix to identity -** iauRx rotate around X-axis -** iauRz rotate around Z-axis +** iauLtpequ equator pole, long term +** iauLtpecl ecliptic pole, long term +** iauPxp vector product +** iauPn normalize vector ** -** Reference: +** References: ** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 ** */ -void iauNut00a(double date1, double date2, double *dpsi, double *deps) +void iauLtpb(double epj, double rpb[3][3]) /* -** - - - - - - - - - - -** i a u N u t 0 0 a -** - - - - - - - - - - +** - - - - - - - - +** i a u L t p b +** - - - - - - - - ** -** Nutation, IAU 2000A model (MHB2000 luni-solar and planetary nutation -** with free core nutation omitted). +** Long-term precession matrix, including ICRS frame bias. ** ** This function is part of the International Astronomical Union's -** SOFA (Standards Of Fundamental Astronomy) software collection. +** SOFA (Standards of Fundamental Astronomy) software collection. ** -** Status: canonical model. +** Status: support function. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** epj double Julian epoch (TT) ** ** Returned: -** dpsi,deps double nutation, luni-solar + planetary (Note 2) +** rpb double[3][3] precession-bias matrix, J2000.0 to date ** ** Notes: ** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: +** 1) The matrix is in the sense ** -** date1 date2 +** P_date = rpb x P_ICRS, ** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) +** where P_ICRS is a vector in the Geocentric Celestial Reference +** System, and P_date is the vector with respect to the Celestial +** Intermediate Reference System at that date but with nutation +** neglected. ** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. +** 2) A first order frame bias formulation is used, of sub- +** microarcsecond accuracy compared with a full 3D rotation. ** -** 2) The nutation components in longitude and obliquity are in radians -** and with respect to the equinox and ecliptic of date. The -** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) -** value of 84381.448 arcsec. +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. ** -** Both the luni-solar and planetary nutations are included. The -** latter are due to direct planetary nutations and the -** perturbations of the lunar and terrestrial orbits. +** References: ** -** 3) The function computes the MHB2000 nutation series with the -** associated corrections for planetary nutations. It is an -** implementation of the nutation part of the IAU 2000A precession- -** nutation model, formally adopted by the IAU General Assembly in -** 2000, namely MHB2000 (Mathews et al. 2002), but with the free -** core nutation (FCN - see Note 4) omitted. +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 ** -** 4) The full MHB2000 model also contains contributions to the -** nutations in longitude and obliquity due to the free-excitation -** of the free-core-nutation during the period 1979-2000. These FCN -** terms, which are time-dependent and unpredictable, are NOT -** included in the present function and, if required, must be -** independently computed. With the FCN corrections included, the -** present function delivers a pole which is at current epochs -** accurate to a few hundred microarcseconds. The omission of FCN -** introduces further errors of about that size. +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 ** -** 5) The present function provides classical nutation. The MHB2000 -** algorithm, from which it is adapted, deals also with (i) the -** offsets between the GCRS and mean poles and (ii) the adjustments -** in longitude and obliquity due to the changed precession rates. -** These additional functions, namely frame bias and precession -** adjustments, are supported by the SOFA functions iauBi00 and -** iauPr00. +*/ + + + +void iauLtpecl(double epj, double vec[3]) +/* +** - - - - - - - - - - +** i a u L t p e c l +** - - - - - - - - - - ** -** 6) The MHB2000 algorithm also provides "total" nutations, comprising -** the arithmetic sum of the frame bias, precession adjustments, -** luni-solar nutation and planetary nutation. These total -** nutations can be used in combination with an existing IAU 1976 -** precession implementation, such as iauPmat76, to deliver GCRS- -** to-true predictions of sub-mas accuracy at current dates. -** However, there are three shortcomings in the MHB2000 model that -** must be taken into account if more accurate or definitive results -** are required (see Wallace 2002): +** Long-term precession of the ecliptic. ** -** (i) The MHB2000 total nutations are simply arithmetic sums, -** yet in reality the various components are successive Euler -** rotations. This slight lack of rigor leads to cross terms -** that exceed 1 mas after a century. The rigorous procedure -** is to form the GCRS-to-true rotation matrix by applying the -** bias, precession and nutation in that order. +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. ** -** (ii) Although the precession adjustments are stated to be with -** respect to Lieske et al. (1977), the MHB2000 model does -** not specify which set of Euler angles are to be used and -** how the adjustments are to be applied. The most literal -** and straightforward procedure is to adopt the 4-rotation -** epsilon_0, psi_A, omega_A, xi_A option, and to add DPSIPR -** to psi_A and DEPSPR to both omega_A and eps_A. +** Status: support function. ** -** (iii) The MHB2000 model predates the determination by Chapront -** et al. (2002) of a 14.6 mas displacement between the -** J2000.0 mean equinox and the origin of the ICRS frame. It -** should, however, be noted that neglecting this displacement -** when calculating star coordinates does not lead to a -** 14.6 mas change in right ascension, only a small second- -** order distortion in the pattern of the precession-nutation -** effect. +** Given: +** epj double Julian epoch (TT) ** -** For these reasons, the SOFA functions do not generate the "total -** nutations" directly, though they can of course easily be -** generated by calling iauBi00, iauPr00 and the present function -** and adding the results. +** Returned: +** vec double[3] ecliptic pole unit vector ** -** 7) The MHB2000 model contains 41 instances where the same frequency -** appears multiple times, of which 38 are duplicates and three are -** triplicates. To keep the present code close to the original MHB -** algorithm, this small inefficiency has not been corrected. +** Notes: ** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFaf03 mean argument of the latitude of the Moon -** iauFaom03 mean longitude of the Moon's ascending node -** iauFame03 mean longitude of Mercury -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFama03 mean longitude of Mars -** iauFaju03 mean longitude of Jupiter -** iauFasa03 mean longitude of Saturn -** iauFaur03 mean longitude of Uranus -** iauFapa03 general accumulated precession in longitude +** 1) The returned vector is with respect to the J2000.0 mean equator +** and equinox. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. ** ** References: ** -** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, -** Astron.Astrophys. 387, 700 +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 ** -** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, -** Astron.Astrophys. 58, 1-16 +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 ** -** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. -** 107, B4. The MHB_2000 code itself was obtained on 9th September -** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. +*/ + + + +void iauLtpequ(double epj, double veq[3]) +/* +** - - - - - - - - - - +** i a u L t p e q u +** - - - - - - - - - - ** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** Long-term precession of the equator. ** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. ** -** Wallace, P.T., "Software for Implementing the IAU 2000 -** Resolutions", in IERS Workshop 5.1 (2002) +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** veq double[3] equator pole unit vector +** +** Notes: +** +** 1) The returned vector is with respect to the J2000.0 mean equator +** and equinox. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 ** */ -void iauNut00b(double date1, double date2, double *dpsi, double *deps) +void iauNum00a(double date1, double date2, double rmatn[3][3]) /* ** - - - - - - - - - - -** i a u N u t 0 0 b +** i a u N u m 0 0 a ** - - - - - - - - - - ** -** Nutation, IAU 2000B model. +** Form the matrix of nutation for a given date, IAU 2000A model. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** Status: canonical model. +** Status: support function. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** ** Returned: -** dpsi,deps double nutation, luni-solar + planetary (Note 2) +** rmatn double[3][3] nutation matrix ** ** Notes: ** @@ -10099,191 +10323,45 @@ void iauNut00b(double date1, double date2, double *dpsi, double *deps) ** optimum resolution. The MJD method and the date & time methods ** are both good compromises between resolution and convenience. ** -** 2) The nutation components in longitude and obliquity are in radians -** and with respect to the equinox and ecliptic of date. The -** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) -** value of 84381.448 arcsec. (The errors that result from using -** this function with the IAU 2006 value of 84381.406 arcsec can be -** neglected.) +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where +** the p-vector V(true) is with respect to the true equatorial triad +** of date and the p-vector V(mean) is with respect to the mean +** equatorial triad of date. ** -** The nutation model consists only of luni-solar terms, but -** includes also a fixed offset which compensates for certain long- -** period planetary terms (Note 7). +** 3) A faster, but slightly less accurate result (about 1 mas), can be +** obtained by using instead the iauNum00b function. ** -** 3) This function is an implementation of the IAU 2000B abridged -** nutation model formally adopted by the IAU General Assembly in -** 2000. The function computes the MHB_2000_SHORT luni-solar -** nutation series (Luzum 2001), but without the associated -** corrections for the precession rate adjustments and the offset -** between the GCRS and J2000.0 mean poles. +** Called: +** iauPn00a bias/precession/nutation, IAU 2000A ** -** 4) The full IAU 2000A (MHB2000) nutation model contains nearly 1400 -** terms. The IAU 2000B model (McCarthy & Luzum 2003) contains only -** 77 terms, plus additional simplifications, yet still delivers -** results of 1 mas accuracy at present epochs. This combination of -** accuracy and size makes the IAU 2000B abridged nutation model -** suitable for most practical applications. +** Reference: ** -** The function delivers a pole accurate to 1 mas from 1900 to 2100 -** (usually better than 1 mas, very occasionally just outside -** 1 mas). The full IAU 2000A model, which is implemented in the -** function iauNut00a (q.v.), delivers considerably greater accuracy -** at current dates; however, to realize this improved accuracy, -** corrections for the essentially unpredictable free-core-nutation -** (FCN) must also be included. -** -** 5) The present function provides classical nutation. The -** MHB_2000_SHORT algorithm, from which it is adapted, deals also -** with (i) the offsets between the GCRS and mean poles and (ii) the -** adjustments in longitude and obliquity due to the changed -** precession rates. These additional functions, namely frame bias -** and precession adjustments, are supported by the SOFA functions -** iauBi00 and iauPr00. -** -** 6) The MHB_2000_SHORT algorithm also provides "total" nutations, -** comprising the arithmetic sum of the frame bias, precession -** adjustments, and nutation (luni-solar + planetary). These total -** nutations can be used in combination with an existing IAU 1976 -** precession implementation, such as iauPmat76, to deliver GCRS- -** to-true predictions of mas accuracy at current epochs. However, -** for symmetry with the iauNut00a function (q.v. for the reasons), -** the SOFA functions do not generate the "total nutations" -** directly. Should they be required, they could of course easily -** be generated by calling iauBi00, iauPr00 and the present function -** and adding the results. -** -** 7) The IAU 2000B model includes "planetary bias" terms that are -** fixed in size but compensate for long-period nutations. The -** amplitudes quoted in McCarthy & Luzum (2003), namely -** Dpsi = -1.5835 mas and Depsilon = +1.6339 mas, are optimized for -** the "total nutations" method described in Note 6. The Luzum -** (2001) values used in this SOFA implementation, namely -0.135 mas -** and +0.388 mas, are optimized for the "rigorous" method, where -** frame bias, precession and nutation are applied separately and in -** that order. During the interval 1995-2050, the SOFA -** implementation delivers a maximum error of 1.001 mas (not -** including FCN). -** -** References: -** -** Lieske, J.H., Lederle, T., Fricke, W., Morando, B., "Expressions -** for the precession quantities based upon the IAU /1976/ system of -** astronomical constants", Astron.Astrophys. 58, 1-2, 1-16. (1977) -** -** Luzum, B., private communication, 2001 (Fortran code -** MHB_2000_SHORT) -** -** McCarthy, D.D. & Luzum, B.J., "An abridged model of the -** precession-nutation of the celestial pole", Cel.Mech.Dyn.Astron. -** 85, 37-49 (2003) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J., Astron.Astrophys. 282, 663-683 (1994) +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). ** */ -void iauNut06a(double date1, double date2, double *dpsi, double *deps) +void iauNum00b(double date1, double date2, double rmatn[3][3]) /* ** - - - - - - - - - - -** i a u N u t 0 6 a +** i a u N u m 0 0 b ** - - - - - - - - - - ** -** IAU 2000A nutation with adjustments to match the IAU 2006 -** precession. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation, luni-solar + planetary (Note 2) -** -** Status: canonical model. -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components in longitude and obliquity are in radians -** and with respect to the mean equinox and ecliptic of date, -** IAU 2006 precession model (Hilton et al. 2006, Capitaine et al. -** 2005). -** -** 3) The function first computes the IAU 2000A nutation, then applies -** adjustments for (i) the consequences of the change in obliquity -** from the IAU 1980 ecliptic to the IAU 2006 ecliptic and (ii) the -** secular variation in the Earth's dynamical form factor J2. -** -** 4) The present function provides classical nutation, complementing -** the IAU 2000 frame bias and IAU 2006 precession. It delivers a -** pole which is at current epochs accurate to a few tens of -** microarcseconds, apart from the free core nutation. -** -** Called: -** iauNut00a nutation, IAU 2000A -** -** References: -** -** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, -** Astron.Astrophys. 387, 700 -** -** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, -** Astron.Astrophys. 58, 1-16 -** -** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. -** 107, B4. The MHB_2000 code itself was obtained on 9th September -** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** Wallace, P.T., "Software for Implementing the IAU 2000 -** Resolutions", in IERS Workshop 5.1 (2002) -** -*/ - - - -void iauNut80(double date1, double date2, double *dpsi, double *deps) -/* -** - - - - - - - - - -** i a u N u t 8 0 -** - - - - - - - - - -** -** Nutation, IAU 1980 model. +** Form the matrix of nutation for a given date, IAU 2000B model. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** Status: canonical model. +** Status: support function. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** ** Returned: -** dpsi double nutation in longitude (radians) -** deps double nutation in obliquity (radians) +** rmatn double[3][3] nutation matrix ** ** Notes: ** @@ -10306,29 +10384,34 @@ void iauNut80(double date1, double date2, double *dpsi, double *deps) ** optimum resolution. The MJD method and the date & time methods ** are both good compromises between resolution and convenience. ** -** 2) The nutation components are with respect to the ecliptic of -** date. +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where +** the p-vector V(true) is with respect to the true equatorial triad +** of date and the p-vector V(mean) is with respect to the mean +** equatorial triad of date. +** +** 3) The present function is faster, but slightly less accurate (about +** 1 mas), than the iauNum00a function. ** ** Called: -** iauAnpm normalize angle into range +/- pi +** iauPn00b bias/precession/nutation, IAU 2000B ** ** Reference: ** ** Explanatory Supplement to the Astronomical Almanac, ** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222 (p111). +** Section 3.222-3 (p114). ** */ -void iauNutm80(double date1, double date2, double rmatn[3][3]) +void iauNum06a(double date1, double date2, double rmatn[3][3]) /* ** - - - - - - - - - - -** i a u N u t m 8 0 +** i a u N u m 0 6 a ** - - - - - - - - - - ** -** Form the matrix of nutation for a given date, IAU 1980 model. +** Form the matrix of nutation for a given date, IAU 2006/2000A model. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. @@ -10336,10 +10419,10 @@ void iauNutm80(double date1, double date2, double rmatn[3][3]) ** Status: support function. ** ** Given: -** date1,date2 double TDB date (Note 1) +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** ** Returned: -** rmatn double[3][3] nutation matrix +** rmatn double[3][3] nutation matrix ** ** Notes: ** @@ -10362,78 +10445,84 @@ void iauNutm80(double date1, double date2, double rmatn[3][3]) ** optimum resolution. The MJD method and the date & time methods ** are both good compromises between resolution and convenience. ** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), -** where the p-vector V(true) is with respect to the true -** equatorial triad of date and the p-vector V(mean) is with -** respect to the mean equatorial triad of date. +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where +** the p-vector V(true) is with respect to the true equatorial triad +** of date and the p-vector V(mean) is with respect to the mean +** equatorial triad of date. ** ** Called: -** iauNut80 nutation, IAU 1980 -** iauObl80 mean obliquity, IAU 1980 +** iauObl06 mean obliquity, IAU 2006 +** iauNut06a nutation, IAU 2006/2000A ** iauNumat form nutation matrix ** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). +** */ -double iauObl06(double date1, double date2) +void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]) /* ** - - - - - - - - - -** i a u O b l 0 6 +** i a u N u m a t ** - - - - - - - - - ** -** Mean obliquity of the ecliptic, IAU 2006 precession model. +** Form the matrix of nutation. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** Status: canonical model. +** Status: support function. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** epsa double mean obliquity of date (Note 1) +** dpsi,deps double nutation (Note 2) ** -** Returned (function value): -** double obliquity of the ecliptic (radians, Note 2) +** Returned: +** rmatn double[3][3] nutation matrix (Note 3) ** ** Notes: ** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: ** -** date1 date2 +** 1) The supplied mean obliquity epsa, must be consistent with the +** precession-nutation models from which dpsi and deps were obtained. ** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) +** 2) The caller is responsible for providing the nutation components; +** they are in longitude and obliquity, in radians and are with +** respect to the equinox and ecliptic of date. ** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. +** 3) The matrix operates in the sense V(true) = rmatn * V(mean), +** where the p-vector V(true) is with respect to the true +** equatorial triad of date and the p-vector V(mean) is with +** respect to the mean equatorial triad of date. ** -** 2) The result is the angle between the ecliptic and mean equator of -** date date1+date2. +** Called: +** iauIr initialize r-matrix to identity +** iauRx rotate around X-axis +** iauRz rotate around Z-axis ** ** Reference: ** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). ** */ -double iauObl80(double date1, double date2) +void iauNut00a(double date1, double date2, double *dpsi, double *deps) /* -** - - - - - - - - - -** i a u O b l 8 0 -** - - - - - - - - - +** - - - - - - - - - - +** i a u N u t 0 0 a +** - - - - - - - - - - ** -** Mean obliquity of the ecliptic, IAU 1980 model. +** Nutation, IAU 2000A model (MHB2000 luni-solar and planetary nutation +** with free core nutation omitted). ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. @@ -10441,10 +10530,10 @@ double iauObl80(double date1, double date2) ** Status: canonical model. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** -** Returned (function value): -** double obliquity of the ecliptic (radians, Note 2) +** Returned: +** dpsi,deps double nutation, luni-solar + planetary (Note 2) ** ** Notes: ** @@ -10467,57 +10556,140 @@ double iauObl80(double date1, double date2) ** optimum resolution. The MJD method and the date & time methods ** are both good compromises between resolution and convenience. ** -** 2) The result is the angle between the ecliptic and mean equator of -** date date1+date2. -** -** Reference: +** 2) The nutation components in longitude and obliquity are in radians +** and with respect to the equinox and ecliptic of date. The +** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) +** value of 84381.448 arcsec. ** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Expression 3.222-1 (p114). +** Both the luni-solar and planetary nutations are included. The +** latter are due to direct planetary nutations and the +** perturbations of the lunar and terrestrial orbits. +** +** 3) The function computes the MHB2000 nutation series with the +** associated corrections for planetary nutations. It is an +** implementation of the nutation part of the IAU 2000A precession- +** nutation model, formally adopted by the IAU General Assembly in +** 2000, namely MHB2000 (Mathews et al. 2002), but with the free +** core nutation (FCN - see Note 4) omitted. +** +** 4) The full MHB2000 model also contains contributions to the +** nutations in longitude and obliquity due to the free-excitation +** of the free-core-nutation during the period 1979-2000. These FCN +** terms, which are time-dependent and unpredictable, are NOT +** included in the present function and, if required, must be +** independently computed. With the FCN corrections included, the +** present function delivers a pole which is at current epochs +** accurate to a few hundred microarcseconds. The omission of FCN +** introduces further errors of about that size. +** +** 5) The present function provides classical nutation. The MHB2000 +** algorithm, from which it is adapted, deals also with (i) the +** offsets between the GCRS and mean poles and (ii) the adjustments +** in longitude and obliquity due to the changed precession rates. +** These additional functions, namely frame bias and precession +** adjustments, are supported by the SOFA functions iauBi00 and +** iauPr00. +** +** 6) The MHB2000 algorithm also provides "total" nutations, comprising +** the arithmetic sum of the frame bias, precession adjustments, +** luni-solar nutation and planetary nutation. These total +** nutations can be used in combination with an existing IAU 1976 +** precession implementation, such as iauPmat76, to deliver GCRS- +** to-true predictions of sub-mas accuracy at current dates. +** However, there are three shortcomings in the MHB2000 model that +** must be taken into account if more accurate or definitive results +** are required (see Wallace 2002): +** +** (i) The MHB2000 total nutations are simply arithmetic sums, +** yet in reality the various components are successive Euler +** rotations. This slight lack of rigor leads to cross terms +** that exceed 1 mas after a century. The rigorous procedure +** is to form the GCRS-to-true rotation matrix by applying the +** bias, precession and nutation in that order. +** +** (ii) Although the precession adjustments are stated to be with +** respect to Lieske et al. (1977), the MHB2000 model does +** not specify which set of Euler angles are to be used and +** how the adjustments are to be applied. The most literal +** and straightforward procedure is to adopt the 4-rotation +** epsilon_0, psi_A, omega_A, xi_A option, and to add DPSIPR +** to psi_A and DEPSPR to both omega_A and eps_A. +** +** (iii) The MHB2000 model predates the determination by Chapront +** et al. (2002) of a 14.6 mas displacement between the +** J2000.0 mean equinox and the origin of the ICRS frame. It +** should, however, be noted that neglecting this displacement +** when calculating star coordinates does not lead to a +** 14.6 mas change in right ascension, only a small second- +** order distortion in the pattern of the precession-nutation +** effect. +** +** For these reasons, the SOFA functions do not generate the "total +** nutations" directly, though they can of course easily be +** generated by calling iauBi00, iauPr00 and the present function +** and adding the results. +** +** 7) The MHB2000 model contains 41 instances where the same frequency +** appears multiple times, of which 38 are duplicates and three are +** triplicates. To keep the present code close to the original MHB +** algorithm, this small inefficiency has not been corrected. +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFaf03 mean argument of the latitude of the Moon +** iauFaom03 mean longitude of the Moon's ascending node +** iauFame03 mean longitude of Mercury +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFama03 mean longitude of Mars +** iauFaju03 mean longitude of Jupiter +** iauFasa03 mean longitude of Saturn +** iauFaur03 mean longitude of Uranus +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, +** Astron.Astrophys. 387, 700 +** +** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, +** Astron.Astrophys. 58, 1-16 +** +** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. +** 107, B4. The MHB_2000 code itself was obtained on 9th September +** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** Wallace, P.T., "Software for Implementing the IAU 2000 +** Resolutions", in IERS Workshop 5.1 (2002) ** */ -void iauP06e(double date1, double date2, - double *eps0, double *psia, double *oma, double *bpa, - double *bqa, double *pia, double *bpia, - double *epsa, double *chia, double *za, double *zetaa, - double *thetaa, double *pa, - double *gam, double *phi, double *psi) +void iauNut00b(double date1, double date2, double *dpsi, double *deps) /* -** - - - - - - - - -** i a u P 0 6 e -** - - - - - - - - +** - - - - - - - - - - +** i a u N u t 0 0 b +** - - - - - - - - - - ** -** Precession angles, IAU 2006, equinox based. +** Nutation, IAU 2000B model. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** Status: canonical models. +** Status: canonical model. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** -** Returned (see Note 2): -** eps0 double epsilon_0 -** psia double psi_A -** oma double omega_A -** bpa double P_A -** bqa double Q_A -** pia double pi_A -** bpia double Pi_A -** epsa double obliquity epsilon_A -** chia double chi_A -** za double z_A -** zetaa double zeta_A -** thetaa double theta_A -** pa double p_A -** gam double F-W angle gamma_J2000 -** phi double F-W angle phi_J2000 -** psi double F-W angle psi_J2000 +** Returned: +** dpsi,deps double nutation, luni-solar + planetary (Note 2) ** ** Notes: ** @@ -10540,228 +10712,236 @@ void iauP06e(double date1, double date2, ** optimum resolution. The MJD method and the date & time methods ** are both good compromises between resolution and convenience. ** -** 2) This function returns the set of equinox based angles for the -** Capitaine et al. "P03" precession theory, adopted by the IAU in -** 2006. The angles are set out in Table 1 of Hilton et al. (2006): +** 2) The nutation components in longitude and obliquity are in radians +** and with respect to the equinox and ecliptic of date. The +** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) +** value of 84381.448 arcsec. (The errors that result from using +** this function with the IAU 2006 value of 84381.406 arcsec can be +** neglected.) ** -** eps0 epsilon_0 obliquity at J2000.0 -** psia psi_A luni-solar precession -** oma omega_A inclination of equator wrt J2000.0 ecliptic -** bpa P_A ecliptic pole x, J2000.0 ecliptic triad -** bqa Q_A ecliptic pole -y, J2000.0 ecliptic triad -** pia pi_A angle between moving and J2000.0 ecliptics -** bpia Pi_A longitude of ascending node of the ecliptic -** epsa epsilon_A obliquity of the ecliptic -** chia chi_A planetary precession -** za z_A equatorial precession: -3rd 323 Euler angle -** zetaa zeta_A equatorial precession: -1st 323 Euler angle -** thetaa theta_A equatorial precession: 2nd 323 Euler angle -** pa p_A general precession -** gam gamma_J2000 J2000.0 RA difference of ecliptic poles -** phi phi_J2000 J2000.0 codeclination of ecliptic pole -** psi psi_J2000 longitude difference of equator poles, J2000.0 +** The nutation model consists only of luni-solar terms, but +** includes also a fixed offset which compensates for certain long- +** period planetary terms (Note 7). ** -** The returned values are all radians. +** 3) This function is an implementation of the IAU 2000B abridged +** nutation model formally adopted by the IAU General Assembly in +** 2000. The function computes the MHB_2000_SHORT luni-solar +** nutation series (Luzum 2001), but without the associated +** corrections for the precession rate adjustments and the offset +** between the GCRS and J2000.0 mean poles. ** -** 3) Hilton et al. (2006) Table 1 also contains angles that depend on -** models distinct from the P03 precession theory itself, namely the -** IAU 2000A frame bias and nutation. The quoted polynomials are -** used in other SOFA functions: +** 4) The full IAU 2000A (MHB2000) nutation model contains nearly 1400 +** terms. The IAU 2000B model (McCarthy & Luzum 2003) contains only +** 77 terms, plus additional simplifications, yet still delivers +** results of 1 mas accuracy at present epochs. This combination of +** accuracy and size makes the IAU 2000B abridged nutation model +** suitable for most practical applications. ** -** . iauXy06 contains the polynomial parts of the X and Y series. +** The function delivers a pole accurate to 1 mas from 1900 to 2100 +** (usually better than 1 mas, very occasionally just outside +** 1 mas). The full IAU 2000A model, which is implemented in the +** function iauNut00a (q.v.), delivers considerably greater accuracy +** at current dates; however, to realize this improved accuracy, +** corrections for the essentially unpredictable free-core-nutation +** (FCN) must also be included. ** -** . iauS06 contains the polynomial part of the s+XY/2 series. +** 5) The present function provides classical nutation. The +** MHB_2000_SHORT algorithm, from which it is adapted, deals also +** with (i) the offsets between the GCRS and mean poles and (ii) the +** adjustments in longitude and obliquity due to the changed +** precession rates. These additional functions, namely frame bias +** and precession adjustments, are supported by the SOFA functions +** iauBi00 and iauPr00. ** -** . iauPfw06 implements the series for the Fukushima-Williams -** angles that are with respect to the GCRS pole (i.e. the variants -** that include frame bias). +** 6) The MHB_2000_SHORT algorithm also provides "total" nutations, +** comprising the arithmetic sum of the frame bias, precession +** adjustments, and nutation (luni-solar + planetary). These total +** nutations can be used in combination with an existing IAU 1976 +** precession implementation, such as iauPmat76, to deliver GCRS- +** to-true predictions of mas accuracy at current epochs. However, +** for symmetry with the iauNut00a function (q.v. for the reasons), +** the SOFA functions do not generate the "total nutations" +** directly. Should they be required, they could of course easily +** be generated by calling iauBi00, iauPr00 and the present function +** and adding the results. ** -** 4) The IAU resolution stipulated that the choice of parameterization -** was left to the user, and so an IAU compliant precession -** implementation can be constructed using various combinations of -** the angles returned by the present function. +** 7) The IAU 2000B model includes "planetary bias" terms that are +** fixed in size but compensate for long-period nutations. The +** amplitudes quoted in McCarthy & Luzum (2003), namely +** Dpsi = -1.5835 mas and Depsilon = +1.6339 mas, are optimized for +** the "total nutations" method described in Note 6. The Luzum +** (2001) values used in this SOFA implementation, namely -0.135 mas +** and +0.388 mas, are optimized for the "rigorous" method, where +** frame bias, precession and nutation are applied separately and in +** that order. During the interval 1995-2050, the SOFA +** implementation delivers a maximum error of 1.001 mas (not +** including FCN). ** -** 5) The parameterization used by SOFA is the version of the Fukushima- -** Williams angles that refers directly to the GCRS pole. These -** angles may be calculated by calling the function iauPfw06. SOFA -** also supports the direct computation of the CIP GCRS X,Y by -** series, available by calling iauXy06. +** References: ** -** 6) The agreement between the different parameterizations is at the -** 1 microarcsecond level in the present era. +** Lieske, J.H., Lederle, T., Fricke, W., Morando, B., "Expressions +** for the precession quantities based upon the IAU /1976/ system of +** astronomical constants", Astron.Astrophys. 58, 1-2, 1-16. (1977) ** -** 7) When constructing a precession formulation that refers to the GCRS -** pole rather than the dynamical pole, it may (depending on the -** choice of angles) be necessary to introduce the frame bias -** explicitly. +** Luzum, B., private communication, 2001 (Fortran code +** MHB_2000_SHORT) ** -** 8) It is permissible to re-use the same variable in the returned -** arguments. The quantities are stored in the stated order. -** -** Reference: -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** McCarthy, D.D. & Luzum, B.J., "An abridged model of the +** precession-nutation of the celestial pole", Cel.Mech.Dyn.Astron. +** 85, 37-49 (2003) ** -** Called: -** iauObl06 mean obliquity, IAU 2006 +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J., Astron.Astrophys. 282, 663-683 (1994) ** */ -void iauP2pv(double p[3], double pv[2][3]) +void iauNut06a(double date1, double date2, double *dpsi, double *deps) /* -** - - - - - - - - -** i a u P 2 p v -** - - - - - - - - -** -** Extend a p-vector to a pv-vector by appending a zero velocity. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards Of Fundamental Astronomy) software collection. +** - - - - - - - - - - +** i a u N u t 0 6 a +** - - - - - - - - - - ** -** Status: vector/matrix support function. +** IAU 2000A nutation with adjustments to match the IAU 2006 +** precession. ** ** Given: -** p double[3] p-vector +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** ** Returned: -** pv double[2][3] pv-vector -** -** Called: -** iauCp copy p-vector -** iauZp zero p-vector -** -*/ - - - -void iauP2s(double p[3], double *theta, double *phi, double *r) -/* -** - - - - - - - -** i a u P 2 s -** - - - - - - - -** -** P-vector to spherical polar coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards Of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** p double[3] p-vector +** dpsi,deps double nutation, luni-solar + planetary (Note 2) ** -** Returned: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** r double radial distance +** Status: canonical model. ** ** Notes: ** -** 1) If P is null, zero theta, phi and r are returned. +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: ** -** 2) At either pole, zero theta is returned. +** date1 date2 ** -** Called: -** iauC2s p-vector to spherical -** iauPm modulus of p-vector +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) ** -*/ - - - -double iauPap(double a[3], double b[3]) -/* -** - - - - - - - -** i a u P a p -** - - - - - - - +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. ** -** Position-angle from two p-vectors. +** 2) The nutation components in longitude and obliquity are in radians +** and with respect to the mean equinox and ecliptic of date, +** IAU 2006 precession model (Hilton et al. 2006, Capitaine et al. +** 2005). ** -** This function is part of the International Astronomical Union's -** SOFA (Standards Of Fundamental Astronomy) software collection. +** 3) The function first computes the IAU 2000A nutation, then applies +** adjustments for (i) the consequences of the change in obliquity +** from the IAU 1980 ecliptic to the IAU 2006 ecliptic and (ii) the +** secular variation in the Earth's dynamical form factor J2. ** -** Status: vector/matrix support function. +** 4) The present function provides classical nutation, complementing +** the IAU 2000 frame bias and IAU 2006 precession. It delivers a +** pole which is at current epochs accurate to a few tens of +** microarcseconds, apart from the free core nutation. ** -** Given: -** a double[3] direction of reference point -** b double[3] direction of point whose PA is required +** Called: +** iauNut00a nutation, IAU 2000A ** -** Returned (function value): -** double position angle of b with respect to a (radians) +** References: ** -** Notes: +** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, +** Astron.Astrophys. 387, 700 ** -** 1) The result is the position angle, in radians, of direction b with -** respect to direction a. It is in the range -pi to +pi. The -** sense is such that if b is a small distance "north" of a the -** position angle is approximately zero, and if b is a small -** distance "east" of a the position angle is approximately +pi/2. +** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, +** Astron.Astrophys. 58, 1-16 ** -** 2) The vectors a and b need not be of unit length. +** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. +** 107, B4. The MHB_2000 code itself was obtained on 9th September +** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. ** -** 3) Zero is returned if the two directions are the same or if either -** vector is null. +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 ** -** 4) If vector a is at a pole, the result is ill-defined. +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 ** -** Called: -** iauPn decompose p-vector into modulus and direction -** iauPm modulus of p-vector -** iauPxp vector product of two p-vectors -** iauPmp p-vector minus p-vector -** iauPdp scalar product of two p-vectors +** Wallace, P.T., "Software for Implementing the IAU 2000 +** Resolutions", in IERS Workshop 5.1 (2002) ** */ -double iauPas(double al, double ap, double bl, double bp) +void iauNut80(double date1, double date2, double *dpsi, double *deps) /* -** - - - - - - - -** i a u P a s -** - - - - - - - +** - - - - - - - - - +** i a u N u t 8 0 +** - - - - - - - - - ** -** Position-angle from spherical coordinates. +** Nutation, IAU 1980 model. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** Status: vector/matrix support function. +** Status: canonical model. ** ** Given: -** al double longitude of point A (e.g. RA) in radians -** ap double latitude of point A (e.g. Dec) in radians -** bl double longitude of point B -** bp double latitude of point B +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** -** Returned (function value): -** double position angle of B with respect to A +** Returned: +** dpsi double nutation in longitude (radians) +** deps double nutation in obliquity (radians) ** ** Notes: ** -** 1) The result is the bearing (position angle), in radians, of point -** B with respect to point A. It is in the range -pi to +pi. The -** sense is such that if B is a small distance "east" of point A, -** the bearing is approximately +pi/2. +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: ** -** 2) Zero is returned if the two points are coincident. +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components are with respect to the ecliptic of +** date. +** +** Called: +** iauAnpm normalize angle into range +/- pi +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222 (p111). ** */ -void iauPb06(double date1, double date2, - double *bzeta, double *bz, double *btheta) +void iauNutm80(double date1, double date2, double rmatn[3][3]) /* -** - - - - - - - - -** i a u P b 0 6 -** - - - - - - - - +** - - - - - - - - - - +** i a u N u t m 8 0 +** - - - - - - - - - - ** -** This function forms three Euler angles which implement general -** precession from epoch J2000.0, using the IAU 2006 model. Frame -** bias (the offset between ICRS and mean J2000.0) is included. +** Form the matrix of nutation for a given date, IAU 1980 model. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. @@ -10769,12 +10949,10 @@ void iauPb06(double date1, double date2, ** Status: support function. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** date1,date2 double TDB date (Note 1) ** ** Returned: -** bzeta double 1st rotation: radians cw around z -** bz double 3rd rotation: radians cw around z -** btheta double 2nd rotation: radians ccw around y +** rmatn double[3][3] nutation matrix ** ** Notes: ** @@ -10797,65 +10975,78 @@ void iauPb06(double date1, double date2, ** optimum resolution. The MJD method and the date & time methods ** are both good compromises between resolution and convenience. ** -** 2) The traditional accumulated precession angles zeta_A, z_A, -** theta_A cannot be obtained in the usual way, namely through -** polynomial expressions, because of the frame bias. The latter -** means that two of the angles undergo rapid changes near this -** date. They are instead the results of decomposing the -** precession-bias matrix obtained by using the Fukushima-Williams -** method, which does not suffer from the problem. The -** decomposition returns values which can be used in the -** conventional formulation and which include frame bias. -** -** 3) The three angles are returned in the conventional order, which -** is not the same as the order of the corresponding Euler -** rotations. The precession-bias matrix is -** R_3(-z) x R_2(+theta) x R_3(-zeta). -** -** 4) Should zeta_A, z_A, theta_A angles be required that do not -** contain frame bias, they are available by calling the SOFA -** function iauP06e. +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), +** where the p-vector V(true) is with respect to the true +** equatorial triad of date and the p-vector V(mean) is with +** respect to the mean equatorial triad of date. ** ** Called: -** iauPmat06 PB matrix, IAU 2006 -** iauRz rotate around Z-axis +** iauNut80 nutation, IAU 1980 +** iauObl80 mean obliquity, IAU 1980 +** iauNumat form nutation matrix ** */ -double iauPdp(double a[3], double b[3]) +double iauObl06(double date1, double date2) /* -** - - - - - - - -** i a u P d p -** - - - - - - - +** - - - - - - - - - +** i a u O b l 0 6 +** - - - - - - - - - ** -** p-vector inner (=scalar=dot) product. +** Mean obliquity of the ecliptic, IAU 2006 precession model. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** Status: vector/matrix support function. +** Status: canonical model. ** ** Given: -** a double[3] first p-vector -** b double[3] second p-vector +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** ** Returned (function value): -** double a . b +** double obliquity of the ecliptic (radians, Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result is the angle between the ecliptic and mean equator of +** date date1+date2. +** +** Reference: +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 ** */ -void iauPfw06(double date1, double date2, - double *gamb, double *phib, double *psib, double *epsa) +double iauObl80(double date1, double date2) /* ** - - - - - - - - - -** i a u P f w 0 6 +** i a u O b l 8 0 ** - - - - - - - - - ** -** Precession angles, IAU 2006 (Fukushima-Williams 4-angle formulation). +** Mean obliquity of the ecliptic, IAU 1980 model. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. @@ -10863,13 +11054,10 @@ void iauPfw06(double date1, double date2, ** Status: canonical model. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** -** Returned: -** gamb double F-W angle gamma_bar (radians) -** phib double F-W angle phi_bar (radians) -** psib double F-W angle psi_bar (radians) -** epsa double F-W angle epsilon_A (radians) +** Returned (function value): +** double obliquity of the ecliptic (radians, Note 2) ** ** Notes: ** @@ -10892,80 +11080,64 @@ void iauPfw06(double date1, double date2, ** optimum resolution. The MJD method and the date & time methods ** are both good compromises between resolution and convenience. ** -** 2) Naming the following points: -** -** e = J2000.0 ecliptic pole, -** p = GCRS pole, -** E = mean ecliptic pole of date, -** and P = mean pole of date, -** -** the four Fukushima-Williams angles are as follows: -** -** gamb = gamma_bar = epE -** phib = phi_bar = pE -** psib = psi_bar = pEP -** epsa = epsilon_A = EP -** -** 3) The matrix representing the combined effects of frame bias and -** precession is: -** -** PxB = R_1(-epsa).R_3(-psib).R_1(phib).R_3(gamb) -** -** 4) The matrix representing the combined effects of frame bias, -** precession and nutation is simply: -** -** NxPxB = R_1(-epsa-dE).R_3(-psib-dP).R_1(phib).R_3(gamb) -** -** where dP and dE are the nutation components with respect to the -** ecliptic of date. +** 2) The result is the angle between the ecliptic and mean equator of +** date date1+date2. ** ** Reference: ** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -** Called: -** iauObl06 mean obliquity, IAU 2006 +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Expression 3.222-1 (p114). ** */ -int iauPlan94(double date1, double date2, int np, double pv[2][3]) +void iauP06e(double date1, double date2, + double *eps0, double *psia, double *oma, double *bpa, + double *bqa, double *pia, double *bpia, + double *epsa, double *chia, double *za, double *zetaa, + double *thetaa, double *pa, + double *gam, double *phi, double *psi) /* -** - - - - - - - - - - -** i a u P l a n 9 4 -** - - - - - - - - - - +** - - - - - - - - +** i a u P 0 6 e +** - - - - - - - - +** +** Precession angles, IAU 2006, equinox based. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** Status: support function. -** -** Approximate heliocentric position and velocity of a nominated major -** planet: Mercury, Venus, EMB, Mars, Jupiter, Saturn, Uranus or -** Neptune (but not the Earth itself). +** Status: canonical models. ** ** Given: -** date1 double TDB date part A (Note 1) -** date2 double TDB date part B (Note 1) -** np int planet (1=Mercury, 2=Venus, 3=EMB, 4=Mars, -** 5=Jupiter, 6=Saturn, 7=Uranus, 8=Neptune) -** -** Returned (argument): -** pv double[2][3] planet p,v (heliocentric, J2000.0, AU,AU/d) +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** -** Returned (function value): -** int status: -1 = illegal NP (outside 1-8) -** 0 = OK -** +1 = warning: year outside 1000-3000 -** +2 = warning: failed to converge +** Returned (see Note 2): +** eps0 double epsilon_0 +** psia double psi_A +** oma double omega_A +** bpa double P_A +** bqa double Q_A +** pia double pi_A +** bpia double Pi_A +** epsa double obliquity epsilon_A +** chia double chi_A +** za double z_A +** zetaa double zeta_A +** thetaa double theta_A +** pa double p_A +** gam double F-W angle gamma_J2000 +** phi double F-W angle phi_J2000 +** psi double F-W angle psi_J2000 ** ** Notes: ** -** 1) The date date1+date2 is in the TDB time scale (in practice TT can -** be used) and is a Julian Date, apportioned in any convenient way -** between the two arguments. For example, JD(TDB)=2450123.7 could -** be expressed in any of these ways, among others: +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: ** ** date1 date2 ** @@ -10974,135 +11146,197 @@ int iauPlan94(double date1, double date2, int np, double pv[2][3]) ** 2400000.5 50123.2 (MJD method) ** 2450123.5 0.2 (date & time method) ** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. The limited -** accuracy of the present algorithm is such that any of the methods -** is satisfactory. +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. ** -** 2) If an np value outside the range 1-8 is supplied, an error status -** (function value -1) is returned and the pv vector set to zeroes. +** 2) This function returns the set of equinox based angles for the +** Capitaine et al. "P03" precession theory, adopted by the IAU in +** 2006. The angles are set out in Table 1 of Hilton et al. (2006): ** -** 3) For np=3 the result is for the Earth-Moon Barycenter. To obtain -** the heliocentric position and velocity of the Earth, use instead -** the SOFA function iauEpv00. +** eps0 epsilon_0 obliquity at J2000.0 +** psia psi_A luni-solar precession +** oma omega_A inclination of equator wrt J2000.0 ecliptic +** bpa P_A ecliptic pole x, J2000.0 ecliptic triad +** bqa Q_A ecliptic pole -y, J2000.0 ecliptic triad +** pia pi_A angle between moving and J2000.0 ecliptics +** bpia Pi_A longitude of ascending node of the ecliptic +** epsa epsilon_A obliquity of the ecliptic +** chia chi_A planetary precession +** za z_A equatorial precession: -3rd 323 Euler angle +** zetaa zeta_A equatorial precession: -1st 323 Euler angle +** thetaa theta_A equatorial precession: 2nd 323 Euler angle +** pa p_A general precession +** gam gamma_J2000 J2000.0 RA difference of ecliptic poles +** phi phi_J2000 J2000.0 codeclination of ecliptic pole +** psi psi_J2000 longitude difference of equator poles, J2000.0 ** -** 4) On successful return, the array pv contains the following: +** The returned values are all radians. ** -** pv[0][0] x } -** pv[0][1] y } heliocentric position, AU -** pv[0][2] z } +** 3) Hilton et al. (2006) Table 1 also contains angles that depend on +** models distinct from the P03 precession theory itself, namely the +** IAU 2000A frame bias and nutation. The quoted polynomials are +** used in other SOFA functions: ** -** pv[1][0] xdot } -** pv[1][1] ydot } heliocentric velocity, AU/d -** pv[1][2] zdot } +** . iauXy06 contains the polynomial parts of the X and Y series. ** -** The reference frame is equatorial and is with respect to the -** mean equator and equinox of epoch J2000.0. +** . iauS06 contains the polynomial part of the s+XY/2 series. ** -** 5) The algorithm is due to J.L. Simon, P. Bretagnon, J. Chapront, -** M. Chapront-Touze, G. Francou and J. Laskar (Bureau des -** Longitudes, Paris, France). From comparisons with JPL -** ephemeris DE102, they quote the following maximum errors -** over the interval 1800-2050: +** . iauPfw06 implements the series for the Fukushima-Williams +** angles that are with respect to the GCRS pole (i.e. the variants +** that include frame bias). ** -** L (arcsec) B (arcsec) R (km) +** 4) The IAU resolution stipulated that the choice of parameterization +** was left to the user, and so an IAU compliant precession +** implementation can be constructed using various combinations of +** the angles returned by the present function. ** -** Mercury 4 1 300 -** Venus 5 1 800 -** EMB 6 1 1000 -** Mars 17 1 7700 -** Jupiter 71 5 76000 -** Saturn 81 13 267000 -** Uranus 86 7 712000 -** Neptune 11 1 253000 +** 5) The parameterization used by SOFA is the version of the Fukushima- +** Williams angles that refers directly to the GCRS pole. These +** angles may be calculated by calling the function iauPfw06. SOFA +** also supports the direct computation of the CIP GCRS X,Y by +** series, available by calling iauXy06. ** -** Over the interval 1000-3000, they report that the accuracy is no -** worse than 1.5 times that over 1800-2050. Outside 1000-3000 the -** accuracy declines. +** 6) The agreement between the different parameterizations is at the +** 1 microarcsecond level in the present era. ** -** Comparisons of the present function with the JPL DE200 ephemeris -** give the following RMS errors over the interval 1960-2025: +** 7) When constructing a precession formulation that refers to the GCRS +** pole rather than the dynamical pole, it may (depending on the +** choice of angles) be necessary to introduce the frame bias +** explicitly. ** -** position (km) velocity (m/s) +** 8) It is permissible to re-use the same variable in the returned +** arguments. The quantities are stored in the stated order. ** -** Mercury 334 0.437 -** Venus 1060 0.855 -** EMB 2010 0.815 -** Mars 7690 1.98 -** Jupiter 71700 7.70 -** Saturn 199000 19.4 -** Uranus 564000 16.4 -** Neptune 158000 14.4 +** Reference: ** -** Comparisons against DE200 over the interval 1800-2100 gave the -** following maximum absolute differences. (The results using -** DE406 were essentially the same.) +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 ** -** L (arcsec) B (arcsec) R (km) Rdot (m/s) +** Called: +** iauObl06 mean obliquity, IAU 2006 ** -** Mercury 7 1 500 0.7 -** Venus 7 1 1100 0.9 -** EMB 9 1 1300 1.0 -** Mars 26 1 9000 2.5 -** Jupiter 78 6 82000 8.2 -** Saturn 87 14 263000 24.6 -** Uranus 86 7 661000 27.4 -** Neptune 11 2 248000 21.4 +*/ + + + +void iauP2pv(double p[3], double pv[2][3]) +/* +** - - - - - - - - +** i a u P 2 p v +** - - - - - - - - ** -** 6) The present SOFA re-implementation of the original Simon et al. -** Fortran code differs from the original in the following respects: +** Extend a p-vector to a pv-vector by appending a zero velocity. ** -** * C instead of Fortran. +** This function is part of the International Astronomical Union's +** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** * The date is supplied in two parts. +** Status: vector/matrix support function. ** -** * The result is returned only in equatorial Cartesian form; -** the ecliptic longitude, latitude and radius vector are not -** returned. +** Given: +** p double[3] p-vector ** -** * The result is in the J2000.0 equatorial frame, not ecliptic. +** Returned: +** pv double[2][3] pv-vector ** -** * More is done in-line: there are fewer calls to subroutines. +** Called: +** iauCp copy p-vector +** iauZp zero p-vector ** -** * Different error/warning status values are used. +*/ + + + +void iauP2s(double p[3], double *theta, double *phi, double *r) +/* +** - - - - - - - +** i a u P 2 s +** - - - - - - - ** -** * A different Kepler's-equation-solver is used (avoiding -** use of double precision complex). +** P-vector to spherical polar coordinates. ** -** * Polynomials in t are nested to minimize rounding errors. +** This function is part of the International Astronomical Union's +** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** * Explicit double constants are used to avoid mixed-mode -** expressions. +** Status: vector/matrix support function. ** -** None of the above changes affects the result significantly. +** Given: +** p double[3] p-vector ** -** 7) The returned status indicates the most serious condition -** encountered during execution of the function. Illegal np is -** considered the most serious, overriding failure to converge, -** which in turn takes precedence over the remote date warning. +** Returned: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** r double radial distance +** +** Notes: +** +** 1) If P is null, zero theta, phi and r are returned. +** +** 2) At either pole, zero theta is returned. ** ** Called: -** iauAnp normalize angle into range 0 to 2pi +** iauC2s p-vector to spherical +** iauPm modulus of p-vector ** -** Reference: Simon, J.L, Bretagnon, P., Chapront, J., -** Chapront-Touze, M., Francou, G., and Laskar, J., -** Astron. Astrophys. 282, 663 (1994). +*/ + + + +double iauPap(double a[3], double b[3]) +/* +** - - - - - - - +** i a u P a p +** - - - - - - - +** +** Position-angle from two p-vectors. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards Of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** a double[3] direction of reference point +** b double[3] direction of point whose PA is required +** +** Returned (function value): +** double position angle of b with respect to a (radians) +** +** Notes: +** +** 1) The result is the position angle, in radians, of direction b with +** respect to direction a. It is in the range -pi to +pi. The +** sense is such that if b is a small distance "north" of a the +** position angle is approximately zero, and if b is a small +** distance "east" of a the position angle is approximately +pi/2. +** +** 2) The vectors a and b need not be of unit length. +** +** 3) Zero is returned if the two directions are the same or if either +** vector is null. +** +** 4) If vector a is at a pole, the result is ill-defined. +** +** Called: +** iauPn decompose p-vector into modulus and direction +** iauPm modulus of p-vector +** iauPxp vector product of two p-vectors +** iauPmp p-vector minus p-vector +** iauPdp scalar product of two p-vectors ** */ -double iauPm(double p[3]) +double iauPas(double al, double ap, double bl, double bp) /* -** - - - - - - -** i a u P m -** - - - - - - +** - - - - - - - +** i a u P a s +** - - - - - - - ** -** Modulus of p-vector. +** Position-angle from spherical coordinates. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. @@ -11110,23 +11344,37 @@ double iauPm(double p[3]) ** Status: vector/matrix support function. ** ** Given: -** p double[3] p-vector +** al double longitude of point A (e.g. RA) in radians +** ap double latitude of point A (e.g. Dec) in radians +** bl double longitude of point B +** bp double latitude of point B ** ** Returned (function value): -** double modulus +** double position angle of B with respect to A +** +** Notes: +** +** 1) The result is the bearing (position angle), in radians, of point +** B with respect to point A. It is in the range -pi to +pi. The +** sense is such that if B is a small distance "east" of point A, +** the bearing is approximately +pi/2. +** +** 2) Zero is returned if the two points are coincident. ** */ -void iauPmat00(double date1, double date2, double rbp[3][3]) +void iauPb06(double date1, double date2, + double *bzeta, double *bz, double *btheta) /* -** - - - - - - - - - - -** i a u P m a t 0 0 -** - - - - - - - - - - +** - - - - - - - - +** i a u P b 0 6 +** - - - - - - - - ** -** Precession matrix (including frame bias) from GCRS to a specified -** date, IAU 2000 model. +** This function forms three Euler angles which implement general +** precession from epoch J2000.0, using the IAU 2006 model. Frame +** bias (the offset between ICRS and mean J2000.0) is included. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. @@ -11134,10 +11382,12 @@ void iauPmat00(double date1, double date2, double rbp[3][3]) ** Status: support function. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** ** Returned: -** rbp double[3][3] bias-precession matrix (Note 2) +** bzeta double 1st rotation: radians cw around z +** bz double 3rd rotation: radians cw around z +** btheta double 2nd rotation: radians ccw around y ** ** Notes: ** @@ -11160,43 +11410,79 @@ void iauPmat00(double date1, double date2, double rbp[3][3]) ** optimum resolution. The MJD method and the date & time methods ** are both good compromises between resolution and convenience. ** -** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where -** the p-vector V(GCRS) is with respect to the Geocentric Celestial -** Reference System (IAU, 2000) and the p-vector V(date) is with -** respect to the mean equatorial triad of the given date. +** 2) The traditional accumulated precession angles zeta_A, z_A, +** theta_A cannot be obtained in the usual way, namely through +** polynomial expressions, because of the frame bias. The latter +** means that two of the angles undergo rapid changes near this +** date. They are instead the results of decomposing the +** precession-bias matrix obtained by using the Fukushima-Williams +** method, which does not suffer from the problem. The +** decomposition returns values which can be used in the +** conventional formulation and which include frame bias. +** +** 3) The three angles are returned in the conventional order, which +** is not the same as the order of the corresponding Euler +** rotations. The precession-bias matrix is +** R_3(-z) x R_2(+theta) x R_3(-zeta). +** +** 4) Should zeta_A, z_A, theta_A angles be required that do not +** contain frame bias, they are available by calling the SOFA +** function iauP06e. ** ** Called: -** iauBp00 frame bias and precession matrices, IAU 2000 +** iauPmat06 PB matrix, IAU 2006 +** iauRz rotate around Z-axis ** -** Reference: +*/ + + + +double iauPdp(double a[3], double b[3]) +/* +** - - - - - - - +** i a u P d p +** - - - - - - - ** -** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. -** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. -** (2000) +** p-vector inner (=scalar=dot) product. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards Of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** a double[3] first p-vector +** b double[3] second p-vector +** +** Returned (function value): +** double a . b ** */ -void iauPmat06(double date1, double date2, double rbp[3][3]) +void iauPfw06(double date1, double date2, + double *gamb, double *phib, double *psib, double *epsa) /* -** - - - - - - - - - - -** i a u P m a t 0 6 -** - - - - - - - - - - +** - - - - - - - - - +** i a u P f w 0 6 +** - - - - - - - - - ** -** Precession matrix (including frame bias) from GCRS to a specified -** date, IAU 2006 model. +** Precession angles, IAU 2006 (Fukushima-Williams 4-angle formulation). ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** Status: support function. +** Status: canonical model. ** ** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** ** Returned: -** rbp double[3][3] bias-precession matrix (Note 2) +** gamb double F-W angle gamma_bar (radians) +** phib double F-W angle phi_bar (radians) +** psib double F-W angle psi_bar (radians) +** epsa double F-W angle epsilon_A (radians) ** ** Notes: ** @@ -11219,50 +11505,80 @@ void iauPmat06(double date1, double date2, double rbp[3][3]) ** optimum resolution. The MJD method and the date & time methods ** are both good compromises between resolution and convenience. ** -** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where -** the p-vector V(GCRS) is with respect to the Geocentric Celestial -** Reference System (IAU, 2000) and the p-vector V(date) is with -** respect to the mean equatorial triad of the given date. -** -** Called: -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauFw2m F-W angles to r-matrix +** 2) Naming the following points: ** -** References: +** e = J2000.0 ecliptic pole, +** p = GCRS pole, +** E = mean ecliptic pole of date, +** and P = mean pole of date, ** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** the four Fukushima-Williams angles are as follows: ** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** gamb = gamma_bar = epE +** phib = phi_bar = pE +** psib = psi_bar = pEP +** epsa = epsilon_A = EP +** +** 3) The matrix representing the combined effects of frame bias and +** precession is: +** +** PxB = R_1(-epsa).R_3(-psib).R_1(phib).R_3(gamb) +** +** 4) The matrix representing the combined effects of frame bias, +** precession and nutation is simply: +** +** NxPxB = R_1(-epsa-dE).R_3(-psib-dP).R_1(phib).R_3(gamb) +** +** where dP and dE are the nutation components with respect to the +** ecliptic of date. +** +** Reference: +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +** Called: +** iauObl06 mean obliquity, IAU 2006 ** */ -void iauPmat76(double date1, double date2, double rmatp[3][3]) +int iauPlan94(double date1, double date2, int np, double pv[2][3]) /* ** - - - - - - - - - - -** i a u P m a t 7 6 +** i a u P l a n 9 4 ** - - - - - - - - - - ** -** Precession matrix from J2000.0 to a specified date, IAU 1976 model. -** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. ** ** Status: support function. ** +** Approximate heliocentric position and velocity of a nominated major +** planet: Mercury, Venus, EMB, Mars, Jupiter, Saturn, Uranus or +** Neptune (but not the Earth itself). +** ** Given: -** date1,date2 double ending date, TT (Note 1) +** date1 double TDB date part A (Note 1) +** date2 double TDB date part B (Note 1) +** np int planet (1=Mercury, 2=Venus, 3=EMB, 4=Mars, +** 5=Jupiter, 6=Saturn, 7=Uranus, 8=Neptune) ** -** Returned: -** rmatp double[3][3] precession matrix, J2000.0 -> date1+date2 +** Returned (argument): +** pv double[2][3] planet p,v (heliocentric, J2000.0, AU,AU/d) +** +** Returned (function value): +** int status: -1 = illegal NP (outside 1-8) +** 0 = OK +** +1 = warning: year outside 1000-3000 +** +2 = warning: failed to converge ** ** Notes: ** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: +** 1) The date date1+date2 is in the TDB time scale (in practice TT can +** be used) and is a Julian Date, apportioned in any convenient way +** between the two arguments. For example, JD(TDB)=2450123.7 could +** be expressed in any of these ways, among others: ** ** date1 date2 ** @@ -11271,55 +11587,135 @@ void iauPmat76(double date1, double date2, double rmatp[3][3]) ** 2400000.5 50123.2 (MJD method) ** 2450123.5 0.2 (date & time method) ** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. The limited +** accuracy of the present algorithm is such that any of the methods +** is satisfactory. ** -** 2) The matrix operates in the sense V(date) = RMATP * V(J2000), -** where the p-vector V(J2000) is with respect to the mean -** equatorial triad of epoch J2000.0 and the p-vector V(date) -** is with respect to the mean equatorial triad of the given -** date. +** 2) If an np value outside the range 1-8 is supplied, an error status +** (function value -1) is returned and the pv vector set to zeroes. ** -** 3) Though the matrix method itself is rigorous, the precession -** angles are expressed through canonical polynomials which are -** valid only for a limited time span. In addition, the IAU 1976 -** precession rate is known to be imperfect. The absolute accuracy -** of the present formulation is better than 0.1 arcsec from -** 1960AD to 2040AD, better than 1 arcsec from 1640AD to 2360AD, -** and remains below 3 arcsec for the whole of the period -** 500BC to 3000AD. The errors exceed 10 arcsec outside the -** range 1200BC to 3900AD, exceed 100 arcsec outside 4200BC to -** 5600AD and exceed 1000 arcsec outside 6800BC to 8200AD. +** 3) For np=3 the result is for the Earth-Moon Barycenter. To obtain +** the heliocentric position and velocity of the Earth, use instead +** the SOFA function iauEpv00. ** -** Called: -** iauPrec76 accumulated precession angles, IAU 1976 -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** iauCr copy r-matrix +** 4) On successful return, the array pv contains the following: ** -** References: +** pv[0][0] x } +** pv[0][1] y } heliocentric position, AU +** pv[0][2] z } ** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. -** equations (6) & (7), p283. +** pv[1][0] xdot } +** pv[1][1] ydot } heliocentric velocity, AU/d +** pv[1][2] zdot } ** -** Kaplan,G.H., 1981. USNO circular no. 163, pA2. +** The reference frame is equatorial and is with respect to the +** mean equator and equinox of epoch J2000.0. +** +** 5) The algorithm is due to J.L. Simon, P. Bretagnon, J. Chapront, +** M. Chapront-Touze, G. Francou and J. Laskar (Bureau des +** Longitudes, Paris, France). From comparisons with JPL +** ephemeris DE102, they quote the following maximum errors +** over the interval 1800-2050: +** +** L (arcsec) B (arcsec) R (km) +** +** Mercury 4 1 300 +** Venus 5 1 800 +** EMB 6 1 1000 +** Mars 17 1 7700 +** Jupiter 71 5 76000 +** Saturn 81 13 267000 +** Uranus 86 7 712000 +** Neptune 11 1 253000 +** +** Over the interval 1000-3000, they report that the accuracy is no +** worse than 1.5 times that over 1800-2050. Outside 1000-3000 the +** accuracy declines. +** +** Comparisons of the present function with the JPL DE200 ephemeris +** give the following RMS errors over the interval 1960-2025: +** +** position (km) velocity (m/s) +** +** Mercury 334 0.437 +** Venus 1060 0.855 +** EMB 2010 0.815 +** Mars 7690 1.98 +** Jupiter 71700 7.70 +** Saturn 199000 19.4 +** Uranus 564000 16.4 +** Neptune 158000 14.4 +** +** Comparisons against DE200 over the interval 1800-2100 gave the +** following maximum absolute differences. (The results using +** DE406 were essentially the same.) +** +** L (arcsec) B (arcsec) R (km) Rdot (m/s) +** +** Mercury 7 1 500 0.7 +** Venus 7 1 1100 0.9 +** EMB 9 1 1300 1.0 +** Mars 26 1 9000 2.5 +** Jupiter 78 6 82000 8.2 +** Saturn 87 14 263000 24.6 +** Uranus 86 7 661000 27.4 +** Neptune 11 2 248000 21.4 +** +** 6) The present SOFA re-implementation of the original Simon et al. +** Fortran code differs from the original in the following respects: +** +** * C instead of Fortran. +** +** * The date is supplied in two parts. +** +** * The result is returned only in equatorial Cartesian form; +** the ecliptic longitude, latitude and radius vector are not +** returned. +** +** * The result is in the J2000.0 equatorial frame, not ecliptic. +** +** * More is done in-line: there are fewer calls to subroutines. +** +** * Different error/warning status values are used. +** +** * A different Kepler's-equation-solver is used (avoiding +** use of double precision complex). +** +** * Polynomials in t are nested to minimize rounding errors. +** +** * Explicit double constants are used to avoid mixed-mode +** expressions. +** +** None of the above changes affects the result significantly. +** +** 7) The returned status indicates the most serious condition +** encountered during execution of the function. Illegal np is +** considered the most serious, overriding failure to converge, +** which in turn takes precedence over the remote date warning. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** +** Reference: Simon, J.L, Bretagnon, P., Chapront, J., +** Chapront-Touze, M., Francou, G., and Laskar, J., +** Astron. Astrophys. 282, 663 (1994). ** */ -void iauPmp(double a[3], double b[3], double amb[3]) +double iauPm(double p[3]) /* -** - - - - - - - -** i a u P m p -** - - - - - - - +** - - - - - - +** i a u P m +** - - - - - - ** -** P-vector subtraction. +** Modulus of p-vector. ** ** This function is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. @@ -11327,57 +11723,274 @@ void iauPmp(double a[3], double b[3], double amb[3]) ** Status: vector/matrix support function. ** ** Given: -** a double[3] first p-vector -** b double[3] second p-vector -** -** Returned: -** amb double[3] a - b +** p double[3] p-vector ** -** Note: -** It is permissible to re-use the same array for any of the -** arguments. +** Returned (function value): +** double modulus ** */ -void iauPmpx(double rc, double dc, double pr, double pd, - double px, double rv, double pmt, double pob[3], - double pco[3]) +void iauPmat00(double date1, double date2, double rbp[3][3]) /* -** - - - - - - - - -** i a u P m p x -** - - - - - - - - +** - - - - - - - - - - +** i a u P m a t 0 0 +** - - - - - - - - - - ** -** Proper motion and parallax. +** Precession matrix (including frame bias) from GCRS to a specified +** date, IAU 2000 model. ** ** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. +** SOFA (Standards Of Fundamental Astronomy) software collection. ** ** Status: support function. ** ** Given: -** rc,dc double ICRS RA,Dec at catalog epoch (radians) -** pr double RA proper motion (radians/year; Note 1) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** pmt double proper motion time interval (SSB, Julian years) -** pob double[3] SSB to observer vector (au) +** date1,date2 double TT as a 2-part Julian Date (Note 1) ** ** Returned: -** pco double[3] coordinate direction (BCRS unit vector) +** rbp double[3][3] bias-precession matrix (Note 2) ** ** Notes: ** -** 1) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: ** -** 2) The proper motion time interval is for when the starlight -** reaches the solar system barycenter. +** date1 date2 ** -** 3) To avoid the need for iteration, the Roemer effect (i.e. the -** small annual modulation of the proper motion coming from the -** changing light time) is applied approximately, using the +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where +** the p-vector V(GCRS) is with respect to the Geocentric Celestial +** Reference System (IAU, 2000) and the p-vector V(date) is with +** respect to the mean equatorial triad of the given date. +** +** Called: +** iauBp00 frame bias and precession matrices, IAU 2000 +** +** Reference: +** +** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. +** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. +** (2000) +** +*/ + + + +void iauPmat06(double date1, double date2, double rbp[3][3]) +/* +** - - - - - - - - - - +** i a u P m a t 0 6 +** - - - - - - - - - - +** +** Precession matrix (including frame bias) from GCRS to a specified +** date, IAU 2006 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards Of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbp double[3][3] bias-precession matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where +** the p-vector V(GCRS) is with respect to the Geocentric Celestial +** Reference System (IAU, 2000) and the p-vector V(date) is with +** respect to the mean equatorial triad of the given date. +** +** Called: +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauFw2m F-W angles to r-matrix +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +void iauPmat76(double date1, double date2, double rmatp[3][3]) +/* +** - - - - - - - - - - +** i a u P m a t 7 6 +** - - - - - - - - - - +** +** Precession matrix from J2000.0 to a specified date, IAU 1976 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards Of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double ending date, TT (Note 1) +** +** Returned: +** rmatp double[3][3] precession matrix, J2000.0 -> date1+date2 +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = RMATP * V(J2000), +** where the p-vector V(J2000) is with respect to the mean +** equatorial triad of epoch J2000.0 and the p-vector V(date) +** is with respect to the mean equatorial triad of the given +** date. +** +** 3) Though the matrix method itself is rigorous, the precession +** angles are expressed through canonical polynomials which are +** valid only for a limited time span. In addition, the IAU 1976 +** precession rate is known to be imperfect. The absolute accuracy +** of the present formulation is better than 0.1 arcsec from +** 1960AD to 2040AD, better than 1 arcsec from 1640AD to 2360AD, +** and remains below 3 arcsec for the whole of the period +** 500BC to 3000AD. The errors exceed 10 arcsec outside the +** range 1200BC to 3900AD, exceed 100 arcsec outside 4200BC to +** 5600AD and exceed 1000 arcsec outside 6800BC to 8200AD. +** +** Called: +** iauPrec76 accumulated precession angles, IAU 1976 +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** iauCr copy r-matrix +** +** References: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. +** equations (6) & (7), p283. +** +** Kaplan,G.H., 1981. USNO circular no. 163, pA2. +** +*/ + + + +void iauPmp(double a[3], double b[3], double amb[3]) +/* +** - - - - - - - +** i a u P m p +** - - - - - - - +** +** P-vector subtraction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards Of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** a double[3] first p-vector +** b double[3] second p-vector +** +** Returned: +** amb double[3] a - b +** +** Note: +** It is permissible to re-use the same array for any of the +** arguments. +** +*/ + + + +void iauPmpx(double rc, double dc, double pr, double pd, + double px, double rv, double pmt, double pob[3], + double pco[3]) +/* +** - - - - - - - - +** i a u P m p x +** - - - - - - - - +** +** Proper motion and parallax. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS RA,Dec at catalog epoch (radians) +** pr double RA proper motion (radians/year; Note 1) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** pmt double proper motion time interval (SSB, Julian years) +** pob double[3] SSB to observer vector (au) +** +** Returned: +** pco double[3] coordinate direction (BCRS unit vector) +** +** Notes: +** +** 1) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 2) The proper motion time interval is for when the starlight +** reaches the solar system barycenter. +** +** 3) To avoid the need for iteration, the Roemer effect (i.e. the +** small annual modulation of the proper motion coming from the +** changing light time) is applied approximately, using the ** direction of the star at the catalog epoch. ** ** References: @@ -15809,7 +16422,7 @@ and C versions.) *+---------------------------------------------------------------------- * -* Copyright (C) 2015 +* Copyright (C) 2016 * Standards Of Fundamental Astronomy Board * of the International Astronomical Union. * @@ -15958,6 +16571,562 @@ SOFA C constants The constants used by the C version of SOFA are defined in the header file sofam.h. +#ifndef SOFAHDEF +#define SOFAHDEF + +/* +** - - - - - - - +** s o f a . h +** - - - - - - - +** +** Prototype function declarations for SOFA library. +** +** This file is part of the International Astronomical Union's +** SOFA (Standards Of Fundamental Astronomy) software collection. +** +** This revision: 2016 March 10 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ + +#include "sofam.h" +#include "math.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Astronomy/Calendars */ +int iauCal2jd(int iy, int im, int id, double *djm0, double *djm); +double iauEpb(double dj1, double dj2); +void iauEpb2jd(double epb, double *djm0, double *djm); +double iauEpj(double dj1, double dj2); +void iauEpj2jd(double epj, double *djm0, double *djm); +int iauJd2cal(double dj1, double dj2, + int *iy, int *im, int *id, double *fd); +int iauJdcalf(int ndp, double dj1, double dj2, int iymdf[4]); + +/* Astronomy/Astrometry */ +void iauAb(double pnat[3], double v[3], double s, double bm1, + double ppr[3]); +void iauApcg(double date1, double date2, + double ebpv[2][3], double ehp[3], + iauASTROM *astrom); +void iauApcg13(double date1, double date2, iauASTROM *astrom); +void iauApci(double date1, double date2, + double ebpv[2][3], double ehp[3], + double x, double y, double s, + iauASTROM *astrom); +void iauApci13(double date1, double date2, + iauASTROM *astrom, double *eo); +void iauApco(double date1, double date2, + double ebpv[2][3], double ehp[3], + double x, double y, double s, double theta, + double elong, double phi, double hm, + double xp, double yp, double sp, + double refa, double refb, + iauASTROM *astrom); +int iauApco13(double utc1, double utc2, double dut1, + double elong, double phi, double hm, double xp, double yp, + double phpa, double tc, double rh, double wl, + iauASTROM *astrom, double *eo); +void iauApcs(double date1, double date2, double pv[2][3], + double ebpv[2][3], double ehp[3], + iauASTROM *astrom); +void iauApcs13(double date1, double date2, double pv[2][3], + iauASTROM *astrom); +void iauAper(double theta, iauASTROM *astrom); +void iauAper13(double ut11, double ut12, iauASTROM *astrom); +void iauApio(double sp, double theta, + double elong, double phi, double hm, double xp, double yp, + double refa, double refb, + iauASTROM *astrom); +int iauApio13(double utc1, double utc2, double dut1, + double elong, double phi, double hm, double xp, double yp, + double phpa, double tc, double rh, double wl, + iauASTROM *astrom); +void iauAtci13(double rc, double dc, + double pr, double pd, double px, double rv, + double date1, double date2, + double *ri, double *di, double *eo); +void iauAtciq(double rc, double dc, double pr, double pd, + double px, double rv, iauASTROM *astrom, + double *ri, double *di); +void iauAtciqn(double rc, double dc, double pr, double pd, + double px, double rv, iauASTROM *astrom, + int n, iauLDBODY b[], double *ri, double *di); +void iauAtciqz(double rc, double dc, iauASTROM *astrom, + double *ri, double *di); +int iauAtco13(double rc, double dc, + double pr, double pd, double px, double rv, + double utc1, double utc2, double dut1, + double elong, double phi, double hm, double xp, double yp, + double phpa, double tc, double rh, double wl, + double *aob, double *zob, double *hob, + double *dob, double *rob, double *eo); +void iauAtic13(double ri, double di, + double date1, double date2, + double *rc, double *dc, double *eo); +void iauAticq(double ri, double di, iauASTROM *astrom, + double *rc, double *dc); +void iauAticqn(double ri, double di, iauASTROM *astrom, + int n, iauLDBODY b[], double *rc, double *dc); +int iauAtio13(double ri, double di, + double utc1, double utc2, double dut1, + double elong, double phi, double hm, double xp, double yp, + double phpa, double tc, double rh, double wl, + double *aob, double *zob, double *hob, + double *dob, double *rob); +void iauAtioq(double ri, double di, iauASTROM *astrom, + double *aob, double *zob, + double *hob, double *dob, double *rob); +int iauAtoc13(const char *type, double ob1, double ob2, + double utc1, double utc2, double dut1, + double elong, double phi, double hm, double xp, double yp, + double phpa, double tc, double rh, double wl, + double *rc, double *dc); +int iauAtoi13(const char *type, double ob1, double ob2, + double utc1, double utc2, double dut1, + double elong, double phi, double hm, double xp, double yp, + double phpa, double tc, double rh, double wl, + double *ri, double *di); +void iauAtoiq(const char *type, + double ob1, double ob2, iauASTROM *astrom, + double *ri, double *di); +void iauLd(double bm, double p[3], double q[3], double e[3], + double em, double dlim, double p1[3]); +void iauLdn(int n, iauLDBODY b[], double ob[3], double sc[3], + double sn[3]); +void iauLdsun(double p[3], double e[3], double em, double p1[3]); +void iauPmpx(double rc, double dc, double pr, double pd, + double px, double rv, double pmt, double pob[3], + double pco[3]); +int iauPmsafe(double ra1, double dec1, double pmr1, double pmd1, + double px1, double rv1, + double ep1a, double ep1b, double ep2a, double ep2b, + double *ra2, double *dec2, double *pmr2, double *pmd2, + double *px2, double *rv2); +void iauPvtob(double elong, double phi, double height, double xp, + double yp, double sp, double theta, double pv[2][3]); +void iauRefco(double phpa, double tc, double rh, double wl, + double *refa, double *refb); + +/* Astronomy/Ephemerides */ +int iauEpv00(double date1, double date2, + double pvh[2][3], double pvb[2][3]); +int iauPlan94(double date1, double date2, int np, double pv[2][3]); + +/* Astronomy/FundamentalArgs */ +double iauFad03(double t); +double iauFae03(double t); +double iauFaf03(double t); +double iauFaju03(double t); +double iauFal03(double t); +double iauFalp03(double t); +double iauFama03(double t); +double iauFame03(double t); +double iauFane03(double t); +double iauFaom03(double t); +double iauFapa03(double t); +double iauFasa03(double t); +double iauFaur03(double t); +double iauFave03(double t); + +/* Astronomy/PrecNutPolar */ +void iauBi00(double *dpsibi, double *depsbi, double *dra); +void iauBp00(double date1, double date2, + double rb[3][3], double rp[3][3], double rbp[3][3]); +void iauBp06(double date1, double date2, + double rb[3][3], double rp[3][3], double rbp[3][3]); +void iauBpn2xy(double rbpn[3][3], double *x, double *y); +void iauC2i00a(double date1, double date2, double rc2i[3][3]); +void iauC2i00b(double date1, double date2, double rc2i[3][3]); +void iauC2i06a(double date1, double date2, double rc2i[3][3]); +void iauC2ibpn(double date1, double date2, double rbpn[3][3], + double rc2i[3][3]); +void iauC2ixy(double date1, double date2, double x, double y, + double rc2i[3][3]); +void iauC2ixys(double x, double y, double s, double rc2i[3][3]); +void iauC2t00a(double tta, double ttb, double uta, double utb, + double xp, double yp, double rc2t[3][3]); +void iauC2t00b(double tta, double ttb, double uta, double utb, + double xp, double yp, double rc2t[3][3]); +void iauC2t06a(double tta, double ttb, double uta, double utb, + double xp, double yp, double rc2t[3][3]); +void iauC2tcio(double rc2i[3][3], double era, double rpom[3][3], + double rc2t[3][3]); +void iauC2teqx(double rbpn[3][3], double gst, double rpom[3][3], + double rc2t[3][3]); +void iauC2tpe(double tta, double ttb, double uta, double utb, + double dpsi, double deps, double xp, double yp, + double rc2t[3][3]); +void iauC2txy(double tta, double ttb, double uta, double utb, + double x, double y, double xp, double yp, + double rc2t[3][3]); +double iauEo06a(double date1, double date2); +double iauEors(double rnpb[3][3], double s); +void iauFw2m(double gamb, double phib, double psi, double eps, + double r[3][3]); +void iauFw2xy(double gamb, double phib, double psi, double eps, + double *x, double *y); +void iauLtp(double epj, double rp[3][3]); +void iauLtpb(double epj, double rpb[3][3]); +void iauLtpecl(double epj, double vec[3]); +void iauLtpequ(double epj, double veq[3]); +void iauNum00a(double date1, double date2, double rmatn[3][3]); +void iauNum00b(double date1, double date2, double rmatn[3][3]); +void iauNum06a(double date1, double date2, double rmatn[3][3]); +void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]); +void iauNut00a(double date1, double date2, double *dpsi, double *deps); +void iauNut00b(double date1, double date2, double *dpsi, double *deps); +void iauNut06a(double date1, double date2, double *dpsi, double *deps); +void iauNut80(double date1, double date2, double *dpsi, double *deps); +void iauNutm80(double date1, double date2, double rmatn[3][3]); +double iauObl06(double date1, double date2); +double iauObl80(double date1, double date2); +void iauP06e(double date1, double date2, + double *eps0, double *psia, double *oma, double *bpa, + double *bqa, double *pia, double *bpia, + double *epsa, double *chia, double *za, double *zetaa, + double *thetaa, double *pa, + double *gam, double *phi, double *psi); +void iauPb06(double date1, double date2, + double *bzeta, double *bz, double *btheta); +void iauPfw06(double date1, double date2, + double *gamb, double *phib, double *psib, double *epsa); +void iauPmat00(double date1, double date2, double rbp[3][3]); +void iauPmat06(double date1, double date2, double rbp[3][3]); +void iauPmat76(double date1, double date2, double rmatp[3][3]); +void iauPn00(double date1, double date2, double dpsi, double deps, + double *epsa, + double rb[3][3], double rp[3][3], double rbp[3][3], + double rn[3][3], double rbpn[3][3]); +void iauPn00a(double date1, double date2, + double *dpsi, double *deps, double *epsa, + double rb[3][3], double rp[3][3], double rbp[3][3], + double rn[3][3], double rbpn[3][3]); +void iauPn00b(double date1, double date2, + double *dpsi, double *deps, double *epsa, + double rb[3][3], double rp[3][3], double rbp[3][3], + double rn[3][3], double rbpn[3][3]); +void iauPn06(double date1, double date2, double dpsi, double deps, + double *epsa, + double rb[3][3], double rp[3][3], double rbp[3][3], + double rn[3][3], double rbpn[3][3]); +void iauPn06a(double date1, double date2, + double *dpsi, double *deps, double *epsa, + double rb[3][3], double rp[3][3], double rbp[3][3], + double rn[3][3], double rbpn[3][3]); +void iauPnm00a(double date1, double date2, double rbpn[3][3]); +void iauPnm00b(double date1, double date2, double rbpn[3][3]); +void iauPnm06a(double date1, double date2, double rnpb[3][3]); +void iauPnm80(double date1, double date2, double rmatpn[3][3]); +void iauPom00(double xp, double yp, double sp, double rpom[3][3]); +void iauPr00(double date1, double date2, + double *dpsipr, double *depspr); +void iauPrec76(double date01, double date02, + double date11, double date12, + double *zeta, double *z, double *theta); +double iauS00(double date1, double date2, double x, double y); +double iauS00a(double date1, double date2); +double iauS00b(double date1, double date2); +double iauS06(double date1, double date2, double x, double y); +double iauS06a(double date1, double date2); +double iauSp00(double date1, double date2); +void iauXy06(double date1, double date2, double *x, double *y); +void iauXys00a(double date1, double date2, + double *x, double *y, double *s); +void iauXys00b(double date1, double date2, + double *x, double *y, double *s); +void iauXys06a(double date1, double date2, + double *x, double *y, double *s); + +/* Astronomy/RotationAndTime */ +double iauEe00(double date1, double date2, double epsa, double dpsi); +double iauEe00a(double date1, double date2); +double iauEe00b(double date1, double date2); +double iauEe06a(double date1, double date2); +double iauEect00(double date1, double date2); +double iauEqeq94(double date1, double date2); +double iauEra00(double dj1, double dj2); +double iauGmst00(double uta, double utb, double tta, double ttb); +double iauGmst06(double uta, double utb, double tta, double ttb); +double iauGmst82(double dj1, double dj2); +double iauGst00a(double uta, double utb, double tta, double ttb); +double iauGst00b(double uta, double utb); +double iauGst06(double uta, double utb, double tta, double ttb, + double rnpb[3][3]); +double iauGst06a(double uta, double utb, double tta, double ttb); +double iauGst94(double uta, double utb); + +/* Astronomy/SpaceMotion */ +int iauPvstar(double pv[2][3], double *ra, double *dec, + double *pmr, double *pmd, double *px, double *rv); +int iauStarpv(double ra, double dec, + double pmr, double pmd, double px, double rv, + double pv[2][3]); + +/* Astronomy/StarCatalogs */ +void iauFk52h(double r5, double d5, + double dr5, double dd5, double px5, double rv5, + double *rh, double *dh, + double *drh, double *ddh, double *pxh, double *rvh); +void iauFk5hip(double r5h[3][3], double s5h[3]); +void iauFk5hz(double r5, double d5, double date1, double date2, + double *rh, double *dh); +void iauH2fk5(double rh, double dh, + double drh, double ddh, double pxh, double rvh, + double *r5, double *d5, + double *dr5, double *dd5, double *px5, double *rv5); +void iauHfk5z(double rh, double dh, double date1, double date2, + double *r5, double *d5, double *dr5, double *dd5); +int iauStarpm(double ra1, double dec1, + double pmr1, double pmd1, double px1, double rv1, + double ep1a, double ep1b, double ep2a, double ep2b, + double *ra2, double *dec2, + double *pmr2, double *pmd2, double *px2, double *rv2); + +/* Astronomy/EclipticCoordinates */ +void iauEceq06(double date1, double date2, double dl, double db, + double *dr, double *dd); +void iauEcm06(double date1, double date2, double rm[3][3]); +void iauEqec06(double date1, double date2, double dr, double dd, + double *dl, double *db); +void iauLteceq(double epj, double dl, double db, double *dr, double *dd); +void iauLtecm(double epj, double rm[3][3]); +void iauLteqec(double epj, double dr, double dd, double *dl, double *db); + +/* Astronomy/GalacticCoordinates */ +void iauG2icrs(double dl, double db, double *dr, double *dd); +void iauIcrs2g(double dr, double dd, double *dl, double *db); + +/* Astronomy/GeodeticGeocentric */ +int iauEform(int n, double *a, double *f); +int iauGc2gd(int n, double xyz[3], + double *elong, double *phi, double *height); +int iauGc2gde(double a, double f, double xyz[3], + double *elong, double *phi, double *height); +int iauGd2gc(int n, double elong, double phi, double height, + double xyz[3]); +int iauGd2gce(double a, double f, + double elong, double phi, double height, double xyz[3]); + +/* Astronomy/Timescales */ +int iauD2dtf(const char *scale, int ndp, double d1, double d2, + int *iy, int *im, int *id, int ihmsf[4]); +int iauDat(int iy, int im, int id, double fd, double *deltat); +double iauDtdb(double date1, double date2, + double ut, double elong, double u, double v); +int iauDtf2d(const char *scale, int iy, int im, int id, + int ihr, int imn, double sec, double *d1, double *d2); +int iauTaitt(double tai1, double tai2, double *tt1, double *tt2); +int iauTaiut1(double tai1, double tai2, double dta, + double *ut11, double *ut12); +int iauTaiutc(double tai1, double tai2, double *utc1, double *utc2); +int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2); +int iauTcgtt(double tcg1, double tcg2, double *tt1, double *tt2); +int iauTdbtcb(double tdb1, double tdb2, double *tcb1, double *tcb2); +int iauTdbtt(double tdb1, double tdb2, double dtr, + double *tt1, double *tt2); +int iauTttai(double tt1, double tt2, double *tai1, double *tai2); +int iauTttcg(double tt1, double tt2, double *tcg1, double *tcg2); +int iauTttdb(double tt1, double tt2, double dtr, + double *tdb1, double *tdb2); +int iauTtut1(double tt1, double tt2, double dt, + double *ut11, double *ut12); +int iauUt1tai(double ut11, double ut12, double dta, + double *tai1, double *tai2); +int iauUt1tt(double ut11, double ut12, double dt, + double *tt1, double *tt2); +int iauUt1utc(double ut11, double ut12, double dut1, + double *utc1, double *utc2); +int iauUtctai(double utc1, double utc2, double *tai1, double *tai2); +int iauUtcut1(double utc1, double utc2, double dut1, + double *ut11, double *ut12); + +/* VectorMatrix/AngleOps */ +void iauA2af(int ndp, double angle, char *sign, int idmsf[4]); +void iauA2tf(int ndp, double angle, char *sign, int ihmsf[4]); +int iauAf2a(char s, int ideg, int iamin, double asec, double *rad); +double iauAnp(double a); +double iauAnpm(double a); +void iauD2tf(int ndp, double days, char *sign, int ihmsf[4]); +int iauTf2a(char s, int ihour, int imin, double sec, double *rad); +int iauTf2d(char s, int ihour, int imin, double sec, double *days); + +/* VectorMatrix/BuildRotations */ +void iauRx(double phi, double r[3][3]); +void iauRy(double theta, double r[3][3]); +void iauRz(double psi, double r[3][3]); + +/* VectorMatrix/CopyExtendExtract */ +void iauCp(double p[3], double c[3]); +void iauCpv(double pv[2][3], double c[2][3]); +void iauCr(double r[3][3], double c[3][3]); +void iauP2pv(double p[3], double pv[2][3]); +void iauPv2p(double pv[2][3], double p[3]); + +/* VectorMatrix/Initialization */ +void iauIr(double r[3][3]); +void iauZp(double p[3]); +void iauZpv(double pv[2][3]); +void iauZr(double r[3][3]); + +/* VectorMatrix/MatrixOps */ +void iauRxr(double a[3][3], double b[3][3], double atb[3][3]); +void iauTr(double r[3][3], double rt[3][3]); + +/* VectorMatrix/MatrixVectorProducts */ +void iauRxp(double r[3][3], double p[3], double rp[3]); +void iauRxpv(double r[3][3], double pv[2][3], double rpv[2][3]); +void iauTrxp(double r[3][3], double p[3], double trp[3]); +void iauTrxpv(double r[3][3], double pv[2][3], double trpv[2][3]); + +/* VectorMatrix/RotationVectors */ +void iauRm2v(double r[3][3], double w[3]); +void iauRv2m(double w[3], double r[3][3]); + +/* VectorMatrix/SeparationAndAngle */ +double iauPap(double a[3], double b[3]); +double iauPas(double al, double ap, double bl, double bp); +double iauSepp(double a[3], double b[3]); +double iauSeps(double al, double ap, double bl, double bp); + +/* VectorMatrix/SphericalCartesian */ +void iauC2s(double p[3], double *theta, double *phi); +void iauP2s(double p[3], double *theta, double *phi, double *r); +void iauPv2s(double pv[2][3], + double *theta, double *phi, double *r, + double *td, double *pd, double *rd); +void iauS2c(double theta, double phi, double c[3]); +void iauS2p(double theta, double phi, double r, double p[3]); +void iauS2pv(double theta, double phi, double r, + double td, double pd, double rd, + double pv[2][3]); + +/* VectorMatrix/VectorOps */ +double iauPdp(double a[3], double b[3]); +double iauPm(double p[3]); +void iauPmp(double a[3], double b[3], double amb[3]); +void iauPn(double p[3], double *r, double u[3]); +void iauPpp(double a[3], double b[3], double apb[3]); +void iauPpsp(double a[3], double s, double b[3], double apsb[3]); +void iauPvdpv(double a[2][3], double b[2][3], double adb[2]); +void iauPvm(double pv[2][3], double *r, double *s); +void iauPvmpv(double a[2][3], double b[2][3], double amb[2][3]); +void iauPvppv(double a[2][3], double b[2][3], double apb[2][3]); +void iauPvu(double dt, double pv[2][3], double upv[2][3]); +void iauPvup(double dt, double pv[2][3], double p[3]); +void iauPvxpv(double a[2][3], double b[2][3], double axb[2][3]); +void iauPxp(double a[3], double b[3], double axb[3]); +void iauS2xpv(double s1, double s2, double pv[2][3], double spv[2][3]); +void iauSxp(double s, double p[3], double sp[3]); +void iauSxpv(double s, double pv[2][3], double spv[2][3]); + +#ifdef __cplusplus +} +#endif + +#endif + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + #ifndef SOFAMHDEF #define SOFAMHDEF @@ -15977,9 +17146,9 @@ file sofam.h. ** ** This revision: 2013 August 27 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ /* Star-independent astrometry parameters */ @@ -16115,7 +17284,7 @@ typedef struct { /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** @@ -16209,7 +17378,7 @@ typedef struct { ** **--------------------------------------------------------------------*/ -board.lis 2014 February 20 +board.lis 2015 December 6 @@ -16218,23 +17387,25 @@ IAU STANDARDS OF FUNDAMENTAL ASTRONOMY BOARD Current Membership - John Bangert United States Naval Observatory, retired - Steven Bell Her Majesty's Nautical Almanac Office - Nicole Capitaine Paris Observatory - William Folkner Jet Propulsion Laboratory - Catherine Hohenkerk Her Majesty's Nautical Almanac Office (Chair) - Jinling Li Shanghai Astronomical Observatory - Brian Luzum United States Naval Observatory (IERS) - Zinovy Malkin Pulkovo Observatory, St Petersburg - Jeffrey Percival University of Wisconsin - Scott Ransom National Radio Astronomy Observatory - Patrick Wallace RAL Space, retired + John Bangert - United States Naval Observatory, retired + Steven Bell - Her Majesty's Nautical Almanac Office + Nicole Capitaine - Paris Observatory + William Folkner - Jet Propulsion Laboratory + Mickaël Gastineau - Paris Observatory, IMCCE + Catherine Hohenkerk - Her Majesty's Nautical Almanac Office (Chair) + Li Jinling - Shanghai Astronomical Observatory + Brian Luzum - United States Naval Observatory (IERS) + Zinovy Malkin - Pulkovo Observatory, St Petersburg + Jeffrey Percival - University of Wisconsin + Wendy Puatua - United States Naval Observatory + Scott Ransom - National Radio Astronomy Observatory + Patrick Wallace - RAL Space, retired Past Members - Mark Calabretta Australia Telescope National Facility, retired Wim Brouw University of Groningen + Mark Calabretta Australia Telescope National Facility Anne-Marie Gontier Paris Observatory George Hobbs Australia Telescope National Facility George Kaplan United States Naval Observatory diff --git a/sofa/20160503/c/doc/manual.pdf b/sofa/20160503/c/doc/manual.pdf new file mode 100644 index 00000000..84397da8 Binary files /dev/null and b/sofa/20160503/c/doc/manual.pdf differ diff --git a/sofa/20150209_a/c/doc/sofa_ast_c.pdf b/sofa/20160503/c/doc/sofa_ast_c.pdf similarity index 100% rename from sofa/20150209_a/c/doc/sofa_ast_c.pdf rename to sofa/20160503/c/doc/sofa_ast_c.pdf diff --git a/sofa/20150209_a/c/doc/sofa_ast_summary.pdf b/sofa/20160503/c/doc/sofa_ast_summary.pdf similarity index 100% rename from sofa/20150209_a/c/doc/sofa_ast_summary.pdf rename to sofa/20160503/c/doc/sofa_ast_summary.pdf diff --git a/sofa/20150209_a/c/doc/sofa_lib.lis b/sofa/20160503/c/doc/sofa_lib.lis similarity index 95% rename from sofa/20150209_a/c/doc/sofa_lib.lis rename to sofa/20160503/c/doc/sofa_lib.lis index 9e177c8d..4ffc3994 100644 --- a/sofa/20150209_a/c/doc/sofa_lib.lis +++ b/sofa/20160503/c/doc/sofa_lib.lis @@ -1,4 +1,4 @@ -sofa_lib.lis 2015 January 30 +sofa_lib.lis 2016 March 10 ---------------------- SOFA Astronomy Library @@ -187,6 +187,10 @@ ROUTINES EORS equation of the origins, given NPB matrix and s FW2M Fukushima-Williams angles to r-matrix FW2XY Fukushima-Williams angles to X,Y + LTP long-term precession matrix + LTPB long-term precession matrix, including ICRS frame bias + LTPECL long-term precession of the ecliptic + LTPEQU long-term precession of the equator NUM00A nutation matrix, IAU 2000A NUM00B nutation matrix, IAU 2000B NUM06A nutation matrix, IAU 2006/2000A @@ -252,6 +256,15 @@ ROUTINES H2FK5 transform Hipparcos star data into the FK5 system HFK5Z Hipparcos to FK5 assuming zero Hipparcos proper motion + Ecliptic coordinates + + ECEQ06 ecliptic to ICRS, IAU 2006 + ECM06 rotation matrix, ICRS to ecliptic, IAU 2006 + EQEC06 ICRS to ecliptic, IAU 2006 + LTECEQ ecliptic to ICRS, long term + LTECM rotation matrix, ICRS to ecliptic, long-term + LTEQEC ICRS to ecliptic, long term + Galactic coordinates G2ICRS transform IAU 1958 galactic coordinates to ICRS @@ -333,6 +346,8 @@ CALLS: FORTRAN VERSION CALL iau_DAT ( IY, IM, ID, FD, DELTAT, J ) D = iau_DTDB ( DATE1, DATE2, UT, ELONG, U, V ) CALL iau_DTF2D ( SCALE, IY, IM, ID, IHR, IMN, SEC, D1, D2, J ) + CALL iau_ECEQ06 ( DATE1, DATE2, DL, DB, DR, DD ) + CALL iau_ECM06 ( DATE1, DATE2, RM ); D = iau_EE00 ( DATE1, DATE2, EPSA, DPSI ) D = iau_EE00A ( DATE1, DATE2 ) D = iau_EE00B ( DATE1, DATE2 ) @@ -346,6 +361,7 @@ CALLS: FORTRAN VERSION D = iau_EPJ ( DJ1, DJ2 ) CALL iau_EPJ2JD ( EPJ, DJM0, DJM ) CALL iau_EPV00 ( DJ1, DJ2, PVH, PVB, J ) + CALL iau_EQEC06 ( DATE1, DATE2, DR, DD, DL, DB ) D = iau_EQEQ94 ( DATE1, DATE2 ) D = iau_ERA00 ( DJ1, DJ2 ) D = iau_FAD03 ( T ) @@ -390,6 +406,13 @@ CALLS: FORTRAN VERSION CALL iau_LD ( BM, P, Q, E, EM, DLIM, P1 ) CALL iau_LDN ( N, B, OB, SC, SN ) CALL iau_LDSUN ( P, E, EM, P1 ) + CALL iau_LTECEQ ( EPJ, DL, DB, DR, DD ) + CALL iau_LTECM ( EPJ, RM] ) + CALL iau_LTEQEC ( EPJ, DR, DD, DL, DB ) + CALL iau_LTP ( EPJ, RP ) + CALL iau_LTPB ( EPJ, RPB ) + CALL iau_LTPECL ( EPJ, VEC ) + CALL iau_LTPEQU ( EPJ, VEQ ) CALL iau_NUM00A ( DATE1, DATE2, RMATN ) CALL iau_NUM00B ( DATE1, DATE2, RMATN ) CALL iau_NUM06A ( DATE1, DATE2, RMATN ) @@ -528,6 +551,8 @@ CALLS: C VERSION i = iauDat ( iy, im, id, fd, &deltat ); d = iauDtdb ( date1, date2, ut, elong, u, v ); i = iauDtf2d ( scale, iy, im, id, ihr, imn, sec, &d1, &d2 ); + iauEceq06 ( date1, date2, dl, db, &dr, &dd ); + iauEcm06 ( date1, date2, rm ); d = iauEe00 ( date1, date2, epsa, dpsi ); d = iauEe00a ( date1, date2 ); d = iauEe00b ( date1, date2 ); @@ -541,6 +566,7 @@ CALLS: C VERSION d = iauEpj ( dj1, dj2 ); iauEpj2jd ( epj, &djm0, &djm ); i = iauEpv00 ( dj1, dj2, pvh, pvb ); + iauEqec06 ( date1, date2, dr, dd, &dl, &db ); d = iauEqeq94 ( date1, date2 ); d = iauEra00 ( dj1, dj2 ); d = iauFad03 ( t ); @@ -586,6 +612,13 @@ CALLS: C VERSION iauLd ( bm, p, q, e, em, dlim, p1 ); iauLdn ( n, b, ob, sc, sn ); iauLdsun ( p, e, em, p1 ); + iauLteceq ( epj, dl, db, &dr, &dd ); + iauLtecm ( epj, rm ); + iauLteqec ( epj, dr, dd, &dl, &db ); + iauLtp ( epj, rp ); + iauLtpb ( epj, rpb ); + iauLtpecl ( epj, vec ); + iauLtpequ ( epj, veq ); iauNum00a ( date1, date2, rmatn ); iauNum00b ( date1, date2, rmatn ); iauNum06a ( date1, date2, rmatn ); diff --git a/sofa/20160503/c/doc/sofa_lib.pdf b/sofa/20160503/c/doc/sofa_lib.pdf new file mode 100644 index 00000000..426b5fe8 Binary files /dev/null and b/sofa/20160503/c/doc/sofa_lib.pdf differ diff --git a/sofa/20160503/c/doc/sofa_pn_c.pdf b/sofa/20160503/c/doc/sofa_pn_c.pdf new file mode 100644 index 00000000..7b6de073 Binary files /dev/null and b/sofa/20160503/c/doc/sofa_pn_c.pdf differ diff --git a/sofa/20150209_a/c/doc/sofa_ts_c.pdf b/sofa/20160503/c/doc/sofa_ts_c.pdf similarity index 65% rename from sofa/20150209_a/c/doc/sofa_ts_c.pdf rename to sofa/20160503/c/doc/sofa_ts_c.pdf index d8669ba3..c404808c 100644 Binary files a/sofa/20150209_a/c/doc/sofa_ts_c.pdf and b/sofa/20160503/c/doc/sofa_ts_c.pdf differ diff --git a/sofa/20150209_a/c/doc/sofa_vml.lis b/sofa/20160503/c/doc/sofa_vml.lis similarity index 100% rename from sofa/20150209_a/c/doc/sofa_vml.lis rename to sofa/20160503/c/doc/sofa_vml.lis diff --git a/sofa/20160503/c/doc/sofa_vml.pdf b/sofa/20160503/c/doc/sofa_vml.pdf new file mode 100644 index 00000000..705e0027 Binary files /dev/null and b/sofa/20160503/c/doc/sofa_vml.pdf differ diff --git a/sofa/20150209_a/c/doc/title.lis b/sofa/20160503/c/doc/title.lis similarity index 92% rename from sofa/20150209_a/c/doc/title.lis rename to sofa/20160503/c/doc/title.lis index 00f5fe0e..63d3d365 100644 --- a/sofa/20150209_a/c/doc/title.lis +++ b/sofa/20160503/c/doc/title.lis @@ -53,6 +53,6 @@ - Release 11 + Release 12 - 2015 February 09 + 2016 April 1 diff --git a/sofa/20160503/c/doc/title.pdf b/sofa/20160503/c/doc/title.pdf new file mode 100644 index 00000000..b1d8ea8b Binary files /dev/null and b/sofa/20160503/c/doc/title.pdf differ diff --git a/sofa/20150209_a/c/src/a2af.c b/sofa/20160503/c/src/a2af.c similarity index 98% rename from sofa/20150209_a/c/src/a2af.c rename to sofa/20160503/c/src/a2af.c index 3f6c3b56..1d8b6bcf 100644 --- a/sofa/20150209_a/c/src/a2af.c +++ b/sofa/20160503/c/src/a2af.c @@ -58,14 +58,15 @@ void iauA2af(int ndp, double angle, char *sign, int idmsf[4]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Hours to degrees * radians to turns */ const double F = 15.0 / D2PI; + /* Scale then use days to h,m,s function. */ iauD2tf(ndp, angle*F, sign, idmsf); @@ -73,7 +74,7 @@ void iauA2af(int ndp, double angle, char *sign, int idmsf[4]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/a2tf.c b/sofa/20160503/c/src/a2tf.c similarity index 98% rename from sofa/20150209_a/c/src/a2tf.c rename to sofa/20160503/c/src/a2tf.c index ea7dd274..73df5d8c 100644 --- a/sofa/20150209_a/c/src/a2tf.c +++ b/sofa/20160503/c/src/a2tf.c @@ -58,9 +58,9 @@ void iauA2tf(int ndp, double angle, char *sign, int ihmsf[4]) ** ** This revision: 2013 July 31 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Scale then use days to h,m,s function. */ @@ -70,7 +70,7 @@ void iauA2tf(int ndp, double angle, char *sign, int ihmsf[4]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ab.c b/sofa/20160503/c/src/ab.c similarity index 98% rename from sofa/20150209_a/c/src/ab.c rename to sofa/20160503/c/src/ab.c index 821b016c..2d6d7b5f 100644 --- a/sofa/20150209_a/c/src/ab.c +++ b/sofa/20160503/c/src/ab.c @@ -55,14 +55,15 @@ void iauAb(double pnat[3], double v[3], double s, double bm1, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int i; double pdv, w1, w2, r2, w, p[3], r; + pdv = iauPdp(pnat, v); w1 = 1.0 + pdv/(1.0 + bm1); w2 = SRS/s; @@ -81,7 +82,7 @@ void iauAb(double pnat[3], double v[3], double s, double bm1, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/af2a.c b/sofa/20160503/c/src/af2a.c similarity index 98% rename from sofa/20150209_a/c/src/af2a.c rename to sofa/20160503/c/src/af2a.c index d48a89c6..b91e4e8f 100644 --- a/sofa/20150209_a/c/src/af2a.c +++ b/sofa/20160503/c/src/af2a.c @@ -41,9 +41,9 @@ int iauAf2a(char s, int ideg, int iamin, double asec, double *rad) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -61,7 +61,7 @@ int iauAf2a(char s, int ideg, int iamin, double asec, double *rad) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/anp.c b/sofa/20160503/c/src/anp.c similarity index 97% rename from sofa/20150209_a/c/src/anp.c rename to sofa/20160503/c/src/anp.c index 6ffadeb8..43248747 100644 --- a/sofa/20150209_a/c/src/anp.c +++ b/sofa/20160503/c/src/anp.c @@ -21,13 +21,14 @@ double iauAnp(double a) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double w; + w = fmod(a, D2PI); if (w < 0) w += D2PI; @@ -35,7 +36,7 @@ double iauAnp(double a) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/anpm.c b/sofa/20160503/c/src/anpm.c similarity index 97% rename from sofa/20150209_a/c/src/anpm.c rename to sofa/20160503/c/src/anpm.c index 6a34e2ed..aa7922b7 100644 --- a/sofa/20150209_a/c/src/anpm.c +++ b/sofa/20160503/c/src/anpm.c @@ -21,13 +21,14 @@ double iauAnpm(double a) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double w; + w = fmod(a, D2PI); if (fabs(w) >= DPI) w -= dsign(D2PI, a); @@ -35,7 +36,7 @@ double iauAnpm(double a) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/apcg.c b/sofa/20160503/c/src/apcg.c similarity index 98% rename from sofa/20150209_a/c/src/apcg.c rename to sofa/20160503/c/src/apcg.c index 45c8354a..653bc535 100644 --- a/sofa/20150209_a/c/src/apcg.c +++ b/sofa/20160503/c/src/apcg.c @@ -109,15 +109,16 @@ void iauApcg(double date1, double date2, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Geocentric observer */ double pv[2][3] = { { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 } }; + /* Compute the star-independent astrometry parameters. */ iauApcs(date1, date2, pv, ebpv, ehp, astrom); @@ -125,7 +126,7 @@ void iauApcg(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/apcg13.c b/sofa/20160503/c/src/apcg13.c similarity index 98% rename from sofa/20150209_a/c/src/apcg13.c rename to sofa/20160503/c/src/apcg13.c index c9584d25..98105ea0 100644 --- a/sofa/20150209_a/c/src/apcg13.c +++ b/sofa/20160503/c/src/apcg13.c @@ -111,13 +111,14 @@ void iauApcg13(double date1, double date2, iauASTROM *astrom) ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double ehpv[2][3], ebpv[2][3]; + /* Earth barycentric & heliocentric position/velocity (au, au/d). */ (void) iauEpv00(date1, date2, ehpv, ebpv); @@ -128,7 +129,7 @@ void iauApcg13(double date1, double date2, iauASTROM *astrom) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/apci.c b/sofa/20160503/c/src/apci.c similarity index 98% rename from sofa/20150209_a/c/src/apci.c rename to sofa/20160503/c/src/apci.c index ebb70546..6e38e4e8 100644 --- a/sofa/20150209_a/c/src/apci.c +++ b/sofa/20160503/c/src/apci.c @@ -119,9 +119,9 @@ void iauApci(double date1, double date2, ** ** This revision: 2013 September 25 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -135,7 +135,7 @@ void iauApci(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/apci13.c b/sofa/20160503/c/src/apci13.c similarity index 98% rename from sofa/20150209_a/c/src/apci13.c rename to sofa/20160503/c/src/apci13.c index 3fec2808..6364a2c0 100644 --- a/sofa/20150209_a/c/src/apci13.c +++ b/sofa/20160503/c/src/apci13.c @@ -117,13 +117,14 @@ void iauApci13(double date1, double date2, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double ehpv[2][3], ebpv[2][3], r[3][3], x, y, s; + /* Earth barycentric & heliocentric position/velocity (au, au/d). */ (void) iauEpv00(date1, date2, ehpv, ebpv); @@ -146,7 +147,7 @@ void iauApci13(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/apco.c b/sofa/20160503/c/src/apco.c similarity index 99% rename from sofa/20150209_a/c/src/apco.c rename to sofa/20160503/c/src/apco.c index 1fe3d6a5..890379d0 100644 --- a/sofa/20150209_a/c/src/apco.c +++ b/sofa/20160503/c/src/apco.c @@ -159,13 +159,14 @@ void iauApco(double date1, double date2, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double sl, cl, r[3][3], pvc[2][3], pv[2][3]; + /* Longitude with adjustment for TIO locator s'. */ astrom->along = elong + sp; @@ -208,7 +209,7 @@ void iauApco(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/apco13.c b/sofa/20160503/c/src/apco13.c similarity index 99% rename from sofa/20150209_a/c/src/apco13.c rename to sofa/20160503/c/src/apco13.c index a9dd2492..f43a9902 100644 --- a/sofa/20150209_a/c/src/apco13.c +++ b/sofa/20160503/c/src/apco13.c @@ -180,15 +180,16 @@ int iauApco13(double utc1, double utc2, double dut1, ** ** This revision: 2013 December 5 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j; double tai1, tai2, tt1, tt2, ut11, ut12, ehpv[2][3], ebpv[2][3], r[3][3], x, y, s, theta, sp, refa, refb; + /* UTC to other time scales. */ j = iauUtctai(utc1, utc2, &tai1, &tai2); if ( j < 0 ) return -1; @@ -231,7 +232,7 @@ int iauApco13(double utc1, double utc2, double dut1, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/apcs.c b/sofa/20160503/c/src/apcs.c similarity index 99% rename from sofa/20150209_a/c/src/apcs.c rename to sofa/20160503/c/src/apcs.c index 72aae8a5..78bea18c 100644 --- a/sofa/20150209_a/c/src/apcs.c +++ b/sofa/20160503/c/src/apcs.c @@ -129,9 +129,9 @@ void iauApcs(double date1, double date2, double pv[2][3], ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* au/d to m/s */ @@ -143,6 +143,7 @@ void iauApcs(double date1, double date2, double pv[2][3], int i; double dp, dv, pb[3], vb[3], ph[3], v2, w; + /* Time since reference epoch, years (for proper motion calculation). */ astrom->pmt = ( (date1 - DJ00) + date2 ) / DJY; @@ -177,7 +178,7 @@ void iauApcs(double date1, double date2, double pv[2][3], /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/apcs13.c b/sofa/20160503/c/src/apcs13.c similarity index 98% rename from sofa/20150209_a/c/src/apcs13.c rename to sofa/20160503/c/src/apcs13.c index dd14b730..07bf8b3f 100644 --- a/sofa/20150209_a/c/src/apcs13.c +++ b/sofa/20160503/c/src/apcs13.c @@ -118,13 +118,14 @@ void iauApcs13(double date1, double date2, double pv[2][3], ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double ehpv[2][3], ebpv[2][3]; + /* Earth barycentric & heliocentric position/velocity (au, au/d). */ (void) iauEpv00(date1, date2, ehpv, ebpv); @@ -135,7 +136,7 @@ void iauApcs13(double date1, double date2, double pv[2][3], /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/aper.c b/sofa/20160503/c/src/aper.c similarity index 98% rename from sofa/20150209_a/c/src/aper.c rename to sofa/20160503/c/src/aper.c index e01cbb10..9f2424be 100644 --- a/sofa/20150209_a/c/src/aper.c +++ b/sofa/20160503/c/src/aper.c @@ -96,9 +96,9 @@ void iauAper(double theta, iauASTROM *astrom) ** ** This revision: 2013 September 25 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { astrom->eral = theta + astrom->along; @@ -107,7 +107,7 @@ void iauAper(double theta, iauASTROM *astrom) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/aper13.c b/sofa/20160503/c/src/aper13.c similarity index 98% rename from sofa/20150209_a/c/src/aper13.c rename to sofa/20160503/c/src/aper13.c index 718d2713..cb5174e5 100644 --- a/sofa/20150209_a/c/src/aper13.c +++ b/sofa/20160503/c/src/aper13.c @@ -115,9 +115,9 @@ void iauAper13(double ut11, double ut12, iauASTROM *astrom) ** ** This revision: 2013 September 25 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauAper(iauEra00(ut11,ut12), astrom); @@ -126,7 +126,7 @@ void iauAper13(double ut11, double ut12, iauASTROM *astrom) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/apio.c b/sofa/20160503/c/src/apio.c similarity index 98% rename from sofa/20150209_a/c/src/apio.c rename to sofa/20160503/c/src/apio.c index 7df7356e..99e93631 100644 --- a/sofa/20150209_a/c/src/apio.c +++ b/sofa/20160503/c/src/apio.c @@ -120,13 +120,14 @@ void iauApio(double sp, double theta, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double sl, cl, pv[2][3]; + /* Longitude with adjustment for TIO locator s'. */ astrom->along = elong + sp; @@ -157,7 +158,7 @@ void iauApio(double sp, double theta, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/apio13.c b/sofa/20160503/c/src/apio13.c similarity index 99% rename from sofa/20150209_a/c/src/apio13.c rename to sofa/20160503/c/src/apio13.c index 9553ef7e..db189e14 100644 --- a/sofa/20150209_a/c/src/apio13.c +++ b/sofa/20160503/c/src/apio13.c @@ -169,14 +169,15 @@ int iauApio13(double utc1, double utc2, double dut1, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j; double tai1, tai2, tt1, tt2, ut11, ut12, sp, theta, refa, refb; + /* UTC to other time scales. */ j = iauUtctai(utc1, utc2, &tai1, &tai2); if ( j < 0 ) return -1; @@ -203,7 +204,7 @@ int iauApio13(double utc1, double utc2, double dut1, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atci13.c b/sofa/20160503/c/src/atci13.c similarity index 98% rename from sofa/20150209_a/c/src/atci13.c rename to sofa/20160503/c/src/atci13.c index c7aad0fa..70c1a541 100644 --- a/sofa/20150209_a/c/src/atci13.c +++ b/sofa/20160503/c/src/atci13.c @@ -85,14 +85,15 @@ void iauAtci13(double rc, double dc, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Star-independent astrometry parameters */ iauASTROM astrom; + /* The transformation parameters. */ iauApci13(date1, date2, &astrom, eo); @@ -103,7 +104,7 @@ void iauAtci13(double rc, double dc, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atciq.c b/sofa/20160503/c/src/atciq.c similarity index 98% rename from sofa/20150209_a/c/src/atciq.c rename to sofa/20160503/c/src/atciq.c index 222d4690..fdde2250 100644 --- a/sofa/20150209_a/c/src/atciq.c +++ b/sofa/20160503/c/src/atciq.c @@ -71,13 +71,14 @@ void iauAtciq(double rc, double dc, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double pco[3], pnat[3], ppr[3], pi[3], w; + /* Proper motion and parallax, giving BCRS coordinate direction. */ iauPmpx(rc, dc, pr, pd, px, rv, astrom->pmt, astrom->eb, pco); @@ -98,7 +99,7 @@ void iauAtciq(double rc, double dc, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atciqn.c b/sofa/20160503/c/src/atciqn.c similarity index 98% rename from sofa/20150209_a/c/src/atciqn.c rename to sofa/20160503/c/src/atciqn.c index 825dc331..aef98596 100644 --- a/sofa/20150209_a/c/src/atciqn.c +++ b/sofa/20160503/c/src/atciqn.c @@ -17,6 +17,7 @@ void iauAtciqn(double rc, double dc, double pr, double pd, ** star-independent parameters can be obtained by calling one of the ** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. ** +** ** If the only light-deflecting body to be taken into account is the ** Sun, the iauAtciq function can be used instead. If in addition the ** parallax and proper motions are zero, the iauAtciqz function can be @@ -107,13 +108,14 @@ void iauAtciqn(double rc, double dc, double pr, double pd, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double pco[3], pnat[3], ppr[3], pi[3], w; + /* Proper motion and parallax, giving BCRS coordinate direction. */ iauPmpx(rc, dc, pr, pd, px, rv, astrom->pmt, astrom->eb, pco); @@ -134,7 +136,7 @@ void iauAtciqn(double rc, double dc, double pr, double pd, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atciqz.c b/sofa/20160503/c/src/atciqz.c similarity index 98% rename from sofa/20150209_a/c/src/atciqz.c rename to sofa/20160503/c/src/atciqz.c index 596dab7f..ef36c8e7 100644 --- a/sofa/20150209_a/c/src/atciqz.c +++ b/sofa/20160503/c/src/atciqz.c @@ -70,13 +70,14 @@ void iauAtciqz(double rc, double dc, iauASTROM *astrom, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double pco[3], pnat[3], ppr[3], pi[3], w; + /* BCRS coordinate direction (unit vector). */ iauS2c(rc, dc, pco); @@ -97,7 +98,7 @@ void iauAtciqz(double rc, double dc, iauASTROM *astrom, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atco13.c b/sofa/20160503/c/src/atco13.c similarity index 98% rename from sofa/20150209_a/c/src/atco13.c rename to sofa/20160503/c/src/atco13.c index b1082826..9be4260f 100644 --- a/sofa/20150209_a/c/src/atco13.c +++ b/sofa/20160503/c/src/atco13.c @@ -154,19 +154,20 @@ int iauAtco13(double rc, double dc, ** Called: ** iauApco13 astrometry parameters, ICRS-observed, 2013 ** iauAtciq quick ICRS to CIRS -** iauAtioq quick ICRS to observed +** iauAtioq quick CIRS to observed ** -** This revision: 2013 October 9 +** This revision: 2016 February 2 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j; iauASTROM astrom; double ri, di; + /* Star-independent astrometry parameters. */ j = iauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl, &astrom, eo); @@ -187,7 +188,7 @@ int iauAtco13(double rc, double dc, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atic13.c b/sofa/20160503/c/src/atic13.c similarity index 98% rename from sofa/20150209_a/c/src/atic13.c rename to sofa/20160503/c/src/atic13.c index 20c60711..e2435a53 100644 --- a/sofa/20150209_a/c/src/atic13.c +++ b/sofa/20160503/c/src/atic13.c @@ -78,14 +78,15 @@ void iauAtic13(double ri, double di, double date1, double date2, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Star-independent astrometry parameters */ iauASTROM astrom; + /* Star-independent astrometry parameters. */ iauApci13(date1, date2, &astrom, eo); @@ -96,7 +97,7 @@ void iauAtic13(double ri, double di, double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/aticq.c b/sofa/20160503/c/src/aticq.c similarity index 98% rename from sofa/20150209_a/c/src/aticq.c rename to sofa/20160503/c/src/aticq.c index 728ae414..4a749698 100644 --- a/sofa/20150209_a/c/src/aticq.c +++ b/sofa/20160503/c/src/aticq.c @@ -66,15 +66,16 @@ void iauAticq(double ri, double di, iauASTROM *astrom, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j, i; double pi[3], ppr[3], pnat[3], pco[3], w, d[3], before[3], r2, r, after[3]; + /* CIRS RA,Dec to Cartesian. */ iauS2c(ri, di, pi); @@ -143,7 +144,7 @@ void iauAticq(double ri, double di, iauASTROM *astrom, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/aticqn.c b/sofa/20160503/c/src/aticqn.c similarity index 98% rename from sofa/20150209_a/c/src/aticqn.c rename to sofa/20160503/c/src/aticqn.c index 411a3b02..77027e6c 100644 --- a/sofa/20150209_a/c/src/aticqn.c +++ b/sofa/20160503/c/src/aticqn.c @@ -104,15 +104,16 @@ void iauAticqn(double ri, double di, iauASTROM *astrom, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j, i; double pi[3], ppr[3], pnat[3], pco[3], w, d[3], before[3], r2, r, after[3]; + /* CIRS RA,Dec to Cartesian. */ iauS2c(ri, di, pi); @@ -181,7 +182,7 @@ void iauAticqn(double ri, double di, iauASTROM *astrom, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atio13.c b/sofa/20160503/c/src/atio13.c similarity index 98% rename from sofa/20150209_a/c/src/atio13.c rename to sofa/20160503/c/src/atio13.c index d9a44906..07c4f3ce 100644 --- a/sofa/20150209_a/c/src/atio13.c +++ b/sofa/20160503/c/src/atio13.c @@ -137,18 +137,19 @@ int iauAtio13(double ri, double di, ** ** Called: ** iauApio13 astrometry parameters, CIRS-observed, 2013 -** iauAtioq quick ICRS to observed +** iauAtioq quick CIRS to observed ** -** This revision: 2013 October 9 +** This revision: 2016 February 2 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j; iauASTROM astrom; + /* Star-independent astrometry parameters for CIRS->observed. */ j = iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl, &astrom); @@ -166,7 +167,7 @@ int iauAtio13(double ri, double di, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atioq.c b/sofa/20160503/c/src/atioq.c similarity index 98% rename from sofa/20150209_a/c/src/atioq.c rename to sofa/20160503/c/src/atioq.c index 3f1ae7b4..5bb48208 100644 --- a/sofa/20150209_a/c/src/atioq.c +++ b/sofa/20160503/c/src/atioq.c @@ -100,11 +100,11 @@ void iauAtioq(double ri, double di, iauASTROM *astrom, ** iauC2s p-vector to spherical ** iauAnp normalize angle into range 0 to 2pi ** -** This revision: 2013 December 5 +** This revision: 2016 March 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Minimum cos(alt) and sin(alt) for refraction purposes */ @@ -115,7 +115,6 @@ void iauAtioq(double ri, double di, iauASTROM *astrom, xaet, yaet, zaet, azobs, r, tz, w, del, cosdel, xaeo, yaeo, zaeo, zdobs, hmobs, dcobs, raobs; -/*--------------------------------------------------------------------*/ /* CIRS RA,Dec to Cartesian -HA,Dec. */ iauS2c(ri-astrom->eral, di, v); @@ -189,7 +188,7 @@ void iauAtioq(double ri, double di, iauASTROM *astrom, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atoc13.c b/sofa/20160503/c/src/atoc13.c similarity index 99% rename from sofa/20150209_a/c/src/atoc13.c rename to sofa/20160503/c/src/atoc13.c index 93b05b6d..a5909c86 100644 --- a/sofa/20150209_a/c/src/atoc13.c +++ b/sofa/20160503/c/src/atoc13.c @@ -148,15 +148,16 @@ int iauAtoc13(const char *type, double ob1, double ob2, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j; iauASTROM astrom; double eo, ri, di; + /* Star-independent astrometry parameters. */ j = iauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl, &astrom, &eo); @@ -177,7 +178,7 @@ int iauAtoc13(const char *type, double ob1, double ob2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atoi13.c b/sofa/20160503/c/src/atoi13.c similarity index 99% rename from sofa/20150209_a/c/src/atoi13.c rename to sofa/20160503/c/src/atoi13.c index f35982a2..a68c5d0f 100644 --- a/sofa/20150209_a/c/src/atoi13.c +++ b/sofa/20160503/c/src/atoi13.c @@ -147,14 +147,15 @@ int iauAtoi13(const char *type, double ob1, double ob2, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j; iauASTROM astrom; + /* Star-independent astrometry parameters for CIRS->observed. */ j = iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl, &astrom); @@ -172,7 +173,7 @@ int iauAtoi13(const char *type, double ob1, double ob2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/atoiq.c b/sofa/20160503/c/src/atoiq.c similarity index 99% rename from sofa/20150209_a/c/src/atoiq.c rename to sofa/20160503/c/src/atoiq.c index 18bb1745..29e12a0f 100644 --- a/sofa/20150209_a/c/src/atoiq.c +++ b/sofa/20160503/c/src/atoiq.c @@ -92,9 +92,9 @@ void iauAtoiq(const char *type, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int c; @@ -103,6 +103,7 @@ void iauAtoiq(const char *type, zdt, xaet, yaet, zaet, xmhda, ymhda, zmhda, f, xhd, yhd, zhd, xpl, ypl, w, hma; + /* Coordinate type. */ c = (int) type[0]; @@ -201,7 +202,7 @@ void iauAtoiq(const char *type, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/bi00.c b/sofa/20160503/c/src/bi00.c similarity index 98% rename from sofa/20150209_a/c/src/bi00.c rename to sofa/20160503/c/src/bi00.c index 54ec212e..da9012f7 100644 --- a/sofa/20150209_a/c/src/bi00.c +++ b/sofa/20160503/c/src/bi00.c @@ -48,9 +48,9 @@ void iauBi00(double *dpsibi, double *depsbi, double *dra) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* The frame bias corrections in longitude and obliquity */ @@ -60,6 +60,7 @@ void iauBi00(double *dpsibi, double *depsbi, double *dra) /* The ICRS RA of the J2000.0 equinox (Chapront et al., 2002) */ const double DRA0 = -0.0146 * DAS2R; + /* Return the results (which are fixed). */ *dpsibi = DPBIAS; *depsbi = DEBIAS; @@ -69,7 +70,7 @@ void iauBi00(double *dpsibi, double *depsbi, double *dra) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/bp00.c b/sofa/20160503/c/src/bp00.c similarity index 98% rename from sofa/20150209_a/c/src/bp00.c rename to sofa/20160503/c/src/bp00.c index 2ad52bf0..9661fcd0 100644 --- a/sofa/20150209_a/c/src/bp00.c +++ b/sofa/20160503/c/src/bp00.c @@ -77,9 +77,9 @@ void iauBp00(double date1, double date2, ** ** This revision: 2013 August 21 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* J2000.0 obliquity (Lieske et al. 1977) */ @@ -88,6 +88,7 @@ void iauBp00(double date1, double date2, double t, dpsibi, depsbi, dra0, psia77, oma77, chia, dpsipr, depspr, psia, oma, rbw[3][3]; + /* Interval between fundamental epoch J2000.0 and current date (JC). */ t = ((date1 - DJ00) + date2) / DJC; @@ -125,7 +126,7 @@ void iauBp00(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/bp06.c b/sofa/20160503/c/src/bp06.c similarity index 98% rename from sofa/20150209_a/c/src/bp06.c rename to sofa/20160503/c/src/bp06.c index bbb76564..9fa14e26 100644 --- a/sofa/20150209_a/c/src/bp06.c +++ b/sofa/20160503/c/src/bp06.c @@ -71,13 +71,14 @@ void iauBp06(double date1, double date2, ** ** This revision: 2013 August 21 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double gamb, phib, psib, epsa, rbpw[3][3], rbt[3][3]; + /* B matrix. */ iauPfw06(DJM0, DJM00, &gamb, &phib, &psib, &epsa); iauFw2m(gamb, phib, psib, epsa, rb); @@ -96,7 +97,7 @@ void iauBp06(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/bpn2xy.c b/sofa/20160503/c/src/bpn2xy.c similarity index 98% rename from sofa/20150209_a/c/src/bpn2xy.c rename to sofa/20160503/c/src/bpn2xy.c index 3be0680e..73e6940e 100644 --- a/sofa/20150209_a/c/src/bpn2xy.c +++ b/sofa/20160503/c/src/bpn2xy.c @@ -41,9 +41,9 @@ void iauBpn2xy(double rbpn[3][3], double *x, double *y) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Extract the X,Y coordinates. */ @@ -54,7 +54,7 @@ void iauBpn2xy(double rbpn[3][3], double *x, double *y) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2i00a.c b/sofa/20160503/c/src/c2i00a.c similarity index 98% rename from sofa/20150209_a/c/src/c2i00a.c rename to sofa/20160503/c/src/c2i00a.c index 74f1872b..4f7123cc 100644 --- a/sofa/20150209_a/c/src/c2i00a.c +++ b/sofa/20160503/c/src/c2i00a.c @@ -75,13 +75,14 @@ void iauC2i00a(double date1, double date2, double rc2i[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rbpn[3][3]; + /* Obtain the celestial-to-true matrix (IAU 2000A). */ iauPnm00a(date1, date2, rbpn); @@ -92,7 +93,7 @@ void iauC2i00a(double date1, double date2, double rc2i[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2i00b.c b/sofa/20160503/c/src/c2i00b.c similarity index 98% rename from sofa/20150209_a/c/src/c2i00b.c rename to sofa/20160503/c/src/c2i00b.c index c9165fde..ee026079 100644 --- a/sofa/20150209_a/c/src/c2i00b.c +++ b/sofa/20160503/c/src/c2i00b.c @@ -75,13 +75,14 @@ void iauC2i00b(double date1, double date2, double rc2i[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rbpn[3][3]; + /* Obtain the celestial-to-true matrix (IAU 2000B). */ iauPnm00b(date1, date2, rbpn); @@ -92,7 +93,7 @@ void iauC2i00b(double date1, double date2, double rc2i[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2i06a.c b/sofa/20160503/c/src/c2i06a.c similarity index 98% rename from sofa/20150209_a/c/src/c2i06a.c rename to sofa/20160503/c/src/c2i06a.c index 9685c245..76dab81f 100644 --- a/sofa/20150209_a/c/src/c2i06a.c +++ b/sofa/20160503/c/src/c2i06a.c @@ -66,13 +66,14 @@ void iauC2i06a(double date1, double date2, double rc2i[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rbpn[3][3], x, y, s; + /* Obtain the celestial-to-true matrix (IAU 2006/2000A). */ iauPnm06a(date1, date2, rbpn); @@ -89,7 +90,7 @@ void iauC2i06a(double date1, double date2, double rc2i[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2ibpn.c b/sofa/20160503/c/src/c2ibpn.c similarity index 98% rename from sofa/20150209_a/c/src/c2ibpn.c rename to sofa/20160503/c/src/c2ibpn.c index f2a51f54..b315f34e 100644 --- a/sofa/20150209_a/c/src/c2ibpn.c +++ b/sofa/20160503/c/src/c2ibpn.c @@ -78,13 +78,14 @@ void iauC2ibpn(double date1, double date2, double rbpn[3][3], ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double x, y; + /* Extract the X,Y coordinates. */ iauBpn2xy(rbpn, &x, &y); @@ -95,7 +96,7 @@ void iauC2ibpn(double date1, double date2, double rbpn[3][3], /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2ixy.c b/sofa/20160503/c/src/c2ixy.c similarity index 98% rename from sofa/20150209_a/c/src/c2ixy.c rename to sofa/20160503/c/src/c2ixy.c index 6ccc4646..31674eee 100644 --- a/sofa/20150209_a/c/src/c2ixy.c +++ b/sofa/20160503/c/src/c2ixy.c @@ -72,9 +72,9 @@ void iauC2ixy(double date1, double date2, double x, double y, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -85,7 +85,7 @@ void iauC2ixy(double date1, double date2, double x, double y, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2ixys.c b/sofa/20160503/c/src/c2ixys.c similarity index 98% rename from sofa/20150209_a/c/src/c2ixys.c rename to sofa/20160503/c/src/c2ixys.c index 2bcd547d..4cf05a95 100644 --- a/sofa/20150209_a/c/src/c2ixys.c +++ b/sofa/20160503/c/src/c2ixys.c @@ -54,9 +54,9 @@ void iauC2ixys(double x, double y, double s, double rc2i[3][3]) ** ** This revision: 2014 November 7 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double r2, e, d; @@ -77,7 +77,7 @@ void iauC2ixys(double x, double y, double s, double rc2i[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2s.c b/sofa/20160503/c/src/c2s.c similarity index 97% rename from sofa/20150209_a/c/src/c2s.c rename to sofa/20160503/c/src/c2s.c index 183caa6d..b87cb6d4 100644 --- a/sofa/20150209_a/c/src/c2s.c +++ b/sofa/20160503/c/src/c2s.c @@ -30,13 +30,14 @@ void iauC2s(double p[3], double *theta, double *phi) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double x, y, z, d2; + x = p[0]; y = p[1]; z = p[2]; @@ -49,7 +50,7 @@ void iauC2s(double p[3], double *theta, double *phi) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2t00a.c b/sofa/20160503/c/src/c2t00a.c similarity index 98% rename from sofa/20150209_a/c/src/c2t00a.c rename to sofa/20160503/c/src/c2t00a.c index 9620ba4c..a2ced863 100644 --- a/sofa/20150209_a/c/src/c2t00a.c +++ b/sofa/20160503/c/src/c2t00a.c @@ -81,13 +81,14 @@ void iauC2t00a(double tta, double ttb, double uta, double utb, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rc2i[3][3], era, sp, rpom[3][3]; + /* Form the celestial-to-intermediate matrix for this TT (IAU 2000A). */ iauC2i00a(tta, ttb, rc2i ); @@ -107,7 +108,7 @@ void iauC2t00a(double tta, double ttb, double uta, double utb, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2t00b.c b/sofa/20160503/c/src/c2t00b.c similarity index 98% rename from sofa/20150209_a/c/src/c2t00b.c rename to sofa/20160503/c/src/c2t00b.c index 7c09b0fa..f367ad8f 100644 --- a/sofa/20150209_a/c/src/c2t00b.c +++ b/sofa/20160503/c/src/c2t00b.c @@ -80,13 +80,14 @@ void iauC2t00b(double tta, double ttb, double uta, double utb, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rc2i[3][3], era, rpom[3][3]; + /* Form the celestial-to-intermediate matrix for this TT (IAU 2000B). */ iauC2i00b(tta, ttb, rc2i); @@ -103,7 +104,7 @@ void iauC2t00b(double tta, double ttb, double uta, double utb, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2t06a.c b/sofa/20160503/c/src/c2t06a.c similarity index 98% rename from sofa/20150209_a/c/src/c2t06a.c rename to sofa/20160503/c/src/c2t06a.c index 4e877416..25c633e2 100644 --- a/sofa/20150209_a/c/src/c2t06a.c +++ b/sofa/20160503/c/src/c2t06a.c @@ -79,13 +79,14 @@ void iauC2t06a(double tta, double ttb, double uta, double utb, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rc2i[3][3], era, sp, rpom[3][3]; + /* Form the celestial-to-intermediate matrix for this TT. */ iauC2i06a(tta, ttb, rc2i); @@ -105,7 +106,7 @@ void iauC2t06a(double tta, double ttb, double uta, double utb, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2tcio.c b/sofa/20160503/c/src/c2tcio.c similarity index 98% rename from sofa/20150209_a/c/src/c2tcio.c rename to sofa/20160503/c/src/c2tcio.c index a4892d44..4bd80bd9 100644 --- a/sofa/20150209_a/c/src/c2tcio.c +++ b/sofa/20160503/c/src/c2tcio.c @@ -59,13 +59,14 @@ void iauC2tcio(double rc2i[3][3], double era, double rpom[3][3], ** ** This revision: 2013 August 24 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double r[3][3]; + /* Construct the matrix. */ iauCr(rc2i, r); iauRz(era, r); @@ -75,7 +76,7 @@ void iauC2tcio(double rc2i[3][3], double era, double rpom[3][3], /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2teqx.c b/sofa/20160503/c/src/c2teqx.c similarity index 98% rename from sofa/20150209_a/c/src/c2teqx.c rename to sofa/20160503/c/src/c2teqx.c index 55170736..fa7bb3ee 100644 --- a/sofa/20150209_a/c/src/c2teqx.c +++ b/sofa/20160503/c/src/c2teqx.c @@ -59,13 +59,14 @@ void iauC2teqx(double rbpn[3][3], double gst, double rpom[3][3], ** ** This revision: 2013 August 24 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double r[3][3]; + /* Construct the matrix. */ iauCr(rbpn, r); iauRz(gst, r); @@ -75,7 +76,7 @@ void iauC2teqx(double rbpn[3][3], double gst, double rpom[3][3], /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2tpe.c b/sofa/20160503/c/src/c2tpe.c similarity index 98% rename from sofa/20150209_a/c/src/c2tpe.c rename to sofa/20160503/c/src/c2tpe.c index f187b808..ed714b9c 100644 --- a/sofa/20150209_a/c/src/c2tpe.c +++ b/sofa/20160503/c/src/c2tpe.c @@ -90,14 +90,15 @@ void iauC2tpe(double tta, double ttb, double uta, double utb, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3], gmst, ee, sp, rpom[3][3]; + /* Form the celestial-to-true matrix for this TT. */ iauPn00(tta, ttb, dpsi, deps, &epsa, rb, rp, rbp, rn, rbpn); @@ -120,7 +121,7 @@ void iauC2tpe(double tta, double ttb, double uta, double utb, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/c2txy.c b/sofa/20160503/c/src/c2txy.c similarity index 98% rename from sofa/20150209_a/c/src/c2txy.c rename to sofa/20160503/c/src/c2txy.c index d05a53af..eb135faf 100644 --- a/sofa/20150209_a/c/src/c2txy.c +++ b/sofa/20160503/c/src/c2txy.c @@ -86,13 +86,14 @@ void iauC2txy(double tta, double ttb, double uta, double utb, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rc2i[3][3], era, sp, rpom[3][3]; + /* Form the celestial-to-intermediate matrix for this TT. */ iauC2ixy(tta, ttb, x, y, rc2i); @@ -112,7 +113,7 @@ void iauC2txy(double tta, double ttb, double uta, double utb, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/cal2jd.c b/sofa/20160503/c/src/cal2jd.c similarity index 98% rename from sofa/20150209_a/c/src/cal2jd.c rename to sofa/20160503/c/src/cal2jd.c index 03c829af..a46d937f 100644 --- a/sofa/20150209_a/c/src/cal2jd.c +++ b/sofa/20160503/c/src/cal2jd.c @@ -50,9 +50,9 @@ int iauCal2jd(int iy, int im, int id, double *djm0, double *djm) ** ** This revision: 2013 August 7 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j, ly, my; @@ -65,6 +65,7 @@ int iauCal2jd(int iy, int im, int id, double *djm0, double *djm) static const int mtab[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; + /* Preset status. */ j = 0; @@ -92,7 +93,7 @@ int iauCal2jd(int iy, int im, int id, double *djm0, double *djm) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/cp.c b/sofa/20160503/c/src/cp.c similarity index 97% rename from sofa/20150209_a/c/src/cp.c rename to sofa/20160503/c/src/cp.c index 5dc42e9b..c3f22f89 100644 --- a/sofa/20150209_a/c/src/cp.c +++ b/sofa/20160503/c/src/cp.c @@ -21,9 +21,9 @@ void iauCp(double p[3], double c[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { c[0] = p[0]; @@ -34,7 +34,7 @@ void iauCp(double p[3], double c[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/cpv.c b/sofa/20160503/c/src/cpv.c similarity index 97% rename from sofa/20150209_a/c/src/cpv.c rename to sofa/20160503/c/src/cpv.c index d11a21b3..42c17043 100644 --- a/sofa/20150209_a/c/src/cpv.c +++ b/sofa/20160503/c/src/cpv.c @@ -24,9 +24,9 @@ void iauCpv(double pv[2][3], double c[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauCp(pv[0], c[0]); @@ -36,7 +36,7 @@ void iauCpv(double pv[2][3], double c[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/cr.c b/sofa/20160503/c/src/cr.c similarity index 97% rename from sofa/20150209_a/c/src/cr.c rename to sofa/20160503/c/src/cr.c index 057a155f..359d0c8c 100644 --- a/sofa/20150209_a/c/src/cr.c +++ b/sofa/20160503/c/src/cr.c @@ -24,9 +24,9 @@ void iauCr(double r[3][3], double c[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauCp(r[0], c[0]); @@ -37,7 +37,7 @@ void iauCr(double r[3][3], double c[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/d2dtf.c b/sofa/20160503/c/src/d2dtf.c similarity index 98% rename from sofa/20150209_a/c/src/d2dtf.c rename to sofa/20160503/c/src/d2dtf.c index 4a867d14..5cfe4944 100644 --- a/sofa/20150209_a/c/src/d2dtf.c +++ b/sofa/20160503/c/src/d2dtf.c @@ -78,9 +78,9 @@ int iauD2dtf(const char *scale, int ndp, double d1, double d2, ** ** This revision: 2014 February 15 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int leap; @@ -88,6 +88,7 @@ int iauD2dtf(const char *scale, int ndp, double d1, double d2, int iy1, im1, id1, js, iy2, im2, id2, ihmsf1[4], i; double a1, b1, fd, dat0, dat12, w, dat24, dleap; + /* The two-part JD. */ a1 = d1; b1 = d2; @@ -189,7 +190,7 @@ int iauD2dtf(const char *scale, int ndp, double d1, double d2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/d2tf.c b/sofa/20160503/c/src/d2tf.c similarity index 98% rename from sofa/20150209_a/c/src/d2tf.c rename to sofa/20160503/c/src/d2tf.c index 30bb2ea0..ba5fc6b0 100644 --- a/sofa/20150209_a/c/src/d2tf.c +++ b/sofa/20160503/c/src/d2tf.c @@ -55,14 +55,15 @@ void iauD2tf(int ndp, double days, char *sign, int ihmsf[4]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int nrs, n; double rs, rm, rh, a, w, ah, am, as, af; + /* Handle sign. */ *sign = (char) ( ( days >= 0.0 ) ? '+' : '-' ); @@ -113,7 +114,7 @@ void iauD2tf(int ndp, double days, char *sign, int ihmsf[4]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/dat.c b/sofa/20160503/c/src/dat.c similarity index 99% rename from sofa/20150209_a/c/src/dat.c rename to sofa/20160503/c/src/dat.c index 95139c7f..e52d9196 100644 --- a/sofa/20150209_a/c/src/dat.c +++ b/sofa/20160503/c/src/dat.c @@ -122,9 +122,9 @@ int iauDat(int iy, int im, int id, double fd, double *deltat ) ** ** This revision: 2015 February 27 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Release year for this version of iauDat */ @@ -250,7 +250,7 @@ int iauDat(int iy, int im, int id, double fd, double *deltat ) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/dtdb.c b/sofa/20160503/c/src/dtdb.c similarity index 99% rename from sofa/20150209_a/c/src/dtdb.c rename to sofa/20160503/c/src/dtdb.c index 7a4d8496..b52d99dd 100644 --- a/sofa/20150209_a/c/src/dtdb.c +++ b/sofa/20160503/c/src/dtdb.c @@ -164,9 +164,9 @@ double iauDtdb(double date1, double date2, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, tsol, w, elsun, emsun, d, elj, els, wt, w0, w1, w2, w3, w4, @@ -1069,6 +1069,7 @@ double iauDtdb(double date1, double date2, { 0.000209e-6, 155.420399434, 1.989815753 } }; + /* Time since J2000.0 in Julian millennia. */ t = ((date1 - DJ00) + date2) / DJM; @@ -1166,7 +1167,7 @@ double iauDtdb(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/dtf2d.c b/sofa/20160503/c/src/dtf2d.c similarity index 98% rename from sofa/20150209_a/c/src/dtf2d.c rename to sofa/20160503/c/src/dtf2d.c index a35276a4..14f89dbd 100644 --- a/sofa/20150209_a/c/src/dtf2d.c +++ b/sofa/20160503/c/src/dtf2d.c @@ -82,14 +82,15 @@ int iauDtf2d(const char *scale, int iy, int im, int id, ** ** This revision: 2013 July 26 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int js, iy2, im2, id2; double dj, w, day, seclim, dat0, dat12, dat24, dleap, time; + /* Today's Julian Day Number. */ js = iauCal2jd(iy, im, id, &dj, &w); if ( js ) return js; @@ -156,7 +157,7 @@ int iauDtf2d(const char *scale, int iy, int im, int id, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20160503/c/src/eceq06.c b/sofa/20160503/c/src/eceq06.c new file mode 100644 index 00000000..73071452 --- /dev/null +++ b/sofa/20160503/c/src/eceq06.c @@ -0,0 +1,183 @@ +#include "sofa.h" + +void iauEceq06(double date1, double date2, double dl, double db, + double *dr, double *dd) +/* +** - - - - - - - - - - +** i a u E c e q 0 6 +** - - - - - - - - - - +** +** Transformation from ecliptic coordinates (mean equinox and ecliptic +** of date) to ICRS RA,Dec, using the IAU 2006 precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** dl,db double ecliptic longitude and latitude (radians) +** +** Returned: +** dr,dd double ICRS right ascension and declination (radians) +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 3) The transformation is approximately that from ecliptic longitude +** and latitude (mean equinox and ecliptic of date) to mean J2000.0 +** right ascension and declination, with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 +** iauTrxp product of transpose of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +** This revision: 2016 February 9 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ +{ + double rm[3][3], v1[3], v2[3], a, b; + + +/* Spherical to Cartesian. */ + iauS2c(dl, db, v1); + +/* Rotation matrix, ICRS equatorial to ecliptic. */ + iauEcm06(date1, date2, rm); + +/* The transformation from ecliptic to ICRS. */ + iauTrxp(rm, v1, v2); + +/* Cartesian to spherical. */ + iauC2s(v2, &a, &b); + +/* Express in conventional ranges. */ + *dr = iauAnp(a); + *dd = iauAnpm(b); + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + +} diff --git a/sofa/20160503/c/src/ecm06.c b/sofa/20160503/c/src/ecm06.c new file mode 100644 index 00000000..f3ac9861 --- /dev/null +++ b/sofa/20160503/c/src/ecm06.c @@ -0,0 +1,186 @@ +#include "sofa.h" + +void iauEcm06(double date1, double date2, double rm[3][3]) +/* +** - - - - - - - - - +** i a u E c m 0 6 +** - - - - - - - - - +** +** ICRS equatorial to ecliptic rotation matrix, IAU 2006. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** +** Returned: +** rm double[3][3] ICRS to ecliptic rotation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 1) The matrix is in the sense +** +** E_ep = rm x P_ICRS, +** +** where P_ICRS is a vector with respect to ICRS right ascension +** and declination axes and E_ep is the same vector with respect to +** the (inertial) ecliptic and equinox of date. +** +** 2) P_ICRS is a free vector, merely a direction, typically of unit +** magnitude, and not bound to any particular spatial origin, such +** as the Earth, Sun or SSB. No assumptions are made about whether +** it represents starlight and embodies astrometric effects such as +** parallax or aberration. The transformation is approximately that +** between mean J2000.0 right ascension and declination and ecliptic +** longitude and latitude, with only frame bias (always less than +** 25 mas) to disturb this classical picture. +** +** Called: +** iauObl06 mean obliquity, IAU 2006 +** iauPmat06 PB matrix, IAU 2006 +** iauIr initialize r-matrix to identity +** iauRx rotate around X-axis +** iauRxr product of two r-matrices +** +** This revision: 2015 December 11 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ +{ + double ob, bp[3][3], e[3][3]; + + +/* Obliquity, IAU 2006. */ + ob = iauObl06(date1, date2); + +/* Precession-bias matrix, IAU 2006. */ + iauPmat06(date1, date2, bp); + +/* Equatorial of date to ecliptic matrix. */ + iauIr(e); + iauRx(ob, e); + +/* ICRS to ecliptic coordinates rotation matrix, IAU 2006. */ + iauRxr(e, bp, rm); + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + +} diff --git a/sofa/20150209_a/c/src/ee00.c b/sofa/20160503/c/src/ee00.c similarity index 98% rename from sofa/20150209_a/c/src/ee00.c rename to sofa/20160503/c/src/ee00.c index 13993c34..d4f41fae 100644 --- a/sofa/20150209_a/c/src/ee00.c +++ b/sofa/20160503/c/src/ee00.c @@ -67,13 +67,14 @@ double iauEe00(double date1, double date2, double epsa, double dpsi) ** ** This revision: 2008 May 16 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double ee; + /* Equation of the equinoxes. */ ee = dpsi * cos(epsa) + iauEect00(date1, date2); @@ -81,7 +82,7 @@ double iauEe00(double date1, double date2, double epsa, double dpsi) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ee00a.c b/sofa/20160503/c/src/ee00a.c similarity index 98% rename from sofa/20150209_a/c/src/ee00a.c rename to sofa/20160503/c/src/ee00a.c index a987179f..3b9f2ab5 100644 --- a/sofa/20150209_a/c/src/ee00a.c +++ b/sofa/20160503/c/src/ee00a.c @@ -65,13 +65,14 @@ double iauEe00a(double date1, double date2) ** ** This revision: 2008 May 16 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dpsipr, depspr, epsa, dpsi, deps, ee; + /* IAU 2000 precession-rate adjustments. */ iauPr00(date1, date2, &dpsipr, &depspr); @@ -88,7 +89,7 @@ double iauEe00a(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ee00b.c b/sofa/20160503/c/src/ee00b.c similarity index 98% rename from sofa/20150209_a/c/src/ee00b.c rename to sofa/20160503/c/src/ee00b.c index 68611497..df74113f 100644 --- a/sofa/20150209_a/c/src/ee00b.c +++ b/sofa/20160503/c/src/ee00b.c @@ -71,13 +71,14 @@ double iauEe00b(double date1, double date2) ** ** This revision: 2008 May 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dpsipr, depspr, epsa, dpsi, deps, ee; + /* IAU 2000 precession-rate adjustments. */ iauPr00(date1, date2, &dpsipr, &depspr); @@ -94,7 +95,7 @@ double iauEe00b(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ee06a.c b/sofa/20160503/c/src/ee06a.c similarity index 98% rename from sofa/20150209_a/c/src/ee06a.c rename to sofa/20160503/c/src/ee06a.c index 683ba8f6..37f5bc4f 100644 --- a/sofa/20150209_a/c/src/ee06a.c +++ b/sofa/20160503/c/src/ee06a.c @@ -57,13 +57,14 @@ double iauEe06a(double date1, double date2) ** ** This revision: 2008 May 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double gst06a, gmst06, ee; + /* Apparent and mean sidereal times. */ gst06a = iauGst06a(0.0, 0.0, date1, date2); gmst06 = iauGmst06(0.0, 0.0, date1, date2); @@ -75,7 +76,7 @@ double iauEe06a(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/eect00.c b/sofa/20160503/c/src/eect00.c similarity index 99% rename from sofa/20150209_a/c/src/eect00.c rename to sofa/20160503/c/src/eect00.c index 0b416401..e9aa7dfa 100644 --- a/sofa/20150209_a/c/src/eect00.c +++ b/sofa/20160503/c/src/eect00.c @@ -98,9 +98,9 @@ double iauEect00(double date1, double date2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Time since J2000.0, in Julian centuries */ @@ -236,7 +236,7 @@ double iauEect00(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/eform.c b/sofa/20160503/c/src/eform.c similarity index 98% rename from sofa/20150209_a/c/src/eform.c rename to sofa/20160503/c/src/eform.c index f1a9592e..12f17f3b 100644 --- a/sofa/20150209_a/c/src/eform.c +++ b/sofa/20160503/c/src/eform.c @@ -62,9 +62,9 @@ int iauEform ( int n, double *a, double *f ) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -100,7 +100,7 @@ int iauEform ( int n, double *a, double *f ) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/eo06a.c b/sofa/20160503/c/src/eo06a.c similarity index 98% rename from sofa/20150209_a/c/src/eo06a.c rename to sofa/20160503/c/src/eo06a.c index 1640e8ea..459585fe 100644 --- a/sofa/20150209_a/c/src/eo06a.c +++ b/sofa/20160503/c/src/eo06a.c @@ -61,13 +61,14 @@ double iauEo06a(double date1, double date2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double r[3][3], x, y, s, eo; + /* Classical nutation x precession x bias matrix. */ iauPnm06a(date1, date2, r); @@ -84,7 +85,7 @@ double iauEo06a(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/eors.c b/sofa/20160503/c/src/eors.c similarity index 98% rename from sofa/20150209_a/c/src/eors.c rename to sofa/20160503/c/src/eors.c index 43b9f207..fd00cf5d 100644 --- a/sofa/20150209_a/c/src/eors.c +++ b/sofa/20160503/c/src/eors.c @@ -40,13 +40,14 @@ double iauEors(double rnpb[3][3], double s) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double x, ax, xs, ys, zs, p, q, eo; + /* Evaluate Wallace & Capitaine (2006) expression (16). */ x = rnpb[2][0]; ax = x / (1.0 + rnpb[2][2]); @@ -61,7 +62,7 @@ double iauEors(double rnpb[3][3], double s) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/epb.c b/sofa/20160503/c/src/epb.c similarity index 97% rename from sofa/20150209_a/c/src/epb.c rename to sofa/20160503/c/src/epb.c index 9fb89316..d8606a8b 100644 --- a/sofa/20150209_a/c/src/epb.c +++ b/sofa/20160503/c/src/epb.c @@ -33,9 +33,9 @@ double iauEpb(double dj1, double dj2) ** ** This revision: 2013 August 21 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* J2000.0-B1900.0 (2415019.81352) in days */ @@ -45,7 +45,7 @@ double iauEpb(double dj1, double dj2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/epb2jd.c b/sofa/20160503/c/src/epb2jd.c similarity index 97% rename from sofa/20150209_a/c/src/epb2jd.c rename to sofa/20160503/c/src/epb2jd.c index 223eb1b1..437a35de 100644 --- a/sofa/20150209_a/c/src/epb2jd.c +++ b/sofa/20160503/c/src/epb2jd.c @@ -33,9 +33,9 @@ void iauEpb2jd(double epb, double *djm0, double *djm) ** ** This revision: 2013 August 13 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { *djm0 = DJM0; @@ -45,7 +45,7 @@ void iauEpb2jd(double epb, double *djm0, double *djm) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/epj.c b/sofa/20160503/c/src/epj.c similarity index 97% rename from sofa/20150209_a/c/src/epj.c rename to sofa/20160503/c/src/epj.c index 01978e8a..1816bee2 100644 --- a/sofa/20150209_a/c/src/epj.c +++ b/sofa/20160503/c/src/epj.c @@ -33,20 +33,21 @@ double iauEpj(double dj1, double dj2) ** ** This revision: 2013 August 7 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double epj; + epj = 2000.0 + ((dj1 - DJ00) + dj2) / DJY; return epj; /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/epj2jd.c b/sofa/20160503/c/src/epj2jd.c similarity index 97% rename from sofa/20150209_a/c/src/epj2jd.c rename to sofa/20160503/c/src/epj2jd.c index 7fb7555b..e6cc7797 100644 --- a/sofa/20150209_a/c/src/epj2jd.c +++ b/sofa/20160503/c/src/epj2jd.c @@ -33,9 +33,9 @@ void iauEpj2jd(double epj, double *djm0, double *djm) ** ** This revision: 2013 August 7 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { *djm0 = DJM0; @@ -45,7 +45,7 @@ void iauEpj2jd(double epj, double *djm0, double *djm) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/epv00.c b/sofa/20160503/c/src/epv00.c similarity index 99% rename from sofa/20150209_a/c/src/epv00.c rename to sofa/20160503/c/src/epv00.c index 0d96b96b..3376bc99 100644 --- a/sofa/20150209_a/c/src/epv00.c +++ b/sofa/20160503/c/src/epv00.c @@ -101,9 +101,9 @@ int iauEpv00(double date1, double date2, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* @@ -2543,7 +2543,7 @@ int iauEpv00(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20160503/c/src/eqec06.c b/sofa/20160503/c/src/eqec06.c new file mode 100644 index 00000000..1e364418 --- /dev/null +++ b/sofa/20160503/c/src/eqec06.c @@ -0,0 +1,184 @@ +#include "sofa.h" + +void iauEqec06(double date1, double date2, double dr, double dd, + double *dl, double *db) +/* +** - - - - - - - - - - +** i a u E q e c 0 6 +** - - - - - - - - - - +** +** Transformation from ICRS equatorial coordinates to ecliptic +** coordinates (mean equinox and ecliptic of date) using IAU 2006 +** precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** dr,dd double ICRS right ascension and declination (radians) +** +** Returned: +** dl,db double ecliptic longitude and latitude (radians) +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 3) The transformation is approximately that from mean J2000.0 right +** ascension and declination to ecliptic longitude and latitude +** (mean equinox and ecliptic of date), with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 +** iauRxp product of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +** This revision: 2016 February 9 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ +{ + double rm[3][3], v1[3], v2[3], a, b; + + +/* Spherical to Cartesian. */ + iauS2c(dr, dd, v1); + +/* Rotation matrix, ICRS equatorial to ecliptic. */ + iauEcm06(date1, date2, rm); + +/* The transformation from ICRS to ecliptic. */ + iauRxp(rm, v1, v2); + +/* Cartesian to spherical. */ + iauC2s(v2, &a, &b); + +/* Express in conventional ranges. */ + *dl = iauAnp(a); + *db = iauAnpm(b); + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + +} diff --git a/sofa/20150209_a/c/src/eqeq94.c b/sofa/20160503/c/src/eqeq94.c similarity index 98% rename from sofa/20150209_a/c/src/eqeq94.c rename to sofa/20160503/c/src/eqeq94.c index 671dda6d..75c80241 100644 --- a/sofa/20150209_a/c/src/eqeq94.c +++ b/sofa/20160503/c/src/eqeq94.c @@ -58,13 +58,14 @@ double iauEqeq94(double date1, double date2) ** ** This revision: 2013 August 31 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, om, dpsi, deps, eps0, ee; + /* Interval between fundamental epoch J2000.0 and given date (JC). */ t = ((date1 - DJ00) + date2) / DJC; @@ -85,7 +86,7 @@ double iauEqeq94(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/era00.c b/sofa/20160503/c/src/era00.c similarity index 98% rename from sofa/20150209_a/c/src/era00.c rename to sofa/20160503/c/src/era00.c index 09f47198..691455fd 100644 --- a/sofa/20150209_a/c/src/era00.c +++ b/sofa/20160503/c/src/era00.c @@ -61,13 +61,14 @@ double iauEra00(double dj1, double dj2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double d1, d2, t, f, theta; + /* Days since fundamental epoch. */ if (dj1 < dj2) { d1 = dj1; @@ -89,7 +90,7 @@ double iauEra00(double dj1, double dj2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fad03.c b/sofa/20160503/c/src/fad03.c similarity index 98% rename from sofa/20150209_a/c/src/fad03.c rename to sofa/20160503/c/src/fad03.c index 08c1a1eb..1f31952b 100644 --- a/sofa/20150209_a/c/src/fad03.c +++ b/sofa/20160503/c/src/fad03.c @@ -38,13 +38,14 @@ double iauFad03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean elongation of the Moon from the Sun (IERS Conventions 2003). */ a = fmod( 1072260.703692 + t * ( 1602961601.2090 + @@ -56,7 +57,7 @@ double iauFad03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fae03.c b/sofa/20160503/c/src/fae03.c similarity index 98% rename from sofa/20150209_a/c/src/fae03.c rename to sofa/20160503/c/src/fae03.c index 9be574cc..9a4cfdb4 100644 --- a/sofa/20150209_a/c/src/fae03.c +++ b/sofa/20160503/c/src/fae03.c @@ -41,13 +41,14 @@ double iauFae03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean longitude of Earth (IERS Conventions 2003). */ a = fmod(1.753470314 + 628.3075849991 * t, D2PI); @@ -55,7 +56,7 @@ double iauFae03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/faf03.c b/sofa/20160503/c/src/faf03.c similarity index 98% rename from sofa/20150209_a/c/src/faf03.c rename to sofa/20160503/c/src/faf03.c index 29017441..ca571ad5 100644 --- a/sofa/20150209_a/c/src/faf03.c +++ b/sofa/20160503/c/src/faf03.c @@ -39,13 +39,14 @@ double iauFaf03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean longitude of the Moon minus that of the ascending node */ /* (IERS Conventions 2003). */ a = fmod( 335779.526232 + @@ -56,9 +57,10 @@ double iauFaf03(double t) return a; + /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/faju03.c b/sofa/20160503/c/src/faju03.c similarity index 98% rename from sofa/20150209_a/c/src/faju03.c rename to sofa/20160503/c/src/faju03.c index 288401a1..72bdf4ce 100644 --- a/sofa/20150209_a/c/src/faju03.c +++ b/sofa/20160503/c/src/faju03.c @@ -41,13 +41,14 @@ double iauFaju03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean longitude of Jupiter (IERS Conventions 2003). */ a = fmod(0.599546497 + 52.9690962641 * t, D2PI); @@ -55,7 +56,7 @@ double iauFaju03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fal03.c b/sofa/20160503/c/src/fal03.c similarity index 98% rename from sofa/20150209_a/c/src/fal03.c rename to sofa/20160503/c/src/fal03.c index f729dd05..4499dc9f 100644 --- a/sofa/20150209_a/c/src/fal03.c +++ b/sofa/20160503/c/src/fal03.c @@ -38,13 +38,14 @@ double iauFal03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean anomaly of the Moon (IERS Conventions 2003). */ a = fmod( 485868.249036 + t * ( 1717915923.2178 + @@ -56,7 +57,7 @@ double iauFal03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/falp03.c b/sofa/20160503/c/src/falp03.c similarity index 98% rename from sofa/20150209_a/c/src/falp03.c rename to sofa/20160503/c/src/falp03.c index 5c0490f8..635f2971 100644 --- a/sofa/20150209_a/c/src/falp03.c +++ b/sofa/20160503/c/src/falp03.c @@ -38,13 +38,14 @@ double iauFalp03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean anomaly of the Sun (IERS Conventions 2003). */ a = fmod( 1287104.793048 + t * ( 129596581.0481 + @@ -56,7 +57,7 @@ double iauFalp03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fama03.c b/sofa/20160503/c/src/fama03.c similarity index 98% rename from sofa/20150209_a/c/src/fama03.c rename to sofa/20160503/c/src/fama03.c index af4e17bf..6d1340f9 100644 --- a/sofa/20150209_a/c/src/fama03.c +++ b/sofa/20160503/c/src/fama03.c @@ -41,13 +41,14 @@ double iauFama03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean longitude of Mars (IERS Conventions 2003). */ a = fmod(6.203480913 + 334.0612426700 * t, D2PI); @@ -55,7 +56,7 @@ double iauFama03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fame03.c b/sofa/20160503/c/src/fame03.c similarity index 98% rename from sofa/20150209_a/c/src/fame03.c rename to sofa/20160503/c/src/fame03.c index 96dcad46..78eafed7 100644 --- a/sofa/20150209_a/c/src/fame03.c +++ b/sofa/20160503/c/src/fame03.c @@ -41,13 +41,14 @@ double iauFame03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean longitude of Mercury (IERS Conventions 2003). */ a = fmod(4.402608842 + 2608.7903141574 * t, D2PI); @@ -55,7 +56,7 @@ double iauFame03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fane03.c b/sofa/20160503/c/src/fane03.c similarity index 98% rename from sofa/20150209_a/c/src/fane03.c rename to sofa/20160503/c/src/fane03.c index bb0540ba..9152d4b3 100644 --- a/sofa/20150209_a/c/src/fane03.c +++ b/sofa/20160503/c/src/fane03.c @@ -38,13 +38,14 @@ double iauFane03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean longitude of Neptune (IERS Conventions 2003). */ a = fmod(5.311886287 + 3.8133035638 * t, D2PI); @@ -52,7 +53,7 @@ double iauFane03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/faom03.c b/sofa/20160503/c/src/faom03.c similarity index 98% rename from sofa/20150209_a/c/src/faom03.c rename to sofa/20160503/c/src/faom03.c index ace03a15..82cfd23f 100644 --- a/sofa/20150209_a/c/src/faom03.c +++ b/sofa/20160503/c/src/faom03.c @@ -38,13 +38,14 @@ double iauFaom03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean longitude of the Moon's ascending node */ /* (IERS Conventions 2003). */ a = fmod( 450160.398036 + @@ -57,7 +58,7 @@ double iauFaom03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fapa03.c b/sofa/20160503/c/src/fapa03.c similarity index 98% rename from sofa/20150209_a/c/src/fapa03.c rename to sofa/20160503/c/src/fapa03.c index 66388e98..eb0d1fef 100644 --- a/sofa/20150209_a/c/src/fapa03.c +++ b/sofa/20160503/c/src/fapa03.c @@ -42,13 +42,14 @@ double iauFapa03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* General accumulated precession in longitude. */ a = (0.024381750 + 0.00000538691 * t) * t; @@ -56,7 +57,7 @@ double iauFapa03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fasa03.c b/sofa/20160503/c/src/fasa03.c similarity index 98% rename from sofa/20150209_a/c/src/fasa03.c rename to sofa/20160503/c/src/fasa03.c index 1e1d0965..118a3237 100644 --- a/sofa/20150209_a/c/src/fasa03.c +++ b/sofa/20160503/c/src/fasa03.c @@ -41,13 +41,14 @@ double iauFasa03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean longitude of Saturn (IERS Conventions 2003). */ a = fmod(0.874016757 + 21.3299104960 * t, D2PI); @@ -55,7 +56,7 @@ double iauFasa03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/faur03.c b/sofa/20160503/c/src/faur03.c similarity index 98% rename from sofa/20150209_a/c/src/faur03.c rename to sofa/20160503/c/src/faur03.c index af0e5ed3..32b6cd3c 100644 --- a/sofa/20150209_a/c/src/faur03.c +++ b/sofa/20160503/c/src/faur03.c @@ -38,13 +38,14 @@ double iauFaur03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean longitude of Uranus (IERS Conventions 2003). */ a = fmod(5.481293872 + 7.4781598567 * t, D2PI); @@ -52,7 +53,7 @@ double iauFaur03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fave03.c b/sofa/20160503/c/src/fave03.c similarity index 98% rename from sofa/20150209_a/c/src/fave03.c rename to sofa/20160503/c/src/fave03.c index 50fff3c6..f63a43d8 100644 --- a/sofa/20150209_a/c/src/fave03.c +++ b/sofa/20160503/c/src/fave03.c @@ -41,13 +41,14 @@ double iauFave03(double t) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double a; + /* Mean longitude of Venus (IERS Conventions 2003). */ a = fmod(3.176146697 + 1021.3285546211 * t, D2PI); @@ -55,7 +56,7 @@ double iauFave03(double t) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fk52h.c b/sofa/20160503/c/src/fk52h.c similarity index 98% rename from sofa/20150209_a/c/src/fk52h.c rename to sofa/20160503/c/src/fk52h.c index 957f1886..934757a2 100644 --- a/sofa/20150209_a/c/src/fk52h.c +++ b/sofa/20160503/c/src/fk52h.c @@ -60,14 +60,15 @@ void iauFk52h(double r5, double d5, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int i; double pv5[2][3], r5h[3][3], s5h[3], wxp[3], vv[3], pvh[2][3]; + /* FK5 barycentric position/velocity pv-vector (normalized). */ iauStarpv(r5, d5, dr5, dd5, px5, rv5, pv5); @@ -96,7 +97,7 @@ void iauFk52h(double r5, double d5, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fk5hip.c b/sofa/20160503/c/src/fk5hip.c similarity index 98% rename from sofa/20150209_a/c/src/fk5hip.c rename to sofa/20160503/c/src/fk5hip.c index fad58697..e875c43b 100644 --- a/sofa/20150209_a/c/src/fk5hip.c +++ b/sofa/20160503/c/src/fk5hip.c @@ -43,9 +43,9 @@ void iauFk5hip(double r5h[3][3], double s5h[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double v[3]; @@ -54,6 +54,7 @@ void iauFk5hip(double r5h[3][3], double s5h[3]) double epx, epy, epz; double omx, omy, omz; + epx = -19.9e-3 * DAS2R; epy = -9.1e-3 * DAS2R; epz = 22.9e-3 * DAS2R; @@ -79,7 +80,7 @@ void iauFk5hip(double r5h[3][3], double s5h[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fk5hz.c b/sofa/20160503/c/src/fk5hz.c similarity index 98% rename from sofa/20150209_a/c/src/fk5hz.c rename to sofa/20160503/c/src/fk5hz.c index 318450a1..2bb211d8 100644 --- a/sofa/20150209_a/c/src/fk5hz.c +++ b/sofa/20160503/c/src/fk5hz.c @@ -76,14 +76,15 @@ void iauFk5hz(double r5, double d5, double date1, double date2, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, p5e[3], r5h[3][3], s5h[3], vst[3], rst[3][3], p5[3], ph[3], w; + /* Interval from given date to fundamental epoch J2000.0 (JY). */ t = - ((date1 - DJ00) + date2) / DJY; @@ -113,7 +114,7 @@ void iauFk5hz(double r5, double d5, double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fw2m.c b/sofa/20160503/c/src/fw2m.c similarity index 98% rename from sofa/20150209_a/c/src/fw2m.c rename to sofa/20160503/c/src/fw2m.c index a3c8936c..526732b4 100644 --- a/sofa/20150209_a/c/src/fw2m.c +++ b/sofa/20160503/c/src/fw2m.c @@ -72,9 +72,9 @@ void iauFw2m(double gamb, double phib, double psi, double eps, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Construct the matrix. */ @@ -88,7 +88,7 @@ void iauFw2m(double gamb, double phib, double psi, double eps, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/fw2xy.c b/sofa/20160503/c/src/fw2xy.c similarity index 98% rename from sofa/20150209_a/c/src/fw2xy.c rename to sofa/20160503/c/src/fw2xy.c index b0331b97..c7620e0f 100644 --- a/sofa/20150209_a/c/src/fw2xy.c +++ b/sofa/20160503/c/src/fw2xy.c @@ -57,13 +57,14 @@ void iauFw2xy(double gamb, double phib, double psi, double eps, ** ** This revision: 2013 September 2 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double r[3][3]; + /* Form NxPxB matrix. */ iauFw2m(gamb, phib, psi, eps, r); @@ -74,7 +75,7 @@ void iauFw2xy(double gamb, double phib, double psi, double eps, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/g2icrs.c b/sofa/20160503/c/src/g2icrs.c similarity index 98% rename from sofa/20150209_a/c/src/g2icrs.c rename to sofa/20160503/c/src/g2icrs.c index 84be7abd..04a3c0c9 100644 --- a/sofa/20150209_a/c/src/g2icrs.c +++ b/sofa/20160503/c/src/g2icrs.c @@ -68,9 +68,9 @@ void iauG2icrs ( double dl, double db, double *dr, double *dd ) ** ** This revision: 2015 January 20 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double v1[3], v2[3]; @@ -115,7 +115,7 @@ void iauG2icrs ( double dl, double db, double *dr, double *dd ) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gc2gd.c b/sofa/20160503/c/src/gc2gd.c similarity index 98% rename from sofa/20150209_a/c/src/gc2gd.c rename to sofa/20160503/c/src/gc2gd.c index 6e5ef4ac..3a8a9a90 100644 --- a/sofa/20150209_a/c/src/gc2gd.c +++ b/sofa/20160503/c/src/gc2gd.c @@ -58,14 +58,15 @@ int iauGc2gd ( int n, double xyz[3], ** ** This revision: 2013 September 1 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j; double a, f; + /* Obtain reference ellipsoid parameters. */ j = iauEform ( n, &a, &f ); @@ -87,7 +88,7 @@ int iauGc2gd ( int n, double xyz[3], /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gc2gde.c b/sofa/20160503/c/src/gc2gde.c similarity index 98% rename from sofa/20150209_a/c/src/gc2gde.c rename to sofa/20160503/c/src/gc2gde.c index c0c946ff..d9dae22a 100644 --- a/sofa/20150209_a/c/src/gc2gde.c +++ b/sofa/20160503/c/src/gc2gde.c @@ -63,9 +63,9 @@ int iauGc2gde ( double a, double f, double xyz[3], ** ** This revision: 2014 November 7 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double aeps2, e2, e4t, ec2, ec, b, x, y, z, p2, absz, p, s0, pn, zc, @@ -153,7 +153,7 @@ int iauGc2gde ( double a, double f, double xyz[3], /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gd2gc.c b/sofa/20160503/c/src/gd2gc.c similarity index 98% rename from sofa/20150209_a/c/src/gd2gc.c rename to sofa/20160503/c/src/gd2gc.c index ab6b23c1..3f6e74ff 100644 --- a/sofa/20150209_a/c/src/gd2gc.c +++ b/sofa/20160503/c/src/gd2gc.c @@ -61,14 +61,15 @@ int iauGd2gc ( int n, double elong, double phi, double height, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j; double a, f; + /* Obtain reference ellipsoid parameters. */ j = iauEform ( n, &a, &f ); @@ -86,7 +87,7 @@ int iauGd2gc ( int n, double elong, double phi, double height, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gd2gce.c b/sofa/20160503/c/src/gd2gce.c similarity index 98% rename from sofa/20150209_a/c/src/gd2gce.c rename to sofa/20160503/c/src/gd2gce.c index 4f1cd04e..6cd1d665 100644 --- a/sofa/20150209_a/c/src/gd2gce.c +++ b/sofa/20160503/c/src/gd2gce.c @@ -62,13 +62,14 @@ int iauGd2gce ( double a, double f, double elong, double phi, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double sp, cp, w, d, ac, as, r; + /* Functions of geodetic latitude. */ sp = sin(phi); cp = cos(phi); @@ -90,7 +91,7 @@ int iauGd2gce ( double a, double f, double elong, double phi, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gmst00.c b/sofa/20160503/c/src/gmst00.c similarity index 98% rename from sofa/20150209_a/c/src/gmst00.c rename to sofa/20160503/c/src/gmst00.c index d286d2ed..88730a8b 100644 --- a/sofa/20150209_a/c/src/gmst00.c +++ b/sofa/20160503/c/src/gmst00.c @@ -75,13 +75,14 @@ double iauGmst00(double uta, double utb, double tta, double ttb) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, gmst; + /* TT Julian centuries since J2000.0. */ t = ((tta - DJ00) + ttb) / DJC; @@ -98,7 +99,7 @@ double iauGmst00(double uta, double utb, double tta, double ttb) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gmst06.c b/sofa/20160503/c/src/gmst06.c similarity index 98% rename from sofa/20150209_a/c/src/gmst06.c rename to sofa/20160503/c/src/gmst06.c index 2956adb2..713e9c0a 100644 --- a/sofa/20150209_a/c/src/gmst06.c +++ b/sofa/20160503/c/src/gmst06.c @@ -65,13 +65,14 @@ double iauGmst06(double uta, double utb, double tta, double ttb) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, gmst; + /* TT Julian centuries since J2000.0. */ t = ((tta - DJ00) + ttb) / DJC; @@ -89,7 +90,7 @@ double iauGmst06(double uta, double utb, double tta, double ttb) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gmst82.c b/sofa/20160503/c/src/gmst82.c similarity index 98% rename from sofa/20150209_a/c/src/gmst82.c rename to sofa/20160503/c/src/gmst82.c index 2601f19f..55cd8719 100644 --- a/sofa/20150209_a/c/src/gmst82.c +++ b/sofa/20160503/c/src/gmst82.c @@ -67,9 +67,9 @@ double iauGmst82(double dj1, double dj2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Coefficients of IAU 1982 GMST-UT1 model */ @@ -84,6 +84,7 @@ double iauGmst82(double dj1, double dj2) double d1, d2, t, f, gmst; + /* Julian centuries since fundamental epoch. */ if (dj1 < dj2) { d1 = dj1; @@ -104,7 +105,7 @@ double iauGmst82(double dj1, double dj2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gst00a.c b/sofa/20160503/c/src/gst00a.c similarity index 98% rename from sofa/20150209_a/c/src/gst00a.c rename to sofa/20160503/c/src/gst00a.c index e2552b1e..1637f992 100644 --- a/sofa/20150209_a/c/src/gst00a.c +++ b/sofa/20160503/c/src/gst00a.c @@ -76,13 +76,14 @@ double iauGst00a(double uta, double utb, double tta, double ttb) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double gmst00, ee00a, gst; + gmst00 = iauGmst00(uta, utb, tta, ttb); ee00a = iauEe00a(tta, ttb); gst = iauAnp(gmst00 + ee00a); @@ -91,7 +92,7 @@ double iauGst00a(double uta, double utb, double tta, double ttb) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gst00b.c b/sofa/20160503/c/src/gst00b.c similarity index 98% rename from sofa/20150209_a/c/src/gst00b.c rename to sofa/20160503/c/src/gst00b.c index 728772df..ccd9b5b7 100644 --- a/sofa/20150209_a/c/src/gst00b.c +++ b/sofa/20160503/c/src/gst00b.c @@ -84,13 +84,14 @@ double iauGst00b(double uta, double utb) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double gmst00, ee00b, gst; + gmst00 = iauGmst00(uta, utb, uta, utb); ee00b = iauEe00b(uta, utb); gst = iauAnp(gmst00 + ee00b); @@ -99,7 +100,7 @@ double iauGst00b(double uta, double utb) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gst06.c b/sofa/20160503/c/src/gst06.c similarity index 98% rename from sofa/20150209_a/c/src/gst06.c rename to sofa/20160503/c/src/gst06.c index fd7c4804..e198428b 100644 --- a/sofa/20150209_a/c/src/gst06.c +++ b/sofa/20160503/c/src/gst06.c @@ -71,13 +71,14 @@ double iauGst06(double uta, double utb, double tta, double ttb, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double x, y, s, era, eors, gst; + /* Extract CIP coordinates. */ iauBpn2xy(rnpb, &x, &y); @@ -93,7 +94,7 @@ double iauGst06(double uta, double utb, double tta, double ttb, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gst06a.c b/sofa/20160503/c/src/gst06a.c similarity index 98% rename from sofa/20150209_a/c/src/gst06a.c rename to sofa/20160503/c/src/gst06a.c index e46a294d..8e133dc1 100644 --- a/sofa/20150209_a/c/src/gst06a.c +++ b/sofa/20160503/c/src/gst06a.c @@ -67,13 +67,14 @@ double iauGst06a(double uta, double utb, double tta, double ttb) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rnpb[3][3], gst; + /* Classical nutation x precession x bias matrix, IAU 2000A. */ iauPnm06a(tta, ttb, rnpb); @@ -84,7 +85,7 @@ double iauGst06a(double uta, double utb, double tta, double ttb) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/gst94.c b/sofa/20160503/c/src/gst94.c similarity index 98% rename from sofa/20150209_a/c/src/gst94.c rename to sofa/20160503/c/src/gst94.c index 0ab673db..b1d82d2d 100644 --- a/sofa/20150209_a/c/src/gst94.c +++ b/sofa/20160503/c/src/gst94.c @@ -69,13 +69,14 @@ double iauGst94(double uta, double utb) ** ** This revision: 2008 May 16 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double gmst82, eqeq94, gst; + gmst82 = iauGmst82(uta, utb); eqeq94 = iauEqeq94(uta, utb); gst = iauAnp(gmst82 + eqeq94); @@ -84,7 +85,7 @@ double iauGst94(double uta, double utb) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/h2fk5.c b/sofa/20160503/c/src/h2fk5.c similarity index 98% rename from sofa/20150209_a/c/src/h2fk5.c rename to sofa/20160503/c/src/h2fk5.c index 27374438..98be6560 100644 --- a/sofa/20150209_a/c/src/h2fk5.c +++ b/sofa/20160503/c/src/h2fk5.c @@ -62,14 +62,15 @@ void iauH2fk5(double rh, double dh, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int i; double pvh[2][3], r5h[3][3], s5h[3], sh[3], wxp[3], vv[3], pv5[2][3]; + /* Hipparcos barycentric position/velocity pv-vector (normalized). */ iauStarpv(rh, dh, drh, ddh, pxh, rvh, pvh); @@ -101,7 +102,7 @@ void iauH2fk5(double rh, double dh, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/hfk5z.c b/sofa/20160503/c/src/hfk5z.c similarity index 98% rename from sofa/20150209_a/c/src/hfk5z.c rename to sofa/20160503/c/src/hfk5z.c index 5b591757..ed084ed0 100644 --- a/sofa/20150209_a/c/src/hfk5z.c +++ b/sofa/20160503/c/src/hfk5z.c @@ -81,15 +81,16 @@ void iauHfk5z(double rh, double dh, double date1, double date2, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, ph[3], r5h[3][3], s5h[3], sh[3], vst[3], rst[3][3], r5ht[3][3], pv5e[2][3], vv[3], w, r, v; + /* Time interval from fundamental epoch J2000.0 to given date (JY). */ t = ((date1 - DJ00) + date2) / DJY; @@ -128,7 +129,7 @@ void iauHfk5z(double rh, double dh, double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/icrs2g.c b/sofa/20160503/c/src/icrs2g.c similarity index 98% rename from sofa/20150209_a/c/src/icrs2g.c rename to sofa/20160503/c/src/icrs2g.c index 20235085..8f1301a0 100644 --- a/sofa/20150209_a/c/src/icrs2g.c +++ b/sofa/20160503/c/src/icrs2g.c @@ -68,9 +68,9 @@ void iauIcrs2g ( double dr, double dd, double *dl, double *db ) ** ** This revision: 2015 January 20 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double v1[3], v2[3]; @@ -115,7 +115,7 @@ void iauIcrs2g ( double dr, double dd, double *dl, double *db ) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ir.c b/sofa/20160503/c/src/ir.c similarity index 97% rename from sofa/20150209_a/c/src/ir.c rename to sofa/20160503/c/src/ir.c index c59c3290..40cc5b9b 100644 --- a/sofa/20150209_a/c/src/ir.c +++ b/sofa/20160503/c/src/ir.c @@ -18,9 +18,9 @@ void iauIr(double r[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { r[0][0] = 1.0; @@ -37,7 +37,7 @@ void iauIr(double r[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/jd2cal.c b/sofa/20160503/c/src/jd2cal.c similarity index 98% rename from sofa/20150209_a/c/src/jd2cal.c rename to sofa/20160503/c/src/jd2cal.c index 8e2a5823..3d31a562 100644 --- a/sofa/20150209_a/c/src/jd2cal.c +++ b/sofa/20160503/c/src/jd2cal.c @@ -57,9 +57,9 @@ int iauJd2cal(double dj1, double dj2, ** ** This revision: 2013 August 7 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Minimum and maximum allowed JD */ @@ -69,6 +69,7 @@ int iauJd2cal(double dj1, double dj2, long jd, l, n, i, k; double dj, d1, d2, f1, f2, f, d; + /* Verify date is acceptable. */ dj = dj1 + dj2; if (dj < DJMIN || dj > DJMAX) return -1; @@ -108,7 +109,7 @@ int iauJd2cal(double dj1, double dj2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/jdcalf.c b/sofa/20160503/c/src/jdcalf.c similarity index 98% rename from sofa/20150209_a/c/src/jdcalf.c rename to sofa/20160503/c/src/jdcalf.c index 743ffb31..d702d123 100644 --- a/sofa/20150209_a/c/src/jdcalf.c +++ b/sofa/20160503/c/src/jdcalf.c @@ -62,14 +62,15 @@ int iauJdcalf(int ndp, double dj1, double dj2, int iymdf[4]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int j, js; double denom, d1, d2, f1, f2, f; + /* Denominator of fraction (e.g. 100 for 2 decimal places). */ if ((ndp >= 0) && (ndp <= 9)) { j = 0; @@ -114,7 +115,7 @@ int iauJdcalf(int ndp, double dj1, double dj2, int iymdf[4]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ld.c b/sofa/20160503/c/src/ld.c similarity index 98% rename from sofa/20150209_a/c/src/ld.c rename to sofa/20160503/c/src/ld.c index d3226666..22717e56 100644 --- a/sofa/20150209_a/c/src/ld.c +++ b/sofa/20160503/c/src/ld.c @@ -75,14 +75,15 @@ void iauLd(double bm, double p[3], double q[3], double e[3], ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int i; double qpe[3], qdqpe, w, eq[3], peq[3]; + /* q . (q + e). */ for (i = 0; i < 3; i++) { qpe[i] = q[i] + e[i]; @@ -105,7 +106,7 @@ void iauLd(double bm, double p[3], double q[3], double e[3], /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ldn.c b/sofa/20160503/c/src/ldn.c similarity index 98% rename from sofa/20150209_a/c/src/ldn.c rename to sofa/20160503/c/src/ldn.c index faafb82e..60756b6b 100644 --- a/sofa/20150209_a/c/src/ldn.c +++ b/sofa/20160503/c/src/ldn.c @@ -85,9 +85,9 @@ void iauLdn(int n, iauLDBODY b[], double ob[3], double sc[3], ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Light time for 1 AU (days) */ @@ -96,6 +96,7 @@ void iauLdn(int n, iauLDBODY b[], double ob[3], double sc[3], int i; double v[3], dt, ev[3], em, e[3]; + /* Star direction prior to deflection. */ iauCp(sc, sn); @@ -127,7 +128,7 @@ void iauLdn(int n, iauLDBODY b[], double ob[3], double sc[3], /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ldsun.c b/sofa/20160503/c/src/ldsun.c similarity index 98% rename from sofa/20150209_a/c/src/ldsun.c rename to sofa/20160503/c/src/ldsun.c index 8d3910bd..b06b343f 100644 --- a/sofa/20150209_a/c/src/ldsun.c +++ b/sofa/20160503/c/src/ldsun.c @@ -39,9 +39,9 @@ void iauLdsun(double p[3], double e[3], double em, double p1[3]) ** ** This revision: 2014 September 1 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauLd(1.0, p, p, e, em, 1e-9, p1); @@ -50,7 +50,7 @@ void iauLdsun(double p[3], double e[3], double em, double p1[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20160503/c/src/lteceq.c b/sofa/20160503/c/src/lteceq.c new file mode 100644 index 00000000..5af7665c --- /dev/null +++ b/sofa/20160503/c/src/lteceq.c @@ -0,0 +1,180 @@ +#include "sofa.h" + +void iauLteceq(double epj, double dl, double db, double *dr, double *dd) +/* +** - - - - - - - - - - +** i a u L t e c e q +** - - - - - - - - - - +** +** Transformation from ecliptic coordinates (mean equinox and ecliptic +** of date) to ICRS RA,Dec, using a long-term precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** dl,db double ecliptic longitude and latitude (radians) +** +** Returned: +** dr,dd double ICRS right ascension and declination (radians) +** +** 1) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 2) The transformation is approximately that from ecliptic longitude +** and latitude (mean equinox and ecliptic of date) to mean J2000.0 +** right ascension and declination, with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauLtecm J2000.0 to ecliptic rotation matrix, long term +** iauTrxp product of transpose of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2016 February 9 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ +{ + double rm[3][3], v1[3], v2[3], a, b; + + +/* Spherical to Cartesian. */ + iauS2c(dl, db, v1); + +/* Rotation matrix, ICRS equatorial to ecliptic. */ + iauLtecm(epj, rm); + +/* The transformation from ecliptic to ICRS. */ + iauTrxp(rm, v1, v2); + +/* Cartesian to spherical. */ + iauC2s(v2, &a, &b); + +/* Express in conventional ranges. */ + *dr = iauAnp(a); + *dd = iauAnpm(b); + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + +} diff --git a/sofa/20160503/c/src/ltecm.c b/sofa/20160503/c/src/ltecm.c new file mode 100644 index 00000000..4457fa72 --- /dev/null +++ b/sofa/20160503/c/src/ltecm.c @@ -0,0 +1,199 @@ +#include "sofa.h" + +void iauLtecm(double epj, double rm[3][3]) +/* +** - - - - - - - - - +** i a u L t e c m +** - - - - - - - - - +** +** ICRS equatorial to ecliptic rotation matrix, long-term. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** rm double[3][3] ICRS to ecliptic rotation matrix +** +** Notes: +** +** 1) The matrix is in the sense +** +** E_ep = rm x P_ICRS, +** +** where P_ICRS is a vector with respect to ICRS right ascension +** and declination axes and E_ep is the same vector with respect to +** the (inertial) ecliptic and equinox of epoch epj. +** +** 2) P_ICRS is a free vector, merely a direction, typically of unit +** magnitude, and not bound to any particular spatial origin, such +** as the Earth, Sun or SSB. No assumptions are made about whether +** it represents starlight and embodies astrometric effects such as +** parallax or aberration. The transformation is approximately that +** between mean J2000.0 right ascension and declination and ecliptic +** longitude and latitude, with only frame bias (always less than +** 25 mas) to disturb this classical picture. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauLtpequ equator pole, long term +** iauLtpecl ecliptic pole, long term +** iauPxp vector product +** iauPn normalize vector +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2015 December 6 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ +{ +/* Frame bias (IERS Conventions 2010, Eqs. 5.21 and 5.33) */ + const double dx = -0.016617 * DAS2R, + de = -0.0068192 * DAS2R, + dr = -0.0146 * DAS2R; + + double p[3], z[3], w[3], s, x[3], y[3]; + + +/* Equator pole. */ + iauLtpequ(epj, p); + +/* Ecliptic pole (bottom row of equatorial to ecliptic matrix). */ + iauLtpecl(epj, z); + +/* Equinox (top row of matrix). */ + iauPxp(p, z, w); + iauPn(w, &s, x); + +/* Middle row of matrix. */ + iauPxp(z, x, y); + +/* Combine with frame bias. */ + rm[0][0] = x[0] - x[1]*dr + x[2]*dx; + rm[0][1] = x[0]*dr + x[1] + x[2]*de; + rm[0][2] = - x[0]*dx - x[1]*de + x[2]; + rm[1][0] = y[0] - y[1]*dr + y[2]*dx; + rm[1][1] = y[0]*dr + y[1] + y[2]*de; + rm[1][2] = - y[0]*dx - y[1]*de + y[2]; + rm[2][0] = z[0] - z[1]*dr + z[2]*dx; + rm[2][1] = z[0]*dr + z[1] + z[2]*de; + rm[2][2] = - z[0]*dx - z[1]*de + z[2]; + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + +} diff --git a/sofa/20160503/c/src/lteqec.c b/sofa/20160503/c/src/lteqec.c new file mode 100644 index 00000000..1bec7e45 --- /dev/null +++ b/sofa/20160503/c/src/lteqec.c @@ -0,0 +1,181 @@ +#include "sofa.h" + +void iauLteqec(double epj, double dr, double dd, double *dl, double *db) +/* +** - - - - - - - - - - +** i a u L t e q e c +** - - - - - - - - - - +** +** Transformation from ICRS equatorial coordinates to ecliptic +** coordinates (mean equinox and ecliptic of date) using a long-term +** precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** dr,dd double ICRS right ascension and declination (radians) +** +** Returned: +** dl,db double ecliptic longitude and latitude (radians) +** +** 1) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 2) The transformation is approximately that from mean J2000.0 right +** ascension and declination to ecliptic longitude and latitude +** (mean equinox and ecliptic of date), with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauLtecm J2000.0 to ecliptic rotation matrix, long term +** iauRxp product of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2016 February 9 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ +{ + double rm[3][3], v1[3], v2[3], a, b; + + +/* Spherical to Cartesian. */ + iauS2c(dr, dd, v1); + +/* Rotation matrix, ICRS equatorial to ecliptic. */ + iauLtecm(epj, rm); + +/* The transformation from ICRS to ecliptic. */ + iauRxp(rm, v1, v2); + +/* Cartesian to spherical. */ + iauC2s(v2, &a, &b); + +/* Express in conventional ranges. */ + *dl = iauAnp(a); + *db = iauAnpm(b); + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + +} diff --git a/sofa/20160503/c/src/ltp.c b/sofa/20160503/c/src/ltp.c new file mode 100644 index 00000000..1230cc7a --- /dev/null +++ b/sofa/20160503/c/src/ltp.c @@ -0,0 +1,182 @@ +#include "sofa.h" + +void iauLtp(double epj, double rp[3][3]) +/* +** - - - - - - - +** i a u L t p +** - - - - - - - +** +** Long-term precession matrix. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** rp double[3][3] precession matrix, J2000.0 to date +** +** Notes: +** +** 1) The matrix is in the sense +** +** P_date = rp x P_J2000, +** +** where P_J2000 is a vector with respect to the J2000.0 mean +** equator and equinox and P_date is the same vector with respect to +** the equator and equinox of epoch epj. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauLtpequ equator pole, long term +** iauLtpecl ecliptic pole, long term +** iauPxp vector product +** iauPn normalize vector +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2015 December 6 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ +{ + int i; + double peqr[3], pecl[3], v[3], w, eqx[3]; + + +/* Equator pole (bottom row of matrix). */ + iauLtpequ(epj, peqr); + +/* Ecliptic pole. */ + iauLtpecl(epj, pecl); + +/* Equinox (top row of matrix). */ + iauPxp(peqr, pecl, v); + iauPn(v, &w, eqx); + +/* Middle row of matrix. */ + iauPxp(peqr, eqx, v); + +/* Assemble the matrix. */ + for ( i = 0; i < 3; i++ ) { + rp[0][i] = eqx[i]; + rp[1][i] = v[i]; + rp[2][i] = peqr[i]; + } + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + +} diff --git a/sofa/20160503/c/src/ltpb.c b/sofa/20160503/c/src/ltpb.c new file mode 100644 index 00000000..ab6b75fd --- /dev/null +++ b/sofa/20160503/c/src/ltpb.c @@ -0,0 +1,175 @@ +#include "sofa.h" + +void iauLtpb(double epj, double rpb[3][3]) +/* +** - - - - - - - - +** i a u L t p b +** - - - - - - - - +** +** Long-term precession matrix, including ICRS frame bias. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** rpb double[3][3] precession-bias matrix, J2000.0 to date +** +** Notes: +** +** 1) The matrix is in the sense +** +** P_date = rpb x P_ICRS, +** +** where P_ICRS is a vector in the Geocentric Celestial Reference +** System, and P_date is the vector with respect to the Celestial +** Intermediate Reference System at that date but with nutation +** neglected. +** +** 2) A first order frame bias formulation is used, of sub- +** microarcsecond accuracy compared with a full 3D rotation. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2015 December 6 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ +{ +/* Frame bias (IERS Conventions 2010, Eqs. 5.21 and 5.33) */ + const double dx = -0.016617 * DAS2R, + de = -0.0068192 * DAS2R, + dr = -0.0146 * DAS2R; + + int i; + double rp[3][3]; + + +/* Precession matrix. */ + iauLtp(epj, rp); + +/* Apply the bias. */ + for ( i = 0; i < 3; i++ ) { + rpb[i][0] = rp[i][0] - rp[i][1]*dr + rp[i][2]*dx; + rpb[i][1] = rp[i][0]*dr + rp[i][1] + rp[i][2]*de; + rpb[i][2] = -rp[i][0]*dx - rp[i][1]*de + rp[i][2]; + } + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + +} diff --git a/sofa/20160503/c/src/ltpecl.c b/sofa/20160503/c/src/ltpecl.c new file mode 100644 index 00000000..309d08ff --- /dev/null +++ b/sofa/20160503/c/src/ltpecl.c @@ -0,0 +1,219 @@ +#include "sofa.h" + +void iauLtpecl(double epj, double vec[3]) +/* +** - - - - - - - - - - +** i a u L t p e c l +** - - - - - - - - - - +** +** Long-term precession of the ecliptic. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** vec double[3] ecliptic pole unit vector +** +** Notes: +** +** 1) The returned vector is with respect to the J2000.0 mean equator +** and equinox. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2016 February 9 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ +{ +/* Obliquity at J2000.0 (radians). */ + static const double eps0 = 84381.406 * DAS2R; + +/* Polynomial coefficients */ + enum { NPOL = 4 }; + static const double pqpol[2][NPOL] = { + { 5851.607687, + -0.1189000, + -0.00028913, + 0.000000101}, + {-1600.886300, + 1.1689818, + -0.00000020, + -0.000000437} + }; + +/* Periodic coefficients */ + static const double pqper[][5] = { + { 708.15,-5486.751211,-684.661560, 667.666730,-5523.863691}, + {2309.00, -17.127623,2446.283880,-2354.886252, -549.747450}, + {1620.00, -617.517403, 399.671049, -428.152441, -310.998056}, + { 492.20, 413.442940,-356.652376, 376.202861, 421.535876}, + {1183.00, 78.614193,-186.387003, 184.778874, -36.776172}, + { 622.00, -180.732815,-316.800070, 335.321713, -145.278396}, + { 882.00, -87.676083, 198.296701, -185.138669, -34.744450}, + { 547.00, 46.140315, 101.135679, -120.972830, 22.885731} + }; + static const int NPER = (int) ( sizeof pqper / 5 / sizeof (double) ); + +/* Miscellaneous */ + int i; + double t, p, q, w, a, s, c; + + +/* Centuries since J2000. */ + t = ( epj - 2000.0 ) / 100.0; + +/* Initialize P_A and Q_A accumulators. */ + p = 0.0; + q = 0.0; + +/* Periodic terms. */ + w = D2PI*t; + for ( i = 0; i < NPER; i++ ) { + a = w/pqper[i][0]; + s = sin(a); + c = cos(a); + p += c*pqper[i][1] + s*pqper[i][3]; + q += c*pqper[i][2] + s*pqper[i][4]; + } + +/* Polynomial terms. */ + w = 1.0; + for ( i = 0; i < NPOL; i++ ) { + p += pqpol[0][i]*w; + q += pqpol[1][i]*w; + w *= t; + } + +/* P_A and Q_A (radians). */ + p *= DAS2R; + q *= DAS2R; + +/* Form the ecliptic pole vector. */ + w = 1.0 - p*p - q*q; + w = w < 0.0 ? 0.0 : sqrt(w); + s = sin(eps0); + c = cos(eps0); + vec[0] = p; + vec[1] = - q*c - w*s; + vec[2] = - q*s + w*c; + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + +} diff --git a/sofa/20160503/c/src/ltpequ.c b/sofa/20160503/c/src/ltpequ.c new file mode 100644 index 00000000..0dbdf707 --- /dev/null +++ b/sofa/20160503/c/src/ltpequ.c @@ -0,0 +1,219 @@ +#include "sofa.h" + +void iauLtpequ(double epj, double veq[3]) +/* +** - - - - - - - - - - +** i a u L t p e q u +** - - - - - - - - - - +** +** Long-term precession of the equator. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** veq double[3] equator pole unit vector +** +** Notes: +** +** 1) The returned vector is with respect to the J2000.0 mean equator +** and equinox. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2016 February 9 +** +** SOFA release 2016-05-03 +** +** Copyright (C) 2016 IAU SOFA Board. See notes at end. +*/ +{ +/* Polynomial coefficients */ + enum { NPOL = 4 }; + static const double xypol[2][NPOL] = { + { 5453.282155, + 0.4252841, + -0.00037173, + -0.000000152}, + {-73750.930350, + -0.7675452, + -0.00018725, + 0.000000231} + }; + +/* Periodic coefficients */ + static const double xyper[][5] = { + { 256.75, -819.940624,75004.344875,81491.287984, 1558.515853}, + { 708.15,-8444.676815, 624.033993, 787.163481, 7774.939698}, + { 274.20, 2600.009459, 1251.136893, 1251.296102,-2219.534038}, + { 241.45, 2755.175630,-1102.212834,-1257.950837,-2523.969396}, + {2309.00, -167.659835,-2660.664980,-2966.799730, 247.850422}, + { 492.20, 871.855056, 699.291817, 639.744522, -846.485643}, + { 396.10, 44.769698, 153.167220, 131.600209,-1393.124055}, + { 288.90, -512.313065, -950.865637, -445.040117, 368.526116}, + { 231.10, -819.415595, 499.754645, 584.522874, 749.045012}, + {1610.00, -538.071099, -145.188210, -89.756563, 444.704518}, + { 620.00, -189.793622, 558.116553, 524.429630, 235.934465}, + { 157.87, -402.922932, -23.923029, -13.549067, 374.049623}, + { 220.30, 179.516345, -165.405086, -210.157124, -171.330180}, + {1200.00, -9.814756, 9.344131, -44.919798, -22.899655} + }; + static const int NPER = (int) ( sizeof xyper / 5 / sizeof (double) ); + +/* Miscellaneous */ + int i; + double t, x, y, w, a, s, c; + + +/* Centuries since J2000. */ + t = ( epj - 2000.0 ) / 100.0; + +/* Initialize X and Y accumulators. */ + x = 0.0; + y = 0.0; + +/* Periodic terms. */ + w = D2PI * t; + for ( i = 0; i < NPER; i++ ) { + a = w / xyper[i][0]; + s = sin(a); + c = cos(a); + x += c*xyper[i][1] + s*xyper[i][3]; + y += c*xyper[i][2] + s*xyper[i][4]; + } + +/* Polynomial terms. */ + w = 1.0; + for ( i = 0; i < NPOL; i++ ) { + x += xypol[0][i]*w; + y += xypol[1][i]*w; + w *= t; + } + +/* X and Y (direction cosines). */ + x *= DAS2R; + y *= DAS2R; + +/* Form the equator pole vector. */ + veq[0] = x; + veq[1] = y; + w = 1.0 - x*x - y*y; + veq[2] = w < 0.0 ? 0.0 : sqrt(w); + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2016 +** Standards Of Fundamental Astronomy Board +** of the International Astronomical Union. +** +** ===================== +** SOFA Software License +** ===================== +** +** NOTICE TO USER: +** +** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND +** CONDITIONS WHICH APPLY TO ITS USE. +** +** 1. The Software is owned by the IAU SOFA Board ("SOFA"). +** +** 2. Permission is granted to anyone to use the SOFA software for any +** purpose, including commercial applications, free of charge and +** without payment of royalties, subject to the conditions and +** restrictions listed below. +** +** 3. You (the user) may copy and distribute SOFA source code to others, +** and use and adapt its code and algorithms in your own software, +** on a world-wide, royalty-free basis. That portion of your +** distribution that does not consist of intact and unchanged copies +** of SOFA source code files is a "derived work" that must comply +** with the following requirements: +** +** a) Your work shall be marked or carry a statement that it +** (i) uses routines and computations derived by you from +** software provided by SOFA under license to you; and +** (ii) does not itself constitute software provided by and/or +** endorsed by SOFA. +** +** b) The source code of your derived work must contain descriptions +** of how the derived work is based upon, contains and/or differs +** from the original SOFA software. +** +** c) The names of all routines in your derived work shall not +** include the prefix "iau" or "sofa" or trivial modifications +** thereof such as changes of case. +** +** d) The origin of the SOFA components of your derived work must +** not be misrepresented; you must not claim that you wrote the +** original software, nor file a patent application for SOFA +** software or algorithms embedded in the SOFA software. +** +** e) These requirements must be reproduced intact in any source +** distribution and shall apply to anyone to whom you have +** granted a further right to modify the source code of your +** derived work. +** +** Note that, as originally distributed, the SOFA software is +** intended to be a definitive implementation of the IAU standards, +** and consequently third-party modifications are discouraged. All +** variations, no matter how minor, must be explicitly marked as +** such, as explained above. +** +** 4. You shall not cause the SOFA software to be brought into +** disrepute, either by misuse, or use for inappropriate tasks, or +** by inappropriate modification. +** +** 5. The SOFA software is provided "as is" and SOFA makes no warranty +** as to its use or performance. SOFA does not and cannot warrant +** the performance or results which the user may obtain by using the +** SOFA software. SOFA makes no warranties, express or implied, as +** to non-infringement of third party rights, merchantability, or +** fitness for any particular purpose. In no event will SOFA be +** liable to the user for any consequential, incidental, or special +** damages, including any lost profits or lost savings, even if a +** SOFA representative has been advised of such damages, or for any +** claim by any third party. +** +** 6. The provision of any version of the SOFA software under the terms +** and conditions specified herein does not imply that future +** versions will also be made available under the same terms and +** conditions. +* +** In any published work or commercial product which uses the SOFA +** software directly, acknowledgement (see www.iausofa.org) is +** appreciated. +** +** Correspondence concerning SOFA software should be addressed as +** follows: +** +** By email: sofa@ukho.gov.uk +** By post: IAU SOFA Center +** HM Nautical Almanac Office +** UK Hydrographic Office +** Admiralty Way, Taunton +** Somerset, TA1 2DN +** United Kingdom +** +**--------------------------------------------------------------------*/ + +} diff --git a/sofa/20150209_a/c/src/num00a.c b/sofa/20160503/c/src/num00a.c similarity index 98% rename from sofa/20150209_a/c/src/num00a.c rename to sofa/20160503/c/src/num00a.c index 5a3875c5..d6ebbf3a 100644 --- a/sofa/20150209_a/c/src/num00a.c +++ b/sofa/20160503/c/src/num00a.c @@ -59,13 +59,14 @@ void iauNum00a(double date1, double date2, double rmatn[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rbpn[3][3]; + /* Obtain the required matrix (discarding other results). */ iauPn00a(date1, date2, &dpsi, &deps, &epsa, rb, rp, rbp, rmatn, rbpn); @@ -74,7 +75,7 @@ void iauNum00a(double date1, double date2, double rmatn[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/num00b.c b/sofa/20160503/c/src/num00b.c similarity index 98% rename from sofa/20150209_a/c/src/num00b.c rename to sofa/20160503/c/src/num00b.c index 22c2e496..2fc8588f 100644 --- a/sofa/20150209_a/c/src/num00b.c +++ b/sofa/20160503/c/src/num00b.c @@ -59,13 +59,14 @@ void iauNum00b(double date1, double date2, double rmatn[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rbpn[3][3]; + /* Obtain the required matrix (discarding other results). */ iauPn00b(date1, date2, &dpsi, &deps, &epsa, rb, rp, rbp, rmatn, rbpn); @@ -74,7 +75,7 @@ void iauNum00b(double date1, double date2, double rmatn[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/num06a.c b/sofa/20160503/c/src/num06a.c similarity index 98% rename from sofa/20150209_a/c/src/num06a.c rename to sofa/20160503/c/src/num06a.c index 3e505620..cfebd6fc 100644 --- a/sofa/20150209_a/c/src/num06a.c +++ b/sofa/20160503/c/src/num06a.c @@ -58,13 +58,14 @@ void iauNum06a(double date1, double date2, double rmatn[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double eps, dp, de; + /* Mean obliquity. */ eps = iauObl06(date1, date2); @@ -78,7 +79,7 @@ void iauNum06a(double date1, double date2, double rmatn[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/numat.c b/sofa/20160503/c/src/numat.c similarity index 98% rename from sofa/20150209_a/c/src/numat.c rename to sofa/20160503/c/src/numat.c index bc5d3276..cfa42725 100644 --- a/sofa/20150209_a/c/src/numat.c +++ b/sofa/20160503/c/src/numat.c @@ -22,6 +22,7 @@ void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]) ** ** Notes: ** +** ** 1) The supplied mean obliquity epsa, must be consistent with the ** precession-nutation models from which dpsi and deps were obtained. ** @@ -47,9 +48,9 @@ void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Build the rotation matrix. */ @@ -62,7 +63,7 @@ void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/nut00a.c b/sofa/20160503/c/src/nut00a.c similarity index 99% rename from sofa/20150209_a/c/src/nut00a.c rename to sofa/20160503/c/src/nut00a.c index ed846395..0d6b9d41 100644 --- a/sofa/20150209_a/c/src/nut00a.c +++ b/sofa/20160503/c/src/nut00a.c @@ -155,9 +155,9 @@ void iauNut00a(double date1, double date2, double *dpsi, double *deps) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int i; @@ -2001,7 +2001,7 @@ void iauNut00a(double date1, double date2, double *dpsi, double *deps) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/nut00b.c b/sofa/20160503/c/src/nut00b.c similarity index 99% rename from sofa/20150209_a/c/src/nut00b.c rename to sofa/20160503/c/src/nut00b.c index 08235625..b0c52a21 100644 --- a/sofa/20150209_a/c/src/nut00b.c +++ b/sofa/20160503/c/src/nut00b.c @@ -123,9 +123,9 @@ void iauNut00b(double date1, double date2, double *dpsi, double *deps) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, el, elp, f, d, om, arg, dp, de, sarg, carg, @@ -326,7 +326,7 @@ void iauNut00b(double date1, double date2, double *dpsi, double *deps) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/nut06a.c b/sofa/20160503/c/src/nut06a.c similarity index 98% rename from sofa/20150209_a/c/src/nut06a.c rename to sofa/20160503/c/src/nut06a.c index 058d4ad7..9e28a278 100644 --- a/sofa/20150209_a/c/src/nut06a.c +++ b/sofa/20160503/c/src/nut06a.c @@ -79,13 +79,14 @@ void iauNut06a(double date1, double date2, double *dpsi, double *deps) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, fj2, dp, de; + /* Interval between fundamental date J2000.0 and given date (JC). */ t = ((date1 - DJ00) + date2) / DJC; @@ -103,7 +104,7 @@ void iauNut06a(double date1, double date2, double *dpsi, double *deps) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/nut80.c b/sofa/20160503/c/src/nut80.c similarity index 99% rename from sofa/20150209_a/c/src/nut80.c rename to sofa/20160503/c/src/nut80.c index 301b2820..d2428558 100644 --- a/sofa/20150209_a/c/src/nut80.c +++ b/sofa/20160503/c/src/nut80.c @@ -55,9 +55,9 @@ void iauNut80(double date1, double date2, double *dpsi, double *deps) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, el, elp, f, d, om, dp, de, arg, s, c; @@ -279,7 +279,7 @@ void iauNut80(double date1, double date2, double *dpsi, double *deps) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/nutm80.c b/sofa/20160503/c/src/nutm80.c similarity index 98% rename from sofa/20150209_a/c/src/nutm80.c rename to sofa/20160503/c/src/nutm80.c index 302cbcaf..fe282850 100644 --- a/sofa/20150209_a/c/src/nutm80.c +++ b/sofa/20160503/c/src/nutm80.c @@ -52,13 +52,14 @@ void iauNutm80(double date1, double date2, double rmatn[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dpsi, deps, epsa; + /* Nutation components and mean obliquity. */ iauNut80(date1, date2, &dpsi, &deps); epsa = iauObl80(date1, date2); @@ -70,7 +71,7 @@ void iauNutm80(double date1, double date2, double rmatn[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/obl06.c b/sofa/20160503/c/src/obl06.c similarity index 98% rename from sofa/20150209_a/c/src/obl06.c rename to sofa/20160503/c/src/obl06.c index d3931a00..53afc342 100644 --- a/sofa/20150209_a/c/src/obl06.c +++ b/sofa/20160503/c/src/obl06.c @@ -49,13 +49,14 @@ double iauObl06(double date1, double date2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, eps0; + /* Interval between fundamental date J2000.0 and given date (JC). */ t = ((date1 - DJ00) + date2) / DJC; @@ -71,7 +72,7 @@ double iauObl06(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/obl80.c b/sofa/20160503/c/src/obl80.c similarity index 98% rename from sofa/20150209_a/c/src/obl80.c rename to sofa/20160503/c/src/obl80.c index 5be1c1ed..acedeec4 100644 --- a/sofa/20150209_a/c/src/obl80.c +++ b/sofa/20160503/c/src/obl80.c @@ -51,13 +51,14 @@ double iauObl80(double date1, double date2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, eps0; + /* Interval between fundamental epoch J2000.0 and given date (JC). */ t = ((date1 - DJ00) + date2) / DJC; @@ -71,7 +72,7 @@ double iauObl80(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/p06e.c b/sofa/20160503/c/src/p06e.c similarity index 99% rename from sofa/20150209_a/c/src/p06e.c rename to sofa/20160503/c/src/p06e.c index 5ed9b370..fe221ce7 100644 --- a/sofa/20150209_a/c/src/p06e.c +++ b/sofa/20160503/c/src/p06e.c @@ -127,13 +127,14 @@ void iauP06e(double date1, double date2, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t; + /* Interval between fundamental date J2000.0 and given date (JC). */ t = ((date1 - DJ00) + date2) / DJC; @@ -274,7 +275,7 @@ void iauP06e(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/p2pv.c b/sofa/20160503/c/src/p2pv.c similarity index 97% rename from sofa/20150209_a/c/src/p2pv.c rename to sofa/20160503/c/src/p2pv.c index 3229ed76..7bd098be 100644 --- a/sofa/20150209_a/c/src/p2pv.c +++ b/sofa/20160503/c/src/p2pv.c @@ -25,9 +25,9 @@ void iauP2pv(double p[3], double pv[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauCp(p, pv[0]); @@ -37,7 +37,7 @@ void iauP2pv(double p[3], double pv[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/p2s.c b/sofa/20160503/c/src/p2s.c similarity index 97% rename from sofa/20150209_a/c/src/p2s.c rename to sofa/20160503/c/src/p2s.c index 3f045b01..d5ab4fe3 100644 --- a/sofa/20150209_a/c/src/p2s.c +++ b/sofa/20160503/c/src/p2s.c @@ -33,9 +33,9 @@ void iauP2s(double p[3], double *theta, double *phi, double *r) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauC2s(p, theta, phi); @@ -45,7 +45,7 @@ void iauP2s(double p[3], double *theta, double *phi, double *r) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pap.c b/sofa/20160503/c/src/pap.c similarity index 98% rename from sofa/20150209_a/c/src/pap.c rename to sofa/20160503/c/src/pap.c index f239a197..b125856f 100644 --- a/sofa/20150209_a/c/src/pap.c +++ b/sofa/20160503/c/src/pap.c @@ -44,13 +44,14 @@ double iauPap(double a[3], double b[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double am, au[3], bm, st, ct, xa, ya, za, eta[3], xi[3], a2b[3], pa; + /* Modulus and direction of the a vector. */ iauPn(a, &am, au); @@ -92,7 +93,7 @@ double iauPap(double a[3], double b[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pas.c b/sofa/20160503/c/src/pas.c similarity index 98% rename from sofa/20150209_a/c/src/pas.c rename to sofa/20160503/c/src/pas.c index e956fecb..0054522f 100644 --- a/sofa/20150209_a/c/src/pas.c +++ b/sofa/20160503/c/src/pas.c @@ -33,13 +33,14 @@ double iauPas(double al, double ap, double bl, double bp) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dl, x, y, pa; + dl = bl - al; y = sin(dl) * cos(bp); x = sin(bp) * cos(ap) - cos(bp) * sin(ap) * cos(dl); @@ -49,7 +50,7 @@ double iauPas(double al, double ap, double bl, double bp) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pb06.c b/sofa/20160503/c/src/pb06.c similarity index 98% rename from sofa/20150209_a/c/src/pb06.c rename to sofa/20160503/c/src/pb06.c index c7ea6ec7..32d71d0f 100644 --- a/sofa/20150209_a/c/src/pb06.c +++ b/sofa/20160503/c/src/pb06.c @@ -70,13 +70,14 @@ void iauPb06(double date1, double date2, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double r[3][3], r31, r32; + /* Precession matrix via Fukushima-Williams angles. */ iauPmat06(date1, date2, r); @@ -97,7 +98,7 @@ void iauPb06(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pdp.c b/sofa/20160503/c/src/pdp.c similarity index 97% rename from sofa/20150209_a/c/src/pdp.c rename to sofa/20160503/c/src/pdp.c index 74c7ab25..217a270e 100644 --- a/sofa/20150209_a/c/src/pdp.c +++ b/sofa/20160503/c/src/pdp.c @@ -22,13 +22,14 @@ double iauPdp(double a[3], double b[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double w; + w = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; @@ -37,7 +38,7 @@ double iauPdp(double a[3], double b[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pfw06.c b/sofa/20160503/c/src/pfw06.c similarity index 98% rename from sofa/20150209_a/c/src/pfw06.c rename to sofa/20160503/c/src/pfw06.c index 281ecafb..c1483ab1 100644 --- a/sofa/20150209_a/c/src/pfw06.c +++ b/sofa/20160503/c/src/pfw06.c @@ -80,13 +80,14 @@ void iauPfw06(double date1, double date2, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t; + /* Interval between fundamental date J2000.0 and given date (JC). */ t = ((date1 - DJ00) + date2) / DJC; @@ -118,7 +119,7 @@ void iauPfw06(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/plan94.c b/sofa/20160503/c/src/plan94.c similarity index 99% rename from sofa/20150209_a/c/src/plan94.c rename to sofa/20160503/c/src/plan94.c index 8d64cfd8..b7b767df 100644 --- a/sofa/20150209_a/c/src/plan94.c +++ b/sofa/20160503/c/src/plan94.c @@ -164,9 +164,9 @@ int iauPlan94(double date1, double date2, int np, double pv[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Gaussian constant */ @@ -468,7 +468,7 @@ int iauPlan94(double date1, double date2, int np, double pv[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pm.c b/sofa/20160503/c/src/pm.c similarity index 97% rename from sofa/20150209_a/c/src/pm.c rename to sofa/20160503/c/src/pm.c index 4c4a06d9..fa23ba71 100644 --- a/sofa/20150209_a/c/src/pm.c +++ b/sofa/20160503/c/src/pm.c @@ -21,16 +21,16 @@ double iauPm(double p[3]) ** ** This revision: 2013 August 7 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { return sqrt( p[0]*p[0] + p[1]*p[1] + p[2]*p[2] ); /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pmat00.c b/sofa/20160503/c/src/pmat00.c similarity index 98% rename from sofa/20150209_a/c/src/pmat00.c rename to sofa/20160503/c/src/pmat00.c index ae041b40..ce170a1e 100644 --- a/sofa/20150209_a/c/src/pmat00.c +++ b/sofa/20160503/c/src/pmat00.c @@ -57,13 +57,14 @@ void iauPmat00(double date1, double date2, double rbp[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rb[3][3], rp[3][3]; + /* Obtain the required matrix (discarding others). */ iauBp00(date1, date2, rb, rp, rbp); @@ -71,7 +72,7 @@ void iauPmat00(double date1, double date2, double rbp[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pmat06.c b/sofa/20160503/c/src/pmat06.c similarity index 98% rename from sofa/20150209_a/c/src/pmat06.c rename to sofa/20160503/c/src/pmat06.c index b8cc50c9..8ede2f73 100644 --- a/sofa/20150209_a/c/src/pmat06.c +++ b/sofa/20160503/c/src/pmat06.c @@ -58,13 +58,14 @@ void iauPmat06(double date1, double date2, double rbp[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double gamb, phib, psib, epsa; + /* Bias-precession Fukushima-Williams angles. */ iauPfw06(date1, date2, &gamb, &phib, &psib, &epsa); @@ -75,7 +76,7 @@ void iauPmat06(double date1, double date2, double rbp[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pmat76.c b/sofa/20160503/c/src/pmat76.c similarity index 98% rename from sofa/20150209_a/c/src/pmat76.c rename to sofa/20160503/c/src/pmat76.c index 8734871d..3cc9ae6e 100644 --- a/sofa/20150209_a/c/src/pmat76.c +++ b/sofa/20160503/c/src/pmat76.c @@ -73,13 +73,14 @@ void iauPmat76(double date1, double date2, double rmatp[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double zeta, z, theta, wmat[3][3]; + /* Precession Euler angles, J2000.0 to specified date. */ iauPrec76(DJ00, 0.0, date1, date2, &zeta, &z, &theta); @@ -94,7 +95,7 @@ void iauPmat76(double date1, double date2, double rmatp[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pmp.c b/sofa/20160503/c/src/pmp.c similarity index 97% rename from sofa/20150209_a/c/src/pmp.c rename to sofa/20160503/c/src/pmp.c index a7cf338c..a191e6e4 100644 --- a/sofa/20150209_a/c/src/pmp.c +++ b/sofa/20160503/c/src/pmp.c @@ -26,9 +26,9 @@ void iauPmp(double a[3], double b[3], double amb[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { amb[0] = a[0] - b[0]; @@ -39,7 +39,7 @@ void iauPmp(double a[3], double b[3], double amb[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pmpx.c b/sofa/20160503/c/src/pmpx.c similarity index 98% rename from sofa/20150209_a/c/src/pmpx.c rename to sofa/20160503/c/src/pmpx.c index 3fcf6e04..1c5fd780 100644 --- a/sofa/20150209_a/c/src/pmpx.c +++ b/sofa/20160503/c/src/pmpx.c @@ -53,9 +53,9 @@ void iauPmpx(double rc, double dc, double pr, double pd, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Km/s to au/year */ @@ -67,6 +67,7 @@ void iauPmpx(double rc, double dc, double pr, double pd, int i; double sr, cr, sd, cd, x, y, z, p[3], dt, pxr, w, pdz, pm[3]; + /* Spherical coordinates to unit vector (and useful functions). */ sr = sin(rc); cr = cos(rc); @@ -97,7 +98,7 @@ void iauPmpx(double rc, double dc, double pr, double pd, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pmsafe.c b/sofa/20160503/c/src/pmsafe.c similarity index 98% rename from sofa/20150209_a/c/src/pmsafe.c rename to sofa/20160503/c/src/pmsafe.c index bdd4298f..7d3d22b2 100644 --- a/sofa/20150209_a/c/src/pmsafe.c +++ b/sofa/20160503/c/src/pmsafe.c @@ -112,9 +112,9 @@ int iauPmsafe(double ra1, double dec1, double pmr1, double pmd1, ** ** This revision: 2014 July 1 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -127,6 +127,7 @@ int iauPmsafe(double ra1, double dec1, double pmr1, double pmd1, int jpx, j; double pm, px1a; + /* Proper motion in one year (radians). */ pm = iauSeps(ra1, dec1, ra1+pmr1, dec1+pmd1); @@ -150,7 +151,7 @@ int iauPmsafe(double ra1, double dec1, double pmr1, double pmd1, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pn.c b/sofa/20160503/c/src/pn.c similarity index 97% rename from sofa/20150209_a/c/src/pn.c rename to sofa/20160503/c/src/pn.c index 09b75877..e3c51e4a 100644 --- a/sofa/20150209_a/c/src/pn.c +++ b/sofa/20160503/c/src/pn.c @@ -35,13 +35,14 @@ void iauPn(double p[3], double *r, double u[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double w; + /* Obtain the modulus and test for zero. */ w = iauPm(p); if (w == 0.0) { @@ -62,7 +63,7 @@ void iauPn(double p[3], double *r, double u[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pn00.c b/sofa/20160503/c/src/pn00.c similarity index 98% rename from sofa/20150209_a/c/src/pn00.c rename to sofa/20160503/c/src/pn00.c index 1005e60e..a335e026 100644 --- a/sofa/20150209_a/c/src/pn00.c +++ b/sofa/20160503/c/src/pn00.c @@ -102,13 +102,14 @@ void iauPn00(double date1, double date2, double dpsi, double deps, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dpsipr, depspr, rbpw[3][3], rnw[3][3]; + /* IAU 2000 precession-rate adjustments. */ iauPr00(date1, date2, &dpsipr, &depspr); @@ -130,7 +131,7 @@ void iauPn00(double date1, double date2, double dpsi, double deps, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pn00a.c b/sofa/20160503/c/src/pn00a.c similarity index 98% rename from sofa/20150209_a/c/src/pn00a.c rename to sofa/20160503/c/src/pn00a.c index f279375b..92159dd2 100644 --- a/sofa/20150209_a/c/src/pn00a.c +++ b/sofa/20160503/c/src/pn00a.c @@ -102,9 +102,9 @@ void iauPn00a(double date1, double date2, ** ** This revision: 2013 November 14 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Nutation. */ @@ -117,7 +117,7 @@ void iauPn00a(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pn00b.c b/sofa/20160503/c/src/pn00b.c similarity index 98% rename from sofa/20150209_a/c/src/pn00b.c rename to sofa/20160503/c/src/pn00b.c index 967f2911..a6955ab1 100644 --- a/sofa/20150209_a/c/src/pn00b.c +++ b/sofa/20160503/c/src/pn00b.c @@ -102,9 +102,9 @@ void iauPn00b(double date1, double date2, ** ** This revision: 2013 November 13 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Nutation. */ @@ -117,7 +117,7 @@ void iauPn00b(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pn06.c b/sofa/20160503/c/src/pn06.c similarity index 98% rename from sofa/20150209_a/c/src/pn06.c rename to sofa/20160503/c/src/pn06.c index 159300c3..18aa18ee 100644 --- a/sofa/20150209_a/c/src/pn06.c +++ b/sofa/20160503/c/src/pn06.c @@ -100,13 +100,14 @@ void iauPn06(double date1, double date2, double dpsi, double deps, ** ** This revision: 2013 November 14 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double gamb, phib, psib, eps, r1[3][3], r2[3][3], rt[3][3]; + /* Bias-precession Fukushima-Williams angles of J2000.0 = frame bias. */ iauPfw06(DJM0, DJM00, &gamb, &phib, &psib, &eps); @@ -140,7 +141,7 @@ void iauPn06(double date1, double date2, double dpsi, double deps, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pn06a.c b/sofa/20160503/c/src/pn06a.c similarity index 98% rename from sofa/20150209_a/c/src/pn06a.c rename to sofa/20160503/c/src/pn06a.c index 3639577f..05ba3ceb 100644 --- a/sofa/20150209_a/c/src/pn06a.c +++ b/sofa/20160503/c/src/pn06a.c @@ -92,9 +92,9 @@ void iauPn06a(double date1, double date2, ** ** This revision: 2013 November 13 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Nutation. */ @@ -107,7 +107,7 @@ void iauPn06a(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pnm00a.c b/sofa/20160503/c/src/pnm00a.c similarity index 98% rename from sofa/20150209_a/c/src/pnm00a.c rename to sofa/20160503/c/src/pnm00a.c index 2004c23c..c11deedf 100644 --- a/sofa/20150209_a/c/src/pnm00a.c +++ b/sofa/20160503/c/src/pnm00a.c @@ -60,13 +60,14 @@ void iauPnm00a(double date1, double date2, double rbpn[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3]; + /* Obtain the required matrix (discarding other results). */ iauPn00a(date1, date2, &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn); @@ -74,7 +75,7 @@ void iauPnm00a(double date1, double date2, double rbpn[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pnm00b.c b/sofa/20160503/c/src/pnm00b.c similarity index 98% rename from sofa/20150209_a/c/src/pnm00b.c rename to sofa/20160503/c/src/pnm00b.c index d1fd903b..7a49255c 100644 --- a/sofa/20150209_a/c/src/pnm00b.c +++ b/sofa/20160503/c/src/pnm00b.c @@ -60,13 +60,14 @@ void iauPnm00b(double date1, double date2, double rbpn[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3]; + /* Obtain the required matrix (discarding other results). */ iauPn00b(date1, date2, &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn); @@ -74,7 +75,7 @@ void iauPnm00b(double date1, double date2, double rbpn[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pnm06a.c b/sofa/20160503/c/src/pnm06a.c similarity index 98% rename from sofa/20150209_a/c/src/pnm06a.c rename to sofa/20160503/c/src/pnm06a.c index cbf9213f..ffa8c649 100644 --- a/sofa/20150209_a/c/src/pnm06a.c +++ b/sofa/20160503/c/src/pnm06a.c @@ -57,13 +57,14 @@ void iauPnm06a(double date1, double date2, double rnpb[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double gamb, phib, psib, epsa, dp, de; + /* Fukushima-Williams angles for frame bias and precession. */ iauPfw06(date1, date2, &gamb, &phib, &psib, &epsa); @@ -77,7 +78,7 @@ void iauPnm06a(double date1, double date2, double rnpb[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pnm80.c b/sofa/20160503/c/src/pnm80.c similarity index 98% rename from sofa/20150209_a/c/src/pnm80.c rename to sofa/20160503/c/src/pnm80.c index 0ddb4991..2b4a41d8 100644 --- a/sofa/20150209_a/c/src/pnm80.c +++ b/sofa/20160503/c/src/pnm80.c @@ -59,13 +59,14 @@ void iauPnm80(double date1, double date2, double rmatpn[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rmatp[3][3], rmatn[3][3]; + /* Precession matrix, J2000.0 to date. */ iauPmat76(date1, date2, rmatp); @@ -79,7 +80,7 @@ void iauPnm80(double date1, double date2, double rmatpn[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pom00.c b/sofa/20160503/c/src/pom00.c similarity index 98% rename from sofa/20150209_a/c/src/pom00.c rename to sofa/20160503/c/src/pom00.c index 37ece6f6..d9c8ab7a 100644 --- a/sofa/20150209_a/c/src/pom00.c +++ b/sofa/20160503/c/src/pom00.c @@ -53,9 +53,9 @@ void iauPom00(double xp, double yp, double sp, double rpom[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -69,7 +69,7 @@ void iauPom00(double xp, double yp, double sp, double rpom[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ppp.c b/sofa/20160503/c/src/ppp.c similarity index 97% rename from sofa/20150209_a/c/src/ppp.c rename to sofa/20160503/c/src/ppp.c index ded1103b..86c05511 100644 --- a/sofa/20150209_a/c/src/ppp.c +++ b/sofa/20160503/c/src/ppp.c @@ -26,9 +26,9 @@ void iauPpp(double a[3], double b[3], double apb[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { apb[0] = a[0] + b[0]; @@ -39,7 +39,7 @@ void iauPpp(double a[3], double b[3], double apb[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ppsp.c b/sofa/20160503/c/src/ppsp.c similarity index 97% rename from sofa/20150209_a/c/src/ppsp.c rename to sofa/20160503/c/src/ppsp.c index 4f045f04..44c64fba 100644 --- a/sofa/20150209_a/c/src/ppsp.c +++ b/sofa/20160503/c/src/ppsp.c @@ -30,13 +30,14 @@ void iauPpsp(double a[3], double s, double b[3], double apsb[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double sb[3]; + /* s*b. */ iauSxp(s, b, sb); @@ -47,7 +48,7 @@ void iauPpsp(double a[3], double s, double b[3], double apsb[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pr00.c b/sofa/20160503/c/src/pr00.c similarity index 98% rename from sofa/20150209_a/c/src/pr00.c rename to sofa/20160503/c/src/pr00.c index 4ae45776..3446173b 100644 --- a/sofa/20150209_a/c/src/pr00.c +++ b/sofa/20160503/c/src/pr00.c @@ -73,9 +73,9 @@ void iauPr00(double date1, double date2, double *dpsipr, double *depspr) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t; @@ -84,6 +84,7 @@ void iauPr00(double date1, double date2, double *dpsipr, double *depspr) static const double PRECOR = -0.29965 * DAS2R, OBLCOR = -0.02524 * DAS2R; + /* Interval between fundamental epoch J2000.0 and given date (JC). */ t = ((date1 - DJ00) + date2) / DJC; @@ -95,7 +96,7 @@ void iauPr00(double date1, double date2, double *dpsipr, double *depspr) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/prec76.c b/sofa/20160503/c/src/prec76.c similarity index 98% rename from sofa/20150209_a/c/src/prec76.c rename to sofa/20160503/c/src/prec76.c index 2ddcd04a..84f782c6 100644 --- a/sofa/20150209_a/c/src/prec76.c +++ b/sofa/20160503/c/src/prec76.c @@ -73,13 +73,14 @@ void iauPrec76(double date01, double date02, double date11, double date12, ** ** This revision: 2013 November 19 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t0, t, tas2r, w; + /* Interval between fundamental epoch J2000.0 and start date (JC). */ t0 = ((date01 - DJ00) + date02) / DJC; @@ -101,7 +102,7 @@ void iauPrec76(double date01, double date02, double date11, double date12, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pv2p.c b/sofa/20160503/c/src/pv2p.c similarity index 97% rename from sofa/20150209_a/c/src/pv2p.c rename to sofa/20160503/c/src/pv2p.c index 04d2d855..bf6d7ab2 100644 --- a/sofa/20150209_a/c/src/pv2p.c +++ b/sofa/20160503/c/src/pv2p.c @@ -24,9 +24,9 @@ void iauPv2p(double pv[2][3], double p[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauCp(pv[0], p); @@ -35,7 +35,7 @@ void iauPv2p(double pv[2][3], double p[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pv2s.c b/sofa/20160503/c/src/pv2s.c similarity index 98% rename from sofa/20150209_a/c/src/pv2s.c rename to sofa/20160503/c/src/pv2s.c index a89bac31..e4355ca1 100644 --- a/sofa/20150209_a/c/src/pv2s.c +++ b/sofa/20160503/c/src/pv2s.c @@ -41,13 +41,14 @@ void iauPv2s(double pv[2][3], ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double x, y, z, xd, yd, zd, rxy2, rxy, r2, rtrue, rw, xyp; + /* Components of position/velocity vector. */ x = pv[0][0]; y = pv[0][1]; @@ -97,7 +98,7 @@ void iauPv2s(double pv[2][3], /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pvdpv.c b/sofa/20160503/c/src/pvdpv.c similarity index 98% rename from sofa/20150209_a/c/src/pvdpv.c rename to sofa/20160503/c/src/pvdpv.c index 7650ad03..05362b64 100644 --- a/sofa/20150209_a/c/src/pvdpv.c +++ b/sofa/20160503/c/src/pvdpv.c @@ -32,13 +32,14 @@ void iauPvdpv(double a[2][3], double b[2][3], double adb[2]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double adbd, addb; + /* a . b = constant part of result. */ adb[0] = iauPdp(a[0], b[0]); @@ -55,7 +56,7 @@ void iauPvdpv(double a[2][3], double b[2][3], double adb[2]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pvm.c b/sofa/20160503/c/src/pvm.c similarity index 97% rename from sofa/20150209_a/c/src/pvm.c rename to sofa/20160503/c/src/pvm.c index 35ab4bb9..82b29e7c 100644 --- a/sofa/20150209_a/c/src/pvm.c +++ b/sofa/20160503/c/src/pvm.c @@ -25,9 +25,9 @@ void iauPvm(double pv[2][3], double *r, double *s) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Distance. */ @@ -40,7 +40,7 @@ void iauPvm(double pv[2][3], double *r, double *s) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pvmpv.c b/sofa/20160503/c/src/pvmpv.c similarity index 97% rename from sofa/20150209_a/c/src/pvmpv.c rename to sofa/20160503/c/src/pvmpv.c index 48d25b22..c63be51d 100644 --- a/sofa/20150209_a/c/src/pvmpv.c +++ b/sofa/20160503/c/src/pvmpv.c @@ -29,9 +29,9 @@ void iauPvmpv(double a[2][3], double b[2][3], double amb[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauPmp(a[0], b[0], amb[0]); @@ -41,7 +41,7 @@ void iauPvmpv(double a[2][3], double b[2][3], double amb[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pvppv.c b/sofa/20160503/c/src/pvppv.c similarity index 97% rename from sofa/20150209_a/c/src/pvppv.c rename to sofa/20160503/c/src/pvppv.c index cf5e33be..879156a5 100644 --- a/sofa/20150209_a/c/src/pvppv.c +++ b/sofa/20160503/c/src/pvppv.c @@ -29,9 +29,9 @@ void iauPvppv(double a[2][3], double b[2][3], double apb[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauPpp(a[0], b[0], apb[0]); @@ -41,7 +41,7 @@ void iauPvppv(double a[2][3], double b[2][3], double apb[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pvstar.c b/sofa/20160503/c/src/pvstar.c similarity index 98% rename from sofa/20150209_a/c/src/pvstar.c rename to sofa/20160503/c/src/pvstar.c index 3df0c63c..ad7f08b2 100644 --- a/sofa/20150209_a/c/src/pvstar.c +++ b/sofa/20160503/c/src/pvstar.c @@ -100,14 +100,15 @@ int iauPvstar(double pv[2][3], double *ra, double *dec, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double r, x[3], vr, ur[3], vt, ut[3], bett, betr, d, w, del, usr[3], ust[3], a, rad, decd, rd; + /* Isolate the radial component of the velocity (AU/day, inertial). */ iauPn(pv[0], &r, x); vr = iauPdp(x, pv[1]); @@ -160,7 +161,7 @@ int iauPvstar(double pv[2][3], double *ra, double *dec, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pvtob.c b/sofa/20160503/c/src/pvtob.c similarity index 98% rename from sofa/20150209_a/c/src/pvtob.c rename to sofa/20160503/c/src/pvtob.c index 7b602a3f..06c16213 100644 --- a/sofa/20150209_a/c/src/pvtob.c +++ b/sofa/20160503/c/src/pvtob.c @@ -68,9 +68,9 @@ void iauPvtob(double elong, double phi, double hm, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Earth rotation rate in radians per UT1 second */ @@ -78,6 +78,7 @@ void iauPvtob(double elong, double phi, double hm, double xyzm[3], rpm[3][3], xyz[3], x, y, z, s, c; + /* Geodetic to geocentric transformation (WGS84). */ (void) iauGd2gc(1, elong, phi, hm, xyzm); @@ -106,7 +107,7 @@ void iauPvtob(double elong, double phi, double hm, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pvu.c b/sofa/20160503/c/src/pvu.c similarity index 97% rename from sofa/20150209_a/c/src/pvu.c rename to sofa/20160503/c/src/pvu.c index df840651..7e5bea26 100644 --- a/sofa/20150209_a/c/src/pvu.c +++ b/sofa/20160503/c/src/pvu.c @@ -35,9 +35,9 @@ void iauPvu(double dt, double pv[2][3], double upv[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauPpsp(pv[0], dt, pv[1], upv[0]); @@ -47,7 +47,7 @@ void iauPvu(double dt, double pv[2][3], double upv[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pvup.c b/sofa/20160503/c/src/pvup.c similarity index 97% rename from sofa/20150209_a/c/src/pvup.c rename to sofa/20160503/c/src/pvup.c index b49e39cd..5bd6a43e 100644 --- a/sofa/20150209_a/c/src/pvup.c +++ b/sofa/20160503/c/src/pvup.c @@ -29,9 +29,9 @@ void iauPvup(double dt, double pv[2][3], double p[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { p[0] = pv[0][0] + dt * pv[1][0]; @@ -42,7 +42,7 @@ void iauPvup(double dt, double pv[2][3], double p[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pvxpv.c b/sofa/20160503/c/src/pvxpv.c similarity index 98% rename from sofa/20150209_a/c/src/pvxpv.c rename to sofa/20160503/c/src/pvxpv.c index cb08c3e8..2af53a10 100644 --- a/sofa/20150209_a/c/src/pvxpv.c +++ b/sofa/20160503/c/src/pvxpv.c @@ -37,13 +37,14 @@ void iauPvxpv(double a[2][3], double b[2][3], double axb[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double wa[2][3], wb[2][3], axbd[3], adxb[3]; + /* Make copies of the inputs. */ iauCpv(a, wa); iauCpv(b, wb); @@ -60,7 +61,7 @@ void iauPvxpv(double a[2][3], double b[2][3], double axb[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/pxp.c b/sofa/20160503/c/src/pxp.c similarity index 97% rename from sofa/20150209_a/c/src/pxp.c rename to sofa/20160503/c/src/pxp.c index 889ec31c..723e080d 100644 --- a/sofa/20150209_a/c/src/pxp.c +++ b/sofa/20160503/c/src/pxp.c @@ -26,13 +26,14 @@ void iauPxp(double a[3], double b[3], double axb[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double xa, ya, za, xb, yb, zb; + xa = a[0]; ya = a[1]; za = a[2]; @@ -47,7 +48,7 @@ void iauPxp(double a[3], double b[3], double axb[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/refco.c b/sofa/20160503/c/src/refco.c similarity index 99% rename from sofa/20150209_a/c/src/refco.c rename to sofa/20160503/c/src/refco.c index c29f66db..dd079f8c 100644 --- a/sofa/20150209_a/c/src/refco.c +++ b/sofa/20160503/c/src/refco.c @@ -152,14 +152,15 @@ void iauRefco(double phpa, double tc, double rh, double wl, ** ** This revision: 2013 October 9 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int optic; double p, t, r, w, ps, pw, tk, wlsq, gamma, beta; + /* Decide whether optical/IR or radio case: switch at 100 microns. */ optic = ( wl <= 100.0 ); @@ -206,7 +207,7 @@ void iauRefco(double phpa, double tc, double rh, double wl, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/rm2v.c b/sofa/20160503/c/src/rm2v.c similarity index 98% rename from sofa/20150209_a/c/src/rm2v.c rename to sofa/20160503/c/src/rm2v.c index a406cd63..70e63656 100644 --- a/sofa/20150209_a/c/src/rm2v.c +++ b/sofa/20160503/c/src/rm2v.c @@ -36,9 +36,9 @@ void iauRm2v(double r[3][3], double w[3]) ** ** This revision: 2015 January 30 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double x, y, z, s2, c2, phi, f; @@ -65,7 +65,7 @@ void iauRm2v(double r[3][3], double w[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/rv2m.c b/sofa/20160503/c/src/rv2m.c similarity index 98% rename from sofa/20150209_a/c/src/rv2m.c rename to sofa/20160503/c/src/rv2m.c index 71f05220..5ab96d9a 100644 --- a/sofa/20150209_a/c/src/rv2m.c +++ b/sofa/20160503/c/src/rv2m.c @@ -33,9 +33,9 @@ void iauRv2m(double w[3], double r[3][3]) ** ** This revision: 2015 January 30 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double x, y, z, phi, s, c, f; @@ -72,7 +72,7 @@ void iauRv2m(double w[3], double r[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/rx.c b/sofa/20160503/c/src/rx.c similarity index 98% rename from sofa/20150209_a/c/src/rx.c rename to sofa/20160503/c/src/rx.c index f3b9c9b3..1a0c6576 100644 --- a/sofa/20150209_a/c/src/rx.c +++ b/sofa/20160503/c/src/rx.c @@ -35,13 +35,14 @@ void iauRx(double phi, double r[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double s, c, a10, a11, a12, a20, a21, a22; + s = sin(phi); c = cos(phi); @@ -63,7 +64,7 @@ void iauRx(double phi, double r[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/rxp.c b/sofa/20160503/c/src/rxp.c similarity index 97% rename from sofa/20150209_a/c/src/rxp.c rename to sofa/20160503/c/src/rxp.c index 16200e61..506b2fa3 100644 --- a/sofa/20150209_a/c/src/rxp.c +++ b/sofa/20160503/c/src/rxp.c @@ -28,14 +28,15 @@ void iauRxp(double r[3][3], double p[3], double rp[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double w, wrp[3]; int i, j; + /* Matrix r * vector p. */ for (j = 0; j < 3; j++) { w = 0.0; @@ -52,7 +53,7 @@ void iauRxp(double r[3][3], double p[3], double rp[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/rxpv.c b/sofa/20160503/c/src/rxpv.c similarity index 97% rename from sofa/20150209_a/c/src/rxpv.c rename to sofa/20160503/c/src/rxpv.c index e1669d5c..4f222479 100644 --- a/sofa/20150209_a/c/src/rxpv.c +++ b/sofa/20160503/c/src/rxpv.c @@ -28,9 +28,9 @@ void iauRxpv(double r[3][3], double pv[2][3], double rpv[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauRxp(r, pv[0], rpv[0]); @@ -40,7 +40,7 @@ void iauRxpv(double r[3][3], double pv[2][3], double rpv[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/rxr.c b/sofa/20160503/c/src/rxr.c similarity index 97% rename from sofa/20150209_a/c/src/rxr.c rename to sofa/20160503/c/src/rxr.c index fd026ad9..eb934f39 100644 --- a/sofa/20150209_a/c/src/rxr.c +++ b/sofa/20160503/c/src/rxr.c @@ -29,14 +29,15 @@ void iauRxr(double a[3][3], double b[3][3], double atb[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int i, j, k; double w, wm[3][3]; + for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { w = 0.0; @@ -52,7 +53,7 @@ void iauRxr(double a[3][3], double b[3][3], double atb[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ry.c b/sofa/20160503/c/src/ry.c similarity index 98% rename from sofa/20150209_a/c/src/ry.c rename to sofa/20160503/c/src/ry.c index 7c54ac08..a164d87e 100644 --- a/sofa/20150209_a/c/src/ry.c +++ b/sofa/20160503/c/src/ry.c @@ -35,13 +35,14 @@ void iauRy(double theta, double r[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double s, c, a00, a01, a02, a20, a21, a22; + s = sin(theta); c = cos(theta); @@ -63,7 +64,7 @@ void iauRy(double theta, double r[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/rz.c b/sofa/20160503/c/src/rz.c similarity index 98% rename from sofa/20150209_a/c/src/rz.c rename to sofa/20160503/c/src/rz.c index dc1e5f4a..70d4aac7 100644 --- a/sofa/20150209_a/c/src/rz.c +++ b/sofa/20160503/c/src/rz.c @@ -35,13 +35,14 @@ void iauRz(double psi, double r[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double s, c, a00, a01, a02, a10, a11, a12; + s = sin(psi); c = cos(psi); @@ -63,7 +64,7 @@ void iauRz(double psi, double r[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/s00.c b/sofa/20160503/c/src/s00.c similarity index 99% rename from sofa/20150209_a/c/src/s00.c rename to sofa/20160503/c/src/s00.c index ab508427..ba5fac68 100644 --- a/sofa/20150209_a/c/src/s00.c +++ b/sofa/20160503/c/src/s00.c @@ -83,9 +83,9 @@ double iauS00(double date1, double date2, double x, double y) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Time since J2000.0, in Julian centuries */ @@ -325,7 +325,7 @@ double iauS00(double date1, double date2, double x, double y) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/s00a.c b/sofa/20160503/c/src/s00a.c similarity index 98% rename from sofa/20150209_a/c/src/s00a.c rename to sofa/20160503/c/src/s00a.c index e98e503a..115586be 100644 --- a/sofa/20150209_a/c/src/s00a.c +++ b/sofa/20160503/c/src/s00a.c @@ -76,13 +76,14 @@ double iauS00a(double date1, double date2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rbpn[3][3], x, y, s; + /* Bias-precession-nutation-matrix, IAU 2000A. */ iauPnm00a(date1, date2, rbpn); @@ -96,7 +97,7 @@ double iauS00a(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/s00b.c b/sofa/20160503/c/src/s00b.c similarity index 98% rename from sofa/20150209_a/c/src/s00b.c rename to sofa/20160503/c/src/s00b.c index 4d86e620..ddf61e8a 100644 --- a/sofa/20150209_a/c/src/s00b.c +++ b/sofa/20160503/c/src/s00b.c @@ -76,13 +76,14 @@ double iauS00b(double date1, double date2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rbpn[3][3], x, y, s; + /* Bias-precession-nutation-matrix, IAU 2000B. */ iauPnm00b(date1, date2, rbpn); @@ -96,7 +97,7 @@ double iauS00b(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/s06.c b/sofa/20160503/c/src/s06.c similarity index 99% rename from sofa/20150209_a/c/src/s06.c rename to sofa/20160503/c/src/s06.c index 37e33698..34fad71e 100644 --- a/sofa/20150209_a/c/src/s06.c +++ b/sofa/20160503/c/src/s06.c @@ -80,9 +80,9 @@ double iauS06(double date1, double date2, double x, double y) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Time since J2000.0, in Julian centuries */ @@ -322,7 +322,7 @@ double iauS06(double date1, double date2, double x, double y) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/s06a.c b/sofa/20160503/c/src/s06a.c similarity index 98% rename from sofa/20150209_a/c/src/s06a.c rename to sofa/20160503/c/src/s06a.c index c0c32eeb..6f77afde 100644 --- a/sofa/20150209_a/c/src/s06a.c +++ b/sofa/20160503/c/src/s06a.c @@ -78,13 +78,14 @@ double iauS06a(double date1, double date2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rnpb[3][3], x, y, s; + /* Bias-precession-nutation-matrix, IAU 20006/2000A. */ iauPnm06a(date1, date2, rnpb); @@ -98,7 +99,7 @@ double iauS06a(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/s2c.c b/sofa/20160503/c/src/s2c.c similarity index 97% rename from sofa/20150209_a/c/src/s2c.c rename to sofa/20160503/c/src/s2c.c index 3d935813..3fda172c 100644 --- a/sofa/20150209_a/c/src/s2c.c +++ b/sofa/20160503/c/src/s2c.c @@ -22,13 +22,14 @@ void iauS2c(double theta, double phi, double c[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double cp; + cp = cos(phi); c[0] = cos(theta) * cp; c[1] = sin(theta) * cp; @@ -38,7 +39,7 @@ void iauS2c(double theta, double phi, double c[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/s2p.c b/sofa/20160503/c/src/s2p.c similarity index 97% rename from sofa/20150209_a/c/src/s2p.c rename to sofa/20160503/c/src/s2p.c index f78c3fef..827a7a66 100644 --- a/sofa/20150209_a/c/src/s2p.c +++ b/sofa/20160503/c/src/s2p.c @@ -27,13 +27,14 @@ void iauS2p(double theta, double phi, double r, double p[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double u[3]; + iauS2c(theta, phi, u); iauSxp(r, u, p); @@ -41,7 +42,7 @@ void iauS2p(double theta, double phi, double r, double p[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/s2pv.c b/sofa/20160503/c/src/s2pv.c similarity index 98% rename from sofa/20150209_a/c/src/s2pv.c rename to sofa/20160503/c/src/s2pv.c index 3840f67e..8aef68f6 100644 --- a/sofa/20150209_a/c/src/s2pv.c +++ b/sofa/20160503/c/src/s2pv.c @@ -28,13 +28,14 @@ void iauS2pv(double theta, double phi, double r, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double st, ct, sp, cp, rcp, x, y, rpd, w; + st = sin(theta); ct = cos(theta); sp = sin(phi); @@ -56,7 +57,7 @@ void iauS2pv(double theta, double phi, double r, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/s2xpv.c b/sofa/20160503/c/src/s2xpv.c similarity index 97% rename from sofa/20150209_a/c/src/s2xpv.c rename to sofa/20160503/c/src/s2xpv.c index 0f5c9117..07f412fa 100644 --- a/sofa/20150209_a/c/src/s2xpv.c +++ b/sofa/20160503/c/src/s2xpv.c @@ -29,9 +29,9 @@ void iauS2xpv(double s1, double s2, double pv[2][3], double spv[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauSxp(s1, pv[0], spv[0]); @@ -41,7 +41,7 @@ void iauS2xpv(double s1, double s2, double pv[2][3], double spv[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/sepp.c b/sofa/20160503/c/src/sepp.c similarity index 98% rename from sofa/20150209_a/c/src/sepp.c rename to sofa/20160503/c/src/sepp.c index 5663a6e7..f5d9a0fe 100644 --- a/sofa/20150209_a/c/src/sepp.c +++ b/sofa/20160503/c/src/sepp.c @@ -37,13 +37,14 @@ double iauSepp(double a[3], double b[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double axb[3], ss, cs, s; + /* Sine of angle between the vectors, multiplied by the two moduli. */ iauPxp(a, b, axb); ss = iauPm(axb); @@ -58,7 +59,7 @@ double iauSepp(double a[3], double b[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/seps.c b/sofa/20160503/c/src/seps.c similarity index 97% rename from sofa/20150209_a/c/src/seps.c rename to sofa/20160503/c/src/seps.c index dae02f6d..361485c2 100644 --- a/sofa/20150209_a/c/src/seps.c +++ b/sofa/20160503/c/src/seps.c @@ -28,13 +28,14 @@ double iauSeps(double al, double ap, double bl, double bp) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double ac[3], bc[3], s; + /* Spherical to Cartesian. */ iauS2c(al, ap, ac); iauS2c(bl, bp, bc); @@ -46,7 +47,7 @@ double iauSeps(double al, double ap, double bl, double bp) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/sofa.h b/sofa/20160503/c/src/sofa.h similarity index 96% rename from sofa/20150209_a/c/src/sofa.h rename to sofa/20160503/c/src/sofa.h index 27fdf268..ad396095 100644 --- a/sofa/20150209_a/c/src/sofa.h +++ b/sofa/20160503/c/src/sofa.h @@ -11,11 +11,11 @@ ** This file is part of the International Astronomical Union's ** SOFA (Standards Of Fundamental Astronomy) software collection. ** -** This revision: 2015 January 28 +** This revision: 2016 March 10 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ #include "sofam.h" @@ -198,6 +198,10 @@ void iauFw2m(double gamb, double phib, double psi, double eps, double r[3][3]); void iauFw2xy(double gamb, double phib, double psi, double eps, double *x, double *y); +void iauLtp(double epj, double rp[3][3]); +void iauLtpb(double epj, double rpb[3][3]); +void iauLtpecl(double epj, double vec[3]); +void iauLtpequ(double epj, double veq[3]); void iauNum00a(double date1, double date2, double rmatn[3][3]); void iauNum00b(double date1, double date2, double rmatn[3][3]); void iauNum06a(double date1, double date2, double rmatn[3][3]); @@ -311,9 +315,19 @@ int iauStarpm(double ra1, double dec1, double *ra2, double *dec2, double *pmr2, double *pmd2, double *px2, double *rv2); +/* Astronomy/EclipticCoordinates */ +void iauEceq06(double date1, double date2, double dl, double db, + double *dr, double *dd); +void iauEcm06(double date1, double date2, double rm[3][3]); +void iauEqec06(double date1, double date2, double dr, double dd, + double *dl, double *db); +void iauLteceq(double epj, double dl, double db, double *dr, double *dd); +void iauLtecm(double epj, double rm[3][3]); +void iauLteqec(double epj, double dr, double dd, double *dl, double *db); + /* Astronomy/GalacticCoordinates */ -void iauG2icrs ( double dl, double db, double *dr, double *dd ); -void iauIcrs2g ( double dr, double dd, double *dl, double *db ); +void iauG2icrs(double dl, double db, double *dr, double *dd); +void iauIcrs2g(double dr, double dd, double *dl, double *db); /* Astronomy/GeodeticGeocentric */ int iauEform(int n, double *a, double *f); @@ -446,7 +460,7 @@ void iauSxpv(double s, double pv[2][3], double spv[2][3]); /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/sofam.h b/sofa/20160503/c/src/sofam.h similarity index 98% rename from sofa/20150209_a/c/src/sofam.h rename to sofa/20160503/c/src/sofam.h index 8247b999..d2c3e190 100644 --- a/sofa/20150209_a/c/src/sofam.h +++ b/sofa/20160503/c/src/sofam.h @@ -17,9 +17,9 @@ ** ** This revision: 2013 August 27 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ /* Star-independent astrometry parameters */ @@ -155,7 +155,7 @@ typedef struct { /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/sp00.c b/sofa/20160503/c/src/sp00.c similarity index 98% rename from sofa/20150209_a/c/src/sp00.c rename to sofa/20160503/c/src/sp00.c index 8085e13e..12dd7365 100644 --- a/sofa/20150209_a/c/src/sp00.c +++ b/sofa/20160503/c/src/sp00.c @@ -54,13 +54,14 @@ double iauSp00(double date1, double date2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double t, sp; + /* Interval between fundamental epoch J2000.0 and current date (JC). */ t = ((date1 - DJ00) + date2) / DJC; @@ -71,7 +72,7 @@ double iauSp00(double date1, double date2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/starpm.c b/sofa/20160503/c/src/starpm.c similarity index 98% rename from sofa/20150209_a/c/src/starpm.c rename to sofa/20160503/c/src/starpm.c index 5f7f8498..46bf8ecb 100644 --- a/sofa/20150209_a/c/src/starpm.c +++ b/sofa/20160503/c/src/starpm.c @@ -113,15 +113,16 @@ int iauStarpm(double ra1, double dec1, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double pv1[2][3], tl1, dt, pv[2][3], r2, rdv, v2, c2mv2, tl2, pv2[2][3]; int j1, j2, j; + /* RA,Dec etc. at the "before" epoch to space motion pv-vector. */ j1 = iauStarpv(ra1, dec1, pmr1, pmd1, px1, rv1, pv1); @@ -158,7 +159,7 @@ int iauStarpm(double ra1, double dec1, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/starpv.c b/sofa/20160503/c/src/starpv.c similarity index 99% rename from sofa/20150209_a/c/src/starpv.c rename to sofa/20160503/c/src/starpv.c index 4f26d930..9e66ceec 100644 --- a/sofa/20150209_a/c/src/starpv.c +++ b/sofa/20160503/c/src/starpv.c @@ -120,9 +120,9 @@ int iauStarpv(double ra, double dec, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* Smallest allowed parallax */ @@ -142,6 +142,7 @@ int iauStarpv(double ra, double dec, odd = 0.0, oddel = 0.0, /* compiler */ od = 0.0, odel = 0.0; /* warnings */ + /* Distance (AU). */ if (px >= PXMIN) { w = px; @@ -217,7 +218,7 @@ int iauStarpv(double ra, double dec, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/sxp.c b/sofa/20160503/c/src/sxp.c similarity index 97% rename from sofa/20150209_a/c/src/sxp.c rename to sofa/20160503/c/src/sxp.c index 3aa55383..9cd8540e 100644 --- a/sofa/20150209_a/c/src/sxp.c +++ b/sofa/20160503/c/src/sxp.c @@ -25,9 +25,9 @@ void iauSxp(double s, double p[3], double sp[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { sp[0] = s * p[0]; @@ -38,7 +38,7 @@ void iauSxp(double s, double p[3], double sp[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/sxpv.c b/sofa/20160503/c/src/sxpv.c similarity index 97% rename from sofa/20150209_a/c/src/sxpv.c rename to sofa/20160503/c/src/sxpv.c index 5ddec200..2181f401 100644 --- a/sofa/20150209_a/c/src/sxpv.c +++ b/sofa/20160503/c/src/sxpv.c @@ -28,9 +28,9 @@ void iauSxpv(double s, double pv[2][3], double spv[2][3]) ** ** This revision: 2013 August 7 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauS2xpv(s, s, pv, spv); @@ -39,7 +39,7 @@ void iauSxpv(double s, double pv[2][3], double spv[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/t_sofa_c.c b/sofa/20160503/c/src/t_sofa_c.c similarity index 95% rename from sofa/20150209_a/c/src/t_sofa_c.c rename to sofa/20160503/c/src/t_sofa_c.c index 5c3c9fcc..b4df7f6a 100644 --- a/sofa/20150209_a/c/src/t_sofa_c.c +++ b/sofa/20160503/c/src/t_sofa_c.c @@ -17,11 +17,11 @@ static int verbose = 0; ** ** All messages go to stdout. ** -** This revision: 2015 January 30 +** This revision: 2016 April 21 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ static void viv(int ival, int ivalok, @@ -79,14 +79,14 @@ static void vvd(double val, double valok, double dval, ** Given and returned: ** status int set to TRUE if test fails ** -** This revision: 2013 August 7 +** This revision: 2016 April 21 */ { double a, f; /* absolute and fractional error */ a = val - valok; - if (fabs(a) > dval) { + if (a != 0.0 && fabs(a) > fabs(dval)) { f = fabs(valok / a); *status = 1; printf("%s failed: %s want %.20g got %.20g (1/%.3g)\n", @@ -2981,6 +2981,82 @@ static void t_dtf2d(int *status) } +static void t_eceq06(int *status) +/* +** - - - - - +** t _ e c e q 0 6 +** - - - - - +** +** Test iauEceq06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEceq06, vvd +** +** This revision: 2016 March 12 +*/ +{ + double date1, date2, dl, db, dr, dd; + + + date1 = 2456165.5; + date2 = 0.401182685; + dl = 5.1; + db = -0.9; + + iauEceq06(date1, date2, dl, db, &dr, &dd); + + vvd(dr, 5.533459733613627767, 1e-14, "iauEceq06", "dr", status); + vvd(dd, -1.246542932554480576, 1e-14, "iauEceq06", "dd", status); + +} + +static void t_ecm06(int *status) +/* +** - - - - - - - - +** t _ e c m 0 6 +** - - - - - - - - +** +** Test iauEcm06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEcm06, vvd +** +** This revision: 2016 March 12 +*/ +{ + double date1, date2, rm[3][3]; + + + date1 = 2456165.5; + date2 = 0.401182685; + + iauEcm06(date1, date2, rm); + + vvd(rm[0][0], 0.9999952427708701137, 1e-14, + "iauEcm06", "rm11", status); + vvd(rm[0][1], -0.2829062057663042347e-2, 1e-14, + "iauEcm06", "rm12", status); + vvd(rm[0][2], -0.1229163741100017629e-2, 1e-14, + "iauEcm06", "rm13", status); + vvd(rm[1][0], 0.3084546876908653562e-2, 1e-14, + "iauEcm06", "rm21", status); + vvd(rm[1][1], 0.9174891871550392514, 1e-14, + "iauEcm06", "rm22", status); + vvd(rm[1][2], 0.3977487611849338124, 1e-14, + "iauEcm06", "rm23", status); + vvd(rm[2][0], 0.2488512951527405928e-5, 1e-14, + "iauEcm06", "rm31", status); + vvd(rm[2][1], -0.3977506604161195467, 1e-14, + "iauEcm06", "rm32", status); + vvd(rm[2][2], 0.9174935488232863071, 1e-14, + "iauEcm06", "rm33", status); + +} + static void t_ee00(int *status) /* ** - - - - - - - @@ -3121,7 +3197,7 @@ static void t_eform(int *status) ** ** Called: iauEform, viv, vvd ** -** This revision: 2013 August 7 +** This revision: 2016 March 12 */ { int j; @@ -3135,19 +3211,19 @@ static void t_eform(int *status) viv(j, 0, "iauEform", "j1", status); vvd(a, 6378137.0, 1e-10, "iauEform", "a1", status); - vvd(f, 0.0033528106647474807, 1e-18, "iauEform", "f1", status); + vvd(f, 0.3352810664747480720e-2, 1e-18, "iauEform", "f1", status); j = iauEform(GRS80, &a, &f); viv(j, 0, "iauEform", "j2", status); vvd(a, 6378137.0, 1e-10, "iauEform", "a2", status); - vvd(f, 0.0033528106811823189, 1e-18, "iauEform", "f2", status); + vvd(f, 0.3352810681182318935e-2, 1e-18, "iauEform", "f2", status); j = iauEform(WGS72, &a, &f); viv(j, 0, "iauEform", "j2", status); vvd(a, 6378135.0, 1e-10, "iauEform", "a3", status); - vvd(f, 0.0033527794541675049, 1e-18, "iauEform", "f3", status); + vvd(f, 0.3352779454167504862e-2, 1e-18, "iauEform", "f3", status); j = iauEform(4, &a, &f); viv(j, -1, "iauEform", "j3", status); @@ -3377,6 +3453,37 @@ static void t_epv00(int *status) } +static void t_eqec06(int *status) +/* +** - - - - - - - - - +** t _ e q e c 0 6 +** - - - - - - - - - +** +** Test iauEqec06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEqec06, vvd +** +** This revision: 2016 March 12 +*/ +{ + double date1, date2, dr, dd, dl, db; + + + date1 = 1234.5; + date2 = 2440000.5; + dr = 1.234; + dd = 0.987; + + iauEqec06(date1, date2, dr, dd, &dl, &db); + + vvd(dl, 1.342509918994654619, 1e-14, "iauEqec06", "dl", status); + vvd(db, 0.5926215259704608132, 1e-14, "iauEqec06", "db", status); + +} + static void t_eqeq94(int *status) /* ** - - - - - - - - - @@ -3947,7 +4054,7 @@ static void t_gc2gd(int *status) ** ** Called: iauGc2gd, viv, vvd ** -** This revision: 2013 August 7 +** This revision: 2016 March 12 */ { int j; @@ -3961,23 +4068,23 @@ static void t_gc2gd(int *status) j = iauGc2gd(WGS84, xyz, &e, &p, &h); viv(j, 0, "iauGc2gd", "j1", status); - vvd(e, 0.98279372324732907, 1e-14, "iauGc2gd", "e1", status); + vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gd", "e1", status); vvd(p, 0.97160184819075459, 1e-14, "iauGc2gd", "p1", status); - vvd(h, 331.41724614260599, 1e-8, "iauGc2gd", "h1", status); + vvd(h, 331.4172461426059892, 1e-8, "iauGc2gd", "h1", status); j = iauGc2gd(GRS80, xyz, &e, &p, &h); viv(j, 0, "iauGc2gd", "j2", status); - vvd(e, 0.98279372324732907, 1e-14, "iauGc2gd", "e2", status); + vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gd", "e2", status); vvd(p, 0.97160184820607853, 1e-14, "iauGc2gd", "p2", status); vvd(h, 331.41731754844348, 1e-8, "iauGc2gd", "h2", status); j = iauGc2gd(WGS72, xyz, &e, &p, &h); viv(j, 0, "iauGc2gd", "j3", status); - vvd(e, 0.98279372324732907, 1e-14, "iauGc2gd", "e3", status); - vvd(p, 0.97160181811015119, 1e-14, "iauGc2gd", "p3", status); - vvd(h, 333.27707261303181, 1e-8, "iauGc2gd", "h3", status); + vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gd", "e3", status); + vvd(p, 0.9716018181101511937, 1e-14, "iauGc2gd", "p3", status); + vvd(h, 333.2770726130318123, 1e-8, "iauGc2gd", "h3", status); j = iauGc2gd(4, xyz, &e, &p, &h); @@ -3997,7 +4104,7 @@ static void t_gc2gde(int *status) ** ** Called: iauGc2gde, viv, vvd ** -** This revision: 2013 August 7 +** This revision: 2016 March 12 */ { int j; @@ -4008,8 +4115,8 @@ static void t_gc2gde(int *status) j = iauGc2gde(a, f, xyz, &e, &p, &h); viv(j, 0, "iauGc2gde", "j", status); - vvd(e, 0.98279372324732907, 1e-14, "iauGc2gde", "e", status); - vvd(p, 0.97160183775704115, 1e-14, "iauGc2gde", "p", status); + vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gde", "e", status); + vvd(p, 0.9716018377570411532, 1e-14, "iauGc2gde", "p", status); vvd(h, 332.36862495764397, 1e-8, "iauGc2gde", "h", status); } @@ -4026,7 +4133,7 @@ static void t_gd2gc(int *status) ** ** Called: iauGd2gc, viv, vvd ** -** This revision: 2013 August 7 +** This revision: 2016 March 12 */ { int j; @@ -4040,23 +4147,23 @@ static void t_gd2gc(int *status) j = iauGd2gc(WGS84, e, p, h, xyz); viv(j, 0, "iauGd2gc", "j1", status); - vvd(xyz[0], -5599000.5577049947, 1e-7, "iauGd2gc", "0/1", status); - vvd(xyz[1], 233011.67223479203, 1e-7, "iauGd2gc", "1/1", status); - vvd(xyz[2], -3040909.4706983363, 1e-7, "iauGd2gc", "2/1", status); + vvd(xyz[0], -5599000.5577049947, 1e-7, "iauGd2gc", "1/1", status); + vvd(xyz[1], 233011.67223479203, 1e-7, "iauGd2gc", "2/1", status); + vvd(xyz[2], -3040909.4706983363, 1e-7, "iauGd2gc", "3/1", status); j = iauGd2gc(GRS80, e, p, h, xyz); viv(j, 0, "iauGd2gc", "j2", status); - vvd(xyz[0], -5599000.5577260984, 1e-7, "iauGd2gc", "0/2", status); - vvd(xyz[1], 233011.6722356703, 1e-7, "iauGd2gc", "1/2", status); - vvd(xyz[2], -3040909.4706095476, 1e-7, "iauGd2gc", "2/2", status); + vvd(xyz[0], -5599000.5577260984, 1e-7, "iauGd2gc", "1/2", status); + vvd(xyz[1], 233011.6722356702949, 1e-7, "iauGd2gc", "2/2", status); + vvd(xyz[2], -3040909.4706095476, 1e-7, "iauGd2gc", "3/2", status); j = iauGd2gc(WGS72, e, p, h, xyz); viv(j, 0, "iauGd2gc", "j3", status); - vvd(xyz[0], -5598998.7626301490, 1e-7, "iauGd2gc", "0/3", status); - vvd(xyz[1], 233011.5975297822, 1e-7, "iauGd2gc", "1/3", status); - vvd(xyz[2], -3040908.6861467111, 1e-7, "iauGd2gc", "2/3", status); + vvd(xyz[0], -5598998.7626301490, 1e-7, "iauGd2gc", "1/3", status); + vvd(xyz[1], 233011.5975297822211, 1e-7, "iauGd2gc", "2/3", status); + vvd(xyz[2], -3040908.6861467111, 1e-7, "iauGd2gc", "3/3", status); j = iauGd2gc(4, e, p, h, xyz); @@ -4076,7 +4183,7 @@ static void t_gd2gce(int *status) ** ** Called: iauGd2gce, viv, vvd ** -** This revision: 2013 August 7 +** This revision: 2016 March 12 */ { int j; @@ -4087,9 +4194,9 @@ static void t_gd2gce(int *status) j = iauGd2gce(a, f, e, p, h, xyz); viv(j, 0, "iauGd2gce", "j", status); - vvd(xyz[0], -5598999.6665116328, 1e-7, "iauGd2gce", "0", status); - vvd(xyz[1], 233011.63514630572, 1e-7, "iauGd2gce", "1", status); - vvd(xyz[2], -3040909.0517314132, 1e-7, "iauGd2gce", "2", status); + vvd(xyz[0], -5598999.6665116328, 1e-7, "iauGd2gce", "1", status); + vvd(xyz[1], 233011.6351463057189, 1e-7, "iauGd2gce", "2", status); + vvd(xyz[2], -3040909.0517314132, 1e-7, "iauGd2gce", "3", status); } static void t_gmst00(int *status) @@ -4668,6 +4775,262 @@ static void t_ldsun(int *status) } +static void t_lteceq(int *status) +/* +** - - - - - - - - - +** t _ l t e c e q +** - - - - - - - - - +** +** Test iauLteceq function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLteceq, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, dl, db, dr, dd; + + + epj = 2500.0; + dl = 1.5; + db = 0.6; + + iauLteceq(epj, dl, db, &dr, &dd); + + vvd(dr, 1.275156021861921167, 1e-14, "iauLteceq", "dr", status); + vvd(dd, 0.9966573543519204791, 1e-14, "iauLteceq", "dd", status); + +} + +static void t_ltecm(int *status) +/* +** - - - - - - - - +** t _ l t e c m +** - - - - - - - - +** +** Test iauLtecm function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLtecm, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, rm[3][3]; + + + epj = -3000.0; + + iauLtecm(epj, rm); + + vvd(rm[0][0], 0.3564105644859788825, 1e-14, + "iauLtecm", "rm11", status); + vvd(rm[0][1], 0.8530575738617682284, 1e-14, + "iauLtecm", "rm12", status); + vvd(rm[0][2], 0.3811355207795060435, 1e-14, + "iauLtecm", "rm13", status); + vvd(rm[1][0], -0.9343283469640709942, 1e-14, + "iauLtecm", "rm21", status); + vvd(rm[1][1], 0.3247830597681745976, 1e-14, + "iauLtecm", "rm22", status); + vvd(rm[1][2], 0.1467872751535940865, 1e-14, + "iauLtecm", "rm23", status); + vvd(rm[2][0], 0.1431636191201167793e-2, 1e-14, + "iauLtecm", "rm31", status); + vvd(rm[2][1], -0.4084222566960599342, 1e-14, + "iauLtecm", "rm32", status); + vvd(rm[2][2], 0.9127919865189030899, 1e-14, + "iauLtecm", "rm33", status); + +} + +static void t_lteqec(int *status) +/* +** - - - - - - - - - +** t _ l t e q e c +** - - - - - - - - - +** +** Test iauLteqec function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLteqec, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, dr, dd, dl, db; + + + epj = -1500.0; + dr = 1.234; + dd = 0.987; + + iauLteqec(epj, dr, dd, &dl, &db); + + vvd(dl, 0.5039483649047114859, 1e-14, "iauLteqec", "dl", status); + vvd(db, 0.5848534459726224882, 1e-14, "iauLteqec", "db", status); + +} + +static void t_ltp(int *status) +/* +** - - - - - - +** t _ l t p +** - - - - - - +** +** Test iauLtp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLtp, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, rp[3][3]; + + + epj = 1666.666; + + iauLtp(epj, rp); + + vvd(rp[0][0], 0.9967044141159213819, 1e-14, + "iauLtp", "rp11", status); + vvd(rp[0][1], 0.7437801893193210840e-1, 1e-14, + "iauLtp", "rp12", status); + vvd(rp[0][2], 0.3237624409345603401e-1, 1e-14, + "iauLtp", "rp13", status); + vvd(rp[1][0], -0.7437802731819618167e-1, 1e-14, + "iauLtp", "rp21", status); + vvd(rp[1][1], 0.9972293894454533070, 1e-14, + "iauLtp", "rp22", status); + vvd(rp[1][2], -0.1205768842723593346e-2, 1e-14, + "iauLtp", "rp23", status); + vvd(rp[2][0], -0.3237622482766575399e-1, 1e-14, + "iauLtp", "rp31", status); + vvd(rp[2][1], -0.1206286039697609008e-2, 1e-14, + "iauLtp", "rp32", status); + vvd(rp[2][2], 0.9994750246704010914, 1e-14, + "iauLtp", "rp33", status); + +} + +static void t_ltpb(int *status) +/* +** - - - - - - - +** t _ l t p b +** - - - - - - - +** +** Test iauLtpb function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLtpb, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, rpb[3][3]; + + + epj = 1666.666; + + iauLtpb(epj, rpb); + + vvd(rpb[0][0], 0.9967044167723271851, 1e-14, + "iauLtpb", "rpb11", status); + vvd(rpb[0][1], 0.7437794731203340345e-1, 1e-14, + "iauLtpb", "rpb12", status); + vvd(rpb[0][2], 0.3237632684841625547e-1, 1e-14, + "iauLtpb", "rpb13", status); + vvd(rpb[1][0], -0.7437795663437177152e-1, 1e-14, + "iauLtpb", "rpb21", status); + vvd(rpb[1][1], 0.9972293947500013666, 1e-14, + "iauLtpb", "rpb22", status); + vvd(rpb[1][2], -0.1205741865911243235e-2, 1e-14, + "iauLtpb", "rpb23", status); + vvd(rpb[2][0], -0.3237630543224664992e-1, 1e-14, + "iauLtpb", "rpb31", status); + vvd(rpb[2][1], -0.1206316791076485295e-2, 1e-14, + "iauLtpb", "rpb32", status); + vvd(rpb[2][2], 0.9994750220222438819, 1e-14, + "iauLtpb", "rpb33", status); + +} + +static void t_ltpecl(int *status) +/* +** - - - - - - - - - +** t _ l t p e c l +** - - - - - - - - - +** +** Test iauLtpecl function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLtpecl, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, vec[3]; + + + epj = -1500.0; + + iauLtpecl(epj, vec); + + vvd(vec[0], 0.4768625676477096525e-3, 1e-14, + "iauLtpecl", "vec1", status); + vvd(vec[1], -0.4052259533091875112, 1e-14, + "iauLtpecl", "vec2", status); + vvd(vec[2], 0.9142164401096448012, 1e-14, + "iauLtpecl", "vec3", status); + +} + +static void t_ltpequ(int *status) +/* +** - - - - - - - - - +** t _ l t p e q u +** - - - - - - - - - +** +** Test iauLtpequ function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLtpequ, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, veq[3]; + + + epj = -2500.0; + + iauLtpequ(epj, veq); + + vvd(veq[0], -0.3586652560237326659, 1e-14, + "iauLtpequ", "veq1", status); + vvd(veq[1], -0.1996978910771128475, 1e-14, + "iauLtpequ", "veq2", status); + vvd(veq[2], 0.9118552442250819624, 1e-14, + "iauLtpequ", "veq3", status); + +} + static void t_num00a(int *status) /* ** - - - - - - - - - @@ -9062,7 +9425,7 @@ int main(int argc, char *argv[]) ** m a i n ** - - - - - ** -** This revision: 2013 October 3 +** This revision: 2016 March 12 */ { int status; @@ -9136,6 +9499,8 @@ int main(int argc, char *argv[]) t_dat(&status); t_dtdb(&status); t_dtf2d(&status); + t_eceq06(&status); + t_ecm06(&status); t_ee00(&status); t_ee00a(&status); t_ee00b(&status); @@ -9149,6 +9514,7 @@ int main(int argc, char *argv[]) t_epj(&status); t_epj2jd(&status); t_epv00(&status); + t_eqec06(&status); t_eqeq94(&status); t_era00(&status); t_fad03(&status); @@ -9192,6 +9558,13 @@ int main(int argc, char *argv[]) t_ld(&status); t_ldn(&status); t_ldsun(&status); + t_lteceq(&status); + t_ltecm(&status); + t_lteqec(&status); + t_ltp(&status); + t_ltpb(&status); + t_ltpecl(&status); + t_ltpequ(&status); t_num00a(&status); t_num00b(&status); t_num06a(&status); diff --git a/sofa/20150209_a/c/src/taitt.c b/sofa/20160503/c/src/taitt.c similarity index 98% rename from sofa/20150209_a/c/src/taitt.c rename to sofa/20160503/c/src/taitt.c index b3e0d921..e019b947 100644 --- a/sofa/20150209_a/c/src/taitt.c +++ b/sofa/20160503/c/src/taitt.c @@ -40,15 +40,16 @@ int iauTaitt(double tai1, double tai2, double *tt1, double *tt2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* TT minus TAI (days). */ static const double dtat = TTMTAI/DAYSEC; + /* Result, safeguarding precision. */ if ( tai1 > tai2 ) { *tt1 = tai1; @@ -63,7 +64,7 @@ int iauTaitt(double tai1, double tai2, double *tt1, double *tt2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/taiut1.c b/sofa/20160503/c/src/taiut1.c similarity index 98% rename from sofa/20150209_a/c/src/taiut1.c rename to sofa/20160503/c/src/taiut1.c index 8e5e260d..876eab71 100644 --- a/sofa/20150209_a/c/src/taiut1.c +++ b/sofa/20160503/c/src/taiut1.c @@ -42,14 +42,15 @@ int iauTaiut1(double tai1, double tai2, double dta, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. ** */ { double dtad; + /* Result, safeguarding precision. */ dtad = dta / DAYSEC; if ( tai1 > tai2 ) { @@ -65,7 +66,7 @@ int iauTaiut1(double tai1, double tai2, double dta, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/taiutc.c b/sofa/20160503/c/src/taiutc.c similarity index 98% rename from sofa/20150209_a/c/src/taiutc.c rename to sofa/20160503/c/src/taiutc.c index c9a6b055..d2297dd7 100644 --- a/sofa/20150209_a/c/src/taiutc.c +++ b/sofa/20160503/c/src/taiutc.c @@ -63,15 +63,16 @@ int iauTaiutc(double tai1, double tai2, double *utc1, double *utc2) ** ** This revision: 2013 September 12 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int big1; int i, j; double a1, a2, u1, u2, g1, g2; + /* Put the two parts of the TAI into big-first order. */ big1 = ( tai1 >= tai2 ); if ( big1 ) { @@ -112,7 +113,7 @@ int iauTaiutc(double tai1, double tai2, double *utc1, double *utc2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/tcbtdb.c b/sofa/20160503/c/src/tcbtdb.c similarity index 98% rename from sofa/20150209_a/c/src/tcbtdb.c rename to sofa/20160503/c/src/tcbtdb.c index afe5df3b..7e2dad53 100644 --- a/sofa/20150209_a/c/src/tcbtdb.c +++ b/sofa/20160503/c/src/tcbtdb.c @@ -54,9 +54,9 @@ int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -69,6 +69,7 @@ int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2) double d; + /* Result, safeguarding precision. */ if ( tcb1 > tcb2 ) { d = tcb1 - t77td; @@ -85,7 +86,7 @@ int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/tcgtt.c b/sofa/20160503/c/src/tcgtt.c similarity index 98% rename from sofa/20150209_a/c/src/tcgtt.c rename to sofa/20160503/c/src/tcgtt.c index 388f1f72..383087fe 100644 --- a/sofa/20150209_a/c/src/tcgtt.c +++ b/sofa/20160503/c/src/tcgtt.c @@ -39,15 +39,16 @@ int iauTcgtt(double tcg1, double tcg2, double *tt1, double *tt2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* 1977 Jan 1 00:00:32.184 TT, as MJD */ static const double t77t = DJM77 + TTMTAI/DAYSEC; + /* Result, safeguarding precision. */ if ( tcg1 > tcg2 ) { *tt1 = tcg1; @@ -62,7 +63,7 @@ int iauTcgtt(double tcg1, double tcg2, double *tt1, double *tt2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/tdbtcb.c b/sofa/20160503/c/src/tdbtcb.c similarity index 98% rename from sofa/20150209_a/c/src/tdbtcb.c rename to sofa/20160503/c/src/tdbtcb.c index 5a70a5aa..e9d33543 100644 --- a/sofa/20150209_a/c/src/tdbtcb.c +++ b/sofa/20160503/c/src/tdbtcb.c @@ -54,9 +54,9 @@ int iauTdbtcb(double tdb1, double tdb2, double *tcb1, double *tcb2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -72,6 +72,7 @@ int iauTdbtcb(double tdb1, double tdb2, double *tcb1, double *tcb2) double d, f; + /* Result, preserving date format but safeguarding precision. */ if ( tdb1 > tdb2 ) { d = t77td - tdb1; @@ -90,7 +91,7 @@ int iauTdbtcb(double tdb1, double tdb2, double *tcb1, double *tcb2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/tdbtt.c b/sofa/20160503/c/src/tdbtt.c similarity index 98% rename from sofa/20150209_a/c/src/tdbtt.c rename to sofa/20160503/c/src/tdbtt.c index 30141286..88cdfeae 100644 --- a/sofa/20150209_a/c/src/tdbtt.c +++ b/sofa/20160503/c/src/tdbtt.c @@ -52,14 +52,15 @@ int iauTdbtt(double tdb1, double tdb2, double dtr, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. ** */ { double dtrd; + /* Result, safeguarding precision. */ dtrd = dtr / DAYSEC; if ( tdb1 > tdb2 ) { @@ -75,7 +76,7 @@ int iauTdbtt(double tdb1, double tdb2, double dtr, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/tf2a.c b/sofa/20160503/c/src/tf2a.c similarity index 98% rename from sofa/20150209_a/c/src/tf2a.c rename to sofa/20160503/c/src/tf2a.c index 247eec71..d2e388e3 100644 --- a/sofa/20150209_a/c/src/tf2a.c +++ b/sofa/20160503/c/src/tf2a.c @@ -41,9 +41,9 @@ int iauTf2a(char s, int ihour, int imin, double sec, double *rad) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -61,7 +61,7 @@ int iauTf2a(char s, int ihour, int imin, double sec, double *rad) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/tf2d.c b/sofa/20160503/c/src/tf2d.c similarity index 98% rename from sofa/20150209_a/c/src/tf2d.c rename to sofa/20160503/c/src/tf2d.c index 3d21792f..cd5dc029 100644 --- a/sofa/20150209_a/c/src/tf2d.c +++ b/sofa/20160503/c/src/tf2d.c @@ -41,9 +41,9 @@ int iauTf2d(char s, int ihour, int imin, double sec, double *days) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -61,7 +61,7 @@ int iauTf2d(char s, int ihour, int imin, double sec, double *days) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/tr.c b/sofa/20160503/c/src/tr.c similarity index 97% rename from sofa/20150209_a/c/src/tr.c rename to sofa/20160503/c/src/tr.c index efc4a361..7518e8f1 100644 --- a/sofa/20150209_a/c/src/tr.c +++ b/sofa/20160503/c/src/tr.c @@ -27,14 +27,15 @@ void iauTr(double r[3][3], double rt[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double wm[3][3]; int i, j; + for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { wm[i][j] = r[j][i]; @@ -46,7 +47,7 @@ void iauTr(double r[3][3], double rt[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/trxp.c b/sofa/20160503/c/src/trxp.c similarity index 97% rename from sofa/20150209_a/c/src/trxp.c rename to sofa/20160503/c/src/trxp.c index 42eaca9b..01fc562f 100644 --- a/sofa/20150209_a/c/src/trxp.c +++ b/sofa/20160503/c/src/trxp.c @@ -29,13 +29,14 @@ void iauTrxp(double r[3][3], double p[3], double trp[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double tr[3][3]; + /* Transpose of matrix r. */ iauTr(r, tr); @@ -46,7 +47,7 @@ void iauTrxp(double r[3][3], double p[3], double trp[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/trxpv.c b/sofa/20160503/c/src/trxpv.c similarity index 97% rename from sofa/20150209_a/c/src/trxpv.c rename to sofa/20160503/c/src/trxpv.c index a3e87408..b6ecef67 100644 --- a/sofa/20150209_a/c/src/trxpv.c +++ b/sofa/20160503/c/src/trxpv.c @@ -29,13 +29,14 @@ void iauTrxpv(double r[3][3], double pv[2][3], double trpv[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double tr[3][3]; + /* Transpose of matrix r. */ iauTr(r, tr); @@ -46,7 +47,7 @@ void iauTrxpv(double r[3][3], double pv[2][3], double trpv[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/tttai.c b/sofa/20160503/c/src/tttai.c similarity index 98% rename from sofa/20150209_a/c/src/tttai.c rename to sofa/20160503/c/src/tttai.c index b6425ea1..7efd7bcf 100644 --- a/sofa/20150209_a/c/src/tttai.c +++ b/sofa/20160503/c/src/tttai.c @@ -40,15 +40,16 @@ int iauTttai(double tt1, double tt2, double *tai1, double *tai2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { /* TT minus TAI (days). */ static const double dtat = TTMTAI/DAYSEC; + /* Result, safeguarding precision. */ if ( tt1 > tt2 ) { *tai1 = tt1; @@ -63,7 +64,7 @@ int iauTttai(double tt1, double tt2, double *tai1, double *tai2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/tttcg.c b/sofa/20160503/c/src/tttcg.c similarity index 98% rename from sofa/20150209_a/c/src/tttcg.c rename to sofa/20160503/c/src/tttcg.c index a8fdd5e1..23edfc7e 100644 --- a/sofa/20150209_a/c/src/tttcg.c +++ b/sofa/20160503/c/src/tttcg.c @@ -39,9 +39,9 @@ int iauTttcg(double tt1, double tt2, double *tcg1, double *tcg2) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -51,6 +51,7 @@ int iauTttcg(double tt1, double tt2, double *tcg1, double *tcg2) /* TT to TCG rate */ static const double elgg = ELG/(1.0-ELG); + /* Result, safeguarding precision. */ if ( tt1 > tt2 ) { *tcg1 = tt1; @@ -65,7 +66,7 @@ int iauTttcg(double tt1, double tt2, double *tcg1, double *tcg2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/tttdb.c b/sofa/20160503/c/src/tttdb.c similarity index 98% rename from sofa/20150209_a/c/src/tttdb.c rename to sofa/20160503/c/src/tttdb.c index 7d0b8cc0..7d23e104 100644 --- a/sofa/20150209_a/c/src/tttdb.c +++ b/sofa/20160503/c/src/tttdb.c @@ -52,13 +52,14 @@ int iauTttdb(double tt1, double tt2, double dtr, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dtrd; + /* Result, safeguarding precision. */ dtrd = dtr / DAYSEC; if ( tt1 > tt2 ) { @@ -74,7 +75,7 @@ int iauTttdb(double tt1, double tt2, double dtr, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ttut1.c b/sofa/20160503/c/src/ttut1.c similarity index 98% rename from sofa/20150209_a/c/src/ttut1.c rename to sofa/20160503/c/src/ttut1.c index 6d0e7ad3..1a81d25b 100644 --- a/sofa/20150209_a/c/src/ttut1.c +++ b/sofa/20160503/c/src/ttut1.c @@ -41,13 +41,14 @@ int iauTtut1(double tt1, double tt2, double dt, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dtd; + /* Result, safeguarding precision. */ dtd = dt / DAYSEC; if ( tt1 > tt2 ) { @@ -63,7 +64,7 @@ int iauTtut1(double tt1, double tt2, double dt, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ut1tai.c b/sofa/20160503/c/src/ut1tai.c similarity index 98% rename from sofa/20150209_a/c/src/ut1tai.c rename to sofa/20160503/c/src/ut1tai.c index 83be6ab4..0a7c7d42 100644 --- a/sofa/20150209_a/c/src/ut1tai.c +++ b/sofa/20160503/c/src/ut1tai.c @@ -42,13 +42,14 @@ int iauUt1tai(double ut11, double ut12, double dta, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dtad; + /* Result, safeguarding precision. */ dtad = dta / DAYSEC; if ( ut11 > ut12 ) { @@ -64,7 +65,7 @@ int iauUt1tai(double ut11, double ut12, double dta, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ut1tt.c b/sofa/20160503/c/src/ut1tt.c similarity index 98% rename from sofa/20150209_a/c/src/ut1tt.c rename to sofa/20160503/c/src/ut1tt.c index 424793a5..8c03daaf 100644 --- a/sofa/20150209_a/c/src/ut1tt.c +++ b/sofa/20160503/c/src/ut1tt.c @@ -41,13 +41,14 @@ int iauUt1tt(double ut11, double ut12, double dt, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double dtd; + /* Result, safeguarding precision. */ dtd = dt / DAYSEC; if ( ut11 > ut12 ) { @@ -63,7 +64,7 @@ int iauUt1tt(double ut11, double ut12, double dt, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/ut1utc.c b/sofa/20160503/c/src/ut1utc.c similarity index 98% rename from sofa/20150209_a/c/src/ut1utc.c rename to sofa/20160503/c/src/ut1utc.c index 430a8e68..f093a1f7 100644 --- a/sofa/20150209_a/c/src/ut1utc.c +++ b/sofa/20160503/c/src/ut1utc.c @@ -69,15 +69,16 @@ int iauUt1utc(double ut11, double ut12, double dut1, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int big1; int i, iy, im, id, js; double duts, u1, u2, d1, dats1, d2, fd, dats2, ddats, us1, us2, du; + /* UT1-UTC in seconds. */ duts = dut1; @@ -146,7 +147,7 @@ int iauUt1utc(double ut11, double ut12, double dut1, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/utctai.c b/sofa/20160503/c/src/utctai.c similarity index 98% rename from sofa/20150209_a/c/src/utctai.c rename to sofa/20160503/c/src/utctai.c index cd4b0b20..df4bf654 100644 --- a/sofa/20150209_a/c/src/utctai.c +++ b/sofa/20160503/c/src/utctai.c @@ -65,9 +65,9 @@ int iauUtctai(double utc1, double utc2, double *tai1, double *tai2) ** ** This revision: 2013 July 26 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. ** */ { @@ -75,6 +75,7 @@ int iauUtctai(double utc1, double utc2, double *tai1, double *tai2) int iy, im, id, j, iyt, imt, idt; double u1, u2, fd, dat0, dat12, w, dat24, dlod, dleap, z1, z2, a2; + /* Put the two parts of the UTC into big-first order. */ big1 = ( utc1 >= utc2 ); if ( big1 ) { @@ -131,7 +132,7 @@ int iauUtctai(double utc1, double utc2, double *tai1, double *tai2) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/utcut1.c b/sofa/20160503/c/src/utcut1.c similarity index 98% rename from sofa/20150209_a/c/src/utcut1.c rename to sofa/20160503/c/src/utcut1.c index 3812282a..4056671f 100644 --- a/sofa/20150209_a/c/src/utcut1.c +++ b/sofa/20160503/c/src/utcut1.c @@ -70,14 +70,15 @@ int iauUtcut1(double utc1, double utc2, double dut1, ** ** This revision: 2013 August 12 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { int iy, im, id, js, jw; double w, dat, dta, tai1, tai2; + /* Look up TAI-UTC. */ if ( iauJd2cal(utc1, utc2, &iy, &im, &id, &w) ) return -1; js = iauDat ( iy, im, id, 0.0, &dat); @@ -100,7 +101,7 @@ int iauUtcut1(double utc1, double utc2, double dut1, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/xy06.c b/sofa/20160503/c/src/xy06.c similarity index 99% rename from sofa/20150209_a/c/src/xy06.c rename to sofa/20160503/c/src/xy06.c index a622bdc8..84f5d3e7 100644 --- a/sofa/20150209_a/c/src/xy06.c +++ b/sofa/20160503/c/src/xy06.c @@ -92,9 +92,9 @@ void iauXy06(double date1, double date2, double *x, double *y) ** ** This revision: 2013 August 21 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { @@ -2712,7 +2712,7 @@ void iauXy06(double date1, double date2, double *x, double *y) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/xys00a.c b/sofa/20160503/c/src/xys00a.c similarity index 98% rename from sofa/20150209_a/c/src/xys00a.c rename to sofa/20160503/c/src/xys00a.c index e98f2d05..36291d30 100644 --- a/sofa/20150209_a/c/src/xys00a.c +++ b/sofa/20160503/c/src/xys00a.c @@ -66,13 +66,14 @@ void iauXys00a(double date1, double date2, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rbpn[3][3]; + /* Form the bias-precession-nutation matrix, IAU 2000A. */ iauPnm00a(date1, date2, rbpn); @@ -86,7 +87,7 @@ void iauXys00a(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/xys00b.c b/sofa/20160503/c/src/xys00b.c similarity index 98% rename from sofa/20150209_a/c/src/xys00b.c rename to sofa/20160503/c/src/xys00b.c index 14c93275..ea855390 100644 --- a/sofa/20150209_a/c/src/xys00b.c +++ b/sofa/20160503/c/src/xys00b.c @@ -66,13 +66,14 @@ void iauXys00b(double date1, double date2, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rbpn[3][3]; + /* Form the bias-precession-nutation matrix, IAU 2000A. */ iauPnm00b(date1, date2, rbpn); @@ -86,7 +87,7 @@ void iauXys00b(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/xys06a.c b/sofa/20160503/c/src/xys06a.c similarity index 98% rename from sofa/20150209_a/c/src/xys06a.c rename to sofa/20160503/c/src/xys06a.c index 6d94dfe3..c36a8d5a 100644 --- a/sofa/20150209_a/c/src/xys06a.c +++ b/sofa/20160503/c/src/xys06a.c @@ -66,13 +66,14 @@ void iauXys06a(double date1, double date2, ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { double rbpn[3][3]; + /* Form the bias-precession-nutation matrix, IAU 2006/2000A. */ iauPnm06a(date1, date2, rbpn); @@ -86,7 +87,7 @@ void iauXys06a(double date1, double date2, /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/zp.c b/sofa/20160503/c/src/zp.c similarity index 97% rename from sofa/20150209_a/c/src/zp.c rename to sofa/20160503/c/src/zp.c index 3c77235f..294c4d3b 100644 --- a/sofa/20150209_a/c/src/zp.c +++ b/sofa/20160503/c/src/zp.c @@ -18,9 +18,9 @@ void iauZp(double p[3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { p[0] = 0.0; @@ -31,7 +31,7 @@ void iauZp(double p[3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/zpv.c b/sofa/20160503/c/src/zpv.c similarity index 97% rename from sofa/20150209_a/c/src/zpv.c rename to sofa/20160503/c/src/zpv.c index c41f3575..c5563b17 100644 --- a/sofa/20150209_a/c/src/zpv.c +++ b/sofa/20160503/c/src/zpv.c @@ -21,9 +21,9 @@ void iauZpv(double pv[2][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { iauZp(pv[0]); @@ -33,7 +33,7 @@ void iauZpv(double pv[2][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. ** diff --git a/sofa/20150209_a/c/src/zr.c b/sofa/20160503/c/src/zr.c similarity index 97% rename from sofa/20150209_a/c/src/zr.c rename to sofa/20160503/c/src/zr.c index 44a543f3..08eeee10 100644 --- a/sofa/20150209_a/c/src/zr.c +++ b/sofa/20160503/c/src/zr.c @@ -18,9 +18,9 @@ void iauZr(double r[3][3]) ** ** This revision: 2013 June 18 ** -** SOFA release 2015-02-09 +** SOFA release 2016-05-03 ** -** Copyright (C) 2015 IAU SOFA Board. See notes at end. +** Copyright (C) 2016 IAU SOFA Board. See notes at end. */ { r[0][0] = 0.0; @@ -37,7 +37,7 @@ void iauZr(double r[3][3]) /*---------------------------------------------------------------------- ** -** Copyright (C) 2015 +** Copyright (C) 2016 ** Standards Of Fundamental Astronomy Board ** of the International Astronomical Union. **