The FORTRAN 77 code Archi was originally written
as part of my Ph.D. in 1992, with the aim of solving delay differential
equations (DDEs) and neutral differential equations (NDEs). The code was
written with the intention of making it as portable as possible; thus the
original Archi as undergone a number of minor modifications and
improvements so as to maintain 100% compatibility with all the Fortran
compilers available to me. Since 1992, two extended version Archi-L
(that interfaces with the Netlib unconstrained minimization code LMDIF)
and Archi-N (that interfaces with the NAg constrained optimization
code E04UPF) for solving parameter estimation problems have been
developed under SERC grant GR/H59237. The next extension to Archi
(funded by EPSRC grant GR/K48297) is to add defect control, both as an
error control for the solution and as an alternative to tracking derivative
discontinuities (from now on referred to simply as `discontinuities').
This version of the guide now also documents the use of Archi-L
and Archi-N for parameter estimation.
Archi is based on the fifth-order Dormand &
Prince explicit Runge-Kutta method with a fifth-order Hermite interpolant
due to Shampine. The choice of a Hermite interpolant was influenced by:
1. The conclusion of Gladwell, Shampine, Baca & Brankin that for non-monotonic
solutions, quintic Hermite interpolants are required in order to preserve
the shape of a solution. 2. In order to maintain the asymptotic correctness
of a p-th order local error estimator, the local error in the approximation
scheme used to evaluate delay terms must be at least order p+1.
Archi has also been designed to track the propagation of discontinuities
in a solution using the discontinuity tracking theory developed by Wille
& Baker, and to solve vanishing-lag DDEs using either extrapolation
or the predictor-corrector approach developed by Baker & Paul. In addition,
Archi can solve a limited class of delay-integro-differential equations,
specifically those equations that have a sufficiently smooth integrand,
using the adaptive quadrature algorithm developed by Paul.