This site provides source code for Fortran computer programs
that calculate accurate values for Mathieu functions and both
prolate and oblate spheroidal wave functions over extremely
wide parameter ranges. The program matfcn delivers values
for both angular and/or radial (i.e., modified) Mathieu functions
of integer order. The program profcn calculates values for angular
and/or radial prolate spheroidal wave functions. Oblfcn calculates
corresponding values for oblate angular and radial functions.
Matfcn performs calculations in double precision (real*8)
arithmetic. Both profcn and oblfcn utilize quadruple precision
(real*16) arithmetic to calculate accurate values over the widest
possible parameter ranges. [64-bit Fortran compilers may offer
the equivalent of quadruple precision (132-bit arithmetic on a PC)
with double precision speed by using two 64-bit words.] Comment
statements at the beginning of each program provide detailed
instructions on how to use them. Also provided are sample input
files (matfcn.dat, profcn.dat, and oblfcn.dat, respectively) and the
corresponding output files giving the computed radial (fort.20)
and angular function (fort.30) values. For convenience, the site
provides subroutine versions of matfcn, profcn and oblfcn.

This site provides pdf files of the three articles published in the
Quarterly of Applied Mathematics that are the basis for matfcn and
profcn. It also provides a brief pdf file describing oblfcn and the
methods used to calculate the oblate functions.

I have been working on algorithms for spheroidal wave functions for
over 40 years. I began work on algorithms for Mathieu functions of
integer order in 2004. The Office of Naval Research has generously
supported my effort since I began my career at the Naval Research
Laboratory in 1968.

The programs profcn and matfcn utilize traditional expressions to
calculate the functions together with new approaches that provide
accurate values when the traditional expressions fail. These new
approaches were developed beginning in about 2000 in joint efforts
with Jeffrey Boisvert of the Naval Undersea Warfare Center in
Newport, Rhode Island.

I recently developed the program oblfcn starting with profcn as its
nucleus. Oblfcn uses traditional expressions together with new
approaches similar to those used for profcn that significantly extend
the parameter ranges for which accurate function values can be

You can contact me via the email account set up for this purpose if
you have any questions or comments. If you discover a bug in any
of the programs, please let me know so I can correct the code.

Arnie Lee Van Buren