NOVAS User Updates and FAQ
Skip navigation

Known Issues

NOVAS F3.1 NOVAS_F3.1.f: WOBBLE has incorrect sign in rotation matrix

A previously reported sign error in the YY (middle) element of the rotation matrix in subroutine WOBBLE (Eq. 6.15 in Kaplan 2005) was corrected in the C version of NOVAS, but not the Fortran version.

This sign omission, in the first term of that element, in many cases is of negligible concern. The angles used are extremely small and YY will be dominated by the 2nd term, which for practical concerns reduces to YY = 1. The calculation error introduced by this sign flip is of the order 10-21 radians.

This mistake will be corrected in the next version of NOVAS. However, if desired, the following correction to the WOBBLE subroutine in the Fortran source code (NOVAS_F3.1.f) can be made.

Line 3222 (in subroutine WOBBLE) as released reads


However, it should read



Kaplan, George H. United States Naval Observatory Circular No. 179: The IAU Resolutions on Astronomical Reference Systems, Time Scales, and Earth Rotation Models. US Naval Observatory, Washington: 2005

NOVAS C3.1 novas.c: sidereal_time units bug

When NOVAS C3.1 computes Greenwich Mean Sidereal Time (GMST; gst_type = 0) using the method based on the Celestial Intermediate Origin (CIO; method = 0), the units for the equation of the equinox are calculated incorrectly.

In sidereal_time, the line

ha_eq -= (eqeq / 240.0);

should read

ha_eq -= (eqeq / 3600.0);

since the eqeq variable has been previously converted to arcseconds instead of seconds in time.

NOVAS C3.1 eph_manager.c: ephem_close does not reset the EPHFILE pointer

The check to see if an ephemeris file is already open will always be true if an ephemeris file was open at any point in the program, even if ephem_close was called. ephem_close does not reset the EPHFILE pointer to NULL. This bug will be addressed during the next overhaul of the ephemeris-access software.

Memory errors occur when a call to ephem_close occurs between two calls to ephem_open. The second time ephem_open is called, if (EPHFILE) is TRUE because EPHFILE is still the address that was assigned the first time.

Two calls to ephem_open without an intervening call to ephem_close will work because the EPHFILE still is open when if (EPHFILE) checks during the second ephem_open call.

Users who open multiple ephemeris files within a particular program may wish to edit the ephem_close function as follows:

  error = (short int) fclose (EPHFILE);
  EPHFILE = NULL; // new line, reset pointer
  free (BUFFER);
return error;


Is my NOVAS documentation up-to-date?

No revisions have been issued for the NOVAS 3.1 user's guides to date. USNO Circular 180 contains the user's guides for NOVAS F3.0 and C3.0; Rev. C is the current, and final version, of USNO Circular 180 and its component user's guides. No updates have been issued for USNO Circular 181, which applies to both versions 3.0 and 3.1. Click below to download the most recent version of each.

Python users should consult the docstrings included in their download or the C User's guide for additional information.

How do I cite NOVAS 3.1?

If you use NOVAS, please send us an email that outlines your application. This information helps justify further improvements to NOVAS. Your comments and suggestions are also welcome.

The official references for NOVAS F3.1 and C3.1 are the corresponding user's guides, which may be cited as follows:

NOVAS Python may be cited as follows:

In addition, we ask that you also direct your readers to the NOVAS page.

How do I cite earlier versions of NOVAS?

NOVAS 3.0 may be cited as follows:

The official reference for all previous versions of NOVAS is the 1990 software report announcing its release, which is