CHANGES IN OBLATE VERSION 1.14 FROM VERSION 1.13 JANUARY 2018
Oblate 1.14 includes several changes to oblate 1.13 to avoid
overflow that can occur when using either the integration
method or the Legendre function method when using real*8
arithmetic. It also corrects a logic error in the variable
eta method that can lead to wrong values for radial functions
of the first kind for x above about 0.5 and c above about 1000.
Improvements were also made in the Gaussian quadrature calculation
of the integrals used in the integration method,leading to
improved accuracy.
CHANGES IN OBLFCN VERSION 1.13 FROM VERSION 1.12 October 2017
The primary change is to correct an error in version 1.12
whereby the angular function norm can be off by a factor of
sqrt(10) when unity norm is requested. This can occur when m is
large and when nex/2 = (range(c)-1)/2 is odd.correct A number
of cosmetic changes are also made, primarily in the format of
the diagnostic output files.
CHANGES IN OBLFCN VERSION 1.12 AUGUST 2017
This version represents a major advance in capability. Oblfcn
can now be run in either real*8 arithmetic with 8 or more decimal
digits of accuracy in the radial functions over extremely wide
parameter ranges or in real*16 arithmetic with 15 or more decimal
digits over even wider ranges. (Accuracy may be reduced when near
a root of the radial functions). Read the report Notes_on_Oblfcn
and the comments at the beginning of both the program and its
subroutine version for the details.
CHANGES IN OBLFCN VERSION 1.10 FROM VERSION 1.09 JANUARY 2017
This version is a major revision with three new subroutines
added and two subroutine removed. Please read the comments at the
beginning of oblfcn as well as the revised notes on oblfcn
for additional information.
CHANGES IN OBLFCN VERSION 1.09 FROM VERSION 1.08 October 2016
1. Modified subroutine r1bes1 that computes the radial functions
of the first kind r1 using the traditional expansion in Bessel
functions of the first kind with eta = 1. The first terms in the
two series involved in calculating the first derivative of r1
were combined and replaced with equivalent terms using a recursion
relation for the corresponding Bessel functions. This avoids a
subtraction error when combining the two contributions to r1d
that increases as x becomes progressively smaller than unity.
2. Corrected the code setting istartint=2 so the program takes
the different approaches to computing r2d in the desired order.
3. Improved estimate of subtraction error in r1d in r1bes1.
4. Replaced example input and output so that the angular
coordinate is eta rather than theta. This make it consistent
with the choice used in the subroutine version of oblfcn.
CHANGES IN OBLFCN VERSION 1.08 FROM VERSION 1.07 August 2016
1. Made changes so the Bouwkamp procedure is always attempted.
When it fails to converge to the correct eigenvalue, the
tridiagonal matrix result is used for the eigenvalue. The
matrix size was increased to ensure high accuracy for the
eigenvalues for orders l - m up to 67 or (4/3)*(2c/3.1416),
whichever is larger. I have never observed the Bouwkamp
procedure failing to converge to the correct eigenvalue for
higher orders.
2. Corrected an error introduced in version 1.06 whereby the
program failed to match upward and backward ratios of d coeficients
for c > 50. This can lead to lower index coefficients being
less than fully accurate, resulting in less accurate function
values.
3. Changed logic that determines which method is first used to
calculate the radial functions of the second kind when l is equal
to m.
CHANGES IN OBLFCN VERSION 1.07 FROM VERSION 1.06 December 2014
1. Made several minor changes that do not affect the running of the
program.
CHANGES IN OBLFCN VERSION 1.06 FROM VERSION 1.05 November 2014
1. Removed several vectors and scalars left over from earlier versions
that were no longer used.
2. Changed the conditions under which the Bouwkamp procedure for
obtaining accurate eigenvalues is not used and instead they are
obtained as eigenvalues of a tridiagonal matrix. This now occurs
only when l-m is less than or equal to one half of the breakpoint
value nbp and when c is between 10 and 50. (nbp = 2*c/pi)
CHANGES IN OBLFCN VERSION 1.05 FROM VERSION 1.04 June 2014
1. Added code to bypass several do loops with limits from 1 to m
for the case where m = 0. Some compilers produce code that executes
the do loop once before testing limits. These do loops are early in the
program where coefficients are calculated for radial functions when
x = 0.
CHANGES IN OBLFCN VERSION 1.04 FROM VERSION 1.03 May 2013
1. Changed the storage requirements for the Legendre functions used
in calculating the angular functions and their first derivatives.
These changes significantly reduce the size of the arrays
without compromising accuracy.
2. Corrected a few typos in comment statements.
CHANGES IN OBLFCN VERSION 1.03 FROM VERSION 1.02
1. Added open statements for the output files to accommodate some
compilers.
2. Corrected a typo involving an extra comma that is ignored by many but
not all compilers.
3. Removed the path for the input file oblfcn.dat from the open statement
with the assumption that the input file is located in the same directory
as the fortran file.
CHANGES IN OBLFCN VERSION 1.02 FROM VERSION 1.01
1. Changed and improved the subroutine gauss that obtains the abscissas
and weighting factors necessary for the Gauss-Legendre integration used
in subroutines r1int and r2int.
2. Changed the tridiagonal matrix algorithm for obtaining estimates of the
oblate eigenvalues and ordering them in increasing numerical value. The new
algorithm was provided by Brian Gladman.