Here is a list of the available Fortran routines, with a short
description of each one. All the code is fairly well documented with
internal comments. The source code is freely available at the URL:
- ff_0.f:
- this routine implements the function
;
it is implemented as a double-precision function.
- fg_1.f:
- this routine implements the function
;
it is implemented as a double-precision function.
- ff_2.f:
- this routine implements the function
;
it is implemented as a double-precision function.
- fg_p.f:
- this routine implements the function
,
for
; it is implemented as a double-precision function.
- df_0.f:
- this routine implements the derivative
; it is implemented as a double-precision function.
- dg_1.f:
- this routine implements the derivative
; it is implemented as a double-precision function.
- df_2.f:
- this routine implements the derivative
; it is implemented as a double-precision function.
- dg_p.f:
- this routine implements the derivative
, for
; it is implemented as a double-precision
function.
The integrations in the routines aif_*.f and aig_*.f are
performed in two passes, the first one uses a guessed integration range,
and is used to measure the actual integration range. The integration
starts at the maximum of the function and proceeds down to either side
until a boundary of the range is found, or until the integral no longer
increases. The second pass performs the final integration using this
measured range.
The integration routines use be default
intervals for the final
integration. Considering that the cubic splines algorithm is precise to
order
, this should give results which are good within
single-precision level. This is certainly enough for plotting graphs, but
if there is any need one can increase the number of integration intervals
in order to get results good to double-precision level.
Note that the integration routines will crash for sufficiently large
negative values of
, because the exponentials within the functions
they integrate will eventually underflow and cause a division by zero.
- pars.f:
- parameters common to all the integration routines,
namely the value of a standard number of integration intervals, and the
constant
for the cubic splines integration formula.
- aif_0.f:
- this routine implements the integral from
to
, as a function of
, of
; it is implemented as
a double-precision function.
- aig_1.f:
- this routine implements the integral from
to
, as a function of
, of
; it is implemented
as a double-precision function.
- aif_2.f:
- this routine implements the integral from
to
, as a function of
, of
; it is implemented as
a double-precision function.
- aig_p.f:
- this routine implements the integral from
to
, as a function of
, of
, for
; it
is implemented as a double-precision function.
The programs crit_*_curve.f are written to read the input data
from the stdin channel, and are to be used as encoded in the
makefiles Makefile.O1 through Makefile.SO4. They read in
,
and
, then they loop over the resulting values
of
in order to produce the plotting data.
- crit_o1_curve.f:
- this program produces the data to plot the
graphs of the critical curves of the
model in any dimension
. It accepts from stdin the values of
,
and
, these last two for the calculation of
.
- crit_so2_curve.f:
- this program produces the data to plot the
graphs of the critical curves of the
model in any dimension
. It accepts from stdin the values of
,
and
, these last two for the calculation of
.
- crit_so3_curve.f:
- this program produces the data to plot the
graphs of the critical curves of the
model in any dimension
. It accepts from stdin the values of
,
and
, these last two for the calculation of
.
- crit_so4_curve.f:
- this program produces the data to plot the
graphs of the critical curves of the
model in any dimension
. It accepts from stdin the values of
,
and
, these last two for the calculation of
.