A Friendly Fortran DDE Solver

L.F. Shampine
Mathematics Department
Southern Methodist University
Dallas, TX 75275

S. Thompson
Mathematics & Statistics Department
Radford University
Radford, VA 24142

This page contains information about the solution of delay differential equations (ddes) using the Fortran 90 solver DDE_SOLVER_M.F90. Included are a manuscript that describes dde_solver_m, several example programs, and the source code for the solver. Information about the Matlab dde solvers, dde23 and ddesd, is also included.

  Date: December 2017 Version 2 Update:

gfortran and pgi users have reported problems using DDE_SOLVER for some time now. Kudos to Warren Weckesser who added more interface declarations to DDE_SOLVER in the unix version of the solver. All of the example programs (and others) work with this version. I have ported Warren's unix solver to Windows 10. It can be downloaded from this page. I have used both gfortran 7.0.2 and the Salford/Silverfrost 32 and 64 bit compilers to run the new examples (and others) successfully. Both are included here. For each example program, Matlab scripts are included to plot the solutions. (Note: With the gfortran examples, it is necessary to edit the exported data files to remove integration statistics that are printed to the files rather than to the screen. The edited versions of these files are contained the zip file below. Matlab produces the same plots as those for the Salford scripts in the zip file below.) Warren's unix solver is not included here. If you use unix, you can get his versions of the example programs and a direct link to his DDE_SOLVER file which he maintains on github. Version 2 of the Windows solver supercedes the previous version later on this page. Please contact me if you have any questions or comments or if you encounter any problems. Kudos, again, to Warren.

  Available Older Materials:

  • Manuscript

  • Example Programs

  • Fortran 90 source code for dde_solver

  • EZ versions of DDE23 and DDESD

  • dde23 (Matlab; constant delays)

  • ddesd (Matlab; state dependent delays)