Here is an overview of my Fortran planetary ephemeris service, implemented in subroutine ephem.f. This subroutine provides the position and velocity of any of the nine planets or Moon. The eight planets Mercury through Neptune use the "VSOP87" theory, whereas Pluto and the Moon are handled by separate modules, using different theories. The data which are required by these subroutines are all contained in memory--no files are used. The result may be obtained as either a true geometric position or apparent position (viewed from the Earth). The reference frame may be either equatorial (ECI), ecliptic, or heliocentric, and the coordinate system may be either spherical or rectangular. (The result type is selected by input parameters.) Here is the subroutine call tree (with a brief explanation of each called subroutine or function): ephem (the top-level subroutine described above) ut2td -- convert Universal Time to Dynamic Time hcpvd -- obtain the true heliocentric position and velocity of one of the 8 planets, using the VSOP87D theory (P. Bretagnon and G. Francou, Astron. Astrophys. v. 202 (1988), pp. 309-315). vsop87 -- block data subprogram holding the harmonic series coefficients of the VSOP87D theory. (This subroutine is actually created by a separate stand-alone Fortran main program, make_vsop87.f, which reads from the "D" coefficient files obtained from the VSOP87 author's anonymous ftp site. A significant portion of the "total algorithm" is embodied in this program. pluto -- provides the heliocentric true or apparent position of Pluto (using the algorithm of J. Meeus in "Astronomical Algorithms", 2nd ed., Willmann-Bell, 1998). sphxyz -- convert between spherical and rectangular coordinates. moonpv -- provides the true geocentric position and velocity of the Moon, using the theory of M. Chapront-Touze and J. Chapront, "Lunar Tables and Programs from 4000 B.C. to A.D. 8000", Willmann-Bell, 1991. fk5 -- transform VSOP87 theory to the standard FK5 system. nutate -- provide nutation corrections to the ecliptic longitude and obliquity of the ecliptic. obliq -- provide the true obliquity of the ecliptic. equecl -- convert between the equatorial (ECI) and ecliptic reference frames. I have a make file (for Solaris) which creates a shareable object library which may be used by Fortran, C, or IDL clients. A different make file is required to create a shareable object library accessible by Java JNI clients. I also have IDL and Java interfaces to ephem.f (and some other useful astronomical services). A documentation file, astron.doc, which describes all of the services available in my astronomy library, is attached.