Home
Commercial:
Artwork
Software
Teaching materials
Bicycle sag support
Free:
Family Album
Pretty astronomy pictures
Some astronomy codes
... Stellar equation of states
... EOS with ionization
... EOS for supernovae
... Chemical potentials
... Stellar atmospheres
... Voigt Function
... Polytropic stars
... Cold white dwarfs
... Hotter white dwarfs
... Cold neutron stars
... Stellar opacities
... Neutrino energy loss rates
... Ephemeris routines
... Fermi-Dirac functions
... Galactic chemical evolution
... Nuclear reaction networks
... Nuclear statistical equilibrium
... Laminar deflagrations
... CJ detonations
... ZND detonations
... Fitting to conic sections
... Unusual linear algebra
... Derivatives on uneven grids
... Pentadiagonal solver
... Quadratics, Cubics, Quartics
... Supernova light curves
... Exact Riemann solutions
... 1D PPM Hydrodynamics
... Verification problems
... EZ stellar evolution
... FLASH code
... Mesa code
Some astronomy talks
Some research
Bicycle adventures
Contact us:
J.D. Maldonado
F.X.Timmes,
my vitae
|
These routines compute the state vectors for the sun, the nine
planets, the moon, the two martian satellites, four of the Galilean
satellites, eight of saturns moons, six of uranian moons, 300 comets,
and 14790 asteroids and other minor bodies.
The answers returned compare very
favorably with the JPL
Horizons answers. These routines have been successfully
run on sgi, linux, and mac os x boxes under fortran 77 and fortran 90 compilers.
A laughably rough and completely out of date users guide
readme_ephem is avaliable.
Xephem by Elwood
Downey is excellent, free, includes source code, and is a lot fun.
Starry Night is not free,
but a visually outstanding program, particularily on openGL systems.
For speed and disk space reasons, both of these programs
use the VSOP87 routines for the planetary state vectors;
none use the JPL ephemeris files and US Naval Observatory routines
as given below.
There are five (optionally six) data files to download:
unxp1600-2200_ppc_mac_xlf.405
unxp1600-2200_intel_mac_ifort.405
|
are 55MB JPL DE405 unix binary files for the
sun, planets, and moon from +1600AD to +2200AD.
The first is for machines/compilers that are big endian
with record lengths in bytes (e.g., a powerpc mac under xlf or absoft).
The first is for machines/compilers that are little endian
with record lengths in single precision words (e.g., an intel mac under ifort).
To download either binary file, hold the
mouse button down and choose "save this link as".
If you want to roll your own JPL binaries, click
here.
|
|
unxm3000-p3000.406
|
this file is optional.
it is a 199MB JPL DE406 unix binary file for the
sun, planets, and moon from -3000BC to +3000AD.
Let me know if you want this big file, or all 650 MB
of DE406 in ascii format.
|
|
comet_elements.dat
|
is an ascii file from JPL containing osculatory
orbital elements for about 300 comets.
Get updated versions from the JPL
DATSCOM site.
|
|
numasteroids_elements.dat
|
is an ascii file from JPL containing osculatory
orbital elements for about 14790 asteroids.
Get updated versions from the JPL
DATSCOM site.
|
|
ephem.e15
|
is an ascii file from Jay Lieske containing the
J2000 parameters for the Galilean satellites.
|
|
redtass7.dat
|
is ascii file from
BDL containing time series
arguments for eight of saturn's satellites.
Also check out the IERS site.
|
There are twelve files that form the core library to download:
|
position_routine.f
|
contains a single high level routine that
returns the ephemeris.
This is the main routine that all the application routines call.
|
|
ephem.dek
|
contains common block communications
for all the core routines and applications.
|
|
initialize_routine.f
|
does all the initializations.
|
|
jpl_routines.f
|
contains a customized version of the jpl
ephemeris routines.
They open, read, and interpolate the JPL binary
files. It is imperative that you set the record length,
varible nrecl in subroutine fsizer2, for your machine and compiler.
As it is, its set for one record per single precision word.
|
|
novas_routines.f
|
contains a customized version the USNO's
NOVAS
routines.
They call the routines in the jpl_routines file.
|
|
fxt_routines.f
|
contains routines for converting dates and
times,
coordinate transforms, state vectors to orbital elements,
root and mimima finders, string choppers,
exact two-body solutions, and orbit integrators.
|
|
marsat_routines.f
|
gets the planetocentric state vectors of the martian satellites.
based on Chapront-Touze, M., A&A 240, 159, 1990.
|
|
lieske_routines.f
|
gets the planetocentric state vectors of the jovian satellites.
based on Lieske, J. H., A&A Supp. 129, 205, 1998.
|
|
satsat_routines.f
|
gets the planetocentric state vectors of saturn's satellites.
based on Vienne, A. & Duriez, L., A&A 297, 588, 1995.
|
|
gust86_routines.f
|
gets the planetocentric state vectors of the uranian satellites.
based on Laskar, J. & Jacobson, R. A., A&A 188, 212, 1987.
|
|
glue.f
|
system and compiler dependent stuff like opening files,
getting the date and time out of the machine, and so on.
you may need to adjust some of the calls in here
depending on your machine and compiler.
|
|
trig_degrees.f
|
for silly but popular compilers (e.g., g77) that don't have the circular functions
in degrees as intrinsic functions. if your compiler supports degree trig functions,
then you could omit this routine if you comment out (or remove) the declarations to
things like 'cosd'. it's pretty easy to do.
|
Here are nine applications of the library.
Each application inserts the library through fortran include statements.
You can do something fancier (e.g., object libraries) if you wish.
|
positions.f
|
reports the state vectors & angular coordinates
in equatorial, ecliptic, and altitude-azimuth coordinate systems
for either geocentric, heliocentric or topographic centers.
|
|
within.f
|
finds the dates when any two objects
are within a given angular seperation.
|
|
rise.f
|
gives the rise, transit & set time of any object.
It uses a bombproof, but slower, search method.
|
|
rise2.f
|
gives the rise, transit & set time of any object.
Using a fast iteration method, it can be fooled in unusual cases
such as near the artic circle when the sun grazes the horizon.
|
|
equinox.f
|
is a program that gives the dates of equinoxes and solstices.
|
|
periheloin.f
|
is a program that gives the dates of aphelions and perihelions.
D. D'Antonio wanted a list of Earth's aphelions and perihelions,
so here are some
periheleions and
apheleions.
|
|
moon_phases.f
|
gives the times of the lunar phases.
For a new or full moon, an alert is printed if conditions are
conducive for a potential lunar or solar eclipse. Included is
code that will find all dates of blue moons within a year,
and all dates that are a full moon and friday the 13th.
|
|
solar_eclipse.f
|
gives the geographical track
of a solar eclipse centerline, reporting total, partial, annular, or
non-central phases. In the case of a total or partial eclipse
the duration of the solar eclipse.
|
|
retrograde.f
|
is a program that gives the dates of retrograde motion.
|
|