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 friendlier 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. I intended to make it publicly available…but I never did. Ask me if you want it!

Documentation for ODEPACK

Read the ODEPACK docs as HTML

Using ODEPACK

Once compiled as a library, ODEPACK has to be linked with your application.

ODEPACK and C/C++

Although ODEPACK is written in the vintage dialect of Fortran 77, it can be called from a C or C++ program.

3 thoughts on “ODEPACK: Numerical Solutions to ODEs

  1. Hi just wondered if you got around the compiler / linker errors from the original code. ie. where real arrays are passed into integer arrays and arrays are accessed past their defined end. I tried to suppress these in the the Intel Compiler but test cases 5 and 6 fail.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s