Modern Fortran Edition of the DVODE ODE Solver.
THIS IS A WORK IN PROGRESS!
The latest API documentation can be found here. This was generated from the source code using FORD (i.e. by running ford ford.md
).
The library can be compiled with recent versions the Intel Fortran Compiler and GFortran (and presumably any other Fortran compiler that supports modern standards).
A fpm.toml
file is provided for compiling dvode with the Fortran Package Manager. For example, to build:
fpm build --profile release
By default, the library is built with double precision (real64
) real values. Explicitly specifying the real kind can be done using the following processor flags:
Preprocessor flag | Kind | Number of bytes |
---|---|---|
REAL32 |
real(kind=real32) |
4 |
REAL64 |
real(kind=real64) |
8 |
REAL128 |
real(kind=real128) |
16 |
For example, to build a single precision version of the library, use:
fpm build --profile release --flag "-DREAL32"
To run the unit tests:
fpm test --profile release
To use dvode
within your fpm project, add the following to your fpm.toml
file:
[dependencies]
dvode = { git="https://github.com/jacobwilliams/dvode.git" }
or, to use a specific version:
[dependencies]
dvode = { git="https://github.com/jacobwilliams/dvode.git", tag = "1.0.0" }
The library requires some BLAS routines, which are included. However, the user may also choose to link to an external BLAS library. This can be done by using the HAS_BLAS
compiler directive. For example:
fpm build --compiler gfortran --flag "-DHAS_BLAS -lblas"
However, note that an external BLAS can only be used if the library is compiled with double precision (real64
) reals.
- Brown, Byrne, Hindmarsh, VODE, A Variable-Coefficient ODE Solver, June 1988.
- ODEPACK: Fortran ODE Solvers [LLNL]
- SUNDIALS The successor to VODE and other codes from LLNL. (GitHub repo)
- A backup of another DVODE refactoring formerly located at https://www.radford.edu/~thompson/vodef90web/vodef90source/misc.html can be found at CRquantum/dvode_backup.
- DDEABM Modern Fortran implementation of the DDEABM Adams-Bashforth algorithm.