analemma, a FORTRAN90 code which evaluates the equation of time, based on a C program by Brian Tung.

The program can compute and plot the equation of time, the declination, and an analemma curve for various orbital parameters. The analemma is the curve traced by the position of the sun, measured at clock noon, over a year.

The program creates data and command files which must be processed by gnuplot():

        gnuplot < analemma_commands.txt
which will create PNG images of the analemma, the declination, and the equation of time.


analemma ecc lon obliq
where the optional input parameters are:

The program with no options uses the following default values:


The computer code and data files described and made available on this web page are distributed under the MIT license


analemma is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:


calpak, a FORTRAN90 code which makes various calendar calculations;

dates, a dataset directory which contains lists of dates in various calendar systems.

gnuplot_test, FORTRAN90 codes which write data and command files so that gnuplot() can create plots.

weekday, a FORTRAN90 code which determines the day of the week corresponding to a given date, such as 14 October 1066, Julian calendar, ... which was a Saturday.


Original C version by Brian Tung. FORTRAN90 version by John Burkardt.


  1. Brian Tung,
    Figure Eight in the Sky, a new perspective on an old fascination,
    Astronomical Games, August 2002,

Source Code:

Last revised on 26 August 2021.