Initial commit
This commit is contained in:
39
20200721/c/doc/board.lis
Normal file
39
20200721/c/doc/board.lis
Normal 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
BIN
20200721/c/doc/board.pdf
Normal file
Binary file not shown.
101
20200721/c/doc/changes.lis
Normal file
101
20200721/c/doc/changes.lis
Normal 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
BIN
20200721/c/doc/changes.pdf
Normal file
Binary file not shown.
54
20200721/c/doc/consts.lis
Normal file
54
20200721/c/doc/consts.lis
Normal 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
BIN
20200721/c/doc/consts.pdf
Normal file
Binary file not shown.
25
20200721/c/doc/contents.lis
Normal file
25
20200721/c/doc/contents.lis
Normal 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
BIN
20200721/c/doc/contents.pdf
Normal file
Binary file not shown.
111
20200721/c/doc/copyr.lis
Normal file
111
20200721/c/doc/copyr.lis
Normal 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
BIN
20200721/c/doc/copyr.pdf
Normal file
Binary file not shown.
215
20200721/c/doc/intro.lis
Normal file
215
20200721/c/doc/intro.lis
Normal 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
BIN
20200721/c/doc/intro.pdf
Normal file
Binary file not shown.
18903
20200721/c/doc/manual.lis
Normal file
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
BIN
20200721/c/doc/manual.pdf
Normal file
Binary file not shown.
BIN
20200721/c/doc/sofa_ast_c.pdf
Normal file
BIN
20200721/c/doc/sofa_ast_c.pdf
Normal file
Binary file not shown.
BIN
20200721/c/doc/sofa_ast_summary.pdf
Normal file
BIN
20200721/c/doc/sofa_ast_summary.pdf
Normal file
Binary file not shown.
751
20200721/c/doc/sofa_lib.lis
Normal file
751
20200721/c/doc/sofa_lib.lis
Normal 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
BIN
20200721/c/doc/sofa_lib.pdf
Normal file
Binary file not shown.
BIN
20200721/c/doc/sofa_pn_c.pdf
Normal file
BIN
20200721/c/doc/sofa_pn_c.pdf
Normal file
Binary file not shown.
BIN
20200721/c/doc/sofa_ts_c.pdf
Normal file
BIN
20200721/c/doc/sofa_ts_c.pdf
Normal file
Binary file not shown.
307
20200721/c/doc/sofa_vml.lis
Normal file
307
20200721/c/doc/sofa_vml.lis
Normal 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
BIN
20200721/c/doc/sofa_vml.pdf
Normal file
Binary file not shown.
58
20200721/c/doc/title.lis
Normal file
58
20200721/c/doc/title.lis
Normal 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
BIN
20200721/c/doc/title.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user