Initial commit

This commit is contained in:
Francois NGUYEN
2020-08-12 20:03:56 +02:00
commit 3121254bf4
273 changed files with 87943 additions and 0 deletions

39
20200721/c/doc/board.lis Normal file
View File

@@ -0,0 +1,39 @@
board.lis 2020 June 2
IAU STANDARDS OF FUNDAMENTAL ASTRONOMY BOARD
Current Membership
John Bangert - United States Naval Observatory, retired
Steven Bell - Her Majesty's Nautical Almanac Office (HMNAO)
Nicole Capitaine - Paris Observatory
Mickael Gastineau - Paris Observatory, IMCCE
Catherine Hohenkerk - HMNAO (Chair, retired)
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
Nick Stamatakos - United States Naval Observatory
Patrick Wallace - RAL Space, retired
Toni Wilmot - Her Majesty's Nautical Almanac Office (Trainee)
Past Members
Wim Brouw University of Groningen
Mark Calabretta Australia Telescope National Facility
William Folkner Jet Propulsion Laboratory
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 Astronomical Observatory
The email address for the Board chair is catherine.hohenkerk@gmail.com

BIN
20200721/c/doc/board.pdf Normal file

Binary file not shown.

101
20200721/c/doc/changes.lis Normal file
View File

@@ -0,0 +1,101 @@
Updates for SOFA Release 16 : 2020 July 21
- - - - - - - - - - - - - - - - - - - - - -
Summary of Changes
------------------
The changes fall into the following categories:
1. Correction of a sign in routine P06E.
2. Correction in the ANSI C macro function dnint in the include file
sofam.h, to improve rounding.
3. Improvements in precision and rounding (see 2 and 3 below).
4. Miscellaneous typographical corrections and improvements to
various other documents.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FORTRAN 77 Library
------------------
1. iau_P06E Correction. The series are taken from Table 1 of
Hilton, J. et al., 2006, Celest. Mech. Dyn. Astron.
94, 351., and it has been discovered that the one
for general precession, p_A, had the wrong sign for
the t^5 coefficient. The error in the paper has
been corrected in the SOFA code. The correct value
is -0.0000000383 arcsec. (Even after five centuries
the error would be lower than 250 microarcsec.)
2. iau_PB06 Improvements in the method of decomposing the rotation
matrix by ensuring that angles near zero are preferred.
3. iau_JD2CAL Improvements by ensuring precision is not lost when
iau_JDCALF splitting date and time.
4. iau_DAT Release year updated.
5. t_sofa_f.for Updated due to the correction in iau_P06E.
6. iau_FK524 Minor corrections/improvements to the documentation.
iau_FW2M
iau_GMST82
iau_TRXP
iau_XYS00A
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANSI C Library
--------------
1. iauP06e Correction. The series are taken from Table 1 of
Hilton, J. et al., 2006, Celest. Mech. Dyn. Astron.
94, 351., and it has been discovered that the one
for general precession, p_A, had the wrong sign for
the t^5 coefficient. The error in the paper has
been corrected in the SOFA code. The correct value
is -0.0000000383 arcsec. (Even after five centuries
the error would be lower than 250 microarcsec.)
2. sofam.h Correction to dnint(A).
The existing dnint macro could incorrectly round
numbers just over -0.5 and just under +0.5 due to
the loss of precision when calculating ceil(A-0.5)
or floor(A+0.5). A preliminary test for |A|<0.5
has been added to ensure that such numbers always
round to zero. As none of the SOFA C functions
depend critically on perfect rounding, the change
is unlikely to affect user applications noticeably,
though critical round-trip tests may see an
improvement.
3. iauPb06 Improvements in the method of decomposing the rotation
matrix by ensuring that angles near zero are preferred.
4. iauJd2cal Improvements by ensuring precision is not lost when
iauJdcalf splitting date and time.
5. iauDat Release year updated.
6. t_sofa_c.c Updated due to the correction in iauP06e.
7. iauA2af Minor corrections/improvements to the documentation.
iauA2tf
iauD2tf
iauFk524
iauFw2m
iauGmst82
iauTrxp
iauXys00a
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ SOFA thanks all those who have reported the various issues that go
+ to ensuring the libraries and documentation are kept up-to-date and
+ relevant.
+
+ End of updates
+ 2020 June 22
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

BIN
20200721/c/doc/changes.pdf Normal file

Binary file not shown.

54
20200721/c/doc/consts.lis Normal file
View File

@@ -0,0 +1,54 @@
consts.lis 2008 September 30
SOFA Fortran constants
----------------------
These must be used exactly as presented below.
* Pi
DOUBLE PRECISION DPI
PARAMETER ( DPI = 3.141592653589793238462643D0 )
* 2Pi
DOUBLE PRECISION D2PI
PARAMETER ( D2PI = 6.283185307179586476925287D0 )
* Radians to hours
DOUBLE PRECISION DR2H
PARAMETER ( DR2H = 3.819718634205488058453210D0 )
* Radians to seconds
DOUBLE PRECISION DR2S
PARAMETER ( DR2S = 13750.98708313975701043156D0 )
* Radians to degrees
DOUBLE PRECISION DR2D
PARAMETER ( DR2D = 57.29577951308232087679815D0 )
* Radians to arc seconds
DOUBLE PRECISION DR2AS
PARAMETER ( DR2AS = 206264.8062470963551564734D0 )
* Hours to radians
DOUBLE PRECISION DH2R
PARAMETER ( DH2R = 0.2617993877991494365385536D0 )
* Seconds to radians
DOUBLE PRECISION DS2R
PARAMETER ( DS2R = 7.272205216643039903848712D-5 )
* Degrees to radians
DOUBLE PRECISION DD2R
PARAMETER ( DD2R = 1.745329251994329576923691D-2 )
* Arc seconds to radians
DOUBLE PRECISION DAS2R
PARAMETER ( DAS2R = 4.848136811095359935899141D-6 )
SOFA C constants
----------------
The constants used by the C version of SOFA are defined in the header
file sofam.h.

BIN
20200721/c/doc/consts.pdf Normal file

Binary file not shown.

View File

@@ -0,0 +1,25 @@
contents.lis 2018 January 26
--------
CONTENTS
--------
1) Introduction
2) The SOFA Astronomy Library
3) The SOFA Vector/Matrix Library
4) The individual routines
A1 The SOFA copyright notice
A2 Constants
A3 SOFA Board membership

BIN
20200721/c/doc/contents.pdf Normal file

Binary file not shown.

111
20200721/c/doc/copyr.lis Normal file
View File

@@ -0,0 +1,111 @@
copyr.lis 2020 June 2
COPYRIGHT NOTICE
Text equivalent to that below appears at the end of every SOFA routine
(with one exception). There are small formatting differences between
the Fortran and C versions.
The one exception is the "leap second" routine DAT. This uniquely is
classified as "user replaceable", and has a mitigated license statement
that permits the distribution of local variants under the same name.
This measure allows other SOFA routines to call the local variant, which
may be file or network based, or otherwise equipped to pick up IERS leap
second updates with no need to download new SOFA code.
*+----------------------------------------------------------------------
*
* Copyright (C) 2020
* 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
*
*-----------------------------------------------------------------------

BIN
20200721/c/doc/copyr.pdf Normal file

Binary file not shown.

215
20200721/c/doc/intro.lis Normal file
View File

@@ -0,0 +1,215 @@
intro.lis 2018 December 7
-------------------------------
THE IAU-SOFA SOFTWARE LIBRARIES
-------------------------------
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 189
"astronomy" routines supported by 55 "vector/matrix" routines,
available in both Fortran77 and C implementations.
THE SOFA INITIATIVE
SOFA is an IAU Service which operates as a Standing Working Group under
Division A (Fundamental Astronomy).
The IAU set up the SOFA initiative at the 1994 General Assembly, to
promulgate an authoritative set of fundamental-astronomy constants and
algorithms. At the subsequent General Assembly, in 1997, the
appointment of a review board and the selection of a site for the SOFA
Center (the outlet for SOFA products) were announced.
The SOFA initiative was originally proposed by the IAU Working Group on
Astronomical Standards (WGAS), under the chairmanship of
Toshio Fukushima. The proposal was for "...new arrangements to
establish and maintain an accessible and authoritative set of constants,
algorithms and procedures that implement standard models used in
fundamental astronomy". The SOFA Software Libraries implement the
"algorithms" part of the SOFA initiative. They were developed under the
supervision of an international panel called the SOFA Board. The
current membership of this panel is listed in an appendix.
A feature of the original SOFA software proposals was that the products
would be self-contained and not depend on other software. This includes
basic documentation, which, like the present file, will mostly be plain
ASCII text. It should also be noted that there is no assumption that
the software will be used on a particular computer and Operating System.
Although OS-related facilities may be present (Unix make files for
instance, use by the SOFA Center of automatic code management systems,
HTML versions of some documentation), the routines themselves will be
visible as individual text files and will run on a variety of platforms.
ALGORITHMS
The SOFA Board's initial goal has been to create a set of callable
subprograms. Whether "subroutines" or "functions", they are all
referred to simply as "routines". They are designed for use by software
developers wishing to write complete applications; no runnable, free-
standing applications are included in SOFA's present plans.
The algorithms are drawn from a variety of sources. Because most of the
routines so far developed have either been standard "text-book"
operations or implement well-documented standard algorithms, it has not
been necessary to invite the whole community to submit algorithms,
though consultation with authorities has occurred where necessary. It
should also be noted that consistency with the conventions published by
the International Earth Rotation Service was a stipulation in the
original SOFA proposals, further constraining the software designs.
This state of affairs will continue to exist for some time, as there is
a large backlog of agreed extensions to work on. However, in the future
the Board may decide to call for proposals, and is in the meantime
willing to look into any suggestions that are received by the SOFA
Center.
SCOPE
The routines currently available are listed in the next two chapters of
this document.
The "astronomy" library comprises 189 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,
gnomonic projection, horizon/equatorial transformations and
geodetic/geocentric transformations.
The "vector-matrix" library, comprising 55 routines, contains a
collection of simple tools for manipulating the vectors, matrices and
angles used by the astronomy routines.
There is no explicit commitment by SOFA to support historical models,
though as time goes on a legacy of superseded models will naturally
accumulate. There is, for example, no support of pre-1976 precession
models, though these capabilities could be added were there significant
demand.
Though the SOFA software libraries are rather limited in scope, and are
likely to remain so for a considerable time, they do offer distinct
advantages to prospective users. In particular, the routines are:
* authoritative: they are IAU-backed and have been constructed with
great care;
* practical: they are straightforward to use in spite of being
precise and rigorous (to some stated degree);
* accessible and supported: they are downloadable from an easy-to-
find place, they are in an integrated and consistent form, they
come with adequate internal documentation, and help for users is
available.
VERSIONS
Once it has been published, an issue is never revised or updated, and
remains accessible indefinitely. Subsequent issues may, however,
include corrected versions under the original routine name and
filenames. However, where a different model is introduced, it will have
a different name.
The issues will be referred to by the date when they were announced.
The frequency of re-issue will be decided by the Board, taking into
account the importance of the changes and the impact on the user
community.
DOCUMENTATION
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 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
The SOFA routines are available in two programming languages at present:
Fortran77 and ANSI C. Related software in other languages is under
consideration.
The Fortran code conforms to ANSI X3.9-1978 in all but two minor
respects: each has an IMPLICIT NONE declaration, and its name has a
prefix of "iau_" and may be longer than 6 characters. A global edit to
erase both of these will produce ANSI-compliant code with no change in
its function.
Coding style, and restrictions on the range of language features, have
been much debated by the Board, and the results comply with the majority
view. There is (at present) no document that defines the standards, but
the code itself offers a wide range of examples of what is acceptable.
The Fortran routines contain explicit numerical constants (the INCLUDE
statement is not part of ANSI Fortran77). These are drawn from the
file consts.lis, which is listed in an appendix. Constants for the
SOFA/C functions are defined in a header file sofam.h.
The naming convention is such that a SOFA routine referred to
generically as "EXAMPL" exists as a Fortran subprogram iau_EXAMPL and a
C function iauExampl. The calls for the two versions are very similar,
with the same arguments in the same order. In a few cases, the C
equivalent of a Fortran SUBROUTINE subprogram uses a return value rather
than an argument.
Each language version includes a "testbed" main-program that can be used
to verify that the SOFA routines have been correctly compiled on the end
user's system. The Fortran and C versions are called t_sofa_f.for and
t_sofa_c.c respectively. The testbeds execute every SOFA routine and
check that the results are within expected accuracy margins. It is not
possible to guarantee that all platforms will meet the rather stringent
criteria that have been used, and an occasional warning message may be
encountered on some systems.
COPYRIGHT ISSUES
Copyright for all of the SOFA software and documentation is owned by the
IAU SOFA Board. The Software is made available free of charge for all
classes of user, including commercial. However, there are strict rules
designed to avoid unauthorized variants coming into circulation. It is
permissible to distribute derived works and other modifications, but
they must be clearly marked to avoid confusion with the SOFA originals.
Further details are included in the block of comments which concludes
every routine. The text is also set out in an appendix to the present
document.
ACCURACY
The SOFA policy is to organize the calculations so that the machine
accuracy is fully exploited. The gap between the precision of the
underlying model or theory and the computational resolution has to be
kept as large as possible, hopefully leaving several orders of
magnitude of headroom.
The SOFA routines in some cases involve design compromises between rigor
and ease of use (and also speed, though nowadays this is seldom a major
concern).
ACKNOWLEDGEMENTS
The Board is indebted to a number of contributors, who are acknowledged
in the preamble comments of the routines concerned.
The Board's effort is provided by the members' individual institutes.
Resources for operating the SOFA Center are provided by Her Majesty's
Nautical Almanac Office, operated by the United Kingdom Hydrographic
Office.

BIN
20200721/c/doc/intro.pdf Normal file

Binary file not shown.

18903
20200721/c/doc/manual.lis Normal file

File diff suppressed because it is too large Load Diff

BIN
20200721/c/doc/manual.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

751
20200721/c/doc/sofa_lib.lis Normal file
View File

@@ -0,0 +1,751 @@
sofa_lib.lis 2018 December 7
----------------------
SOFA Astronomy Library
----------------------
PREFACE
The routines described here comprise the SOFA astronomy library. Their
general appearance and coding style conforms to conventions agreed by
the SOFA Board, and their functions, names and algorithms have been
ratified by the Board. Procedures for soliciting and agreeing additions
to the library are still evolving.
PROGRAMMING LANGUAGES
The SOFA routines are available in two programming languages at present:
Fortran 77 and ANSI C.
Except for a single obsolete Fortran routine, which has no C equivalent,
there is a one-to-one relationship between the two language versions.
The naming convention is such that a SOFA routine referred to
generically as "EXAMPL" exists as a Fortran subprogram iau_EXAMPL and a
C function iauExampl. The calls for the two versions are very similar,
with the same arguments in the same order. In a few cases, the C
equivalent of a Fortran SUBROUTINE subprogram uses a return value rather
than an argument.
GENERAL PRINCIPLES
The principal function of the SOFA Astronomy Library is to provide
definitive algorithms. A secondary function is to provide software
suitable for convenient direct use by writers of astronomical
applications.
The astronomy routines call on the SOFA vector/matrix library routines,
which are separately listed.
The routines are designed to exploit the full floating-point accuracy
of the machines on which they run, and not to rely on compiler
optimizations. Within these constraints, the intention is that the code
corresponds to the published formulation (if any).
Dates are always Julian Dates (except in calendar conversion routines)
and are expressed as two double precision numbers which sum to the
required value.
A distinction is made between routines that implement IAU-approved
models and those that use those models to create other results. The
former are referred to as "canonical models" in the preamble comments;
the latter are described as "support routines".
Using the library requires knowledge of positional astronomy and
time-scales. These topics are covered in "Explanatory Supplement to the
Astronomical Almanac", 3rd Edition, Sean E. Urban &
P. Kenneth Seidelmann (eds.), University Science Books, 2013. Recent
developments are documented in the scientific journals, and references
to the relevant papers are given in the SOFA code as required. The IERS
Conventions are also an essential reference. The routines concerned
with Earth attitude (precession-nutation etc.) are described in the SOFA
document sofa_pn.pdf. Those concerned with transformations between
different time scales are described in sofa_ts_f.pdf (Fortran) and
sofa_ts_c.pdf (C). Those concerned with astrometric transformations
are described in sofa_ast_f.pdf (Fortran) and sofa_ast_c (C).
ROUTINES
Calendars
CAL2JD Gregorian calendar to Julian Day number
EPB Julian Date to Besselian Epoch
EPB2JD Besselian Epoch to Julian Date
EPJ Julian Date to Julian Epoch
EPJ2JD Julian Epoch to Julian Date
JD2CAL Julian Date to Gregorian year, month, day, fraction
JDCALF Julian Date to Gregorian date for formatted output
Astrometry
AB apply stellar aberration
APCG prepare for ICRS <-> GCRS, geocentric, special
APCG13 prepare for ICRS <-> GCRS, geocentric
APCI prepare for ICRS <-> CIRS, terrestrial, special
APCI13 prepare for ICRS <-> CIRS, terrestrial
APCO prepare for ICRS <-> observed, terrestrial, special
APCO13 prepare for ICRS <-> observed, terrestrial
APCS prepare for ICRS <-> CIRS, space, special
APCS13 prepare for ICRS <-> CIRS, space
APER insert ERA into context
APER13 update context for Earth rotation
APIO prepare for CIRS <-> observed, terrestrial, special
APIO13 prepare for CIRS <-> observed, terrestrial
ATCI13 catalog -> CIRS
ATCIQ quick ICRS -> CIRS
ATCIQN quick ICRS -> CIRS, multiple deflections
ATCIQZ quick astrometric ICRS -> CIRS
ATCO13 ICRS -> observed
ATIC13 CIRS -> ICRS
ATICQ quick CIRS -> ICRS
ATCIQN quick CIRS -> ICRS, multiple deflections
ATIO13 CIRS -> observed
ATIOQ quick CIRS -> observed
ATOC13 observed -> astrometric ICRS
ATOI13 observed -> CIRS
ATOIQ quick observed -> CIRS
LD light deflection by a single solar-system body
LDN light deflection by multiple solar-system bodies
LDSUN light deflection by the Sun
PMPX apply proper motion and parallax
PMSAFE apply proper motion, with zero-parallax precautions
PVTOB observatory position and velocity
PVSTAR space motion pv-vector to star catalog data
REFCO refraction constants
STARPM apply proper motion
STARPV star catalog data to space motion pv-vector
Time scales
D2DTF format 2-part JD for output
DAT Delta(AT) (=TAI-UTC) for a given UTC date
DTDB TDB-TT
DTF2D encode time and date fields into 2-part JD
TAITT TAI to TT
TAIUT1 TAI to UT1
TAIUTC TAI to UTC
TCBTDB TCB to TDB
TCGTT TCG to TT
TDBTCB TDB to TCB
TDBTT TDB to TT
TTTAI TT to TAI
TTTCG TT to TCG
TTTDB TT to TDB
TTUT1 TT to UT1
UT1TAI UT1 to TAI
UT1TT UT1 to TT
UT1UTC UT1 to UTC
UTCTAI UTC to TAI
UTCUT1 UTC to UT1
Earth rotation angle and sidereal time
EE00 equation of the equinoxes, IAU 2000
EE00A equation of the equinoxes, IAU 2000A
EE00B equation of the equinoxes, IAU 2000B
EE06A equation of the equinoxes, IAU 2006/2000A
EECT00 equation of the equinoxes complementary terms, IAU 2000
EQEQ94 equation of the equinoxes, IAU 1994
ERA00 Earth rotation angle, IAU 2000
GMST00 Greenwich mean sidereal time, IAU 2000
GMST06 Greenwich mean sidereal time, IAU 2006
GMST82 Greenwich mean sidereal time, IAU 1982
GST00A Greenwich apparent sidereal time, IAU 2000A
GST00B Greenwich apparent sidereal time, IAU 2000B
GST06 Greenwich apparent ST, IAU 2006, given NPB matrix
GST06A Greenwich apparent sidereal time, IAU 2006/2000A
GST94 Greenwich apparent sidereal time, IAU 1994
Ephemerides (limited precision)
EPV00 Earth position and velocity
PLAN94 major-planet position and velocity
Precession, nutation, polar motion
BI00 frame bias components, IAU 2000
BP00 frame bias and precession matrices, IAU 2000
BP06 frame bias and precession matrices, IAU 2006
BPN2XY extract CIP X,Y coordinates from NPB matrix
C2I00A celestial-to-intermediate matrix, IAU 2000A
C2I00B celestial-to-intermediate matrix, IAU 2000B
C2I06A celestial-to-intermediate matrix, IAU 2006/2000A
C2IBPN celestial-to-intermediate matrix, given NPB matrix, IAU 2000
C2IXY celestial-to-intermediate matrix, given X,Y, IAU 2000
C2IXYS celestial-to-intermediate matrix, given X,Y and s
C2T00A celestial-to-terrestrial matrix, IAU 2000A
C2T00B celestial-to-terrestrial matrix, IAU 2000B
C2T06A celestial-to-terrestrial matrix, IAU 2006/2000A
C2TCIO form CIO-based celestial-to-terrestrial matrix
C2TEQX form equinox-based celestial-to-terrestrial matrix
C2TPE celestial-to-terrestrial matrix given nutation, IAU 2000
C2TXY celestial-to-terrestrial matrix given CIP, IAU 2000
EO06A equation of the origins, IAU 2006/2000A
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
NUMAT form nutation matrix
NUT00A nutation, IAU 2000A
NUT00B nutation, IAU 2000B
NUT06A nutation, IAU 2006/2000A
NUT80 nutation, IAU 1980
NUTM80 nutation matrix, IAU 1980
OBL06 mean obliquity, IAU 2006
OBL80 mean obliquity, IAU 1980
PB06 zeta,z,theta precession angles, IAU 2006, including bias
PFW06 bias-precession Fukushima-Williams angles, IAU 2006
PMAT00 precession matrix (including frame bias), IAU 2000
PMAT06 PB matrix, IAU 2006
PMAT76 precession matrix, IAU 1976
PN00 bias/precession/nutation results, IAU 2000
PN00A bias/precession/nutation, IAU 2000A
PN00B bias/precession/nutation, IAU 2000B
PN06 bias/precession/nutation results, IAU 2006
PN06A bias/precession/nutation results, IAU 2006/2000A
PNM00A classical NPB matrix, IAU 2000A
PNM00B classical NPB matrix, IAU 2000B
PNM06A classical NPB matrix, IAU 2006/2000A
PNM80 precession/nutation matrix, IAU 1976/1980
P06E precession angles, IAU 2006, equinox based
POM00 polar motion matrix
PR00 IAU 2000 precession adjustments
PREC76 accumulated precession angles, IAU 1976
S00 the CIO locator s, given X,Y, IAU 2000A
S00A the CIO locator s, IAU 2000A
S00B the CIO locator s, IAU 2000B
S06 the CIO locator s, given X,Y, IAU 2006
S06A the CIO locator s, IAU 2006/2000A
SP00 the TIO locator s', IERS 2003
XY06 CIP, IAU 2006/2000A, from series
XYS00A CIP and s, IAU 2000A
XYS00B CIP and s, IAU 2000B
XYS06A CIP and s, IAU 2006/2000A
Fundamental arguments for nutation etc.
FAD03 mean elongation of the Moon from the Sun
FAE03 mean longitude of Earth
FAF03 mean argument of the latitude of the Moon
FAJU03 mean longitude of Jupiter
FAL03 mean anomaly of the Moon
FALP03 mean anomaly of the Sun
FAMA03 mean longitude of Mars
FAME03 mean longitude of Mercury
FANE03 mean longitude of Neptune
FAOM03 mean longitude of the Moon's ascending node
FAPA03 general accumulated precession in longitude
FASA03 mean longitude of Saturn
FAUR03 mean longitude of Uranus
FAVE03 mean longitude of Venus
Star catalog conversions
FK52H transform FK5 star data into the Hipparcos system
FK5HIP FK5 to Hipparcos rotation and spin
FK5HZ FK5 to Hipparcos assuming zero Hipparcos proper motion
H2FK5 transform Hipparcos star data into the FK5 system
HFK5Z Hipparcos to FK5 assuming zero Hipparcos proper motion
FK425 transform FK4 star data into FK5
FK45Z FK4 to FK5 assuming zero FK5 proper motion
FK524 transform FK5 star data into FK4
FK54Z FK5 to FK4 assuming zero FK5 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
ICRS2G transform ICRS coordinates to IAU 1958 Galactic
Geodetic/geocentric
EFORM a,f for a nominated Earth reference ellipsoid
GC2GD geocentric to geodetic for a nominated ellipsoid
GC2GDE geocentric to geodetic given ellipsoid a,f
GD2GC geodetic to geocentric for a nominated ellipsoid
GD2GCE geodetic to geocentric given ellipsoid a,f
Gnomonic projection
TPORS solve for tangent point, spherical
TPORV solve for tangent point, vector
TPSTS deproject tangent plane to celestial, spherical
TPSTV deproject tangent plane to celestial, vector
TPXES project celestial to tangent plane, spherical
TPXEV project celestial to tangent plane, vector
Horizon/equatorial
AE2HD (azimuth, altitude) to (hour angle, declination)
HD2AE (hour angle, declination) to (azimuth, altitude)
HD2PA parallactic angle
Obsolete
C2TCEO former name of C2TCIO
CALLS: FORTRAN VERSION
CALL iau_AB ( PNAT, V, S, BM1, PPR )
CALL iau_AE2HD ( AZ, EL, PHI, HA, DEC )
CALL iau_APCG ( DATE1, DATE2, EB, EH, ASTROM )
CALL iau_APCG13 ( DATE1, DATE2, ASTROM )
CALL iau_APCI ( DATE1, DATE2, EB, EH, X, Y, S, ASTROM )
CALL iau_APCI13 ( DATE1, DATE2, ASTROM, EO )
CALL iau_APCO ( DATE1, DATE2, EB, EH, X, Y, S,
: THETA, ELONG, PHI, HM, XP, YP, SP,
: REFA, REFB, ASTROM )
CALL iau_APCO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP,
: PHPA, TC, RH, WL, ASTROM, EO, J )
CALL iau_APCS ( DATE1, DATE2, PV, EB, EH, ASTROM )
CALL iau_APCS13 ( DATE1, DATE2, PV, ASTROM )
CALL iau_APER ( THETA, ASTROM )
CALL iau_APER13 ( UT11, UT12, ASTROM )
CALL iau_APIO ( SP, THETA, ELONG, PHI, HM, XP, YP,
: REFA, REFB, ASTROM )
CALL iau_APIO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP,
: PHPA, TC, RH, WL, ASTROM, J )
CALL iau_ATCI13 ( RC, DC, PR, PD, PX, RV, DATE1, DATE2, RI, DI, EO )
CALL iau_ATCIQ ( RC, DC, PR, PD, PX, RV, ASTROM, RI, DI )
CALL iau_ATCIQN ( RC, DC, PR, PD, PX, RV, ASTROM, N, B, RI, DI )
CALL iau_ATCIQZ ( RC, DC, ASTROM, RI, DI )
CALL iau_ATCO13 ( RC, DC, PR, PD, PX, RV, UTC1, UTC2, DUT1, ELONG,
: PHI, HM, XP, YP, PHPA, TC, RH, WL,
: AOB, ZOB, HOB, DOB, ROB, EO, J )
CALL iau_ATIC13 ( RI, DI, DATE1, DATE2, RC, DC, EO )
CALL iau_ATICQ ( RI, DI, ASTROM, RC, DC )
CALL iau_ATCIQN ( RI, DI, ASTROM, N, B, RC, DC )
CALL iau_ATIO13 ( RI, DI, UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP,
PHPA, TC, RH, WL, AOB, ZOB, HOB, DOB, ROB, J )
CALL iau_ATIOQ ( RI, DI, ASTROM, AOB, ZOB, HOB, DOB, ROB )
CALL iau_ATOC13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1,
: ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL,
: RC, DC, J )
CALL iau_ATOI13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1,
: ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL,
: RI, DI, J )
CALL iau_ATOIQ ( TYPE, OB1, OB2, ASTROM, RI, DI )
CALL iau_BI00 ( DPSIBI, DEPSBI, DRA )
CALL iau_BP00 ( DATE1, DATE2, RB, RP, RBP )
CALL iau_BP06 ( DATE1, DATE2, RB, RP, RBP )
CALL iau_BPN2XY ( RBPN, X, Y )
CALL iau_C2I00A ( DATE1, DATE2, RC2I )
CALL iau_C2I00B ( DATE1, DATE2, RC2I )
CALL iau_C2I06A ( DATE1, DATE2, RC2I )
CALL iau_C2IBPN ( DATE1, DATE2, RBPN, RC2I )
CALL iau_C2IXY ( DATE1, DATE2, X, Y, RC2I )
CALL iau_C2IXYS ( X, Y, S, RC2I )
CALL iau_C2T00A ( TTA, TTB, UTA, UTB, XP, YP, RC2T )
CALL iau_C2T00B ( TTA, TTB, UTA, UTB, XP, YP, RC2T )
CALL iau_C2T06A ( TTA, TTB, UTA, UTB, XP, YP, RC2T )
CALL iau_C2TCEO ( RC2I, ERA, RPOM, RC2T )
CALL iau_C2TCIO ( RC2I, ERA, RPOM, RC2T )
CALL iau_C2TEQX ( RBPN, GST, RPOM, RC2T )
CALL iau_C2TPE ( TTA, TTB, UTA, UTB, DPSI, DEPS, XP, YP, RC2T )
CALL iau_C2TXY ( TTA, TTB, UTA, UTB, X, Y, XP, YP, RC2T )
CALL iau_CAL2JD ( IY, IM, ID, DJM0, DJM, J )
CALL iau_D2DTF ( SCALE, NDP, D1, D2, IY, IM, ID, IHMSF, J )
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 )
D = iau_EE06A ( DATE1, DATE2 )
D = iau_EECT00 ( DATE1, DATE2 )
CALL iau_EFORM ( N, A, F, J )
D = iau_EO06A ( DATE1, DATE2 )
D = iau_EORS ( RNPB, S )
D = iau_EPB ( DJ1, DJ2 )
CALL iau_EPB2JD ( EPB, DJM0, DJM )
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 )
D = iau_FAE03 ( T )
D = iau_FAF03 ( T )
D = iau_FAJU03 ( T )
D = iau_FAL03 ( T )
D = iau_FALP03 ( T )
D = iau_FAMA03 ( T )
D = iau_FAME03 ( T )
D = iau_FANE03 ( T )
D = iau_FAOM03 ( T )
D = iau_FAPA03 ( T )
D = iau_FASA03 ( T )
D = iau_FAUR03 ( T )
D = iau_FAVE03 ( T )
CALL iau_FK425 ( R1950, D1950, DR1950, DD1950, P1950, V1950,
: R2000, D2000, DR2000, DD2000, P2000, V2000 )
CALL iau_FK45Z ( R1950, D1950, BEPOCH, R2000, D2000 )
CALL iau_FK524 ( R2000, D2000, DR2000, DD2000, P2000, V2000,
: R1950, D1950, DR1950, DD1950, P1950, V1950 )
CALL iau_FK52H ( R5, D5, DR5, DD5, PX5, RV5,
: RH, DH, DRH, DDH, PXH, RVH )
CALL iau_FK54Z ( R2000, D2000, BEPOCH, R1950, D1950, DR1950, DD1950 )
CALL iau_FK5HIP ( R5H, S5H )
CALL iau_FK5HZ ( R5, D5, DATE1, DATE2, RH, DH )
CALL iau_FW2M ( GAMB, PHIB, PSI, EPS, R )
CALL iau_FW2XY ( GAMB, PHIB, PSI, EPS, X, Y )
CALL iau_G2ICRS ( DL, DB, DR, DD )
CALL iau_GC2GD ( N, XYZ, ELONG, PHI, HEIGHT, J )
CALL iau_GC2GDE ( A, F, XYZ, ELONG, PHI, HEIGHT, J )
CALL iau_GD2GC ( N, ELONG, PHI, HEIGHT, XYZ, J )
CALL iau_GD2GCE ( A, F, ELONG, PHI, HEIGHT, XYZ, J )
D = iau_GMST00 ( UTA, UTB, TTA, TTB )
D = iau_GMST06 ( UTA, UTB, TTA, TTB )
D = iau_GMST82 ( UTA, UTB )
D = iau_GST00A ( UTA, UTB, TTA, TTB )
D = iau_GST00B ( UTA, UTB )
D = iau_GST06 ( UTA, UTB, TTA, TTB, RNPB )
D = iau_GST06A ( UTA, UTB, TTA, TTB )
D = iau_GST94 ( UTA, UTB )
CALL iau_H2FK5 ( RH, DH, DRH, DDH, PXH, RVH,
: R5, D5, DR5, DD5, PX5, RV5 )
CALL iau_HD2AE ( HA, DEC, PHI, AZ, EL )
D = iau_HD2PA ( HA, DEC, PHI )
CALL iau_HFK5Z ( RH, DH, DATE1, DATE2, R5, D5, DR5, DD5 )
CALL iau_ICRS2G ( DR, DD, DL, DB )
CALL iau_JD2CAL ( DJ1, DJ2, IY, IM, ID, FD, J )
CALL iau_JDCALF ( NDP, DJ1, DJ2, IYMDF, J )
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 )
CALL iau_NUMAT ( EPSA, DPSI, DEPS, RMATN )
CALL iau_NUT00A ( DATE1, DATE2, DPSI, DEPS )
CALL iau_NUT00B ( DATE1, DATE2, DPSI, DEPS )
CALL iau_NUT06A ( DATE1, DATE2, DPSI, DEPS )
CALL iau_NUT80 ( DATE1, DATE2, DPSI, DEPS )
CALL iau_NUTM80 ( DATE1, DATE2, RMATN )
D = iau_OBL06 ( DATE1, DATE2 )
D = iau_OBL80 ( DATE1, DATE2 )
CALL iau_PB06 ( DATE1, DATE2, BZETA, BZ, BTHETA )
CALL iau_PFW06 ( DATE1, DATE2, GAMB, PHIB, PSIB, EPSA )
CALL iau_PLAN94 ( DATE1, DATE2, NP, PV, J )
CALL iau_PMAT00 ( DATE1, DATE2, RBP )
CALL iau_PMAT06 ( DATE1, DATE2, RBP )
CALL iau_PMAT76 ( DATE1, DATE2, RMATP )
CALL iau_PMPX ( RC, DC, PR, PD, PX, RV, PMT, POB, PCO )
CALL iau_PMSAFE ( RA1, DEC1, PMR1, PMD1, PX1, RV1,
: EP1A, EP1B, EP2A, EP2B,
: RA2, DEC2, PMR2, PMD2, PX2, RV2, J )
CALL iau_PN00 ( DATE1, DATE2, DPSI, DEPS,
: EPSA, RB, RP, RBP, RN, RBPN )
CALL iau_PN00A ( DATE1, DATE2,
: DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN )
CALL iau_PN00B ( DATE1, DATE2,
: DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN )
CALL iau_PN06 ( DATE1, DATE2, DPSI, DEPS,
: EPSA, RB, RP, RBP, RN, RBPN )
CALL iau_PN06A ( DATE1, DATE2,
: DPSI, DEPS, RB, RP, RBP, RN, RBPN )
CALL iau_PNM00A ( DATE1, DATE2, RBPN )
CALL iau_PNM00B ( DATE1, DATE2, RBPN )
CALL iau_PNM06A ( DATE1, DATE2, RNPB )
CALL iau_PNM80 ( DATE1, DATE2, RMATPN )
CALL iau_P06E ( DATE1, DATE2,
: EPS0, PSIA, OMA, BPA, BQA, PIA, BPIA,
: EPSA, CHIA, ZA, ZETAA, THETAA, PA, GAM, PHI, PSI )
CALL iau_POM00 ( XP, YP, SP, RPOM )
CALL iau_PR00 ( DATE1, DATE2, DPSIPR, DEPSPR )
CALL iau_PREC76 ( DATE01, DATE02, DATE11, DATE12, ZETA, Z, THETA )
CALL iau_PVSTAR ( PV, RA, DEC, PMR, PMD, PX, RV, J )
CALL iau_PVTOB ( ELONG, PHI, HM, XP, YP, SP, THETA, PV )
CALL iau_REFCO ( PHPA, TC, RH, WL, REFA, REFB )
D = iau_S00 ( DATE1, DATE2, X, Y )
D = iau_S00A ( DATE1, DATE2 )
D = iau_S00B ( DATE1, DATE2 )
D = iau_S06 ( DATE1, DATE2, X, Y )
D = iau_S06A ( DATE1, DATE2 )
D = iau_SP00 ( DATE1, DATE2 )
CALL iau_STARPM ( RA1, DEC1, PMR1, PMD1, PX1, RV1,
: EP1A, EP1B, EP2A, EP2B,
: RA2, DEC2, PMR2, PMD2, PX2, RV2, J )
CALL iau_STARPV ( RA, DEC, PMR, PMD, PX, RV, PV, J )
CALL iau_TAITT ( TAI1, TAI2, TT1, TT2, J )
CALL iau_TAIUT1 ( TAI1, TAI2, DTA, UT11, UT12, J )
CALL iau_TAIUTC ( TAI1, TAI2, UTC1, UTC2, J )
CALL iau_TCBTDB ( TCB1, TCB2, TDB1, TDB2, J )
CALL iau_TCGTT ( TCG1, TCG2, TT1, TT2, J )
CALL iau_TDBTCB ( TDB1, TDB2, TCB1, TCB2, J )
CALL iau_TDBTT ( TDB1, TDB2, DTR, TT1, TT2, J )
CALL iau_TPORS ( XI, ETA, A, B, A01, B01, A02, B02, N )
CALL iau_TPORV ( XI, ETA, V, V01, V02, N )
CALL iau_TPSTS ( XI, ETA, A0, B0, A, B )
CALL iau_TPSTV ( XI, ETA, V0, V )
CALL iau_TPXES ( A, B, A0, B0, XI, ETA, J )
CALL iau_TPXEV ( V, V0, XI, ETA, J )
CALL iau_TTTAI ( TT1, TT2, TAI1, TAI2, J )
CALL iau_TTTCG ( TT1, TT2, TCG1, TCG2, J )
CALL iau_TTTDB ( TT1, TT2, DTR, TDB1, TDB2, J )
CALL iau_TTUT1 ( TT1, TT2, DT, UT11, UT12, J )
CALL iau_UT1TAI ( UT11, UT12, TAI1, TAI2, J )
CALL iau_UT1TT ( UT11, UT12, DT, TT1, TT2, J )
CALL iau_UT1UTC ( UT11, UT12, DUT, UTC1, UTC2, J )
CALL iau_UTCTAI ( UTC1, UTC2, DTA, TAI1, TAI2, J )
CALL iau_UTCUT1 ( UTC1, UTC2, DUT, UT11, UT12, J )
CALL iau_XY06 ( DATE1, DATE2, X, Y )
CALL iau_XYS00A ( DATE1, DATE2, X, Y, S )
CALL iau_XYS00B ( DATE1, DATE2, X, Y, S )
CALL iau_XYS06A ( DATE1, DATE2, X, Y, S )
CALLS: C VERSION
iauAb ( pnat, v, s, bm1, ppr );
iauAe2hd ( az, el, phi, &ha, &dec );
iauApcg ( date1, date2, eb, eh, &astrom );
iauApcg13 ( date1, date2, &astrom );
iauApci ( date1, date2, eb, eh, x, y, s, &astrom );
iauApci13 ( date1, date2, &astrom, &eo );
iauApco ( date1, date2, eb, eh, x, y, s,
theta, elong, phi, hm, xp, yp, sp,
refa, refb, &astrom );
i = iauApco13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp,
phpa, tc, rh, wl, &astrom, &eo );
iauApcs ( date1, date2, pv, eb, eh, &astrom );
iauApcs13 ( date1, date2, pv, &astrom );
iauAper ( theta, &astrom );
iauAper13 ( ut11, ut12, &astrom );
iauApio ( sp, theta, elong, phi, hm, xp, yp, refa, refb,
&astrom );
i = iauApio13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp,
phpa, tc, rh, wl, &astrom );
iauAtci13 ( rc, dc, pr, pd, px, rv, date1, date2,
&ri, &di, &eo );
iauAtciq ( rc, dc, pr, pd, px, rv, &astrom, &ri, &di );
iauAtciqn ( rc, dc, pr, pd, px, rv, astrom, n, b, &ri, &di );
iauAtciqz ( rc, dc, &astrom, &ri, &di );
i = iauAtco13 ( rc, dc, pr, pd, px, rv, utc1, utc2, dut1,
elong phi, hm, xp, yp, phpa, tc, rh, wl,
aob, zob, hob, dob, rob, eo );
iauAtic13 ( ri, di, date1, date2, &rc, &dc, &eo );
iauAticq ( ri, di, &astrom, &rc, &dc );
iauAtciqn ( ri, di, astrom, n, b, &rc, &dc );
i = iauAtio13 ( ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp,
phpa, tc, rh, wl, aob, zob, hob, dob, rob );
iauAtioq ( ri, di, &astrom, &aob, &zob, &hob, &dob, &rob );
i = iauAtoc13 ( type, ob1, ob2, utc1, utc2, dut1,
elong, phi, hm, xp, yp, phpa, tc, rh, wl,
&rc, &dc );
i = iauAtoi13 ( type, ob1, ob2, utc1, utc2, dut1, elong, phi, hm,
xp, yp, phpa, tc, rh, wl, &ri, &di );
iauAtoiq ( type, ob1, ob2, &astrom, &ri, &di );
iauBi00 ( &dpsibi, &depsbi, &dra );
iauBp00 ( date1, date2, rb, rp, rbp );
iauBp06 ( date1, date2, rb, rp, rbp );
iauBpn2xy ( rbpn, &x, &y );
iauC2i00a ( date1, date2, rc2i );
iauC2i00b ( date1, date2, rc2i );
iauC2i06a ( date1, date2, rc2i );
iauC2ibpn ( date1, date2, rbpn, rc2i );
iauC2ixy ( date1, date2, x, y, rc2i );
iauC2ixys ( x, y, s, rc2i );
iauC2t00a ( tta, ttb, uta, utb, xp, yp, rc2t );
iauC2t00b ( tta, ttb, uta, utb, xp, yp, rc2t );
iauC2t06a ( tta, ttb, uta, utb, xp, yp, rc2t );
iauC2tcio ( rc2i, era, rpom, rc2t );
iauC2teqx ( rbpn, gst, rpom, rc2t );
iauC2tpe ( tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t );
iauC2txy ( tta, ttb, uta, utb, x, y, xp, yp, rc2t );
i = iauCal2jd ( iy, im, id, &djm0, &djm );
i = iauD2dtf ( scale, ndp, d1, d2, &iy, &im, &id, ihmsf );
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 );
d = iauEe06 ( date1, date2 );
d = iauEect00 ( date1, date2 );
i = iauEform ( n, &a, &f );
d = iauEo06 ( date1, date2 );
d = iauEors ( rnpb, s );
d = iauEpb ( dj1, dj2 );
iauEpb2jd ( epb, &djm0, &djm );
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 );
d = iauFae03 ( t );
d = iauFaf03 ( t );
d = iauFaju03 ( t );
d = iauFal03 ( t );
d = iauFalp03 ( t );
d = iauFama03 ( t );
d = iauFame03 ( t );
d = iauFane03 ( t );
d = iauFaom03 ( t );
d = iauFapa03 ( t );
d = iauFasa03 ( t );
d = iauFaur03 ( t );
d = iauFave03 ( t );
iauFk425 ( r1950, d1950, dr1950, dd1950, p1950, v1950,
&r2000, &d2000, &dr2000, &dd2000, &p2000, &v2000 );
iauFk45z ( r1950, d1950, bepoch, &r2000, &d2000 );
iauFk524 ( r2000, d2000, dr2000, dd2000, p2000, v2000,
&r1950, &d1950, &dr1950, &dd1950, &p1950, &v1950 );
iauFk52h ( r5, d5, dr5, dd5, px5, rv5,
&rh, &dh, &drh, &ddh, &pxh, &rvh );
iauFk54z ( r2000, d2000, bepoch,
&r1950, &d1950, &dr1950, &dd1950 );
iauFk5hip ( r5h, s5h );
iauFk5hz ( r5, d5, date1, date2, &rh, &dh );
iauFw2m ( gamb, phib, psi, eps, r );
iauFw2xy ( gamb, phib, psi, eps, &x, &y );
iauG2icrs ( dl, db, &dr, &dd );
i = iauGc2gd ( n, xyz, &elong, &phi, &height );
i = iauGc2gde ( a, f, xyz, &elong, &phi, &height );
i = iauGd2gc ( n, elong, phi, height, xyz );
i = iauGd2gce ( a, f, elong, phi, height, xyz );
d = iauGmst00 ( uta, utb, tta, ttb );
d = iauGmst06 ( uta, utb, tta, ttb );
d = iauGmst82 ( uta, utb );
d = iauGst00a ( uta, utb, tta, ttb );
d = iauGst00b ( uta, utb );
d = iauGst06 ( uta, utb, tta, ttb, rnpb );
d = iauGst06a ( uta, utb, tta, ttb );
d = iauGst94 ( uta, utb );
iauH2fk5 ( rh, dh, drh, ddh, pxh, rvh,
&r5, &d5, &dr5, &dd5, &px5, &rv5 );
iauHd2ae ( ha, dec, phi, &az, &el );
d = iauHd2pa ( ha, dec, phi );
iauHfk5z ( rh, dh, date1, date2,
&r5, &d5, &dr5, &dd5 );
iauIcrs2g ( dr, dd, &dl, &db );
i = iauJd2cal ( dj1, dj2, &iy, &im, &id, &fd );
i = iauJdcalf ( ndp, dj1, dj2, iymdf );
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 );
iauNumat ( epsa, dpsi, deps, rmatn );
iauNut00a ( date1, date2, &dpsi, &deps );
iauNut00b ( date1, date2, &dpsi, &deps );
iauNut06a ( date1, date2, &dpsi, &deps );
iauNut80 ( date1, date2, &dpsi, &deps );
iauNutm80 ( date1, date2, rmatn );
d = iauObl06 ( date1, date2 );
d = iauObl80 ( date1, date2 );
iauPb06 ( date1, date2, &bzeta, &bz, &btheta );
iauPfw06 ( date1, date2, &gamb, &phib, &psib, &epsa );
i = iauPlan94 ( date1, date2, np, pv );
iauPmat00 ( date1, date2, rbp );
iauPmat06 ( date1, date2, rbp );
iauPmat76 ( date1, date2, rmatp );
iauPmpx ( rc, dc, pr, pd, px, rv, pmt, pob, pco );
i = iauPmsafe ( ra1, dec1, pmr1, pmd1, px1, rv1,
ep1a, ep1b, ep2a, ep2b,
&ra2, &dec2, &pmr2, &pmd2, &px2, &rv2);
iauPn00 ( date1, date2, dpsi, deps,
&epsa, rb, rp, rbp, rn, rbpn );
iauPn00a ( date1, date2,
&dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn );
iauPn00b ( date1, date2,
&dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn );
iauPn06 ( date1, date2, dpsi, deps,
&epsa, rb, rp, rbp, rn, rbpn );
iauPn06a ( date1, date2,
&dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn );
iauPnm00a ( date1, date2, rbpn );
iauPnm00b ( date1, date2, rbpn );
iauPnm06a ( date1, date2, rnpb );
iauPnm80 ( date1, date2, rmatpn );
iauP06e ( date1, date2,
&eps0, &psia, &oma, &bpa, &bqa, &pia, &bpia,
&epsa, &chia, &za, &zetaa, &thetaa, &pa,
&gam, &phi, &psi );
iauPom00 ( xp, yp, sp, rpom );
iauPr00 ( date1, date2, &dpsipr, &depspr );
iauPrec76 ( date01, date02, date11, date12, &zeta, &z, &theta );
i = iauPvstar ( pv, &ra, &dec, &pmr, &pmd, &px, &rv );
iauPvtob ( elong, phi, hm, xp, yp, sp, theta, pv );
iauRefco ( phpa, tc, rh, wl, refa, refb );
d = iauS00 ( date1, date2, x, y );
d = iauS00a ( date1, date2 );
d = iauS00b ( date1, date2 );
d = iauS06 ( date1, date2, x, y );
d = iauS06a ( date1, date2 );
d = iauSp00 ( date1, date2 );
i = iauStarpm ( ra1, dec1, pmr1, pmd1, px1, rv1,
ep1a, ep1b, ep2a, ep2b,
&ra2, &dec2, &pmr2, &pmd2, &px2, &rv2 );
i = iauStarpv ( ra, dec, pmr, pmd, px, rv, pv );
i = iauTaitt ( tai1, tai2, &tt1, &tt2 );
i = iauTaiut1 ( tai1, tai2, dta, &ut11, &ut12 );
i = iauTaiutc ( tai1, tai2, &utc1, &utc2 );
i = iauTcbtdb ( tcb1, tcb2, &tdb1, &tdb2 );
i = iauTcgtt ( tcg1, tcg2, &tt1, &tt2 );
i = iauTdbtcb ( tdb1, tdb2, &tcb1, &tcb2 );
i = iauTdbtt ( tdb1, tdb2, dtr, &tt1, &tt2 );
i = iauTpors ( xi, eta, a, b, &a01, &b01, &a02, &b02 );
i = iauTporv ( xi, eta, v, v01, v02 );
iauTpsts ( xi, eta, a0, b0, &a, &b );
iauTpstv ( xi, eta, v0, v );
i = iauTpxes ( a, b, a0, b0, &xi, &eta );
i = iauTpxev ( v, v0, &xi, &eta );
i = iauTttai ( tt1, tt2, &tai1, &tai2 );
i = iauTttcg ( tt1, tt2, &tcg1, &tcg2 );
i = iauTttdb ( tt1, tt2, dtr, &tdb1, &tdb2 );
i = iauTtut1 ( tt1, tt2, dt, &ut11, &ut12 );
i = iauUt1tai ( ut11, ut12, &tai1, &tai2 );
i = iauUt1tt ( ut11, ut12, dt, &tt1, &tt2 );
i = iauUt1utc ( ut11, ut12, dut, &utc1, &utc2 );
i = iauUtctai ( utc1, utc2, dta, &tai1, &tai2 );
i = iauUtcut1 ( utc1, utc2, dut, &ut11, &ut12 );
iauXy06 ( date1, date2, &x, &y );
iauXys00a ( date1, date2, &x, &y, &s );
iauXys00b ( date1, date2, &x, &y, &s );
iauXys06a ( date1, date2, &x, &y, &s );

BIN
20200721/c/doc/sofa_lib.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

307
20200721/c/doc/sofa_vml.lis Normal file
View File

@@ -0,0 +1,307 @@
sofa_vml.lis 2013 October 8
--------------------------
SOFA Vector/Matrix Library
--------------------------
PREFACE
The routines described here comprise the SOFA vector/matrix library.
Their general appearance and coding style conforms to conventions
agreed by the SOFA Board, and their functions, names and algorithms have
been ratified by the Board. Procedures for soliciting and agreeing
additions to the library are still evolving.
PROGRAMMING LANGUAGES
The SOFA routines are available in two programming languages at present:
Fortran 77 and ANSI C.
There is a one-to-one relationship between the two language versions.
The naming convention is such that a SOFA routine referred to
generically as "EXAMPL" exists as a Fortran subprogram iau_EXAMPL and a
C function iauExampl. The calls for the two versions are very similar,
with the same arguments in the same order. In a few cases, the C
equivalent of a Fortran SUBROUTINE subprogram uses a return value rather
than an argument.
GENERAL PRINCIPLES
The library consists mostly of routines which operate on ordinary
Cartesian vectors (x,y,z) and 3x3 rotation matrices. However, there is
also support for vectors which represent velocity as well as position
and vectors which represent rotation instead of position. The vectors
which represent both position and velocity may be considered still to
have dimensions (3), but to comprise elements each of which is two
numbers, representing the value itself and the time derivative. Thus:
* "Position" or "p" vectors (or just plain 3-vectors) have dimension
(3) in Fortran and [3] in C.
* "Position/velocity" or "pv" vectors have dimensions (3,2) in Fortran
and [2][3] in C.
* "Rotation" or "r" matrices have dimensions (3,3) in Fortran and [3][3]
in C. When used for rotation, they are "orthogonal"; the inverse of
such a matrix is equal to the transpose. Most of the routines in
this library do not assume that r-matrices are necessarily orthogonal
and in fact work on any 3x3 matrix.
* "Rotation" or "r" vectors have dimensions (3) in Fortran and [3] in C.
Such vectors are a combination of the Euler axis and angle and are
convertible to and from r-matrices. The direction is the axis of
rotation and the magnitude is the angle of rotation, in radians.
Because the amount of rotation can be scaled up and down simply by
multiplying the vector by a scalar, r-vectors are useful for
representing spins about an axis which is fixed.
* The above rules mean that in terms of memory address, the three
velocity components of a pv-vector follow the three position
components. Application code is permitted to exploit this and all
other knowledge of the internal layouts: that x, y and z appear in
that order and are in a right-handed Cartesian coordinate system etc.
For example, the cp function (copy a p-vector) can be used to copy
the velocity component of a pv-vector (indeed, this is how the
CPV routine is coded).
* The routines provided do not completely fill the range of operations
that link all the various vector and matrix options, but are confined
to functions that are required by other parts of the SOFA software or
which are likely to prove useful.
In addition to the vector/matrix routines, the library contains some
routines related to spherical angles, including conversions to and
from sexagesimal format.
Using the library requires knowledge of vector/matrix methods, spherical
trigonometry, and methods of attitude representation. These topics are
covered in many textbooks, including "Spacecraft Attitude Determination
and Control", James R. Wertz (ed.), Astrophysics and Space Science
Library, Vol. 73, D. Reidel Publishing Company, 1986.
OPERATIONS INVOLVING P-VECTORS AND R-MATRICES
Initialize
ZP zero p-vector
ZR initialize r-matrix to null
IR initialize r-matrix to identity
Copy/extend/extract
CP copy p-vector
CR copy r-matrix
Build rotations
RX rotate r-matrix about x
RY rotate r-matrix about y
RZ rotate r-matrix about z
Spherical/Cartesian conversions
S2C spherical to unit vector
C2S unit vector to spherical
S2P spherical to p-vector
P2S p-vector to spherical
Operations on vectors
PPP p-vector plus p-vector
PMP p-vector minus p-vector
PPSP p-vector plus scaled p-vector
PDP inner (=scalar=dot) product of two p-vectors
PXP outer (=vector=cross) product of two p-vectors
PM modulus of p-vector
PN normalize p-vector returning modulus
SXP multiply p-vector by scalar
Operations on matrices
RXR r-matrix multiply
TR transpose r-matrix
Matrix-vector products
RXP product of r-matrix and p-vector
TRXP product of transpose of r-matrix and p-vector
Separation and position-angle
SEPP angular separation from p-vectors
SEPS angular separation from spherical coordinates
PAP position-angle from p-vectors
PAS position-angle from spherical coordinates
Rotation vectors
RV2M r-vector to r-matrix
RM2V r-matrix to r-vector
OPERATIONS INVOLVING PV-VECTORS
Initialize
ZPV zero pv-vector
Copy/extend/extract
CPV copy pv-vector
P2PV append zero velocity to p-vector
PV2P discard velocity component of pv-vector
Spherical/Cartesian conversions
S2PV spherical to pv-vector
PV2S pv-vector to spherical
Operations on vectors
PVPPV pv-vector plus pv-vector
PVMPV pv-vector minus pv-vector
PVDPV inner (=scalar=dot) product of two pv-vectors
PVXPV outer (=vector=cross) product of two pv-vectors
PVM modulus of pv-vector
SXPV multiply pv-vector by scalar
S2XPV multiply pv-vector by two scalars
PVU update pv-vector
PVUP update pv-vector discarding velocity
Matrix-vector products
RXPV product of r-matrix and pv-vector
TRXPV product of transpose of r-matrix and pv-vector
OPERATIONS ON ANGLES
ANP normalize radians to range 0 to 2pi
ANPM normalize radians to range -pi to +pi
A2TF decompose radians into hours, minutes, seconds
A2AF decompose radians into degrees, arcminutes, arcseconds
AF2A degrees, arcminutes, arcseconds to radians
D2TF decompose days into hours, minutes, seconds
TF2A hours, minutes, seconds to radians
TF2D hours, minutes, seconds to days
CALLS: FORTRAN VERSION
CALL iau_A2AF ( NDP, ANGLE, SIGN, IDMSF )
CALL iau_A2TF ( NDP, ANGLE, SIGN, IHMSF )
CALL iau_AF2A ( S, IDEG, IAMIN, ASEC, RAD, J )
D = iau_ANP ( A )
D = iau_ANPM ( A )
CALL iau_C2S ( P, THETA, PHI )
CALL iau_CP ( P, C )
CALL iau_CPV ( PV, C )
CALL iau_CR ( R, C )
CALL iau_D2TF ( NDP, DAYS, SIGN, IHMSF )
CALL iau_IR ( R )
CALL iau_P2PV ( P, PV )
CALL iau_P2S ( P, THETA, PHI, R )
CALL iau_PAP ( A, B, THETA )
CALL iau_PAS ( AL, AP, BL, BP, THETA )
CALL iau_PDP ( A, B, ADB )
CALL iau_PM ( P, R )
CALL iau_PMP ( A, B, AMB )
CALL iau_PN ( P, R, U )
CALL iau_PPP ( A, B, APB )
CALL iau_PPSP ( A, S, B, APSB )
CALL iau_PV2P ( PV, P )
CALL iau_PV2S ( PV, THETA, PHI, R, TD, PD, RD )
CALL iau_PVDPV ( A, B, ADB )
CALL iau_PVM ( PV, R, S )
CALL iau_PVMPV ( A, B, AMB )
CALL iau_PVPPV ( A, B, APB )
CALL iau_PVU ( DT, PV, UPV )
CALL iau_PVUP ( DT, PV, P )
CALL iau_PVXPV ( A, B, AXB )
CALL iau_PXP ( A, B, AXB )
CALL iau_RM2V ( R, P )
CALL iau_RV2M ( P, R )
CALL iau_RX ( PHI, R )
CALL iau_RXP ( R, P, RP )
CALL iau_RXPV ( R, PV, RPV )
CALL iau_RXR ( A, B, ATB )
CALL iau_RY ( THETA, R )
CALL iau_RZ ( PSI, R )
CALL iau_S2C ( THETA, PHI, C )
CALL iau_S2P ( THETA, PHI, R, P )
CALL iau_S2PV ( THETA, PHI, R, TD, PD, RD, PV )
CALL iau_S2XPV ( S1, S2, PV )
CALL iau_SEPP ( A, B, S )
CALL iau_SEPS ( AL, AP, BL, BP, S )
CALL iau_SXP ( S, P, SP )
CALL iau_SXPV ( S, PV, SPV )
CALL iau_TF2A ( S, IHOUR, IMIN, SEC, RAD, J )
CALL iau_TF2D ( S, IHOUR, IMIN, SEC, DAYS, J )
CALL iau_TR ( R, RT )
CALL iau_TRXP ( R, P, TRP )
CALL iau_TRXPV ( R, PV, TRPV )
CALL iau_ZP ( P )
CALL iau_ZPV ( PV )
CALL iau_ZR ( R )
CALLS: C VERSION
iauA2af ( ndp, angle, &sign, idmsf );
iauA2tf ( ndp, angle, &sign, ihmsf );
i = iauAf2a ( s, ideg, iamin, asec, &rad );
d = iauAnp ( a );
d = iauAnpm ( a );
iauC2s ( p, &theta, &phi );
iauCp ( p, c );
iauCpv ( pv, c );
iauCr ( r, c );
iauD2tf ( ndp, days, &sign, ihmsf );
iauIr ( r );
iauP2pv ( p, pv );
iauP2s ( p, &theta, &phi, &r );
d = iauPap ( a, b );
d = iauPas ( al, ap, bl, bp );
d = iauPdp ( a, b );
d = iauPm ( p );
iauPmp ( a, b, amb );
iauPn ( p, &r, u );
iauPpp ( a, b, apb );
iauPpsp ( a, s, b, apsb );
iauPv2p ( pv, p );
iauPv2s ( pv, &theta, &phi, &r, &td, &pd, &rd );
iauPvdpv ( a, b, adb );
iauPvm ( pv, &r, &s );
iauPvmpv ( a, b, amb );
iauPvppv ( a, b, apb );
iauPvu ( dt, pv, upv );
iauPvup ( dt, pv, p );
iauPvxpv ( a, b, axb );
iauPxp ( a, b, axb );
iauRm2v ( r, p );
iauRv2m ( p, r );
iauRx ( phi, r );
iauRxp ( r, p, rp );
iauRxpv ( r, pv, rpv );
iauRxr ( a, b, atb );
iauRy ( theta, r );
iauRz ( psi, r );
iauS2c ( theta, phi, c );
iauS2p ( theta, phi, r, p );
iauS2pv ( theta, phi, r, td, pd, rd, pV );
iauS2xpv ( s1, s2, pv );
d = iauSepp ( a, b );
d = iauSeps ( al, ap, bl, bp );
iauSxp ( s, p, sp );
iauSxpv ( s, pv, spv );
i = iauTf2a ( s, ihour, imin, sec, &rad );
i = iauTf2d ( s, ihour, imin, sec, &days );
iauTr ( r, rt );
iauTrxp ( r, p, trp );
iauTrxpv ( r, pv, trpv );
iauZp ( p );
iauZpv ( pv );
iauZr ( r );

BIN
20200721/c/doc/sofa_vml.pdf Normal file

Binary file not shown.

58
20200721/c/doc/title.lis Normal file
View File

@@ -0,0 +1,58 @@
T H E
SSSSS OOOOOO FFFFFFFFFFFFF AAAAAAA
SSSSSSSSSS OOOOOOOOOOOO FFFFFFFFFFFF AAAAAAAA
SSSSSSSSSSS OOOOOOOOOOOOOO FFFFFFFFFFFF AAAA AAAA
SSSS S OOOOOO OOOOO FFFF AAAA AAAA
SSSSS OOOOO OOOO FFFFF AAAA AAAA
SSSSSSSSSS OOOO OOOOO FFFFFFFFFFFF AAAA AAAA
SSSSSSSSS OOOOO OOOO FFFFFFFFFFFF AAAAAAAAAAAAA
SSSSS OOOO OOOO FFFF AAAAAAAAAAAAAA
S SSSS OOOOO OOOOO FFFF AAAAAAAAAAAAAAA
SSSSSSSSSSS OOOOOOOOOOOOO FFFF AAAA AAAAA
SSSSSSSSS OOOOOOOOOO FFFF AAAA AAAAA
SSSS OOOOO FFFF AAAA AAAAA
S O F T W A R E
L I B R A R I E S
International Astronomical Union
Division A: Fundamental Astronomy
Standards Of Fundamental Astronomy Board
Release 16
2020 July 21

BIN
20200721/c/doc/title.pdf Normal file

Binary file not shown.