Home :: Tools :: ODEPACK

ODEPACK

Background

ODEPACK is a library for the numerical solution of systems of ordinary differential equations. It is written in Fortran 77, but can be accessed from C and C++ with only a little effort. The permanent home of ODEPACK is in the ODEPACK directory at netlib. Surprisingly, there are very few open-source libraries that perform the functions of ODEPACK.

A new distribution of ODEPACK

ODEPACK is distributed as fixed-format Fortran 77 source with plain text files offering documentation and examples. It is not the friendliest distribution, because there are no makefiles and even the examples are buried in commented-out sections of the solver source code. It seems that ODEPACK was designed to be used in source form, perhaps by copying relevant functions and pasting them into your own Fortran program, or compiling ODEPACK right into your program.

In an effort to get ODEPACK running for my own use, I have developed a friendlier distribution. I created a Makefile that will compile ODEPACK as a shared library, using the Gnu compiler collection (gcc), and separated the demonstration code into a directory of standalone programs.

Download ODEPACK

Download ODEPACK here

Documentation for ODEPACK

Read the ODEPACK documentation

Using ODEPACK

Fortran

Once compiled as a library, ODEPACK just has to be linked with your application. Download the example code and look at the demos and examples.

C/C++

Although ODEPACK is written in the vintage dialect of Fortran 77, it can be called from a C or C++ program. This is easy, once you know how to do it. I plan to show an example of how to call Fortran code from C or C++ soon.

C++ Integration Through Boost Bindings

I have also started to give ODEPACK an interface to the Boost libraries, similar to the bindings available to LAPACK. I got it working for the function DLSODE only, but it does work well! The headers are included in the tarball.

@?@?| 0@?@?| 0@?@?| 0