### Home

Welcome

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. I recently developed a greatly improved version of oblfcn

that provides accurate values of the radial function of the first kind

for all parameter ranges and more accurate radial functions of the

second kind over extended parameter ranges.

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