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.

Coblfcn calculates oblate values for the case where the size

parameter c is complex, representing complex wavenumbers

that are used to reprresent losses. Matfcn performs calculations

in double precision (real*8) arithmetic. Profcn, oblfcn and coblfcn

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

give detailed instructions on how to use them. The site provides

sample input files (matfcn.dat, profcn.dat, oblfcn.dat, coblfcn.dat,

respectively) and the corresponding output files giving computed

radial (fort.20) and angular function (fort.30) values. Also included

are subroutine versions of matfcn, profcn, oblfcn and coblfcn.

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 45 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.

Several years ago, I developed the program oblfcn using profcn
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

Recently, I developed the programs cprofcn and coblfcn that

calculate prolate and oblate spheroidal functions when the size

parameter c is complex. Both cprofcn and coblfcn provide accurate

results over wide ranges of values for complex c. The accuracy is

usually comparable to that obtained with profcn and oblfcn (using

the real part of c) when the magnitude of the imaginary part of c is

less than 20 or so, although both cprofcn and coblfcn often

provide accurate results outside this range

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