The te_gen-2.0.0 software package for generating time ephemerides from
information supplied by planetary ephemerides has been released.
Planetary ephemerides (such as those published by the JPL and INPOP
groups and which can be accessed by the recently released ephcom-3.0.0
software that is a companion project to te_gen) represent mankind's
best knowledge of the motions of all major solar system objects. Time
ephemerides represent mankind's best knowledge of the general
relativistic corrections that must be made to clocks that are located
near some reference point within the solar system (e.g., some point
near the Earth). Such clock corrections are required, for example, to
correctly predict the independent time variable of planetary
ephemerides from TT (terrestrial time).
The "te_gen" development effort is a subproject of the Time
Ephemerides project (http://timeephem.sourceforge.net) and is a
revival of the software (now designated as te_gen-1.0.0) released as a
companion to the paper by Irwin and Fukushima (1999,
http://articles.adsabs.harvard.edu/full/1999A&A...348..642I).
That paper provides useful scientific background for calculations of
time ephemerides, and work is in progress on a research note that
updates Section 2 of that paper consistent with IAU definitions
introduced since 1999. (http://timeephem.sf.net will link
to that research note when it is completed.)
David Howells, a developer with outstanding skills and an interest in
chronology, was recruited by Alan W. Irwin to the Time Ephemerides
project last year. David's primary focus since joining the project
has been on developing many improvements to ephcom that have
culminated in the recent ephcom-3.0.0 release. Those improvements
have also considerably helped the te_gen project since te_gen relies
on ephcom to interpolate information necessary for the time-ephemeris
calculation from planetary ephemerides, and ephcom can be used to
manipulate (e.g., convert from ascii to binary form) and interpolate
(i.e., provide results at a given time from the binary form of
ephemerides) time-ephemeris results produced by te_gen. David has
also helped directly with the te_gen-2.0.0 release by strongly
participating in the testing effort for that software.
David and Alan would like to give a big vote of thanks to Arjen Markus
who spent many hours release testing te_gen-2.0.0 (and ephcom-3.0.0)
on MINGW/MSYS and MSVC/ifort MS Windows platforms that were not
accessible to us. Alan would like to thank Hervé Manche of the INPOP
group for facilitating detailed comparisons with results from that
group's implementation of time-ephemeris integral calculation which
were useful for debugging the O(c^{-4}) corrections to the 1999
calculation of that integral that have been implemented for
te_gen-2.0.0.
The most important changes in this release relative to te_gen-1.0.0
(released in 1999) are as follows:
* WARNING. Although the inner details of the implementation remain
similar to the 1999 version of this software, how this software is
named and organized into a library and how utilities link to that
library has been completely changed since the 1999 effort. So it is
highly recommended that the users should use the new CMake-based
build system for te_gen to build and test this software, and users
should follow the man pages for the te_gen_header and
te_gen_chebyshev utilities or follow what the test system does to
generate time ephemerides for themselves.
* The license for te_gen has been changed from GPL to LGPL.
* A new CMake-based build system has been implemented. This new build
system allows users to build, install, and test te_gen on Linux with
the gcc and gfortran compilers, on Windows with either the MinGW gcc
or gfortran compilers or the MSVC/ifort compilers, and (in
principle) on Mac OS X with the gcc and gfortran compilers. Many of
the tests configured by the build system (in the build-tree and also
automatically duplicated in the installed examples tree) takes
advantage of the Python bindings for PLplot and ephcom-3.0.0 to use
configured python scripts to plot residuals between time-ephemeris
integral results calculated by te_gen-2.0.0, te_gen-1.0.0, and the
INPOP group.
* The te_gen code now has a Fortran 95 interface which automatically
checks whether users are calling the Fortran routines with the
correct number and kind of arguments. This is a substantial
improvement to the previous Fortran 77 interface in 1999 which (by
Fortran 77 definition) had no such checks.
* The new version of the code is a factor of three faster than the
1999 version because at any specified time the required planetary
ephemeris data are all interpolated with one efficient call (to the
Fortran 95 version of ephcom_interpolate_list in ephcom-3.0.0)
rather than an inefficient series of calls for each major body in
the solar system to dpleph in the JPL legacy Fortran code for
interpolating ephemerides (or its equivalent in the deprecated
Fortran API for ephcom-3.0.0). When this software efficiency
improvement is combined with the hardware improvement for PC's since
1999, long time ephemerides such as TE406 which used to take ~30
hours to compute, now only require ~10 minutes (!) to compute.
* The te_gen source code has been substantially cleaned up.
* The slope correction for the time-ephemeris integral (or
mathematically equivalent subtraction of a constant from the
time-ephemeris integrand) is now done using a method with better
numerical properties than the method used in 1999. The result is a
small reduction in floating-point noise in the time-ephemeris
integral results that are generated by te_gen.
* The new version of te_gen code can now be used to generate time
ephemerides from INPOP planetary ephemerides (as well as JPL
planetary ephemerides).
* The new version of the code includes O(c^{-4}) corrections to the
time-ephemeris integral results and corresponding corrections to the
time-ephemeris vector results produced by te_gen. The
time-ephemeris integral can be used to determine general
relativistic clock corrections at geocentre, and the time ephemeris
vector can be used to help correct those geocentric results to
observing locations anywhere near the geocentre using the first term
of a Taylor series. (For more details see the research note that
when completed will be linked from http://timeephem.sf.net.)
* The documentation of te_gen-2.0.0 is substantially improved compared
to the 1999 version. This release includes substantial
documentation of the library API via doxygen and documentation of
the te_gen utilities via hand-crafted man pages.
For details of all te_gen-2.0.0 changes since the release of te_gen-1.0.0
please consult the ChangeLog.release file.
Details of the ephcom-3.0.0 and te_gen-2.0.0 tests:
Because te_gen depends so strongly on ephcom, the ephcom-3.0.0 and
te_gen-2.0.0 releases were tested together. These releases have been
tested on the following Linux platforms using the gcc and gfortran
compilers: Debian wheezy on x86-64 hardware; Fedora 17 on x86-64
hardware; and RHEL-6.3 on 64-bit PowerPC hardware. These releases
have also been tested on the following Windows platforms: MinGW
compilers (gcc and gfortran) on a 32-bit Wine-1.5.19 platform built on
the Debian wheezy x86-64 system; MinGW compilers on MS Windows; and
MSVC/ifort compilers on MS Windows.
The test suites for both ephcom-3.0.0 and te_gen-2.0.0 has been
implemented with bash, env, tr, cat, comp, and sed. Those apps are
all routinely available on Linux platforms and also are provided by
MSYS for Windows platforms. So a prerequisite for all the Windows
tests was that MSYS had to be installed and on the PATH. Another
prerequisite of the ephcom build is Python which is routinely
available on both Linux and Windows. The te_gen-2.0.0 test suite
indirectly tests ephcom by interpolating planetary-ephemeris results
and manipulating the generated time-ephemeris results afterwards using
ephcom utilities. That test suite requires all the above
prerequisites and also PLplot. (A large subset of the tests
implemented by the te_gen-2.0.0 test suite uses configured Python
scripts which use the Python bindings for ephcom-3.0.0 and
PLplot-5.9.x to compare interpolated time ephemeris results and plot
the residuals between those results as a function of time.) PLplot is
readily available on Linux in source code and binary form and on
Windows in source code form. On both platforms PLplot source code is
readily built into binary form using the cross-platform CMake-based
build system for PLplot.
The above combined tests check many aspects of the ephcom-3.0.0 and
te_gen-2.0.0 software. Ascii JPL ephemerides were converted to binary
ephemerides and compared in detail (using ephcom_headcmp and
ephcom_ephcmp) with external binary ephemerides for the same ephemeris
that were produced by the legacy JPL Fortran software. Those
ephcom-generated binary ephemerides were also tested (using
ephcom_testeph) against the testpo.* files that JPL provides for each
of its published planetary ephemerides. Time-ephemeris integral
results generated with the aid of ephcom interpolation of INPOP
planetary ephemeris results were graphically (with PLplot) compared
with the corresponding time-ephemeris integral results generated by
the independent INPOP software. For both planetary and time
ephemerides, the binary ephemeris form was converted to ascii form and
back to binary form again as a complete end-to-end consistency check
for the ephcom_eph2asc and ephcom_asc2eph software.
In all cases for the Linux platforms and the Wine platform all these
build and run-time tests gave excellent results for 8 different JPL
planetary ephemerides, 6 different INPOP planetary ephemerides, and
the 14 corresponding time ephemerides generated by te_gen-2.0.0.
The MS Windows tests were kindly done by Arjen Markus. Unfortunately,
those tests are currently limited by issues which
appear to be external to ephcom-3.0.0 and te_gen-2.0.0. For
example, Arjen found older versions of gfortran did not work correctly
with te_gen-2.0.0 so we recommend version 4.7.0 or later which solved the
issue for him. The Python bindings for PLplot and ephcom build fine
for MinGW but do not build correctly for MSVC for the debug case which
must be specifically avoided (for MSVC/ifort) by specifying the cmake
option -DCMAKE_BUILD_TYPE=Release. For more details about this issue
see
http://www.miscdebris.net/plplot_wiki/index.php?title=Install_Python.
Arjen also had to be careful about the method he used to put MSYS
(required for convenient testing) on the PATH for MSVC/ifort, but he
hasn't written up those details yet because he solved the problem for
a simple test software build with MSVC alone, but adding ifort to the
mix showed there were still interference issues between MSYS and
ifort. Therefore, it is going to take him a while to figure out a
method to allow MSYS and MSVC/ifort to both be on the PATH at the same
time.
Arjen was able to build and to successfully complete limited run-time
tests for MinGW on MS Windows. Those limits consist of using only one
planetary ephemeris and one corresponding time_ephemeris built by
te_gen with the PLplot testing results dropped because of an issue in
an early release candidate which has now been fixed. Because of our
comprehensive testing success with MinGW on Wine, and these good but
limited test results for MinGW on MS Windows, we are confident that
MinGW will work well for most ephcom-3.0.0 and te_gen-2.0.0 Windows
users who use MinGW-4.7.0 or later
Arjen was able to confirm that a pure (without MSYS on the PATH)
MSVC/ifort build completed without issues for both ephcom and te_gen,
and those executables could be run by hand without any issues (by
copying the libraries and executables over into the test framework
generated by MinGW + MSYS, and then running that test framework). But
putting MSYS on the PATH (required for convenient and comprehensive
testing) is currently problematic for the MSVC/ifort case, and if some
user figures that out, we would appreciate hearing about what the
solution is.
Test limitations:
A limitation of the above tests was the interpolation tests were only
done using control = 0 in the ephcom_interpolate_relative or
ephcom_interpolate_list argument lists. This implies those
interpolation routines were only tested for the case when
time-ephemeris integral results were returned with units of days (and
with no units for the dimensionless time derivative of that quantity),
and time-ephemeris vector results were returned with units of AU/day
(or AU/day^2 for the time derivative of that quantity). Non-zero
control values which allow possibilities of time units of seconds
rather than days and/or distance units of kilometres rather than
astronomical units in the returned interpolated quantities appear to
work but have only had minimal testing.
We believe that test coverage for ephcom-3.0.0 and te_gen-2.0.0 is
good for gcc/gfortran on Linux platforms, and good for MinGW gcc and
gfortran on Windows platforms, but other Windows compilers such as
MSVC/ifort have not had adequate testing yet. Worse yet, the Mac OS X
platform remains completely untested. It's possible that both
ephcom-3.0.0 and te_gen-2.0.0 will work right out of the box for Mac
OS X since that platform and Linux are Unix platforms, and a lot of
the Mac OS X Unix idiosyncrasies are taken care of by CMake's strong
cross-platform support. Anyhow, we urge Mac OS X users to try
ephcom-3.0.0 and te_gen-2.0.0 and report back issues (if any) to us so
we can fix them.
DETAILED CHANGELOG FOR THIS RELEASE
------------------------------------------------------------------------
r853 | airwin | 2013-01-14 17:26:32 -0800 (Mon, 14 Jan 2013) | 2 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/README.release
Commit final version of release notes for te_gen-2.0.0.
------------------------------------------------------------------------
r848 | airwin | 2013-01-11 03:13:04 -0800 (Fri, 11 Jan 2013) | 2 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/scripts/make_tarball.sh
M /trunk/time_ephemerides/te_gen/scripts/make_tarball.sh
Properly quote CFLAGS and FFLAGS that were specified for last commit.
------------------------------------------------------------------------
r847 | airwin | 2013-01-11 03:09:45 -0800 (Fri, 11 Jan 2013) | 8 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/scripts/make_tarball.sh
M /trunk/time_ephemerides/te_gen/scripts/make_tarball.sh
Tweak script to use more diagnostic gcc and gfortran options especially
including the -fvisibility=hidden option for gcc which tests for
any visibility issues that might affect the the Windows case.
Use VERBOSE=1 on all make commands to store complete
information in corresponding *.out files.
------------------------------------------------------------------------
r844 | airwin | 2013-01-09 14:50:06 -0800 (Wed, 09 Jan 2013) | 3 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/versions.cmake
M /trunk/time_ephemerides/te_gen/versions.cmake
Update VERSION to 3.0.0 for ephcom and 2.0.0 for te_gen in
preparation for the ephcom-3.0.0 and te_gen-2.0.0 releases.
------------------------------------------------------------------------
r843 | airwin | 2013-01-09 14:35:47 -0800 (Wed, 09 Jan 2013) | 13 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/scripts/make_tarball.sh
List out binary planetary ephemerides that have been installed by
ephcom and which are a prerequisite for this script to work correctly.
Tweak spacing of output.
Tested by Alan W. Irwin <airwin@users.sourceforge.net> using recent
comprehensive (14 planetary ephemerides tested, 14 time ephemerides
generated from those planetary ephemerides, and those 14 time
ephemerides tested) Linux test of ephcom (which used the ephcom
version of make_tarball.sh) and te_gen (which used this updated
script, the te_gen version of make_tarball.sh).
------------------------------------------------------------------------
r841 | airwin | 2013-01-08 22:03:39 -0800 (Tue, 08 Jan 2013) | 20 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/scripts/wine_scripts/set_mingw_msys_path.wine_sh
M /trunk/jpl_ephemerides/ephcom2/scripts/wine_scripts/set_msys_ephcom2.wine_sh
M /trunk/time_ephemerides/te_gen/scripts/wine_scripts/set_mingw_msys_path.wine_sh
M /trunk/time_ephemerides/te_gen/scripts/wine_scripts/set_msys_te_gen.wine_sh
Update wine source scripts to be the same as the revised ones used for
the latest comprehensive (and successful) tests on Wine.
The updates consist of improving the commentary, using ordinary
variables rather than environment variables where possible, and
confining the purpose of set_mingw_msys_path.wine_sh to just putting
CMake, MinGW, and MSYS on the PATH.
A bug in set_msys_te_gen.wine_sh was fixed so that PATH_NODLL was
changed from an ordinary variable (which the te_gen build script did
not have access to, thus clobbering the installed examples tree tests)
to an environment variable.
N.B. these scripts are useful for externally setting up MinGW/MSYS
testing on Wine (and presumably Windows). However, they are not used
internally by the build system so essentially these changes are the
equivalent of documentation changes, and therefore I feel comfortable
updating them this close to release.
------------------------------------------------------------------------
r840 | airwin | 2013-01-08 04:13:05 -0800 (Tue, 08 Jan 2013) | 14 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/ephemeris_tests.cmake
M /trunk/time_ephemerides/te_gen/installed_CMakeLists.txt.in
Make test targets work for installed examples for te_gen.
The results are good. For example, postscript residual plots
generated in the installed examples tree as the result of running
individual test targets or the test_everything target there are
identical (except for date, as expected) with the equivalent plots
made in the build tree. I have not bothered to implement the residual
plot comparison with my 1999 work in the installed examples tree
because that is a pretty specialized comparison largely of interest
only to me and which is already available to me in the build tree. But
that is the only restriction I am aware of on the tests currently
available in the installed examples tree.
------------------------------------------------------------------------
r839 | airwin | 2013-01-08 04:01:30 -0800 (Tue, 08 Jan 2013) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/utils/CMakeLists.txt
Incorporate utilities into the cmake modules describing te_gen. This
allows projects that include those modules to use the te_gen utilities
as imported targets which is quite useful (e.g., for the test target
approach).
------------------------------------------------------------------------
r837 | airwin | 2013-01-08 03:57:57 -0800 (Tue, 08 Jan 2013) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/scripts/make_tarball.sh
Use "svn export" to copy local directory changes _that are under svn
control_ into tarball. That's much cleaner and a better test than
using the local directory version (which could, for example,
incorporate files not under svn control into the tarball).
Uncomment tests of the installed example tree.
------------------------------------------------------------------------
r836 | airwin | 2013-01-08 03:52:42 -0800 (Tue, 08 Jan 2013) | 2 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/versions.cmake
M /trunk/time_ephemerides/te_gen/versions.cmake
Bump VERSION consistent with RC4.
------------------------------------------------------------------------
r835 | airwin | 2013-01-07 23:40:06 -0800 (Mon, 07 Jan 2013) | 4 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/scripts/wine_scripts
A /trunk/time_ephemerides/te_gen/scripts/wine_scripts/README.wine_scripts
A /trunk/time_ephemerides/te_gen/scripts/wine_scripts/build_msys_te_gen.wine_sh
A /trunk/time_ephemerides/te_gen/scripts/wine_scripts/set_mingw_msys_path.wine_sh (from /trunk/jpl_ephemerides/ephcom2/scripts/wine_scripts/set_mingw_msys_path.wine_sh:833)
A /trunk/time_ephemerides/te_gen/scripts/wine_scripts/set_msys_te_gen.wine_sh
Commit scripts that are useful for building, testing, and installing
te_gen on a MinGW/MSYS/Wine platform. However, the scripts should also
be fine for the MinGW/MSYS/MS Windows platform as well.
------------------------------------------------------------------------
r832 | airwin | 2013-01-07 22:31:40 -0800 (Mon, 07 Jan 2013) | 13 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/doc/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/doc/CMakeLists.txt
Previously the DESTDIR fix was not working for me. (${DESTDIR} was being
replaced by nothing).
Implement the correct DESTDIR fix for the INSTALL(CODE... case
(according to a tip from David Cole who suggested escaping the "$" in
$ENV{DESTDIR} so that the DESTDIR environment variable would be read
at "make" time rather than cmake time where it is not defined
for the test case below.)
Tested by Alan W. Irwin <airwin@users.sourceforge.net> using the "make
DESTDIR=/tmp/whatever -j4 install" command for both ephcom and te_gen.
------------------------------------------------------------------------
r829 | airwin | 2013-01-05 01:59:59 -0800 (Sat, 05 Jan 2013) | 18 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/ephemeris_tests.cmake
Reorganize build-tree tests as a preliminary step before
implementation of testing the installed examples.
Set CORE_BUILD variable to true for the build-tree case.
Move finding the directory lists where ephemerides resides from the
top-level CMakeLists.txt to ephemeris_test.cmake.
Within the latter file, use a separate loop for creating binary time
ephemerides for CORE_BUILD true (since for the install tree case those
binary ephemerides will just be installed and won't have to be
created).
Tested by Alan W. Irwin <airwin@users.sourceforge.net> using the
test_everything and install targets with a limited number of
ephemerides (two JPL ephemerides and all the INPOP ephemerides).
------------------------------------------------------------------------
r827 | airwin | 2013-01-03 21:00:38 -0800 (Thu, 03 Jan 2013) | 3 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/examples/f95/README.te_gen_examples
Implement a README file explaining the test motivation (and scientific
background in some cases) for the te_gen/examples/f95 examples.
------------------------------------------------------------------------
r826 | airwin | 2013-01-03 17:21:55 -0800 (Thu, 03 Jan 2013) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/examples/f95/print_te_gen_integrand_components_main.f
Tweak commentary.
------------------------------------------------------------------------
r825 | airwin | 2013-01-03 11:13:01 -0800 (Thu, 03 Jan 2013) | 11 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/doc/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/doc/CMakeLists.txt
AWI for David Howells <dhowells@redhat.com>.
For both ephcom and te_gen fix documentation installation to make sure
it goes to the intended destination directory within the root
directory specified on the make command line with DESTDIR= rather than
/ as the latter may be somewhere the build cannot write and may
clobber installed system data.
This is required to make it possible to build RPMs.
------------------------------------------------------------------------
r824 | airwin | 2013-01-03 10:27:00 -0800 (Thu, 03 Jan 2013) | 8 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/scripts/make_tarball.sh
M /trunk/time_ephemerides/te_gen/scripts/make_tarball.sh
Determine VERSION from the value set in the versions.cmake
file in the top-level directory of the appropriate
ephcom or te_gen source tree.
These changes remove a version maintenance issue for each
of the make_tarball.sh scripts.
------------------------------------------------------------------------
r823 | airwin | 2013-01-03 10:02:36 -0800 (Thu, 03 Jan 2013) | 11 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
By default don't bother with the lapack/library search or build the
linear_lsf library or the test_linear_lsf or semimajor_axes
applications that depend on that library. test_linear_lsf just checks
that the library works, and semimajor_axes simply calculates mean
semimajor axes for the planets to compare with explanatory supplement
results for the same quantities. This last test is an extremely minor
test that is normally not worth the bother so substantially simplify
(since this removes a dependency on lapack/blas) ordinary builds and
tests by turning all this OFF by default.
------------------------------------------------------------------------
r822 | airwin | 2012-12-31 22:29:17 -0800 (Mon, 31 Dec 2012) | 2 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/versions.cmake
M /trunk/time_ephemerides/te_gen/versions.cmake
Bump release-candidate version number.
------------------------------------------------------------------------
r821 | airwin | 2012-12-31 17:44:36 -0800 (Mon, 31 Dec 2012) | 27 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/bindings/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/deprecated.f
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/ephcomf.f
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/ephcomfc.c
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/ephcomfc.h
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/interface.f
M /trunk/jpl_ephemerides/ephcom2/bindings/python/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/bindings/python/ephcomcmodule.i
M /trunk/jpl_ephemerides/ephcom2/bindings/swig_support/ephcomcapi.i
M /trunk/jpl_ephemerides/ephcom2/doc/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/doc/generate_swig_documentation.py
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_Alloc2dChar.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_Alloc2dDouble.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_cal2jd.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_close.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_concatenate.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_eph2asc.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_eph2eph.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_ephcmp.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_ephcoeff.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_get_coords.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_headcmp.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_interpolate_list.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_interpolate_list_ctx.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_interpolate_relative.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_interpolate_relative_ctx.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_open.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_pleph.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_read_constants.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_read_constants_ctx.html
M /trunk/jpl_ephemerides/ephcom2/doc/html/ephcom_testeph.html
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_Alloc2dChar.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_Alloc2dDouble.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_cal2jd.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_close.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_concatenate.1
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_eph2asc.1
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_eph2eph.1
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_ephcmp.1
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_ephcoeff.1
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_get_coords.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_headcmp.1
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_interpolate_list.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_interpolate_list_ctx.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_interpolate_relative.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_interpolate_relative_ctx.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_open.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_pleph.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_read_constants.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_read_constants_ctx.3
M /trunk/jpl_ephemerides/ephcom2/doc/man/ephcom_testeph.1
M /trunk/jpl_ephemerides/ephcom2/ephemeris_tests.cmake
M /trunk/jpl_ephemerides/ephcom2/examples/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/examples/c/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/examples/c/ephcom_time_test.c
M /trunk/jpl_ephemerides/ephcom2/examples/c/gnulliver_swap_test.c
M /trunk/jpl_ephemerides/ephcom2/examples/c/test_api.c
M /trunk/jpl_ephemerides/ephcom2/examples/c/vtransit.c
M /trunk/jpl_ephemerides/ephcom2/examples/f95/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/examples/f95/test_api.f
M /trunk/jpl_ephemerides/ephcom2/examples/f95/test_repeat_interpolation.f
M /trunk/jpl_ephemerides/ephcom2/examples/f95/vtransit.f
M /trunk/jpl_ephemerides/ephcom2/examples/python/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/examples/python/test_api.py
M /trunk/jpl_ephemerides/ephcom2/examples/python/vtransit.py
M /trunk/jpl_ephemerides/ephcom2/installed_CMakeLists.txt.in
M /trunk/jpl_ephemerides/ephcom2/python.cmake
M /trunk/jpl_ephemerides/ephcom2/scripts/ephcom_concatenate.in
M /trunk/jpl_ephemerides/ephcom2/src/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/src/include/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/src/include/ephcom.h
M /trunk/jpl_ephemerides/ephcom2/src/include/ephcomc.h
M /trunk/jpl_ephemerides/ephcom2/src/include/gnulliver.h.in
M /trunk/jpl_ephemerides/ephcom2/src/libs/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/src/libs/date.c
M /trunk/jpl_ephemerides/ephcom2/src/libs/ephcom.c
M /trunk/jpl_ephemerides/ephcom2/src/libs/ephcomc.c
M /trunk/jpl_ephemerides/ephcom2/src/libs/error.c
M /trunk/jpl_ephemerides/ephcom2/src/libs/error_private.h
M /trunk/jpl_ephemerides/ephcom2/src/libs/file.c
M /trunk/jpl_ephemerides/ephcom2/src/libs/gnulliver.c
M /trunk/jpl_ephemerides/ephcom2/src/libs/libephcom_internal.h
M /trunk/jpl_ephemerides/ephcom2/src/libs/names.c
M /trunk/jpl_ephemerides/ephcom2/src/utils/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/src/utils/asc2eph.c
M /trunk/jpl_ephemerides/ephcom2/src/utils/eph2asc.c
M /trunk/jpl_ephemerides/ephcom2/src/utils/ephcmp.c
M /trunk/jpl_ephemerides/ephcom2/src/utils/headcmp.c
M /trunk/jpl_ephemerides/ephcom2/src/utils/testeph.c
M /trunk/jpl_ephemerides/ephcom2/swig.cmake
M /trunk/jpl_ephemerides/ephcom2/test.cmake
M /trunk/jpl_ephemerides/ephcom2/test_float32_double64.c
M /trunk/jpl_ephemerides/ephcom2/test_host_endianness.c
M /trunk/scripts/generate_website.sh
M /trunk/scripts/style_source.sh
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/doc/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/doc/html/convert_inpop_ascii_time_ephemeris.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_chebyshev.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_header.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_integral_test.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_testfile_generate.html
M /trunk/time_ephemerides/te_gen/doc/man/convert_inpop_ascii_time_ephemeris.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_chebyshev.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_header.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_integral_test.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_testfile_generate.1
M /trunk/time_ephemerides/te_gen/ephemeris_tests.cmake
M /trunk/time_ephemerides/te_gen/examples/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/examples/f95/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/examples/f95/print_te_gen_integrand_components_main.f
M /trunk/time_ephemerides/te_gen/examples/f95/semimajor_axes_main.f
M /trunk/time_ephemerides/te_gen/examples/f95/te_gen_integral_test_main.f
M /trunk/time_ephemerides/te_gen/examples/f95/test_asteroids_main.f
M /trunk/time_ephemerides/te_gen/examples/f95/test_linear_lsf_main.f
M /trunk/time_ephemerides/te_gen/examples/f95/test_orbit_main.f
M /trunk/time_ephemerides/te_gen/installed_CMakeLists.txt.in
M /trunk/time_ephemerides/te_gen/scripts/make_tarball.sh
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/asteroids.f
M /trunk/time_ephemerides/te_gen/src/dpolint.f
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/dtrapzd.f
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/fill_common_block.f
M /trunk/time_ephemerides/te_gen/src/interface.f
M /trunk/time_ephemerides/te_gen/src/kepler_solve.f
M /trunk/time_ephemerides/te_gen/src/linear_lsf.f
M /trunk/time_ephemerides/te_gen/src/lower_case.f
M /trunk/time_ephemerides/te_gen/src/orbit.f
M /trunk/time_ephemerides/te_gen/src/te_gen_dot_product.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vector_calc.f
M /trunk/time_ephemerides/te_gen/utils/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/utils/convert_inpop_ascii_time_ephemeris_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_testfile_generate_main.f
Copyright lines should reflect release dates rather than when the software
was written. So since there haven't been releases of either ephcom or
te_gen in 2012, all copyright dates of 2012 must be changed to 2013
when the forthcoming releases of ephcom and te_gen will occur
(in roughly a week).
Furthermore, copyright dates should ideally be discrete reflecting
the exact years when releases occurred. Thus, I changed
2011-2013 ==> 2011, 2013 for all my copyright lines where
that pattern occurred.
For David's copyright lines (which are now uniformly dated as 2013
since he did not contribute to the 2011 release), I also attempted to always render
his e-mail address consistently (with angle brackets rather
than parantheses) and on the same line as "Copyright".
I also fixed a few whitespace issues discovered when I wrote out the
unique copyright strings that were being used with the appropriate
find, xargs, grep, and sort --unique pipeline combinations.
This change touched virtually all files and much of it was automated
(via find commands and sed scripts). Therefore, I looked very
carefully at the diff before committing to be sure most changes were
on the same line as the "copyright" string, and in the few cases where
that did not occur, made sure the change was exactly what I intended.
------------------------------------------------------------------------
r816 | airwin | 2012-12-30 19:30:33 -0800 (Sun, 30 Dec 2012) | 2 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
Do not include files named svn-commit.tmp* in source packages.
------------------------------------------------------------------------
r815 | airwin | 2012-12-30 19:13:12 -0800 (Sun, 30 Dec 2012) | 17 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/utils/convert_inpop_ascii_time_ephemeris_main.f
The INPOP group have "since inpop10a" (according to a private
communication from Hervé Manche of that group) moved to using a
normalization of the integrand of their time-ephemeris integral that
is exactly consistent with IAU definitions. The te_gen integrand of
the time-ephemeris integral is also exactly consistent with IAU
definitions although a different multiplier and zero-point are defined
then in the INPOP definition. The actual change in INPOP definition
from what was used for inpop08a, etc. is essentially negligible, but
being exactly (rather than approximately) consistent with the IAU
definitions is worth it from the didactic point of view.
Adjust the transformation between time-ephemeris integral results
generated by INPOP software and te_gen according to the new INPOP
definition. Update the commentary within this utility to be consistent
with this new transformation on the INPOP results.
------------------------------------------------------------------------
r814 | airwin | 2012-12-30 17:15:53 -0800 (Sun, 30 Dec 2012) | 3 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/versions.cmake
M /trunk/time_ephemerides/te_gen/versions.cmake
Move to completely numerical versioning scheme to describe release
candidates 2 for ephcom-3.0.0 and te_gen-2.0.0.
------------------------------------------------------------------------
r813 | airwin | 2012-12-30 17:02:43 -0800 (Sun, 30 Dec 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/doc/CMakeLists.txt
Dropped installation of doxygen-generated man pages describing the
te_gen API.
------------------------------------------------------------------------
r809 | airwin | 2012-12-28 14:35:47 -0800 (Fri, 28 Dec 2012) | 10 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/src/include/ephcom.h
M /trunk/jpl_ephemerides/ephcom2/src/libs/error_private.h
M /trunk/jpl_ephemerides/ephcom2/src/libs/libephcom_internal.h
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/te_gen_ifort.def
AWI for Arjen Markus. Apply changes from Arjen that he found necessary
to get ephcom and te_gen to build for the Intel Fortran/MSVC/C++ set
of compilers on Microsoft Windows.
These changes inspected for Linux/Wine issues but not tested
(yet) on those platforms. Arjen is currently having
trouble getting an MSYS environment (required for run-time testing)
to work for Intel Fortran/MSVC/C++.
------------------------------------------------------------------------
r802 | airwin | 2012-12-26 23:36:19 -0800 (Wed, 26 Dec 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_mingw.def
vdc_calc ==> vector_calc to be consistent with previously revised name of
the corresponding subroutine. This fix solves a Wine build error.
------------------------------------------------------------------------
r797 | airwin | 2012-12-23 13:33:03 -0800 (Sun, 23 Dec 2012) | 2 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/installed_CMakeLists.txt.in
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/installed_CMakeLists.txt.in
Use modern idiom to determine CMake version to be output.
------------------------------------------------------------------------
r796 | airwin | 2012-12-23 02:37:51 -0800 (Sun, 23 Dec 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/ephemeris_tests.cmake
Use the generator expression $<TARGET_FILE:ephcom_command> to refer to
ephcom utility commands since those all correspond to imported
targets.
Also, add the ephcom utility commands to the list of file dependencies
as is necessary when using generator expressions.
------------------------------------------------------------------------
r795 | airwin | 2012-12-23 02:32:20 -0800 (Sun, 23 Dec 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
Fix CMAKE_MODULE_PATH logic.
------------------------------------------------------------------------
r794 | airwin | 2012-12-23 02:26:54 -0800 (Sun, 23 Dec 2012) | 5 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/scripts
A /trunk/time_ephemerides/te_gen/scripts/make_tarball.sh
Initial commit of script to make a te_gen tarball. Much
of the logic has been copied from the similar ephcom script.
The result appears to work with no issues.
------------------------------------------------------------------------
r792 | airwin | 2012-12-23 02:21:24 -0800 (Sun, 23 Dec 2012) | 2 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/versions.cmake
M /trunk/time_ephemerides/te_gen/versions.cmake
rc1 ==> RC1 in version.
------------------------------------------------------------------------
r791 | airwin | 2012-12-22 17:36:07 -0800 (Sat, 22 Dec 2012) | 9 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/installed_CMakeLists.txt.in
Replace lame test system for the install tree by a message that it is
not implemented yet.
After the forthcoming release a proper test system for the install
tree should be implemented following what was done for ephcom, e.g.,
using ephemeris_tests.cmake to configure a test system for either the
build tree or install tree depending on the value of CORE_BUILD.
------------------------------------------------------------------------
r780 | airwin | 2012-12-19 13:08:06 -0800 (Wed, 19 Dec 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/examples/f95/print_te_gen_integrand_components_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
Use stdout rather than stderr for debug_printout output in
tt_derivative.
Use stderr (rather than stdout) for diagnostic output from the main
routine of print_te_gen_integrand_components so it is kept separate
from the debug_printout output of tt_derivative.
------------------------------------------------------------------------
r779 | airwin | 2012-12-19 12:50:34 -0800 (Wed, 19 Dec 2012) | 27 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
Correct the value of gm(EPHCOM_EARTH) returned by ephem_constants so it
contains the GM value for the Earth rather than the counter-intuitive
GM value for the Earth + Moon. This change to gm(ephcom_EARTH) fixes
issues with both tt_derivative and vector_calc where it has always
been assumed that gm(EPHCOM_EARTH) contains the GM value for the Earth
alone consistent with intuition.
This bug fix changes the beta_6 and beta_8 components printed out by
print_te_gen_integrand_components in roughly the third figure. These
components are the only ones that depend on the assumed Earth mass.
As a result of this bug fix, the output from
print_te_gen_integrand_components now agrees satisfactorily with
similarly formatted output produced for a comparison by Hervé Manche
of the INPOP group. The beta_8 components now agree to 14 figures and
the beta_6 components agree to 6 figures. (I ascribe this discrepancy
to the Newton approximation used for the acceleration terms that are
required to calculate beta_6.) Because beta_6 is relatively small
compared to other beta components, the sum of the beta components now
agrees with the corresponding INPOP group result to 11 figures. This
agreement is satisfactory since beta is such a small correction to
alpha.
In sum, as a result of this bug fix te_gen and the INPOP
implementation now show satisfactory agreement for all alpha and beta
components of the integrand of the time-ephemeris integral.
------------------------------------------------------------------------
r778 | airwin | 2012-12-19 11:34:07 -0800 (Wed, 19 Dec 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_integral_test.html
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_integral_test.1
JPL ephemeris ==> planetary ephemeris.
------------------------------------------------------------------------
r777 | airwin | 2012-12-18 19:14:45 -0800 (Tue, 18 Dec 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
Rationalize programming logic by converting to units of meters and
seconds in just one place rather than on the fly.
Also make some of the logic of the if statements a little clearer.
------------------------------------------------------------------------
r776 | airwin | 2012-12-18 19:11:51 -0800 (Tue, 18 Dec 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/examples/f95/print_te_gen_integrand_components_main.f
Properly account for the case where the startjd is not integral.
------------------------------------------------------------------------
r772 | airwin | 2012-12-14 12:30:01 -0800 (Fri, 14 Dec 2012) | 16 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/examples/f95/print_te_gen_integrand_components_main.f
Specify ipn correctly.
Change to using Julian date logic rather than Julian year logic.
Change to using command arguments to specify all input rather than a
mixture of stdin and command arguments as before.
The command
examples/f95/print_te_gen_integrand_components \
~/time_ephemeris/HEAD/inpop/inpop10b/inpop10b_TDB_m1000_p1000_bigendian/inpop10b_TDB_m1000_p1000_bigendian.dat \
2420864 2424881.75 12
gave exactly the same result as I sent a long time ago to Hervé Manche
------------------------------------------------------------------------
r771 | airwin | 2012-12-12 22:13:58 -0800 (Wed, 12 Dec 2012) | 27 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/vector_calc.f
Add post-Newtonian terms to the Earth velocity to form the complete
time-ephemeris vector. This implementation was thoroughly tested with
te_gen_integral_test for the ipn = 1 (Earth velocity alone with
post-Newtonian form of Earth acceleration as the derivative), 2
(post-Newtonian correction to Earth velocity alone and the time
derivative of that correction alone), and 3 (combination of Earth
Velocity and post-Newtonian correction + time derivative of same)
cases.
The ipn=2 result was good to ~1.e-7 in max residual/max value. This
post-Newtonian correction to the Earth velocity to form the
time-ephemeris vector is already small so this relative residual
corresponds to a negligible effect on the final location-dependent
term in TCB-TCG.
The ipn = 1 and 3 results are essentially indistinguishable (as
expected from the above argument) and show relative residuals (max
residual/max value) of ~2e-9 (incorrectly stated as 3e-9 in a previous
commit message) for the integral test of those quantities. I ascribe
these residuals to missing figure effects since a back-of-the-envelope
calculation of those indicates they should be the order of ~1e-9.
Note the maximum location-dependent term at the surface of the Earth
is ~0.02*1.e-4. So 2e-9 of that corresponds to a maximum error of
4.e-15 seconds or completely negligible.
------------------------------------------------------------------------
r770 | airwin | 2012-12-12 21:54:38 -0800 (Wed, 12 Dec 2012) | 7 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/examples/f95/te_gen_integral_test_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_chebyshev_main.f
Straighten out errors in the robust revision of input (or default) tstart and tstop
so that the revised tstart and tstop values are always within the
epoch range and corresponding to the start and stop of exact time
intervals of the ephemeris (where the time intervals are considered
closed at the start and open at the end except for the last time
interval which is closed at start and end).
------------------------------------------------------------------------
r769 | airwin | 2012-12-09 14:58:34 -0800 (Sun, 09 Dec 2012) | 12 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/vector_calc.f
Add post-Newtonian terms to Earth acceleration. This improves the
relative residuals (max residual/max value) for the integral test of
that quantity from ~3e-7 to ~3e-9. I ascribe this result to missing
figure effects since a back-of-the-envelope calculation of those
indicates they should be the order of ~1e-9.
Note the maximum location-dependent term at the surface of the Earth
is ~0.02*1.e-4. So 3e-9 of that corresponds to a maximum error of
6e-15 seconds or completely negligible.
------------------------------------------------------------------------
r768 | airwin | 2012-12-09 14:41:17 -0800 (Sun, 09 Dec 2012) | 6 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/examples/f95/te_gen_integral_test_main.f
EPHCOM_TE ==> EPHCOM_TEI
EPHCOM_VE ==> EPHCOM_TEV
Also use correct normalization for time-ephemeris vector (TEV)
quantities that are being tested using integration.
------------------------------------------------------------------------
r767 | airwin | 2012-12-09 14:38:20 -0800 (Sun, 09 Dec 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/residual_plot.py.in
M /trunk/time_ephemerides/te_gen/utils/te_gen_testfile_generate_main.f
EPHCOM_TE ==> EPHCOM_TEI
EPHCOM_VE ==> EPHCOM_TEV
------------------------------------------------------------------------
r766 | airwin | 2012-12-09 14:36:27 -0800 (Sun, 09 Dec 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/utils/te_gen_chebyshev_main.f
Tweak error message.
------------------------------------------------------------------------
r762 | airwin | 2012-12-04 10:51:18 -0800 (Tue, 04 Dec 2012) | 20 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_integral_test.html
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_integral_test.1
M /trunk/time_ephemerides/te_gen/examples/f95/te_gen_integral_test_main.f
M /trunk/time_ephemerides/te_gen/src/interface.f
D /trunk/time_ephemerides/te_gen/src/vdc_calc.f
A /trunk/time_ephemerides/te_gen/src/vector_calc.f (from /trunk/time_ephemerides/te_gen/src/vdc_calc.f:750)
M /trunk/time_ephemerides/te_gen/src/write_ascii_header.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_header_main.f
Rename vdc_calc to vector_calc, and change all documentation files,
internal commentary, and array names to be consistent with the idea
that vector_calc returns the time-ephemeris vector (the vector that is
dotted with the observer location displacement vector relative to
geocentre to form the location-dependent part of TCB-TCG) and its time
derivative.
N.B. The quantities returned by vector_calc continue to be v_E/c and
its time derivative (approximated by the Newtonian acceleration of the
Earth/c). So the returned quantities are an approximation to the
time-ephemeris vector, and a further approximation to the time
derivative of that vector in dimensionless units.
So the external documenation and internal commentary (including
doxygen commentary) anticipates when vector_calc returns the
time-ephemeris vector up to and including all terms of O(c^{-2})
(i.e., v_E + a PPN correction in units of km/day), and its near-exact
time derivative.
------------------------------------------------------------------------
r761 | airwin | 2012-12-04 10:29:43 -0800 (Tue, 04 Dec 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/examples/f95/CMakeLists.txt
Fix up error in last commit which did not have an
include_directories command to access the correct
included Fortran source (in one case) and corrt
Fortran 95 modules (in all cases).
------------------------------------------------------------------------
r758 | airwin | 2012-11-29 13:22:15 -0800 (Thu, 29 Nov 2012) | 11 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/ephemeris_tests.cmake
A /trunk/time_ephemerides/te_gen/examples/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/examples/f95/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/examples/f95/post_newtonian_approximation_main.f (from /trunk/time_ephemerides/te_gen/src/post_newtonian_calc.f:681)
A /trunk/time_ephemerides/te_gen/examples/f95/print_te_gen_integrand_components_main.f (from /trunk/time_ephemerides/te_gen/src/print_te_gen_integrand_components_main.f:750)
A /trunk/time_ephemerides/te_gen/examples/f95/semimajor_axes.out (from /trunk/time_ephemerides/te_gen/src/semimajor_axes.out:728)
A /trunk/time_ephemerides/te_gen/examples/f95/semimajor_axes_main.f (from /trunk/time_ephemerides/te_gen/src/semimajor_axes_main.f:750)
A /trunk/time_ephemerides/te_gen/examples/f95/te_gen_integral_test_main.f (from /trunk/time_ephemerides/te_gen/src/te_gen_integral_test_main.f:750)
A /trunk/time_ephemerides/te_gen/examples/f95/test_asteroids_main.f (from /trunk/time_ephemerides/te_gen/src/test_asteroids_main.f:750)
A /trunk/time_ephemerides/te_gen/examples/f95/test_linear_lsf_main.f (from /trunk/time_ephemerides/te_gen/src/test_linear_lsf_main.f:750)
A /trunk/time_ephemerides/te_gen/examples/f95/test_orbit.out (from /trunk/time_ephemerides/te_gen/src/test_orbit.out:727)
A /trunk/time_ephemerides/te_gen/examples/f95/test_orbit_main.f (from /trunk/time_ephemerides/te_gen/src/test_orbit_main.f:750)
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
D /trunk/time_ephemerides/te_gen/src/post_newtonian_calc.f
D /trunk/time_ephemerides/te_gen/src/print_te_gen_integrand_components_main.f
D /trunk/time_ephemerides/te_gen/src/semimajor_axes.out
D /trunk/time_ephemerides/te_gen/src/semimajor_axes_main.f
D /trunk/time_ephemerides/te_gen/src/te_gen_integral_test_main.f
D /trunk/time_ephemerides/te_gen/src/test_asteroids_main.f
D /trunk/time_ephemerides/te_gen/src/test_linear_lsf_main.f
D /trunk/time_ephemerides/te_gen/src/test_orbit.out
D /trunk/time_ephemerides/te_gen/src/test_orbit_main.f
Move Fortran source code examples and tests from te_gen/src to
te_gen/examples/f95. Some of these examples don't even link to the
te_gen library. Instead, they might give approximate results as a
comparison for what te_gen calculates exactly. The
post_newtonian_approximation app (renamed from post_newtonian_calc) is
an example of this, where it just calculates an approximation for the
mean slope effect of the post-Newtonian correction to the
time-ephemeris integral.
------------------------------------------------------------------------
r757 | airwin | 2012-11-29 13:12:42 -0800 (Thu, 29 Nov 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/versions.cmake
Create soversion and version for (internal) linear_lsf library just to
treat that library in a way that is consistent with the other
libraries.
------------------------------------------------------------------------
r751 | airwin | 2012-11-20 15:25:33 -0800 (Tue, 20 Nov 2012) | 2 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/examples/f95/post_newtonian_approximation.out
Expected output from post_newtonian_approximation.
------------------------------------------------------------------------
r750 | airwin | 2012-11-20 13:58:24 -0800 (Tue, 20 Nov 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/doc/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/ephemeris_tests.cmake
M /trunk/time_ephemerides/te_gen/installed_CMakeLists.txt.in
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/asteroids.f
M /trunk/time_ephemerides/te_gen/src/dpolint.f
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/dtrapzd.f
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/fill_common_block.f
M /trunk/time_ephemerides/te_gen/src/interface.f
M /trunk/time_ephemerides/te_gen/src/kepler_solve.f
M /trunk/time_ephemerides/te_gen/src/linear_lsf.f
M /trunk/time_ephemerides/te_gen/src/lower_case.f
M /trunk/time_ephemerides/te_gen/src/orbit.f
M /trunk/time_ephemerides/te_gen/src/print_te_gen_integrand_components_main.f
M /trunk/time_ephemerides/te_gen/src/semimajor_axes_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_dot_product.f
M /trunk/time_ephemerides/te_gen/src/te_gen_integral_test_main.f
M /trunk/time_ephemerides/te_gen/src/test_asteroids_main.f
M /trunk/time_ephemerides/te_gen/src/test_linear_lsf_main.f
M /trunk/time_ephemerides/te_gen/src/test_orbit_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
M /trunk/time_ephemerides/te_gen/utils/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/utils/convert_inpop_ascii_time_ephemeris_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_testfile_generate_main.f
Update licensing terms for te_gen to be either version 2.1 of the
License, or (at user option) any later version of the LGPL.
------------------------------------------------------------------------
r749 | airwin | 2012-11-20 13:54:04 -0800 (Tue, 20 Nov 2012) | 2 lines
Changed paths:
D /trunk/time_ephemerides/te_gen/src/LICENSE.txt
Remove redundant LICENSE.txt in the src tree.
------------------------------------------------------------------------
r745 | airwin | 2012-11-20 12:24:23 -0800 (Tue, 20 Nov 2012) | 2 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/LICENSE.txt
Add LGPL version 2.1 licensing text to te_gen source tree.
------------------------------------------------------------------------
r744 | airwin | 2012-11-19 22:34:26 -0800 (Mon, 19 Nov 2012) | 12 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/install_locations.cmake
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/versions.cmake
Create install_locations.cmake and versions.cmake as module files to
be included from the top-level CMakeLists.txt file for the te_gen project.
install_locations sets all the install locations.
All version numbers are collected in versions.cmake.
Reviewed all those numbers and updated them for this forthcoming
release (except for trailing "-rc1" on package version number which
will need to be dropped just before the release).
------------------------------------------------------------------------
r742 | airwin | 2012-11-19 21:25:53 -0800 (Mon, 19 Nov 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/utils/convert_inpop_ascii_time_ephemeris_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/utils/te_gen_testfile_generate_main.f
Output usage messages when the number of command line arguments is
incorrect.
------------------------------------------------------------------------
r741 | airwin | 2012-11-19 19:03:08 -0800 (Mon, 19 Nov 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/doc/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/doc/html/convert_inpop_ascii_time_ephemeris.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_chebyshev.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_header.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_integral_test.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_testfile_generate.html
A /trunk/time_ephemerides/te_gen/doc/man/convert_inpop_ascii_time_ephemeris.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_chebyshev.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_header.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_integral_test.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_testfile_generate.1
Update all existing man pages and add a man page for the
convert_inpop_ascii_time_ephemeris command.
Drop the te_gen_integral_test man page from installation since that
executable is just a test example for te_gen developers and not a
te_gen utility that is much use to users.
------------------------------------------------------------------------
r739 | airwin | 2012-11-19 11:30:51 -0800 (Mon, 19 Nov 2012) | 15 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/ephemeris_tests.cmake
A /trunk/time_ephemerides/te_gen/examples
A /trunk/time_ephemerides/te_gen/examples/f95
A /trunk/time_ephemerides/te_gen/residual_plot.py.in (from /trunk/time_ephemerides/te_gen/src/residual_plot.py.in:681)
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
D /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f
D /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
D /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
D /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
D /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f
A /trunk/time_ephemerides/te_gen/utils
A /trunk/time_ephemerides/te_gen/utils/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/utils/convert_inpop_ascii_time_ephemeris_main.f (from /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f:733)
A /trunk/time_ephemerides/te_gen/utils/te_gen_chebyshev_main.f (from /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f:732)
A /trunk/time_ephemerides/te_gen/utils/te_gen_header_main.f (from /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f:733)
A /trunk/time_ephemerides/te_gen/utils/te_gen_testfile_generate_main.f (from /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f:733)
Reorganize te_gen build system into a larger number of simpler
components which should be easier to maintain in the future.
ephemeris_tests.cmake contains all the tests that were previously
in src/CMakeLists.txt.
The utils directory contains the te_gen utilities required to generate
time ephemerides and convert INPOP ascii time ephemerides to JPL ascii
form.
examples and examples/f95 are currently just placeholder directories,
but soon the test executables still built in src should be moved
to examples/f95.
------------------------------------------------------------------------
r734 | airwin | 2012-11-16 15:58:09 -0800 (Fri, 16 Nov 2012) | 14 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_mingw.def
Update this definitions file to be consistent with the new Fortran 95
API for the te_gen library.
Tested by: Alan W. Irwin <airwin@users.sourceforge.net> using the
test_everything and install targets as well as a graphical comparison
of current time-ephemeris residual plots with previous residual plots
for both JPL and INPOP ephemerides. These tests were done just on a
CMake-2.8.10/MinGW-4.7.0/MSYS(latest)/Wine-1.5.16_patched platform
since this define file only affects Windows platforms. Note the recent
te_gen changes to a Fortran 95 interface have already been tested on
Linux, but this test was the first for those change on a Wine
platform.
------------------------------------------------------------------------
r733 | airwin | 2012-11-16 12:34:27 -0800 (Fri, 16 Nov 2012) | 11 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/lower_case.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
Drop the extra length argument from the lower_case function and
use the length of the input string for the length of the returned
string instead. Thanks to Arjen Markus for this idea.
Tested by: Alan W. Irwin <airwin@users.sourceforge.net> using the
test_everything and install targets as well as a graphical comparison
of current time-ephemeris residual plots with previous residual plots
for both JPL and INPOP ephemerides. These tests were done just
on a Linux platform.
------------------------------------------------------------------------
r732 | airwin | 2012-11-16 11:56:13 -0800 (Fri, 16 Nov 2012) | 34 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/asteroids.f
M /trunk/time_ephemerides/te_gen/src/chebfit.f
M /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f
M /trunk/time_ephemerides/te_gen/src/dpolint.f
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/dtrapzd.f
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/fill_common_block.f
A /trunk/time_ephemerides/te_gen/src/interface.f
M /trunk/time_ephemerides/te_gen/src/kepler_solve.f
M /trunk/time_ephemerides/te_gen/src/lower_case.f
M /trunk/time_ephemerides/te_gen/src/orbit.f
M /trunk/time_ephemerides/te_gen/src/print_te_gen_integrand_components_main.f
M /trunk/time_ephemerides/te_gen/src/semimajor_axes_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_dot_product.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_integral_test_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f
M /trunk/time_ephemerides/te_gen/src/test_asteroids_main.f
M /trunk/time_ephemerides/te_gen/src/test_orbit_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
M /trunk/time_ephemerides/te_gen/src/write_ascii_header.f
Change the te_gen library API from Fortran 77 to Fortran 95. In most cases these
changes are voluminous but fairly superficial.
Implement interface.f which places all te_gen library code inside
a contains statement inside the te_gen module.
Each end statement for routines is changed to end function
<function_name> or end subroutine <subroutine name>
Use the "use te_gen" statement for all te_gen applications that use
the library.
Drop all type statements (both inside the library and outside the
library) for module procedures (i.e., all functions and subroutines
that are contained within the contains statement in interface.f).
Use the interface statement to define the API of the callback
routine used in dromb and dtrapzd.
Instead of statically pre-allocating space for the lower_case returned
string result, allow lower_case to create that returned string
dynamically. For now, the actual length of that dynamically created
string is included with the argument list, but as Arjen Markus has
pointed out, that is not necessary so there will be a further change
to drop that argument and just use the length on the input string
instead to dynamically allocate that output string.
Tested by: Alan W. Irwin <airwin@users.sourceforge.net> using the
test_everything and install targets as well as a graphical comparison
of current time-ephemeris residual plots with previous residual plots
for both JPL and INPOP ephemerides. These tests were done just
on a Linux platform.
------------------------------------------------------------------------
r730 | airwin | 2012-11-14 21:01:35 -0800 (Wed, 14 Nov 2012) | 13 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Convert to using symbolic constants rather than raw index numbers in
the te_gen library. Change appropriate array dimensions to start at 0 rather
than 1.
Tested by: Alan W. Irwin <airwin@users.sf.net> using the
test_everything and install targets for te_gen on a Linux platform.
The tests include not only self-consistency checks but also graphical
comparisons of present results with 1999 results and INPOP time
ephemeris results, and those residual plots are visually
indistiguishable from those same residual plots done with a snapshot
of the te_gen software from 4 weeks ago.
------------------------------------------------------------------------
r729 | airwin | 2012-11-14 19:55:46 -0800 (Wed, 14 Nov 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/test_orbit_main.f
Convert (including indices that start at 0 rather than 1 where
appropriate) to using symbolic constants.
------------------------------------------------------------------------
r728 | airwin | 2012-11-14 19:38:16 -0800 (Wed, 14 Nov 2012) | 13 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/semimajor_axes.out
M /trunk/time_ephemerides/te_gen/src/semimajor_axes_main.f
Improve the output formatting of this test example, use standard
ephem_constants code to obtain gm values, use symbolic constants, and
use index ranges that start at 0 rather than 1 for the arrays that are
relevant to the symbolic constants.
Note, the vis-viva equation is not an ideal way to obtain
an estimate of the lunar and planetary semimajor axes, but
nevertheless these derived values are not that different
from the mean semimajor axes derived in Chapter 10 of the
explanatory supplement, and this example still is a
pretty good test of both ephcom and te_gen.
------------------------------------------------------------------------
r727 | airwin | 2012-11-14 16:16:12 -0800 (Wed, 14 Nov 2012) | 4 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/src/semimajor_axes.out
A /trunk/time_ephemerides/te_gen/src/test_orbit.out
Store results for the test_orbit and semimajor_axes test applications.
These results were calculated using the DE405 JPL ephemeris.
------------------------------------------------------------------------
r723 | airwin | 2012-11-13 09:32:30 -0800 (Tue, 13 Nov 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_integral_test_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f
M /trunk/time_ephemerides/te_gen/src/test_asteroids_main.f
Use symbolic constants available from the Fortran 95 ephcomf module
rather than numerical constants for all indices associated with
ephcom_interpolate_relative calls.
------------------------------------------------------------------------
r722 | airwin | 2012-11-13 09:08:32 -0800 (Tue, 13 Nov 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f
M /trunk/time_ephemerides/te_gen/src/write_ascii_header.f
Replace 0 by EPHCOM_AUTOMATIC_CALENDAR (available from ephcomf Fortran
95 module) in calls to ephcom_jd2cal.
------------------------------------------------------------------------
r721 | airwin | 2012-11-12 22:44:45 -0800 (Mon, 12 Nov 2012) | 17 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/semimajor_axes_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_integral_test_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f
M /trunk/time_ephemerides/te_gen/src/test_asteroids_main.f
M /trunk/time_ephemerides/te_gen/src/test_orbit_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
M /trunk/time_ephemerides/te_gen/src/write_ascii_header.f
Update the te_gen library and associated executables to use the
Fortran 95 interface for the ephcomf library.
Tested by Alan W. Irwin <airwin@users.sf.net>: for both the Linux and
Wine platforms for just de200 and de405.
ToDo:
Use the ephcom symbolic constants available from the ephcomf Fortran
interface where appropriate rather than just bare numbers and thoroughly
test those code changes.
Implement a Fortran 95 interface for the te_gen library and
use it for the the associated executables that link to that
library.
------------------------------------------------------------------------
r682 | airwin | 2012-11-01 21:47:37 -0700 (Thu, 01 Nov 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/doc/Doxyfile.in
Update doxygen configuration file with "doxygen -u Doxyfile.in".
------------------------------------------------------------------------
r681 | airwin | 2012-10-23 15:01:06 -0700 (Tue, 23 Oct 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Create header for old version of time ephemeris in directory inside
build tree rather than in the directory of the old time ephemeris
which is outside the build tree. In general it is just better to
stick to creating files in the build tree, and this change eliminates
obvious permission problems when doing new-old tests from a different
user account then where the old time ephemeris resides.
------------------------------------------------------------------------
r680 | airwin | 2012-10-22 22:35:23 -0700 (Mon, 22 Oct 2012) | 30 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/asteroids.f
M /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/print_te_gen_integrand_components_main.f
M /trunk/time_ephemerides/te_gen/src/semimajor_axes_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_integral_test_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f
M /trunk/time_ephemerides/te_gen/src/test_asteroids_main.f
M /trunk/time_ephemerides/te_gen/src/test_orbit_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Lots of small fixes to make the MinGW/MSYS/Wine platform experience a
lot better.
Replace stop "" with stop 1 in an attempt (which may have failed) to
generate exit codes when there is an error.
call fill_common_block routine from all main routines that use the
te_gen_common common block so that the te_gen library version of
the common block is kept up to date with the version accessible to
the main routine on MinGW platforms.
Check all ephcom calls for return codes and execute the
stop 1 statement when appropriate to do so.
Clean up some compiler warning messages about type conversions.
These changes prior to inserting the call to the fill_common_block
routine allowed MinGW/MSYS/Wine to deal with the resulting empty
common block issues (especially the zero-length filename string)
without stack dumps (the equivalent of the Linux segfault).
Once the call to the fill_common_block was inserted in each main
routine, te_gen began to work, e.g., a reasonable TE_EPH file was
generated for te200 that is comparable to the one produced on Linux to
1 part in 10^11 which corresponds to 0.02 ps. However, there is still
a bit more to do (be smarter about dealing with tests of old ephemeris
files) to clear the way (hopefully) for a complete "test_everything"
test on MinGW/MSYS/Wine.
------------------------------------------------------------------------
r679 | airwin | 2012-10-22 22:12:54 -0700 (Mon, 22 Oct 2012) | 9 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/fill_common_block.f
M /trunk/time_ephemerides/te_gen/src/te_gen_mingw.def
Implement the fill_common_block routine in the te_gen library to fill the
library version of the te_gen_common block with data. Calling this
routine from main programmes is necessary for MinGW gfortran on
Windows because on that platform the te_gen library is unaware
of the version of that common block for the main routine.
Note that calling this routine from main programmes on Linux
is redundant, but does no harm.
------------------------------------------------------------------------
r671 | airwin | 2012-10-21 09:23:06 -0700 (Sun, 21 Oct 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/te_gen_mingw.def
Make changes so that te_gen will compile on MinGW/MSYS/Wine.
------------------------------------------------------------------------
r670 | airwin | 2012-10-21 09:19:42 -0700 (Sun, 21 Oct 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
Wine tweak.
------------------------------------------------------------------------
r669 | airwin | 2012-10-18 17:45:34 -0700 (Thu, 18 Oct 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
Copyright date.
------------------------------------------------------------------------
r668 | airwin | 2012-10-17 11:31:22 -0700 (Wed, 17 Oct 2012) | 10 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/bindings/python/ephcomcmodule.i
M /trunk/jpl_ephemerides/ephcom2/examples/python/testeph.py
M /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
All tests including the comprehensive generation of plots for te_gen
with Python scripts indicate that ephcom_open_ctx delivers header data
to the user more conveniently than ephcom_read_constants, and the _ctx
variants of ephcom_interpolate_relative and ephcom_interpolate_list
are reliable replacements for the equivalent non-ctx versions.
Therefore, remove ephcom_read_constants, ephcom_interpolate_relative,
and ephcom_interpolate_list from the Python API for ephcom and also
use the ctx equivalents of those for our Python scripts.
------------------------------------------------------------------------
r632 | airwin | 2012-10-06 11:32:13 -0700 (Sat, 06 Oct 2012) | 9 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/print_te_gen_integrand_components_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
Replace conditional compilation method for controlling debugging
output from tt_derivative by the simple alternative of a fourth
control bit in ipn. The big advantage of this new method of
controlling debugging output requires no recompilations of
tt_derivative. Instead, print_te_gen_integrand_components_main.f sets
the fourth bit and all other uses of tt_derivative leave that control
bit unset.
------------------------------------------------------------------------
r631 | airwin | 2012-10-05 23:49:14 -0700 (Fri, 05 Oct 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
Fix autom scale bug in the calculated acceleration vector. This
bugfix reduces residuals with the INPOP no_asteroid results down to
numerical floating-point noise with an amplitude of +/- 2e-16 seconds
over a range of 200 years. This noise is 1.d-14 of the magnitude of
the maximum expected time ephemeris integral result which is an
outstanding result for two completely independent programmes.
------------------------------------------------------------------------
r630 | airwin | 2012-10-05 22:23:22 -0700 (Fri, 05 Oct 2012) | 28 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
Clarify the logic of the post-Newtonian calculation by summing
separate components inside the main loop(s) then adding them together
at the end.
Because of this clarification I realized I was repeating parts of the
calculation inside the loop where each of those parts should have been
done once after the end of the loop. The results are the same for the
new logic (since the last calculations done inside the loop are the
same as the new calculations done outside it), but the logic looks
much cleaner now, and should be slightly faster.
Add an
#undef DEBUG_TT_DERIVATIVE
#ifdef DEBUG_TT_DERIVATIVE
....
#endif
section which implements useful diagnostic output whenever
that first line is changed to
#define DEBUG_TT_DERIVATIVE
In particular this last possibility is used in conjunction with the
print_te_gen_integrand_components application to get disagnostic
output from tt_derivative for a range of times.
------------------------------------------------------------------------
r629 | airwin | 2012-10-05 22:21:46 -0700 (Fri, 05 Oct 2012) | 22 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Allow tt_derivative.f to have conditional compilation.
Fix some problematic linking discovered by the new debian wheezy tool chain.
Build print_te_gen_integrand_components
Use 12 coefficients for short inpop10b time ephemeris to
reduce/eliminate interpolation of time ephemerides as a source
of numerical noise when comparing with INPOP group time ephemeris
calculations.
Deal with the case of the "no_asteroids" form of the INPOP
time-ephemeris calculations being available for the short inpop10b
case. Implement extra parsing and extra variables to take care of
this case where "no_asteroids" refers to all the time ephemeris
results generated directly from the "no_asteroids" inpop data, but the
corresponding INPOP planetary ephemeris does not have "no_asteroids"
in the file name and similarly for the time ephemeris results
generated by te_gen which are being graphically compared with the
no_asteroids results.
------------------------------------------------------------------------
r628 | airwin | 2012-10-05 21:53:44 -0700 (Fri, 05 Oct 2012) | 6 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/src/print_te_gen_integrand_components_main.f
Implement a main routine which simply calls tt_derivative for the
specified range of years and number of times for the given planetary
ephemeris. If DEBUG_TT_DERIVATIVE is #defined within tt_derivative
those calls generate a useful debugging output.
------------------------------------------------------------------------
r627 | airwin | 2012-10-05 21:44:57 -0700 (Fri, 05 Oct 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f
Use an integer ilength = int(length) to squelch a warning from the
new version of gfortran.
------------------------------------------------------------------------
r624 | airwin | 2012-09-21 12:44:30 -0700 (Fri, 21 Sep 2012) | 7 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
The inpop10b approximate asteriod correction experiment was a success, but
now that experiment is done and it appears the INPOP group are willing
to do special comparison calculations without the asteroid effect.
Therefore drop the approximate asteroid calculation for inpop10b (and also
all other computations as before).
------------------------------------------------------------------------
r623 | airwin | 2012-09-18 22:17:35 -0700 (Tue, 18 Sep 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
Implement approximate Keplerian orbit correction for asteroids. This
experimental correction is just a proof of concept (see previous
commit message) to show the importance of asteroid corrections to time
ephemeris computations, and I plan to replace it with explicit
ephemeris results for the adopted asteroid model for a given planetary
ephemeris result where such asteroid ephemerides are available.
------------------------------------------------------------------------
r622 | airwin | 2012-09-18 22:11:40 -0700 (Tue, 18 Sep 2012) | 28 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
For inpop10b comparisons use experimental and approximate (osculating
Keplerian orbits) correction for the 10 most massive asteroids as a
successful proof of concept that correcting for the most massive
asteroids will cause a substantial (factor of 5 in this case)
reduction in residuals. Do not bother with this correction for
inpop08a and inpop10a since those time ephemerides have severe
numerical interpolation noise (not present in inpop10b because that is
much more liberal with numbers of Chebyshev coefficients to represent
the time ephemeris per unit time) that almost obscures the systematic
residuals from asteroids.
This approximate correction to the inpop10b comparisons is just a
proof of concept, and there is a limit on the quality of Keplerian
orbits for predicting actual asteroid orbit behaviour because of
neglected perturbations by the major planets and other asteroids. And
even in that source of uncertainty was eliminated, many additional
asteroids (at least several hundred) would have to be added to extract
another factor of 10 reduction of residuals. This is because the
numbers of asteroids increase markedly (in fact inversely as the mass
for several decades) with decreasing mass. Therefore, I have no plans
to follow this rather inefficient and approximate Keplerian orbit idea
any further. Instead, I plan, where possible, to use calculated
asteroid ephemerides actually used in planetary ephemeris calculations
to help construct time ephemerides. Such exact matching of adopting
asteroid model is really the only way to have good consistency between
time ephemerides generated by te_gen and other groups.
------------------------------------------------------------------------
r621 | airwin | 2012-09-18 21:45:51 -0700 (Tue, 18 Sep 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/test_orbit_main.f
Get rid of declarations for unused variables that were the cause of
warnings.
------------------------------------------------------------------------
r620 | airwin | 2012-09-17 14:54:11 -0700 (Mon, 17 Sep 2012) | 28 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/asteroids.f
A /trunk/time_ephemerides/te_gen/src/test_asteroids_main.f
Implement the asteroids subroutine (and a programme to test it) that
allows the user to predict the position/velocity as a function of time
of one asteroid or all of them that are covered (currently 10)
according to their orbital elements.
The testing programme transforms the results from equatorial to
ecliptic coordinates and gives fairly good (within 1 per cent for
Pallas and Ceres) agreement in position and velocity with the ecliptic
coordinates results given by the JPL horizons system.
I thought these comparisons would be better, but you can show that the
horizons results don't even have the expected result of displacement =
a(1-e) at the epoch of perihelion passage for the orbital elements
they quote (which are the same as in the data statements for
asteroids). The asteroids programme, on the other hand does give that
predicted result. So I am pretty positive these 1 per cent differences
are because JPL horizons includes perturbations so that their results
do not agree exactly with the prediction from the orbital elements.
So my conclusion is that with some luck, the asteroids routine will be
able to reduce the asteroid component from the residual with INPOP10b
by a factor of ~10 (since the 10 most massive asteroids currently in
the asteroids.f data statements account for roughly 70 per cent of the
asteroid mass). Of course, using the real INPOP10b asteroid ephemeris
should reduce the residuals down to even smaller values (the expected
interpolation noise).
------------------------------------------------------------------------
r619 | airwin | 2012-09-17 14:34:47 -0700 (Mon, 17 Sep 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/test_orbit_main.f
Source code style tweaks.
------------------------------------------------------------------------
r618 | airwin | 2012-09-17 14:33:47 -0700 (Mon, 17 Sep 2012) | 3 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/src/asteroid_elements.py
A /trunk/time_ephemerides/te_gen/src/raw_asteroid_elements.dat
Initial commit of raw asteroid orbital elements and python script to
parse that into Fortran Data statement form.
------------------------------------------------------------------------
r617 | airwin | 2012-09-16 13:25:25 -0700 (Sun, 16 Sep 2012) | 35 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/test_orbit_main.f
Implement the rest of this check routine following the Explanatory
supplement article. The resulting output showing maximum distance
residuals throughout valid range when comparing to DE405 is
Maximum residuals in distance [1000 km] between orbit and
ephcom_interpolate routine for each planet
1 2.
2 6.
3 8.
4 36.
5 641.
6 2812.
7 2287.
8 1605.
9 1500.
As expected (since rotation should not affect distance)
these results are independent of the rotational transformations done
in orbit.f which also is a pretty good test that those rotational
transformations have been stated correctly in the article and
correctly implemented by me.
However, an issue remains that these maximum distance residuals are
somewhat larger than the "approximate" distance errors tabulated in
Table 8.10.1 in the article. I doubt that is due to an error in
kepler (a time-tested routine) or in the simple transformation of the
eccentric anomaly result from that routine to untransformed x', y',
and z'. Furthermore, the orbital elements seem correct. So for now, I
am assuming all is well with orbit.f and kepler.f, and I attribute
this issue to the difference between the above maximum residuals in
the range, and what "approximate errors" actually means in the article
(for example, it could mean the formal least-squares error of the
fit).
------------------------------------------------------------------------
r616 | airwin | 2012-09-15 22:18:32 -0700 (Sat, 15 Sep 2012) | 12 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/test_orbit_main.f
Initial implementation of routine to test the orbit subroutine.
At this stage I have just implemented the numerical values of the
osculating elements in a data statement. These data extracted from
Explanatory Supplement, Chapter 8 pdf
(ftp://ssd.jpl.nasa.gov/pub/eph/planets/ioms/ExplSupplChap8.pdf),
Table 8.10.2 using pdftotext + a lot of rearranging of results
to put them in a data statement. All the routine does at this stage
is print out those elements to check them, but it is a first step in
the right direction.
------------------------------------------------------------------------
r615 | airwin | 2012-09-15 22:11:27 -0700 (Sat, 15 Sep 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/orbit.f
Put orbit arguments in more logical order.
------------------------------------------------------------------------
r614 | airwin | 2012-09-15 17:00:24 -0700 (Sat, 15 Sep 2012) | 13 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/orbit.f
Initial implementation of the orbit routine for calculating pos(6)
(positions and velocities) as a function of time for a keplerian orbit
described by elements(8).
The orbit routine is designed for the primary purpose of approximating
asteroid orbits from their osculating orbital elements in order to
approximate the asteroid effect on time ephemerides, but so far
orbit.f (and kepler_solve.f) have only been build-tested. Further
tests need to be done (in particular, predict pos(6) for planets from
their de405 osculating orbits and comparing results with the JPL de405
ephemeris) before we use the orbit routine for its intended purpose.
------------------------------------------------------------------------
r613 | airwin | 2012-09-15 16:44:35 -0700 (Sat, 15 Sep 2012) | 10 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f
inpop10b has a different form than inpop08a and inpop10a. inpop10
has a different name form for the ascii time ephemeris file as well
as a different form for the second line of that file.
Adjust for all these undocumented differences so that any of inpop08a,
inpop10a, or inpop10b (and perhaps more inpop ephemerides after 10b
unless the INPOP gropu make more changes?) can be used as a source of
comparison for te_gen results.
------------------------------------------------------------------------
r612 | airwin | 2012-09-15 14:44:15 -0700 (Sat, 15 Sep 2012) | 11 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/src/kepler_solve.f
Add a routine to solve Kepler's equations for the eccentric anomaly
and its derivatives. I plan to use this routine to help predict the
approximate orbits of asteroids from their osculating orbital elements.
Note, this routine has been taken from the "global" software project
that I (Alan W. Irwin <airwin@users.sf.ne>) distributed under the GPL
in 1998. As is my right with my own software, I have relicensed this
routine under the LGPL to be consistent with the rest of the software
in te_gen.
------------------------------------------------------------------------
r609 | airwin | 2012-09-12 23:37:45 -0700 (Wed, 12 Sep 2012) | 15 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_common.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
Complete the implementation of the PN correction to the time ephemeris.
Implement special target without this correction to compare with
1999 results.
Replace use of ephcom_concatenate.sh (which no longer works with time
ephemerides) with specific bunzip2 or gunzip commands to help create
the binary form of the time ephemerides.
Tested by: Alan W. Irwin <airwin@users.sf.net> by plotting PN correction
alone for TE405 (which agreed with Fukushima 1995 Figure 7) and by
comparing INPOP and te_gen results for inpop08_m100_p100. More
comprehensive testing to follow.
------------------------------------------------------------------------
r608 | airwin | 2012-09-12 23:32:10 -0700 (Wed, 12 Sep 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f
Use correct scale factor to convert INPOP form of integral to te_gen
form.
------------------------------------------------------------------------
r605 | airwin | 2012-09-11 15:55:36 -0700 (Tue, 11 Sep 2012) | 13 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f
M /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/src/write_ascii_header.f
Implement ipn (ability to choose whether the time ephemeris calculation
is Newtonian alone, Post-Newtonian correction to that alone, or both)
support infrastructure.
Implement configured Python script ability to rezero the comparison
time ephemeris. (We already have that ability for the benchmark.)
Finish initial implementation of convert_inpop_ascii_time_ephemeris
and use that to help create the inpop_gen_te_gen* targets to create
residual plots between time ephemeris results generated from the INPOP
planetary ephemeris by INPOP software and te_gen.
------------------------------------------------------------------------
r595 | airwin | 2012-09-07 13:18:26 -0700 (Fri, 07 Sep 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
Use more understandable logic for the igranule index calculations.
Use more exact floating-point calculations for nromb_mean, and only
update nromb_min, nromb_mean, and nromb_max for one irange.eq.0 case
(the calculation of the integral to determine the zero) to drop added
calculations for the irange.eq.0 case that were occurring.
------------------------------------------------------------------------
r594 | airwin | 2012-09-07 13:04:56 -0700 (Fri, 07 Sep 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Generalize for more inpop time ephemeris possibilities.
------------------------------------------------------------------------
r583 | airwin | 2012-09-04 16:44:43 -0700 (Tue, 04 Sep 2012) | 29 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
Fix bug in (so far unused) time selection code. Must refine range based
on length, the time range of a single data block for the time
ephemeris, rather than on eph_sss(3), the time range of a single block
of data for the planetary ephemeris being used as the basis for the
time ephemeris calculation. length divides evenly into eph_sss(3) and
is often equal to it, but not always.
Divide integration interval at tprior_zero, the end/beginning of a
block of time ephemeris data nearest the epoch where the time
ephemeris integral is defined to be zero. Then (irange.eq.0)
integrate forward in time (for at most one data block) from
tprior_zero to determine the constant that must be subtracted to have
the right zero point. Then (irange.eq.1) integrate forward in time
from tprior_zero to the end of the integration interval using the
proper zero correction. Then (irange.eq.2) integrate backward in time
to the beginning of the integration interval from tprior_zero. This
refinement of the implementation should assure that exactly the same
floating-point calculations are done in the same order for planetary
ephemerides which have identical data over common ranges (such as
the short and long inpop8a planetary ephemerides).
The result is the short and long inpop8a time ephemerides calculated
from the short and long inpop8a planetary ephemerides are absolutely
identical (as expected) except for the last granule in the short
integration where some extremely minor floating-point noise occurs
(not expected) between the two results. So that last-granule result
needs an explanation (or debugging of some subtle bug).
------------------------------------------------------------------------
r579 | airwin | 2012-09-01 16:01:18 -0700 (Sat, 01 Sep 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Tweak what time ephemerides are graphically compared with the INPOP
time ephemerides.
------------------------------------------------------------------------
r578 | airwin | 2012-09-01 14:59:20 -0700 (Sat, 01 Sep 2012) | 25 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/src/write_ascii_header.f
Whole host of small changes in the te_gen software to deal with INPOP
generalizations, changes to ephcom, etc.
Adjust for changed ephcom_read_constants API.
Generalize time ephemeris calculation based on just JPL binary ephemerides
to both JPL and INPOP binary ephemerides.
Improve diagnostic output for calculating the zero of the
time-ephemeris integral.
Generated time ephemeris ascii headers now include 'DENUM', 'AU', and
'EMRAT' to be consistent with the new ascii header standard for that.
They also include 'CLIGHT' for convenience.
Disable exact checking of new versus old ephemerides since there is
now a change in slope and zero point. However, continue to make that
graphical comparison since the python script for doing that can
take care of the known slope and zero-point shifts betwen the new and
old time ephemeris results.
Include graphical comparisons between time ephemeris results generated
by te_gen from INPOP and JPL time ephemeris results.
------------------------------------------------------------------------
r577 | airwin | 2012-09-01 14:43:26 -0700 (Sat, 01 Sep 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
Adjust for change in ephcom_read_constants API.
Generalize from JPL binary ephemeris to either JPL or INPOP binary
ephemeris.
------------------------------------------------------------------------
r576 | airwin | 2012-09-01 14:36:07 -0700 (Sat, 01 Sep 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_integral_test_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f
Adjust for changed ephcom_read_constants API.
------------------------------------------------------------------------
r575 | airwin | 2012-09-01 14:34:28 -0700 (Sat, 01 Sep 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/doc/Doxyfile.in
Exclude iau_definitions.f since that is an included file with no
doxygen-specific comments that confuses doxygen into generating a
spurios error message for it.
------------------------------------------------------------------------
r574 | airwin | 2012-09-01 14:23:14 -0700 (Sat, 01 Sep 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/test_linear_lsf_main.f
Drop unused 'optimal_lwork' variable to quiet compiler warning.
------------------------------------------------------------------------
r573 | airwin | 2012-09-01 14:08:56 -0700 (Sat, 01 Sep 2012) | 17 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
Adjust for change to ephcom_read_constants API.
Cleanup to make configured python script easier to understand and modify
for debugging.
Improved output.
Adjust range and time logic according to whether time_offset is 0.0 or
0.5, i.e, generalize so can handle both JPL and INPOP comparisons.
Allow configured lc correction possibility according to lc read from
comparison and benchmark files.
Allow possibility (currently disabled) to draw crosshairs on zero point
for zero-point debugging purposes.
------------------------------------------------------------------------
r572 | airwin | 2012-09-01 13:55:19 -0700 (Sat, 01 Sep 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/semimajor_axes_main.f
Adjust for change to ephcom_read_constants API and also generalize for
both INPOP and JPL names of constants.
------------------------------------------------------------------------
r550 | airwin | 2012-08-17 13:36:01 -0700 (Fri, 17 Aug 2012) | 10 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/convert_inpop_ascii_time_ephemeris_main.f
Implement utility to convert INPOP ascii time ephemerides
into standard (ephcom2) ascii form.
Note the result builds and appears to generate reasonable looking
header and Chebyshev coefficients when executed by hand, but detailed
tests of these INPOP time-ephemeris results that have been converted
to standard ephcom2 ascii form against other time ephemerides still
need to be implemented.
------------------------------------------------------------------------
r549 | airwin | 2012-08-17 12:53:43 -0700 (Fri, 17 Aug 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/write_ascii_header.f
Fix uninitialized variable bug in calculating ipt(1,npt) value.
------------------------------------------------------------------------
r548 | airwin | 2012-08-16 13:10:59 -0700 (Thu, 16 Aug 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/src/write_ascii_header.f
Determine ipt completely inside write_ascii_header.
Add some documentation to write_ascii_header.
------------------------------------------------------------------------
r547 | airwin | 2012-08-16 12:38:18 -0700 (Thu, 16 Aug 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
A /trunk/time_ephemerides/te_gen/src/write_ascii_header.f
Use special subroutine, write_ascii_header, to write ascii header
for a time ephemeris. Using diff on the old and new headers showed
no differences.
------------------------------------------------------------------------
r546 | airwin | 2012-08-15 23:19:06 -0700 (Wed, 15 Aug 2012) | 11 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
Implement if_read_lc logic to transform ancient (1999) time ephemeris
results to the modern slope when comparing ancient and modern
calculations of the same time ephemeris.
This should complete the work of changing the slope and zero point of
modern calculations of time ephemerides to modern values recommended
by my research note while still retaining the ability to compare with
ancient time ephemeris calculations done with a different zero point
and slope.
------------------------------------------------------------------------
r545 | airwin | 2012-08-15 20:50:27 -0700 (Wed, 15 Aug 2012) | 32 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/iau_definitions.f
M /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
Fix recently introduced time-ephemeris generation bug where each of
the integration limits for zero-point correction were a single
variable rather than the required two-element array with an exact +
fractional time.
Use build system to adjust ascii header for ancient ephemerides to
have the LC value actually used for those ancient calculations. (This
is in preparation for if_read_lc discussed below).
Improve configured python script to generate residual plots.
+ Improve error messages.
+ Configure if_read_lc (currently unused, but designed in for the
future to give an option to read lc from the binary time ephemeris
files being compared, and adjust the slope accordingly).
+ Configure if_rezero_benchmark to implement the choice of adjusting
ancient (1999) results from the zero point defined then (at the
common time epoch) to the IAU TDB zero point which is very slightly
set off from that common time.
+ Fix tiny bug where the slope correction used the old zero point
rather than the IAU TDB zero point.
+ Use least-squares fit rather than eyeball estimate of slope to
remove.
------------------------------------------------------------------------
r544 | airwin | 2012-08-14 12:50:57 -0700 (Tue, 14 Aug 2012) | 25 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/iau_definitions.f
M /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
Implement and use included file iau_definitions.f to calculate l_c
from l_b and l_g.
Since l_c is now fixed, don't read it in from the command line.
The combination of the above two changes fix the build issue for the
previous commit.
Rename some targets and output files in a more consistent manner.
Implement use of a numpy least squares fit of the linear trend when
plotting residuals, but comment it out for now in favour of the old
system where the trend to be subtracted from the plot was specified
via a configurable parameter.
The build and test of these changes with the test_everything target
work without major issues. However, an item high on the ToDo list is
to allow overriding the fixed l_c value (probably with sed since this
is an extremely special case) to create the header for the 1999
ephemerides to mimic the variable l_c value for them. This should
help to resolve the current issue that the latest minus 1999 residuals
have an obvious secular trend because of inconsistencies in what is
substracted from the integrand in each case.
------------------------------------------------------------------------
r543 | airwin | 2012-08-11 13:19:03 -0700 (Sat, 11 Aug 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Put TE_dir suffix on new_old_residual.ps files to make it possible to copy
them to one directory for comparison purposes.
------------------------------------------------------------------------
r496 | airwin | 2012-04-25 10:20:24 -0700 (Wed, 25 Apr 2012) | 10 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_common.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
Start of changes to te_gen to account for new IAU definition of TDB.
Further changes are planned to account (both in the location-independent
and location-dependent part of TDB-TT) completely for Post-Newtonian
effects.
The present results should build, but will not run correctly with the
present test suite, but commit them anyway because my computer is
being temporarily powered down.
------------------------------------------------------------------------
r495 | airwin | 2012-04-25 10:14:47 -0700 (Wed, 25 Apr 2012) | 9 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/src/ast.gm.txt
A /trunk/time_ephemerides/te_gen/src/mean_deltaLC_asteroids.f
Initial commit of comma-separated spreadsheet data from Bill
Folkner giving the mass and semimajor axis of all the asteroids used
in the present JPL ephemerides.
Initial commit of a programme to calculate the approximate mean slope
in TCB-TCG (or the mean value of the TCG-TCG integrand) due to those
asteroids.
------------------------------------------------------------------------
r492 | airwin | 2012-04-09 21:18:17 -0700 (Mon, 09 Apr 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/post_newtonian_calc.f
Use more definitive moon semimajor axis.
Fix labelling issue for results.
------------------------------------------------------------------------
r491 | airwin | 2012-04-09 21:16:51 -0700 (Mon, 09 Apr 2012) | 17 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/semimajor_axes_main.f
Fit semimajor axes of all planets, and the Moon.
The results gave only so-so agreement (especially for outer planets)
with explanatory supplement orbit parameter results generated by the
JPL group.
The semimajor axis for the moon also differed at the 0.1 per cent
level with the Moon fact sheet value.
So it is possible I am making some assumption that is not quite
correct when using the vis-viva equation + JPL speed and distance
results to derive the semi-major axes. Anyhow, I am writing off these
results as an OK but not completely reliable first attempt, and I will
stick with definitive published results for my post-Newtonian
calculations.
------------------------------------------------------------------------
r490 | airwin | 2012-04-09 21:07:15 -0700 (Mon, 09 Apr 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/linear_lsf.f
M /trunk/time_ephemerides/te_gen/src/test_linear_lsf_main.f
Put all work arrays in argument list of the linear_lsf subroutine so
that have complete control of their dimensionality.
------------------------------------------------------------------------
r489 | airwin | 2012-04-09 10:25:14 -0700 (Mon, 09 Apr 2012) | 15 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/linear_lsf.f
A /trunk/time_ephemerides/te_gen/src/test_linear_lsf_main.f
Initial commit of lapack-based linear least squares fit library source
code and source code for a test routine that demonstrates via a
numerical simulation with normal error distribution of a 4th-order
polynomial fit that the formal error estimates on the fitted
parameters are correct (within the ~1 per cent errors of the
simulation).
N.B. My current plans are to use this linear least squares fit library
only in a limited way to estimate mean planetary and lunar orbit
semimajor axes that are required to determine the mean post-Newtonian
correction to the TDB-TT equation. But this library is extremely
useful so at some point I may decide to use it in a more general way
for other independent projects.
------------------------------------------------------------------------
r488 | airwin | 2012-04-06 15:54:03 -0700 (Fri, 06 Apr 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/post_newtonian_calc.f
Initial commit of application to calculate delta L_C(PN) for both de200
and de405.
------------------------------------------------------------------------
r482 | airwin | 2012-03-15 23:54:30 -0700 (Thu, 15 Mar 2012) | 23 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f
Make test file format (slightly) more similar to the test files distributed
by JPL for their ephemerides.
Date format in header of test file changed from Julian year to
date format used for header files. (This is completely different
than most test files, but apparently anything goes in the header since
all lines skipped until the EOT line is read.)
Line before EOT line which identifies the fields in the test data lines
is changed to be identical to that line in the JPL test files.
Test line form the same as for the JPL test files, except that the
YYYY, MM, and DD fields are separated by the ISO date standard "-" rather
than the non-standard ".".
Both the previous format for this file and the present format can be read
by ephcom_testeph since that application skips everything before EOT
and skips the YYYY-MM-DD fields of each test line.
In other words, all these changes are cosmetic ones to make the generated
te_gen test file more readable by humans.
------------------------------------------------------------------------
r481 | airwin | 2012-03-15 23:37:36 -0700 (Thu, 15 Mar 2012) | 7 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
Move to backwards-compatible version of ascii format recommended by
Bill Folkner.
Make date format output consistent with header files created
by ephcom_eph2asc.
------------------------------------------------------------------------
r456 | airwin | 2012-02-20 11:09:16 -0800 (Mon, 20 Feb 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dromb.f
Improve commentary and error messages.
Dial back jmax from 32 to 21 so that a bad func or bad eps shows up
after a ~million function evaluations rather than ~2 billion. That is,
it does not take so much computer time to reach the error message that
the programme appears to be in an infinite loop.
------------------------------------------------------------------------
r455 | airwin | 2012-02-16 18:28:56 -0800 (Thu, 16 Feb 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
For lunar distance from Earth use lunar geocentric coordinates to
reduce significance loss. The resulting plots only differ from earlier
ones at the 1.e-15 second level, i.e., in the noise as expected.
------------------------------------------------------------------------
r454 | airwin | 2012-02-16 18:26:39 -0800 (Thu, 16 Feb 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
Improve error message when time_zero is not spanned by integration
interval.
------------------------------------------------------------------------
r453 | airwin | 2012-02-12 15:46:07 -0800 (Sun, 12 Feb 2012) | 6 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/lower_case.f
M /trunk/time_ephemerides/te_gen/src/te_gen_dot_product.f
Implement doxygen documentation of these routines. This commit should
complete such documentation for all libte_gen source code, and the
remaining doxygen changes (assuming there are some) should just be
tweaks of that documentation.
------------------------------------------------------------------------
r452 | airwin | 2012-02-12 15:20:52 -0800 (Sun, 12 Feb 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dpolint.f
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/dtrapzd.f
Implement doxygen documentation of these routines.
------------------------------------------------------------------------
r451 | airwin | 2012-02-12 15:19:26 -0800 (Sun, 12 Feb 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/chebfit.f
Use correct run-time dimensions (as opposed to indefinite) for the
pv and ch arrays that are passed to chebfit. Check inside chebfit
that nc (the dimension of ch) is in the correct range rather than
simply silently using something in the correct range which has the
potential to overflow the ch array in the calling routine.
Implement doxygen documentation of this routine.
------------------------------------------------------------------------
r450 | airwin | 2012-02-12 15:15:22 -0800 (Sun, 12 Feb 2012) | 6 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Add an ngm argument to the ephem_constants call to keep track of size
of gm array in calling routine and to check that size is large enough
in ephem_constants.
Implement doxygen documentation for all these routines.
------------------------------------------------------------------------
r449 | airwin | 2012-02-12 14:30:06 -0800 (Sun, 12 Feb 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
Add support for install of man pages (in man and html form) for the
te_gen executables and build and install of doxygen documentation for
the te_gen library.
------------------------------------------------------------------------
r448 | airwin | 2012-02-12 14:28:53 -0800 (Sun, 12 Feb 2012) | 5 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/doc/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/doc/Doxyfile.in
Add support for install of man pages (in man and html form) for the
te_gen executables and build and install of doxygen documentation for
the te_gen library.
------------------------------------------------------------------------
r447 | airwin | 2012-02-10 22:52:34 -0800 (Fri, 10 Feb 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_chebyshev.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_header.html
A /trunk/time_ephemerides/te_gen/doc/html/te_gen_integral_test.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_testfile_generate.html
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_chebyshev.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_header.1
A /trunk/time_ephemerides/te_gen/doc/man/te_gen_integral_test.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_testfile_generate.1
Add man documation for te_gen_testfile_generate.
------------------------------------------------------------------------
r446 | airwin | 2012-02-10 17:29:15 -0800 (Fri, 10 Feb 2012) | 9 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/CMakeLists.txt
M /trunk/jpl_ephemerides/ephcom2/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Implement NON_TRANSITIVE option (defaults to ON for non-windows systems)
to use non-transitive linking (e.g., link only directly necessary
libraries).
Clean up some MATH_LIB issues.
"ldd -u" results are much improved by these changes.
------------------------------------------------------------------------
r445 | airwin | 2012-02-10 10:26:45 -0800 (Fri, 10 Feb 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_integral_test_main.f
Tweak commentary.
------------------------------------------------------------------------
r444 | airwin | 2012-02-10 09:52:15 -0800 (Fri, 10 Feb 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/te_gen_integral_test_main.f (from /trunk/time_ephemerides/te_gen/src/te_gen_vdc_derivative_test_main.f:442)
D /trunk/time_ephemerides/te_gen/src/te_gen_vdc_derivative_test_main.f
Change te_gen_vdc_derivative_test to te_gen_integral_test to more
closely reflect what this application has now been generalized to do.
------------------------------------------------------------------------
r443 | airwin | 2012-02-10 09:43:43 -0800 (Fri, 10 Feb 2012) | 6 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Store te_gen_header and te_gen_chebyshev stderr results in files. This
allows the user to unequivocally identify these results for the
various time ephemerides rather than having them all thrown together
in pseudo-random order in the output from a parallel make.
------------------------------------------------------------------------
r442 | airwin | 2012-02-10 09:40:11 -0800 (Fri, 10 Feb 2012) | 18 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_vdc_derivative_test_main.f
Change dromb from a subroutine to a function that returns the number
of integration points used to determine the integral.
Change the completion criterion for dromb from a relative to and
absolute error criterion since the integrals being computed are
approximately sinusoidal with many zeros.
For te_gen_chebyshev keep track of and print out nromb_min,
nromb_mean, nromb_max as well as maximum absolute value of
next-to-last, last, and estimated Chebyshev coefficients.
For te_gen_vdc_derivative keep track of and print out nromb_min,
nromb_mean, and nromb_max. Also, completely generalize it to
integrate any target and center index combination derivative used by
ephcom_interpolate_relative to do and end-to-end check that integrals
of derivatives of Chebyshev polynomials are well-behaved.
------------------------------------------------------------------------
r439 | airwin | 2012-02-07 09:21:59 -0800 (Tue, 07 Feb 2012) | 17 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/te_gen_vdc_derivative_test_main.f
D /trunk/time_ephemerides/te_gen/src/vdc_derivative.f
Update te_gen_vdc_derivative_test_main.f so that all components are
integrated and only print summary information at end.
Delete vdc_derivative.f since its code has been moved to
te_gen_vdc_derivative_test_main.f.
Build te_gen_vdc_derivative_test. Hand testing of the result works
for comparing integrals of all components of adc (calculated with the
Newtonian approximation) with the corresponding vdc component. Don't
stop there; the future plan is to generalize this check of integrating
a derivative to see how well it agrees with the original function, and
also change the Romberg integration so the error criterion is absolute
rather than relative. (I suspect previous integrations were refined
much more than they had to be near zeros of the time ephemeris
integral or in the present cases zeroes of vdc components.)
------------------------------------------------------------------------
r438 | airwin | 2012-02-06 09:38:34 -0800 (Mon, 06 Feb 2012) | 3 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/src/te_gen_vdc_derivative_test_main.f (from /trunk/time_ephemerides/te_gen/src/vdc_derivative_test_main.f:407)
D /trunk/time_ephemerides/te_gen/src/vdc_derivative_test_main.f
Prepend te_gen prefix to this source code file to be consistent with
all other _main routine_ source code files for te_gen.
------------------------------------------------------------------------
r437 | airwin | 2012-02-04 12:26:33 -0800 (Sat, 04 Feb 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_chebyshev.html
M /trunk/time_ephemerides/te_gen/doc/html/te_gen_header.html
A /trunk/time_ephemerides/te_gen/doc/html/te_gen_testfile_generate.html
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_chebyshev.1
M /trunk/time_ephemerides/te_gen/doc/man/te_gen_header.1
A /trunk/time_ephemerides/te_gen/doc/man/te_gen_testfile_generate.1
Add a man page for te_gen_testfile_generate.
------------------------------------------------------------------------
r436 | airwin | 2012-02-03 22:47:00 -0800 (Fri, 03 Feb 2012) | 9 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/doc/html/te_gen_chebyshev.html
A /trunk/time_ephemerides/te_gen/doc/html/te_gen_header.html
A /trunk/time_ephemerides/te_gen/doc/man/te_gen_chebyshev.1
A /trunk/time_ephemerides/te_gen/doc/man/te_gen_header.1
Initial commit for man pages for te_gen_header and te_gen_chebyshev.
The html versions were generated using
cd doc/man
for name in $(ls *.1 |sed "s?.1??"); do echo $name; \
man2html <$name.1 >| ../html/$name.html; done
------------------------------------------------------------------------
r431 | airwin | 2012-02-03 13:53:52 -0800 (Fri, 03 Feb 2012) | 2 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/doc
A /trunk/time_ephemerides/te_gen/doc/html
A /trunk/time_ephemerides/te_gen/doc/man
Add documentation directories to svn control.
------------------------------------------------------------------------
r430 | airwin | 2012-02-03 13:45:50 -0800 (Fri, 03 Feb 2012) | 6 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/src/LICENSE.txt (from /trunk/jpl_ephemerides/ephcom2/LICENSE.txt:429)
Licensing information (LGPL version 2.1) for the te_gen subproject of
the Time Ephemerides Project. The definitive text for this license
has been downloaded from http://www.gnu.org/licenses/lgpl-2.1.txt as
referenced from http://www.gnu.org/licenses/lgpl-2.1.html.
------------------------------------------------------------------------
r428 | airwin | 2012-02-03 13:26:47 -0800 (Fri, 03 Feb 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dpolint.f
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/dtrapzd.f
Give credit to Numerical Recipes for the ideas used in the
implementations of these routines.
------------------------------------------------------------------------
r427 | airwin | 2012-02-03 12:58:29 -0800 (Fri, 03 Feb 2012) | 14 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Add an old_testeph${te_dir} test target to check consistency of the
binary form of the old time ephemeris with the te_testpo.* file
generated from the binary form of the new time ephemeris. This is
classified as an external check (with much different software that
generated the old time ephemeris results) so add this test to the
test_external list of dependent targets.
Switch testeph${te_dir} from the test_external list of dependent
targets to the test_internal list of dependent targets since it is
just an internal consistency check.
Improve documentation.
------------------------------------------------------------------------
r425 | airwin | 2012-02-02 20:55:55 -0800 (Thu, 02 Feb 2012) | 7 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Pipeline bzip2 command rather than writing to an ascii file and then
running bzip2 on that file.
Add custom command/target pair to check created TE_EPH against created
test file for that binary form of time ephemeris.
------------------------------------------------------------------------
r424 | airwin | 2012-02-02 20:48:11 -0800 (Thu, 02 Feb 2012) | 6 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f
Change output format of test file to be consistent with input
requirements of ephcom_testeph. (Previously [i.e., in ~1999], this
test file was read in by a special application rather than the
standard testeph so that is why the formats drifted apart.)
------------------------------------------------------------------------
r422 | airwin | 2012-02-02 11:59:57 -0800 (Thu, 02 Feb 2012) | 7 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
D /trunk/time_ephemerides/te_gen/src/te_gen_testeph_main.f
A /trunk/time_ephemerides/te_gen/src/te_gen_testfile_generate_main.f (from /trunk/time_ephemerides/te_gen/src/te_gen_testeph_main.f:421)
Convert te_gen_testeph_main.f to more descriptive
te_gen_testfile_generate_main.f with associated command
te_gen_testfile_generate.
Add custom command/target pair to use te_gen_testfile_generate to
generate a test file for every time ephemeris.
------------------------------------------------------------------------
r421 | airwin | 2012-02-01 21:26:56 -0800 (Wed, 01 Feb 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/te_gen_testeph_main.f
Update source code for the te_gen_testeph application and build it
properly with correct linking.
------------------------------------------------------------------------
r419 | airwin | 2012-02-01 10:53:14 -0800 (Wed, 01 Feb 2012) | 5 lines
Changed paths:
D /trunk/time_ephemerides/te_gen/src/te_gen_testeph.f
A /trunk/time_ephemerides/te_gen/src/te_gen_testeph_main.f (from /trunk/time_ephemerides/te_gen/src/te_gen_testeph.f:418)
This time, rename this source code properly,
te_gen_testeph.f ==> te_gen_testeph_main.f
------------------------------------------------------------------------
r418 | airwin | 2012-02-01 10:47:05 -0800 (Wed, 01 Feb 2012) | 3 lines
Changed paths:
D /trunk/time_ephemerides/te_gen/src/ephtestgen_main.f
A /trunk/time_ephemerides/te_gen/src/te_gen_testeph.f (from /trunk/time_ephemerides/te_gen/src/ephtestgen_main.f:407)
ephtestgen_main.f renamed to te_gen_testeph.f to improve consistency
in filenames for the te_gen source files.
------------------------------------------------------------------------
r417 | airwin | 2012-02-01 10:44:31 -0800 (Wed, 01 Feb 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/lower_case.f
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Put ERROR in every string associated with a stop statement to make it
easier to spot trouble.
------------------------------------------------------------------------
r416 | airwin | 2012-02-01 10:44:10 -0800 (Wed, 01 Feb 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dpolint.f
implicit none
Put ERROR in every string associated with a stop statement to make it
easier to spot trouble.
------------------------------------------------------------------------
r415 | airwin | 2012-01-31 22:38:03 -0800 (Tue, 31 Jan 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Add consistency tests (cycle from binary ephemeris to ascii ephemeris
and back using ephcom tools) for each binary time ephemeris
to test_internal target.
------------------------------------------------------------------------
r414 | airwin | 2012-01-31 16:28:58 -0800 (Tue, 31 Jan 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f
M /trunk/time_ephemerides/te_gen/src/te_gen_common.f
M /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Replace all references to JPLEPH file by proper determination of the
desired filename for the JPL ephemeris by the application, and
transmission of that file name (via the te_gen_common common block)
wherever it is needed by routines that call the ephcomc routines.
Residual plots continued to look the same after this fairly intrusive
change.
------------------------------------------------------------------------
r413 | airwin | 2012-01-31 15:21:49 -0800 (Tue, 31 Jan 2012) | 2 lines
Changed paths:
D /trunk/time_ephemerides/te_gen/src/l_c_common.f
A /trunk/time_ephemerides/te_gen/src/te_gen_common.f (from /trunk/time_ephemerides/te_gen/src/l_c_common.f:401)
Rename common block source code to use the te_gen suffix.
------------------------------------------------------------------------
r412 | airwin | 2012-01-31 00:15:46 -0800 (Tue, 31 Jan 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Code cleanups.
------------------------------------------------------------------------
r411 | airwin | 2012-01-31 00:15:27 -0800 (Tue, 31 Jan 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
Replace deprecated const call with ephcom_read_constants.
Code cleanups.
------------------------------------------------------------------------
r410 | airwin | 2012-01-30 23:36:23 -0800 (Mon, 30 Jan 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/dtrapzd.f
Code rearrangement so that "save" statement does not have to be used.
------------------------------------------------------------------------
r409 | airwin | 2012-01-30 22:48:14 -0800 (Mon, 30 Jan 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/chebfit.f
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/dtrapzd.f
implicit none and code/commentary cleanup.
------------------------------------------------------------------------
r408 | airwin | 2012-01-30 22:36:19 -0800 (Mon, 30 Jan 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dromb.f
implicit none.
Reduce jmax from 40 to 32 to avoid integer overflow in value of "it"
variable used in dtrapzd.
------------------------------------------------------------------------
r407 | airwin | 2012-01-30 21:36:28 -0800 (Mon, 30 Jan 2012) | 6 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephtestgen_main.f
M /trunk/time_ephemerides/te_gen/src/vdc_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_derivative_test_main.f
None of these source files are used by the te_gen library (currently
linked by te_gen_header and te_gen_chebyshev), but in anticipation
they might be used in the future with that library or for another
purpose, relicense from GPL to LGPL to be consistent with ephcom.
------------------------------------------------------------------------
r406 | airwin | 2012-01-30 19:29:57 -0800 (Mon, 30 Jan 2012) | 7 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
D /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f
D /trunk/time_ephemerides/te_gen/src/ephheadgen_main.f
A /trunk/time_ephemerides/te_gen/src/te_gen_chebyshev_main.f (from /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f:404)
A /trunk/time_ephemerides/te_gen/src/te_gen_header_main.f (from /trunk/time_ephemerides/te_gen/src/ephheadgen_main.f:404)
Change source file names for executables which create the ascii time
ephemeris header and chebyshev coefficient data from
ephheadgen_main.f ==> te_gen_header_main.f
ephchebgen_main.f ==> te_gen_chebyshev_main.f
------------------------------------------------------------------------
r405 | airwin | 2012-01-30 19:15:14 -0800 (Mon, 30 Jan 2012) | 6 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
te_gen library only used by te_gen_ephheadgen and te_gen_ephchebgen
applications at this time.
Remove vdc_derivative.f software from the te_gen library since it
is not used by either te_gen_ephheadgen or te_gen_ephchebgen.
------------------------------------------------------------------------
r404 | airwin | 2012-01-30 19:06:36 -0800 (Mon, 30 Jan 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dpolint.f
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/dtrapzd.f
M /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/ephheadgen_main.f
M /trunk/time_ephemerides/te_gen/src/lower_case.f
M /trunk/time_ephemerides/te_gen/src/te_gen_dot_product.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Change licensing terms from GPL to LGPL to be consistent with ephcom
software.
------------------------------------------------------------------------
r403 | airwin | 2012-01-30 19:03:11 -0800 (Mon, 30 Jan 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/chebfit.f
I have made explicit my assumption that this source file (which Myles
Standish kindly communicated to me in September 1998) is in the public
domain.
------------------------------------------------------------------------
r402 | airwin | 2012-01-29 22:22:56 -0800 (Sun, 29 Jan 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
As before, for each residual plot the slope of the residuals has been
roughly removed by an eyeball fit of preliminary plotted results.
However, the actual values used to removed the slope are changed from
before because numerical noise in the slope has been reduced by the
much simpler/cleaner way that delta L_C is now directly subtracted
from the time-ephemeris integrand.
------------------------------------------------------------------------
r401 | airwin | 2012-01-29 11:15:58 -0800 (Sun, 29 Jan 2012) | 13 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f
A /trunk/time_ephemerides/te_gen/src/l_c_common.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
Replace old method of subtracting a roughly correct L_C value from the
tt_derivative value and adjusting the integral and derivative
afterwards using a precise L_C value with simpler logic that directly
subtracts the desired precise L_C value (communicated by a new common
block).
The new method has improved numerical properties (no more residual
plots in the shape of a small-amplitude parabola) that are evident in
some of the residual plots. So it is a win numerically and also a win
for code clarity (aside from the minor code clarity disadvantages of
using a common block to communicate L_C).
------------------------------------------------------------------------
r400 | airwin | 2012-01-29 10:30:51 -0800 (Sun, 29 Jan 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
Reduce numerical noise in slope correction.
------------------------------------------------------------------------
r399 | airwin | 2012-01-28 12:19:25 -0800 (Sat, 28 Jan 2012) | 8 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
Make plots more configurable with delta Delta L_C correction
configuration, configuration of the two filenames etc.
Add targets for generating plots comparing modern time ephemeris
calculations with each other.
------------------------------------------------------------------------
r396 | airwin | 2012-01-27 17:11:28 -0800 (Fri, 27 Jan 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f
Increase static array size so that TE423 can be calculated.
Make sure "ERROR" string is in all error messages.
------------------------------------------------------------------------
r394 | airwin | 2012-01-26 13:15:47 -0800 (Thu, 26 Jan 2012) | 6 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Remove unnecessary fake epoch ranges (-1.d300 to 1.d300) that were
being specified to force applications to use the full range of the
ephemerides since the applications use the full range in any case if
no range is specified.
------------------------------------------------------------------------
r393 | airwin | 2012-01-26 12:49:02 -0800 (Thu, 26 Jan 2012) | 7 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f
Some code and commentary cleanup.
If the limits of the integration are not specified by the user, then
use the start and stop times of the JPL ephemeris instead for the
limits.
------------------------------------------------------------------------
r392 | airwin | 2012-01-26 12:45:33 -0800 (Thu, 26 Jan 2012) | 10 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephheadgen_main.f
Some programme/commentary cleanup.
The time ephemeris epoch length specified by the user is the one now
used rather than simply adopting the JPL ephemeris epoch length for
the header. The user-specified length must satisfy the constraint that
it must divide evenly into the JPL ephemeris epoch length to avoid
placing the second-derivative integrand discontinuties at granule
boundaries at an interior point of an integration.
------------------------------------------------------------------------
r391 | airwin | 2012-01-25 22:58:46 -0800 (Wed, 25 Jan 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
Make residual plots even more configurable than previously with control
of the scaling, specified residual units in the residual (Y) axis,
and title.
------------------------------------------------------------------------
r390 | airwin | 2012-01-25 22:56:38 -0800 (Wed, 25 Jan 2012) | 21 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Update preliminary tests so that they work properly.
Replicate original (1999) TE calculations much more exactly in terms
of time segment length, delta LC, and number of coefficients.
Determine te_dir CMake variable in a way that preserves any non-numeric suffix
information such as "_old".
More consistent naming scheme for variables and test targets.
Configure more items in python plotting files.
Implement new_old_residual_plot_${te_dir} test.
Add test_internal (empty for the moment), test_external, and test_everything targets.
Move from iffy IMPORT_LOCATION property for imported targets (which
depends on an internal idiosyncrasy of CMake) to the recommended
LOCATION property.
------------------------------------------------------------------------
r385 | airwin | 2012-01-24 02:00:50 -0800 (Tue, 24 Jan 2012) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/residual_plot.py.in
Add configurable python scripts to do plot of residuals between new
and old time ephemeris results.
------------------------------------------------------------------------
r381 | airwin | 2012-01-23 16:21:50 -0800 (Mon, 23 Jan 2012) | 6 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Add test targets to compare old (~1999) time ephemeris results that I
created long ago in compressed ascii form with modern ones. These
test targets will only exist for those users (probably only me) who
have access to my old time ephemeris results.
------------------------------------------------------------------------
r380 | airwin | 2012-01-23 13:57:07 -0800 (Mon, 23 Jan 2012) | 11 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
To provide consistency with results calculated in 1999, use unrounded
Delta_LC value for TE200 determined from that time ephemeris in 1999
for new TE200 result. For all other time ephemerides (like we did in
1999) use the 1999 unrounded value of delta_LC determined for TE405.
The plan is to eventually drop this consistency with 1999 results when
we are no longer comparing with the 1999 results, and instead use a
uniform rounded delta_LC value for all ephemerides that can be
individually corrected for each ephemeris as appropriate.
------------------------------------------------------------------------
r379 | airwin | 2012-01-23 12:55:41 -0800 (Mon, 23 Jan 2012) | 7 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f
M /trunk/time_ephemerides/te_gen/src/ephheadgen_main.f
Change names of targets and files used in te_gen build system to have
consistent te_ or TE_ prefix.
Change te_gen Fortran applications to use command_argument_count and
get_command_argument to obtain needed data rather than using stdin.
------------------------------------------------------------------------
r371 | airwin | 2012-01-18 10:27:10 -0800 (Wed, 18 Jan 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephheadgen_main.f
Fix missing cname_length in ascii_version==1 output.
------------------------------------------------------------------------
r370 | airwin | 2012-01-18 10:26:07 -0800 (Wed, 18 Jan 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f
Adjust for changed ephcom_read_constants Fortran API.
------------------------------------------------------------------------
r338 | airwin | 2012-01-07 16:01:46 -0800 (Sat, 07 Jan 2012) | 13 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Change name of the parent directory of the te_* subdirectories where
the time ephemeris results are stored and tested from teph_ascii_data
to teph_data (since the data stored there are now binary as well as
ascii).
Install generated time ephemeris ascii header. For now do not install
ascii data part of ascii time ephemeris, but I may change my mind
about that.
Add custom command/target to build binary version of time ephemeris, and
install that binary version.
------------------------------------------------------------------------
r336 | airwin | 2012-01-05 16:10:20 -0800 (Thu, 05 Jan 2012) | 4 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephheadgen_main.f
Tweak title and change name of variable from DENUM to TENUM for
generated ascii header for time ephemerides.
------------------------------------------------------------------------
r334 | airwin | 2012-01-05 14:22:53 -0800 (Thu, 05 Jan 2012) | 12 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/ephcomf.f
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/ephcomfc.c
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/ephcomfc.h
M /trunk/jpl_ephemerides/ephcom2/src/ephcomc.c
M /trunk/jpl_ephemerides/ephcom2/src/ephcomc.h
M /trunk/jpl_ephemerides/ephcom2/src/testeph.c
M /trunk/jpl_ephemerides/ephcom2/src/vtransit.c
M /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f
Change order of arguments for all variants of ephcom_read_constants such
that nvalues comes right after cnames and values rather than being
separated with sss in between. This is a more convenient arrangement
of arguments from the swig point of view.
This is a fundamental API change to ephcom_read_constants, but, on the
other hand, ephcom_read_constants variants are an addition to the API
compared to the API of the last release. So this "added" change to the
API not as important as other backwards-incompatible API changes that
have occurred since the last release.
------------------------------------------------------------------------
r329 | airwin | 2012-01-04 18:38:02 -0800 (Wed, 04 Jan 2012) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephheadgen_main.f
Generate correct ascii header for ascii format version 1. Tested with
ephcom to produce a binary ephemeris that can be compared with other
binary time ephemerides using ephcom_ephcmp and ephcom_headcmp.
------------------------------------------------------------------------
r328 | airwin | 2012-01-04 11:56:20 -0800 (Wed, 04 Jan 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Use "te" rather than "de" prefix for time ephemeris directories.
------------------------------------------------------------------------
r327 | airwin | 2012-01-04 11:55:39 -0800 (Wed, 04 Jan 2012) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f
Adjust start and stop times to the nearest JPL interpolation boundary.
------------------------------------------------------------------------
r308 | airwin | 2011-12-11 18:04:41 -0800 (Sun, 11 Dec 2011) | 22 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/ephcomf.f
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/ephcomfc.c
M /trunk/jpl_ephemerides/ephcom2/bindings/f95/ephcomfc.h
M /trunk/jpl_ephemerides/ephcom2/src/ephcomc.c
M /trunk/jpl_ephemerides/ephcom2/src/ephcomc.h
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Add control argument to ephcom_interpolate_relative chain of routines
that has the same function as the existing control argument for the
ephcom_interpolate_list chain of routines.
Rearrange the order of the arguments of the ephcom_interpolate_list
chain of routines so that et2 is the second argument consistent with
the existing order of the arguments for the ephcom_interpolate_relative
chain of routines.
These changes tested by a valgrind run of flce_testeph and diff of
results with previous results. This tests the chain of
ephcom_interpolate_relative calls starting with dpleph. I ran this
test twice --- once with the usual #undef EPHCOM_INTERPOLATE_LIST_DEBUG and once
with #define EPHCOM_INTERPOLATE_LIST_DEBUG. For the latter case, the
chain of ephcom_interpolate_relative calls is diverted to the
chain of ephcom_interpolate_list calls.
These changes also tested by calculating TE405 (which uses the
ephcom_interpolate_list chain of routines) and comparing with prior
results.
------------------------------------------------------------------------
r302 | airwin | 2011-11-08 11:04:14 -0800 (Tue, 08 Nov 2011) | 11 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Replace definite with indefinite integer and real types, i.e.,
integer*4 ==> integer
real*8 ==> double precision
Adjust to new API for ephcom_interpolate_list which returns a status
code via the function value rather than via the argument list.
These changes checked by running the teph_ascii_de405 target and
showing the TE405 results were identical with previous ones.
------------------------------------------------------------------------
r300 | airwin | 2011-11-06 17:26:17 -0800 (Sun, 06 Nov 2011) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
call ephcom_interpolate_list, the new name of what was previously called
"state1" in libephcomf.
------------------------------------------------------------------------
r286 | airwin | 2011-10-21 15:27:03 -0700 (Fri, 21 Oct 2011) | 5 lines
Changed paths:
M /trunk/jpl_ephemerides/ephcom2/bindings/f77/ephcomf.f
M /trunk/jpl_ephemerides/ephcom2/bindings/f77/ephcomfc.c
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Do the right thing with regard to nbody. Drop all constraints on nbody
other than it must be greater than 0. Ignore all indices greater
than MIN(nbody, EPHCOM_NUMOBJECTS).
------------------------------------------------------------------------
r281 | airwin | 2011-10-15 09:48:18 -0700 (Sat, 15 Oct 2011) | 6 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Determine a list of known installed binary JPL ephemerides.
Implement teph_ascii_${de_dir} targets to create an ascii time
ephemeris corresponding to each known binary JPL ephemeris.
------------------------------------------------------------------------
r280 | airwin | 2011-10-15 09:42:59 -0700 (Sat, 15 Oct 2011) | 6 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
Replace nine individual calls to dpleph with one call to the new
ephcomf state1 fortran subroutine API. This change speeded up
generation to time ephemerides by a factor of 3 with no change in the
ascii results for TE405!
------------------------------------------------------------------------
r278 | airwin | 2011-09-22 15:28:34 -0700 (Thu, 22 Sep 2011) | 7 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f
M /trunk/time_ephemerides/te_gen/src/vdc_derivative_test_main.f
Add executables to te_gen build (except for te_gen_ephtestgen since
ephtestget_main.f has special time_const and time_pleph calls which
will be replaced by ephcomf calls, eventually).
Fix build issues generated by previous styling changes that these
executable builds reveal.
------------------------------------------------------------------------
r277 | airwin | 2011-09-22 14:37:47 -0700 (Thu, 22 Sep 2011) | 2 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/src/ephtestgen_main.f (from /trunk/time_ephemerides/te_gen/src/time_ephtestgen_main.f:273)
D /trunk/time_ephemerides/te_gen/src/time_ephtestgen_main.f
Drop "time_" prefix from time_ephtestgen_main.f file name.
------------------------------------------------------------------------
r276 | airwin | 2011-09-22 14:36:26 -0700 (Thu, 22 Sep 2011) | 2 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/src/ephheadgen_main.f (from /trunk/time_ephemerides/te_gen/src/time_ephheadgen_main.f:275)
D /trunk/time_ephemerides/te_gen/src/time_ephheadgen_main.f
Drop "time_" prefix from time_ephheadgen_main.f file name
------------------------------------------------------------------------
r275 | airwin | 2011-09-22 14:34:52 -0700 (Thu, 22 Sep 2011) | 5 lines
Changed paths:
A /trunk/time_ephemerides/te_gen/src/ephchebgen_main.f (from /trunk/time_ephemerides/te_gen/src/time_ephchebgen_main.f:273)
D /trunk/time_ephemerides/te_gen/src/time_ephchebgen_main.f
M /trunk/time_ephemerides/te_gen/src/time_ephheadgen_main.f
M /trunk/time_ephemerides/te_gen/src/vdc_derivative_test_main.f
Remove program statements since they might interfere with actual
name of executable.
Also drop time_ prefix from time_ephchebgen_main.f name.
------------------------------------------------------------------------
r274 | airwin | 2011-09-22 14:05:43 -0700 (Thu, 22 Sep 2011) | 5 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/CMakeLists.txt
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
Implement include(export_ephcom) to access target information exported
from the ephcom install. Use that target information to link the
te_gen library correctly. (ldd -r src/libte_gen.so shows no issues
with undefined symbols after this change.)
------------------------------------------------------------------------
r273 | airwin | 2011-09-22 13:16:08 -0700 (Thu, 22 Sep 2011) | 2 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/chebfit.f
M /trunk/time_ephemerides/te_gen/src/dpolint.f
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/dtrapzd.f
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/lower_case.f
M /trunk/time_ephemerides/te_gen/src/te_gen_dot_product.f
M /trunk/time_ephemerides/te_gen/src/time_ephchebgen_main.f
M /trunk/time_ephemerides/te_gen/src/time_ephheadgen_main.f
M /trunk/time_ephemerides/te_gen/src/time_ephtestgen_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
M /trunk/time_ephemerides/te_gen/src/vdc_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_derivative_test_main.f
Use emacs to style each Fortran routine.
------------------------------------------------------------------------
r271 | airwin | 2011-09-22 11:15:02 -0700 (Thu, 22 Sep 2011) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/chebfit.f
M /trunk/time_ephemerides/te_gen/src/dpolint.f
M /trunk/time_ephemerides/te_gen/src/dromb.f
M /trunk/time_ephemerides/te_gen/src/dtrapzd.f
M /trunk/time_ephemerides/te_gen/src/ephem_constants.f
M /trunk/time_ephemerides/te_gen/src/lower_case.f
M /trunk/time_ephemerides/te_gen/src/te_gen_dot_product.f
M /trunk/time_ephemerides/te_gen/src/time_ephchebgen_main.f
M /trunk/time_ephemerides/te_gen/src/time_ephheadgen_main.f
M /trunk/time_ephemerides/te_gen/src/time_ephtestgen_main.f
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
M /trunk/time_ephemerides/te_gen/src/vdc_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_derivative_test_main.f
Style change: lower-case everything in source files
except for character strings.
------------------------------------------------------------------------
r270 | airwin | 2011-09-22 10:45:45 -0700 (Thu, 22 Sep 2011) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/dpolint.f
Replace pause statement which is not supported by gfortran with
stop statement.
------------------------------------------------------------------------
r269 | airwin | 2011-09-22 10:35:38 -0700 (Thu, 22 Sep 2011) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
Get rid of too-long line created by previous dot_product ==>
te_gen_dot_product change.
------------------------------------------------------------------------
r268 | airwin | 2011-09-22 10:31:03 -0700 (Thu, 22 Sep 2011) | 3 lines
Changed paths:
M /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
D /trunk/time_ephemerides/te_gen/src/dot_product.f
A /trunk/time_ephemerides/te_gen/src/te_gen_dot_product.f (from /trunk/time_ephemerides/te_gen/src/dot_product.f:267)
M /trunk/time_ephemerides/te_gen/src/tt_derivative.f
M /trunk/time_ephemerides/te_gen/src/vdc_calc.f
dot_product ==> te_gen_dot_product everywhere to avoid name clash with
the gfortran library routine with the dot_product name.
------------------------------------------------------------------------
r267 | airwin | 2011-09-22 10:20:29 -0700 (Thu, 22 Sep 2011) | 13 lines
Changed paths:
A /trunk/time_ephemerides/te_gen
A /trunk/time_ephemerides/te_gen/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/README
A /trunk/time_ephemerides/te_gen/installed_CMakeLists.txt.in
A /trunk/time_ephemerides/te_gen/src
A /trunk/time_ephemerides/te_gen/src/CMakeLists.txt
A /trunk/time_ephemerides/te_gen/src/chebfit.f
A /trunk/time_ephemerides/te_gen/src/dot_product.f
A /trunk/time_ephemerides/te_gen/src/dpolint.f
A /trunk/time_ephemerides/te_gen/src/dromb.f
A /trunk/time_ephemerides/te_gen/src/dtrapzd.f
A /trunk/time_ephemerides/te_gen/src/ephem_constants.f
A /trunk/time_ephemerides/te_gen/src/lower_case.f
A /trunk/time_ephemerides/te_gen/src/time_ephchebgen_main.f
A /trunk/time_ephemerides/te_gen/src/time_ephheadgen_main.f
A /trunk/time_ephemerides/te_gen/src/time_ephtestgen_main.f
A /trunk/time_ephemerides/te_gen/src/tt_derivative.f
A /trunk/time_ephemerides/te_gen/src/vdc_calc.f
A /trunk/time_ephemerides/te_gen/src/vdc_derivative.f
A /trunk/time_ephemerides/te_gen/src/vdc_derivative_test_main.f
Initial commit of te_gen subproject of the Time Ephemerides project.
The *.f files are taken from a slightly updated version of the
"chebyshev.tar.gz" package that I released under the GPL in 1999-11-15.
Note I plan to relicense those files under the LGPL to be consistent
with the rest of the Time Ephemerides project.
This initial commit includes an elementary CMake-based build system to
build the te_gen library. However, that build currently does not work
because there is a name clash between the dot_product subroutine
implemented here and the gfortran library dot_product subroutine.
------------------------------------------------------------------------