SOFA banner

  SOFA Library Issue 2021-05-12 for ANSI C

This is the master page for the SOFA Library Issue 2021-05-12 for ANSI C. From here you can find your way to all the resources comprising this Issue, including notes and source download pages.


Issue 2021-05-12 is the eighteenth release of the SOFA Library for ANSI C.


The complete SOFA Library source set is available in a single download bundle for Unix (including macOS) or Windows systems. This is the preferred method of obtaining the SOFA Library. The ANSI C SOFA Library Issue 2021-05-12 is available to download in various formats.

Please note: Tarballs contain files with Unix line-terminations and Zip archives contain files with DOS line-terminations. Please download the appropriate file for your operating system.

Structure created by unpacking the ANSI C release tar / zip files:

---- sofa
       ---- 20210512 (issue date) ---- ... any other (sub-)releases ---- ...
                |                                   |
                ---- c (00READ.ME)                  ---- c (00READ.ME)  
                     |                                   |
                     ---- doc (*.lis, *.pdf)             ---- doc (*.lis, *.pdf)
                     |                                   |
                     ---- src (*.c, *.h, makefile)       ---- src (*.c, *.h, makefile)

  Additional Information - Changes to sofa.h and sofam.h

The information in sofa.h and sofam.h has been rearranged to eliminate problems encountered by C++ developers. The change has

  1. moved the structures from sofam.h into sofa.h and
  2. thus eliminated the #include "sofam.h" from sofa.h.

The consequence of this change for SOFA functions is that an explicit #include "sofam.h" has had to be added to some of them.

Previously, sofam.h contained both structure definitions and constants, and was #included by sofa.h, which was otherwise dedicated to function prototypes. The difficulty was that short uppercase names in sofam.h were colliding with C++ variables.

The consequence of the change for developers is that any application that uses constants from sofa.h will now need an explicit #include . It should, however, be noted that the contents of sofam.h are not formally part of the SOFA API, and so such an application is vulnerable to future changes. Rather than adding an #include to applications, it would be better to replicate the needed macros in the user code.

This problem does not affect the Fortran library.


The SOFA product documentation is available in Adobe Portable Document Format (pdf) or plain ASCII text files to guarantee platform independence.The manual may be downloaded as a single file or in sections if you prefer.

PLEASE NOTE: Any updates, improvements or corrections to the documentation for this release will be posted here.

  • Complete manual [pdf (485393 bytes), ASCII].
Sections (in order):
  • Title page [pdf (6087 bytes), ASCII].
  • Introduction [pdf (15039 bytes), ASCII].
  • Vector/Matrix library [pdf (15284 bytes), ASCII].
  • Astronomy Library [pdf (23708 bytes), ASCII].
  • Routine descriptions (Complete manual only).
  • Copyright notice [pdf (11612 bytes), ASCII].
  • Constants [pdf (8483 bytes), ASCII].
  • Review Board [pdf (8610 bytes), ASCII].
  • Changes [pdf (11442 bytes), ASCII] since the previous release.



The source for the SOFA Library may be viewed from the complete list index. In addition the routines are indexed by section and subsection:
@ IAU SOFA Center
Copyright © 2001-2021 International Astronomical Union
Last modified: 2021 May 11
Download Adobe Acrobat Reader