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 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
obtained. Recently, I developed the program coblfcn that calculates
oblate spheroidal functions when the size parameter c is complex.
Coblfcn provides accurate results over wide ranges of values for
complex c. The accuracy is usually comparable to that obtained
with oblfcn (using the real part of c) when the magnitude of the
imaginary part of c is less than 20 or so, although coblfcn often
provides 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