[Pkg-octave-commit] [octave-odepkg] 01/03: Imported Upstream version 0.8.5
Rafael Laboissière
rlaboiss-guest at moszumanska.debian.org
Thu May 21 10:09:28 UTC 2015
This is an automated email from the git hooks/post-receive script.
rlaboiss-guest pushed a commit to branch master
in repository octave-odepkg.
commit bf986482e3dadeab01051e2e90c02d557acaf21b
Author: Rafael Laboissiere <rafael at laboissiere.net>
Date: Wed May 20 16:05:46 2015 -0300
Imported Upstream version 0.8.5
---
DESCRIPTION | 8 +-
NEWS | 16 +-
doc/Makefile | 2 +-
doc/odepkg.texi | 2 +-
inst/bvp4c.m | 88 +-
src/Makeconf.in | 69 -
src/Makefile | 7 +-
src/autogen.sh | 27 -
src/cash.diff | 7763 +++++++++++++++++++------------------
src/configure | 4123 --------------------
src/configure.base | 319 --
src/daskr.diff | 110 +-
src/mexfiles.tgz | Bin 56663 -> 0 bytes
src/odepkg_auxiliary_functions.cc | 11 +-
src/odepkg_auxiliary_functions.h | 3 -
src/odepkg_octsolver_ddaskr.cc | 56 +-
src/odepkg_octsolver_mebdfdae.cc | 56 +-
src/odepkg_octsolver_mebdfi.cc | 56 +-
src/odepkg_octsolver_radau.cc | 60 +-
src/odepkg_octsolver_radau5.cc | 60 +-
src/odepkg_octsolver_rodas.cc | 60 +-
src/odepkg_octsolver_seulex.cc | 60 +-
22 files changed, 4218 insertions(+), 8738 deletions(-)
diff --git a/DESCRIPTION b/DESCRIPTION
index 4cf8cc8..4be3249 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,11 +1,11 @@
Name: OdePkg
-Version: 0.8.4
-Date: 2013-02-22
+Version: 0.8.5
+Date: 2015-05-19
Author: Thomas Treichl <treichl at users.sourceforge.net>
-Maintainer: Thomas Treichl <treichl at users.sourceforge.net>
+Maintainer: Jacopo Corno <corno at gsc.tu-darmstadt.de>
Title: OdePkg
Description: A package for solving ordinary differential equations and more.
Categories: Differential Equations
-Depends: octave (>= 3.2.0)
+Depends: octave (>= 3.8.0)
License: GPLv2+
Url: http://octave.sf.net
diff --git a/NEWS b/NEWS
index ac71a53..dd71cae 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,17 @@
-Summary of important user-visible changes for odepkg 0.8.4:
--------------------------------------------------------------------
+Summary of important user-visible changes for releases of the odepkg package
+
+====================================================================================
+odepkg-0.8.5 Release Date: 2015-05-19 Release Manager: Jacopo Corno
+====================================================================================
+
+ ** enable to work on octave 4.0 (thanks to Tatsuro Matsuoka)
+ See discussuion on the octave-maintainers list
+ http://octave.1599824.n4.nabble.com/Octave-Forge-Octave-4-0-call-for-packages-td4669204i20.html#a4669709
+
+
+===============================================================================
+odepkg-0.8.4 Release Date: 2013-02-22 Release Manager: Thomas Treichl
+===============================================================================
** Added new function ode23s.
diff --git a/doc/Makefile b/doc/Makefile
index 6220619..072f833 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -10,7 +10,7 @@ sinclude ../../../Makeconf
ifeq ($(MKDOC),)
MKDOC = ../../../admin/mkdoc
MKTEXI = ../../../admin/mktexi
-MAKEINFO = makeinfo --no-split --document-language=en_us
+MAKEINFO = makeinfo --no-split --document-language=en
TEXI2DVI = texi2dvi --clean
DVIPS = dvips
LN_S = ln -s
diff --git a/doc/odepkg.texi b/doc/odepkg.texi
index 645ac0f..70e0c5f 100644
--- a/doc/odepkg.texi
+++ b/doc/odepkg.texi
@@ -9,7 +9,7 @@
@setfilename odepkg.info
@settitle OdePkg - A package for solving ordinary differential equations and more
@afourpaper
- at set VERSION 0.8.2
+ at set VERSION 0.8.5
@c @afourwide
@c %*** End of the HEADER
diff --git a/inst/bvp4c.m b/inst/bvp4c.m
index a7868c2..fccc6cd 100644
--- a/inst/bvp4c.m
+++ b/inst/bvp4c.m
@@ -1,20 +1,20 @@
## Copyright (C) 2008-2012 Carlo de Falco
-##
+##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
-##
+##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
-##
+##
## You should have received a copy of the GNU General Public License
## along with this program; if not, see <http://www.gnu.org/licenses/>.
## -*- texinfo -*-
-## @deftypefn {Function File} {@var{A}} = bvp4c (@var{odefun}, @var{bcfun}, @var{solinit})
+## @deftypefn {Function File} {@var{A} =} bvp4c (@var{odefun}, @var{bcfun}, @var{solinit})
##
## Solves the first order system of non-linear differential equations defined by
## @var{odefun} with the boundary conditions defined in @var{bcfun}.
@@ -27,7 +27,7 @@
## @item @var{sol.y} solution evaluated at the points @var{sol.x}
## @item @var{sol.yp} derivative of the solution evaluated at the
## points @var{sol.x}
-## @item @var{sol.solver} = "bvp4c" for compatibility
+## @item @var{sol.solver} = "bvp4c" for compatibility
## @end itemize
## @seealso{odpkg}
## @end deftypefn
@@ -35,7 +35,6 @@
## Author: Carlo de Falco <carlo at guglielmo.local>
## Created: 2008-09-05
-
function sol = bvp4c(odefun,bcfun,solinit,options)
if (isfield(solinit,"x"))
@@ -60,11 +59,11 @@ function sol = bvp4c(odefun,bcfun,solinit,options)
if (isfield(options,"RelTol"))
RelTol = options.RelTol;
endif
- if (isfield(options,"RelTol"))
+ if (isfield(options,"AbsTol"))
AbsTol = options.AbsTol;
endif
endif
-
+
Nvar = rows(u_0);
Nint = length(t)-1;
s = 3;
@@ -100,22 +99,22 @@ function sol = bvp4c(odefun,bcfun,solinit,options)
du_est(nn,:) = diff(u(nn,:))./h;
end
- err = max(abs(f_est-du_est)); semilogy(tm,err), pause(.1)
+ err = max(abs(f_est-du_est));
AbsErr = max(err)
RelErr = AbsErr/norm(du,inf)
if ( (AbsErr >= AbsTol) && (RelErr >= RelTol) )
ref_int = find( (err >= AbsTol) & (err./max(max(abs(du))) >= RelTol) );
-
+
t_add = tm(ref_int);
t_old = t;
-
+
t = sort([t, t_add]);
h = diff(t);
-
+
u_0 = [];
for nn=1:Nvar
- u_0(nn,:) = interp1(t_old, u(nn,:), t);
+ u_0(nn,:) = interp1(t_old, u(nn,:), t);
end
Nvar = rows(u_0);
Nint = length(t)-1
@@ -124,44 +123,41 @@ function sol = bvp4c(odefun,bcfun,solinit,options)
end
endfor
-
+
## K = reshape(x([1:Nvar*Nint*s]+Nvar*(Nint+1)),Nvar,Nint,s);
## K1 = reshape(K(:,:,1), Nvar, Nint);
## K2 = reshape(K(:,:,2), Nvar, Nint);
## K3 = reshape(K(:,:,3), Nvar, Nint);
-
-
sol.x = t;
sol.y = u;
sol.yp= du;
sol.parameters = [];
sol.solver = 'bvp4c';
-
+
endfunction
function diff_K = __bvp4c_fun_K__ (t, u, Kin, f, h, s, Nint, Nvar)
%% coefficients
persistent C = [0 1/2 1 ];
-
+
persistent A = [0 0 0;
5/24 1/3 -1/24;
- 1/6 2/3 1/6];
+ 1/6 2/3 1/6];
for jj = 1:s
for kk = 1:Nint
Y = repmat(u(:,kk),1,s) + ...
- (reshape(Kin(:,kk,:),Nvar,s) * A.') * h(kk);
+ (reshape(Kin(:,kk,:),Nvar,s) * A.') * h(kk);
diff_K(:,kk,jj) = Kin(:,kk,jj) - f (t(kk)+C(jj)*h(kk), Y);
endfor
endfor
endfunction
-
function diff_u = __bvp4c_fun_u__ (t, u, K, h, s, Nint, Nvar)
-
+
%% coefficients
persistent B= [1/6 2/3 1/6 ];
@@ -174,39 +170,37 @@ function diff_u = __bvp4c_fun_u__ (t, u, K, h, s, Nint, Nvar)
endfunction
function x = __bvp4c_solve__ (t, x, h, odefun, bcfun, Nvar, Nint, s)
- fun = @( x ) ( [__bvp4c_fun_u__(t,
- reshape(x(1:Nvar*(Nint+1)),Nvar,(Nint+1)),
- reshape(x([1:Nvar*Nint*s]+Nvar*(Nint+1)),Nvar,Nint,s),
- h,
- s,
- Nint,
- Nvar)(:) ;
- __bvp4c_fun_K__(t,
- reshape(x(1:Nvar*(Nint+1)),Nvar,(Nint+1)),
- reshape(x([1:Nvar*Nint*s]+Nvar*(Nint+1)),Nvar,Nint,s),
- odefun,
- h,
- s,
- Nint,
- Nvar)(:);
- bcfun(reshape(x(1:Nvar*(Nint+1)),Nvar,Nint+1)(:,1),
- reshape(x(1:Nvar*(Nint+1)),Nvar,Nint+1)(:,end));
- ] );
-
+ fun = @( x ) ( [__bvp4c_fun_u__(t,
+ reshape(x(1:Nvar*(Nint+1)),Nvar,(Nint+1)),
+ reshape(x([1:Nvar*Nint*s]+Nvar*(Nint+1)),Nvar,Nint,s),
+ h,
+ s,
+ Nint,
+ Nvar)(:) ;
+ __bvp4c_fun_K__(t,
+ reshape(x(1:Nvar*(Nint+1)),Nvar,(Nint+1)),
+ reshape(x([1:Nvar*Nint*s]+Nvar*(Nint+1)),Nvar,Nint,s),
+ odefun,
+ h,
+ s,
+ Nint,
+ Nvar)(:);
+ bcfun(reshape(x(1:Nvar*(Nint+1)),Nvar,Nint+1)(:,1),
+ reshape(x(1:Nvar*(Nint+1)),Nvar,Nint+1)(:,end));
+ ] );
+
x = fsolve ( fun, x );
endfunction
-
-
%!demo
-%! a = 0;
+%! a = 0;
%! b = 4;
%! Nint = 3;
%! Nvar = 2;
%! s = 3;
%! t = linspace(a,b,Nint+1);
%! h = diff(t);
-%! u_1 = ones(1, Nint+1);
+%! u_1 = ones(1, Nint+1);
%! u_2 = 0*u_1;
%! u_0 = [u_1 ; u_2];
%! f = @(t,u) [ u(2); -abs(u(1)) ];
@@ -216,14 +210,14 @@ endfunction
%! plot (sol.x,sol.y,'x-')
%!demo
-%! a = 0;
+%! a = 0;
%! b = 4;
%! Nint = 2;
%! Nvar = 2;
%! s = 3;
%! t = linspace(a,b,Nint+1);
%! h = diff(t);
-%! u_1 = -ones(1, Nint+1);
+%! u_1 = -ones(1, Nint+1);
%! u_2 = 0*u_1;
%! u_0 = [u_1 ; u_2];
%! f = @(t,u) [ u(2); -abs(u(1)) ];
diff --git a/src/Makeconf.in b/src/Makeconf.in
deleted file mode 100644
index 3741fbf..0000000
--- a/src/Makeconf.in
+++ /dev/null
@@ -1,69 +0,0 @@
-
-## Makeconf is automatically generated from Makeconf.base and Makeconf.add
-## in the various subdirectories. To regenerate, use ./autogen.sh to
-## create a new ./Makeconf.in, then use ./configure to generate a new
-## Makeconf.
-
-OCTAVE_FORGE = 1
-
-SHELL = @SHELL@
-
-canonical_host_type = @canonical_host_type@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-mandir = @mandir@
-libdir = @libdir@
-datadir = @datadir@
-infodir = @infodir@
-includedir = @includedir@
-datarootdir = @datarootdir@
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALLOCT=octinst.sh
-
-DESTDIR =
-
-RANLIB = @RANLIB@
-STRIP = @STRIP@
-LN_S = @LN_S@
-MKOCTLINK = @MKOCTLINK@
-OCTLINK= @OCTLINK@
-
-AWK = @AWK@
-
-# Most octave programs will be compiled with $(MKOCTFILE). Those which
-# cannot use mkoctfile directly can request the flags that mkoctfile
-# would use as follows:
-# FLAG = $(shell $(MKOCTFILE) -p FLAG)
-# The following flags are for compiling programs that are independent
-# of Octave. How confusing.
-CC = @CC@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-CPICFLAG = @CPICFLAG@
-CXX = @CXX@
-CXXFLAGS = @CXXFLAGS@
-CXXPICFLAG = @CXXPICFLAG@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-FPICFLAG = @FPICFLAG@
-
-OCTAVE = @OCTAVE@
-OCTAVE_VERSION = @OCTAVE_VERSION@
-MKOCTFILE = @MKOCTFILE@ -DHAVE_OCTAVE_$(ver) -v
-SHLEXT = @SHLEXT@
-
-ver = @ver@
-MPATH = @mpath@
-OPATH = @opath@
-XPATH = @xpath@
-ALTMPATH = @altmpath@
-ALTOPATH = @altopath@
-
-%.o: %.c ; $(MKOCTFILE) -c $<
-%.o: %.f ; $(MKOCTFILE) -c $<
-%.o: %.cc ; $(MKOCTFILE) -c $<
-%.oct: %.cc ; $(MKOCTFILE) $<
diff --git a/src/Makefile b/src/Makefile
index ee9b07b..df2a2fd 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -13,12 +13,12 @@ MKOCTFILE ?= mkoctfile
FFLAGS := $(shell $(MKOCTFILE) -p FFLAGS)
ifeq (gfortran,$(findstring gfortran,$(F77)))
- FFLAGS := "-fno-automatic $(FFLAGS)"
+ FFLAGS := -fno-automatic $(FFLAGS)
endif
ifeq (g95,$(findstring g95,$(F77)))
- FFLAGS := "-fstatic $(FFLAGS)"
+ FFLAGS := -fstatic $(FFLAGS)
endif
-MKF77FILE = FFLAGS=$(FFLAGS) $(MKOCTFILE)
+MKF77FILE = FFLAGS="$(FFLAGS)" $(MKOCTFILE)
ifndef LAPACK_LIBS
LAPACK_LIBS := $(shell $(MKOCTFILE) -p BLAS_LIBS) $(shell $(MKOCTFILE) -p LAPACK_LIBS)
@@ -58,6 +58,7 @@ $(SOLVEROCTFILE) : $(EXTERNALDIRS) $(SOLVEROBJECTS)
install :
@$(INSTALL) -d $(DESTDIR)$(MPATH)/odepkg
+.NOTPARALLEL:
$(EXTERNALDIRS) :
@for i in $(EXTERNALPACKS); do \
echo "Unpacking external packages: $$i"; \
diff --git a/src/autogen.sh b/src/autogen.sh
deleted file mode 100755
index 354e6cf..0000000
--- a/src/autogen.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#! /bin/sh
-
-## Generate ./configure
-rm -f configure.in
-echo "dnl --- DO NOT EDIT --- Automatically generated by autogen.sh" > configure.in
-cat configure.base >> configure.in
-cat <<EOF >> configure.in
- AC_OUTPUT(\$CONFIGURE_OUTPUTS)
- dnl XXX FIXME XXX chmod is not in autoconf's list of portable functions
-
- echo " "
- echo " \"\\\$prefix\" is \$prefix"
- echo " \"\\\$exec_prefix\" is \$exec_prefix"
- AC_MSG_RESULT([\$STATUS_MSG
-
-find . -name NOINSTALL -print # shows which toolboxes won't be installed
-])
-EOF
-
-autoconf configure.in > configure.tmp
-if [ diff configure.tmp configure > /dev/null 2>&1 ]; then
- rm -f configure.tmp;
-else
- mv -f configure.tmp configure
- chmod 0755 configure
-fi
-rm -f configure.in
diff --git a/src/cash.diff b/src/cash.diff
index 72c8d73..47de6ba 100644
--- a/src/cash.diff
+++ b/src/cash.diff
@@ -1,3881 +1,3882 @@
-diff -u -u cash.orig/mebdfdae.f cash/mebdfdae.f
---- cash.orig/mebdfdae.f 2007-12-15 21:33:33.000000000 +0100
-+++ cash/mebdfdae.f 2008-01-19 17:41:05.000000000 +0100
-@@ -53,13 +53,13 @@
- C
- C NOVEMBER 6th 1998: FIRST RELEASE
- C
--C OVDRIV
-+C A_OVDRIV
- C A PACKAGE FOR THE SOLUTION OF THE INITIAL VALUE PROBLEM
- C FOR SYSTEMS OF ORDINARY DIFFERENTIAL EQUATIONS
- C DY/DT = F(Y,T), Y=(Y(1),Y(2),Y(3), . . . ,Y(N))
- C AND LINEARLY IMPLICIT DIFFERENTIAL ALGEBRAIC EQUATIONS
- C M(DY/DT) = F(Y,T)
--C SUBROUTINE OVDRIV IS A DRIVER ROUTINE FOR THIS PACKAGE
-+C SUBROUTINE A_OVDRIV IS A DRIVER ROUTINE FOR THIS PACKAGE
- C
- C REFERENCES
- C
-@@ -79,8 +79,8 @@
- C SPRINGER 1996, page 267.
- C
- C ----------------------------------------------------------------
--C OVDRIV IS TO BE CALLED ONCE FOR EACH OUTPUT VALUE OF T, AND
--C IN TURN MAKES REPEATED CALLS TO THE CORE INTEGRATOR STIFF.
-+C A_OVDRIV IS TO BE CALLED ONCE FOR EACH OUTPUT VALUE OF T, AND
-+C IN TURN MAKES REPEATED CALLS TO THE CORE INTEGRATOR A_STIFF.
- C
- C THE INPUT PARAMETERS ARE ..
- C N = THE NUMBER OF FIRST ORDER DIFFERENTIAL EQUATIONS.
-@@ -165,7 +165,7 @@
- C SHOULD BE NON-NEGATIVE. IF ITOL = 1 THEN SINGLE STEP ERROR
- C ESTIMATES DIVIDED BY YMAX(I) WILL BE KEPT LESS THAN 1
- C IN ROOT-MEAN-SQUARE NORM. THE VECTOR YMAX OF WEIGHTS IS
--C COMPUTED IN OVDRIV. INITIALLY YMAX(I) IS SET AS
-+C COMPUTED IN A_OVDRIV. INITIALLY YMAX(I) IS SET AS
- C THE MAXIMUM OF 1 AND ABS(Y(I)). THEREAFTER YMAX(I) IS
- C THE LARGEST VALUE OF ABS(Y(I)) SEEN SO FAR, OR THE
- C INITIAL VALUE YMAX(I) IF THAT IS LARGER.
-@@ -251,20 +251,20 @@
- C IN ADDITION TO OVDRIVE, THE FOLLOWING ROUTINES ARE PROVIDED
- C IN THE PACKAGE..
- C
--C INTERP( - ) INTERPOLATES TO GET THE OUTPUT VALUES
-+C A_INTERP( - ) INTERPOLATES TO GET THE OUTPUT VALUES
- C AT T=TOUT FROM THE DATA IN THE Y ARRAY.
--C STIFF( - ) IS THE CORE INTEGRATOR ROUTINE. IT PERFORMS A
-+C A_STIFF( - ) IS THE CORE INTEGRATOR ROUTINE. IT PERFORMS A
- C SINGLE STEP AND ASSOCIATED ERROR CONTROL.
--C COSET( - ) SETS COEFFICIENTS FOR BACKWARD DIFFERENTIATION
-+C A_COSET( - ) SETS COEFFICIENTS FOR BACKWARD DIFFERENTIATION
- C SCHEMES FOR USE IN THE CORE INTEGRATOR.
--C PSET( - ) COMPUTES AND PROCESSES THE JACOBIAN
-+C A_PSET( - ) COMPUTES AND PROCESSES THE JACOBIAN
- C MATRIX J = DF/DY
--C DEC( - ) PERFORMS AN LU DECOMPOSITION ON A MATRIX.
--C SOL( - ) SOLVES LINEAR SYSTEMS A*X = B AFTER DEC
-+C A_DEC( - ) PERFORMS AN LU DECOMPOSITION ON A MATRIX.
-+C A_SOL( - ) SOLVES LINEAR SYSTEMS A*X = B AFTER A_DEC
- C HAS BEEN CALLED FOR THE MATRIX A
--C DGBFA ( - ) FACTORS A DOUBLE PRECISION BAND MATRIX BY
-+C A_DGBFA ( - ) FACTORS A DOUBLE PRECISION BAND MATRIX BY
- C ELIMINATION.
--C DGBSL ( - ) SOLVES A BANDED LINEAR SYSTEM A*x=b
-+C A_DGBSL ( - ) SOLVES A BANDED LINEAR SYSTEM A*x=b
- C
- C ALSO SUPPLIED ARE THE BLAS ROUTINES
- C
-@@ -338,7 +338,7 @@
- C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- C THIS SUBROUTINE IS FOR THE PURPOSE *
- C OF SPLITTING UP THE WORK ARRAYS WORK AND IWORK *
--C FOR USE INSIDE THE INTEGRATOR STIFF *
-+C FOR USE INSIDE THE INTEGRATOR A_STIFF *
- C <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
- C .. SCALAR ARGUMENTS ..
-@@ -353,7 +353,7 @@
- C COMMON BLOCKS
- C ..
- C .. EXTERNAL SUBROUTINES ..
-- EXTERNAL OVDRIV,F,PDERV,MAS
-+ EXTERNAL A_OVDRIV,F,PDERV,MAS
- C ..
- C .. SAVE STATEMENT ..
- SAVE I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12
-@@ -401,7 +401,7 @@
- c WORKSPACE HAS TO BE AT LEAST N+14.
- c
-
-- CALL OVDRIV(N,T0,HO,Y0,TOUT,TEND,MF,IDID,LOUT,WORK(3),WORK(I1),
-+ CALL A_OVDRIV(N,T0,HO,Y0,TOUT,TEND,MF,IDID,LOUT,WORK(3),WORK(I1),
- + WORK(I2),WORK(I3),WORK(I4),WORK(I5),WORK(I6),WORK(I7),
- + WORK(I8),WORK(I9),WORK(I10),WORK(I11),IWORK(15),MBND,MASBND,
- + IWORK(1),IWORK(2),IWORK(3),MAXDER,ITOL,RTOL,ATOL,RPAR,IPAR,
-@@ -431,7 +431,7 @@
- + ' WITH N = ',I6)
- END
-
-- SUBROUTINE OVDRIV(N,T0,HO,Y0,TOUT,TEND,MF,IDID,LOUT,Y,YHOLD,
-+ SUBROUTINE A_OVDRIV(N,T0,HO,Y0,TOUT,TEND,MF,IDID,LOUT,Y,YHOLD,
- + YNHOLD,YMAX,ERRORS,SAVE1,SAVE2,SCALE,ARH,PW,PWCOPY,
- + AM,IPIV,MBND,MASBND,NIND1,NIND2,NIND3,MAXDER,ITOL,
- + RTOL,ATOL,RPAR,IPAR,F,PDERV,MAS,NQUSED,NSTEP,NFAIL,
-@@ -457,7 +457,7 @@
- INTEGER I,KGO,NHCUT
- C ..
- C .. EXTERNAL SUBROUTINES ..
-- EXTERNAL INTERP,STIFF,F,PDERV,MAS
-+ EXTERNAL A_INTERP,A_STIFF,F,PDERV,MAS
- C ..
- C .. INTRINSIC FUNCTIONS ..
- INTRINSIC DABS,DMAX1
-@@ -475,7 +475,7 @@
- HMAX = DABS(TEND-T0)*10.0D+0
- IF ((T-TOUT)*H.GE.0.0D+0) THEN
- C HAVE OVERSHOT THE OUTPUT POINT, SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- IDID = KFLAG
- T0 = TOUT
- HO = H
-@@ -493,7 +493,7 @@
- IF (((T-TOUT)*H.GE.0.0D+0) .OR. (DABS(T-TOUT).LE.
- + 100.0D+0*UROUND*HMAX)) THEN
- C HAVE OVERSHOT THE OUTPUT POINT, SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- T0 = TOUT
- HO = H
- IDID = KFLAG
-@@ -520,7 +520,7 @@
- IF ((T-TOUT)*H.GE.0.0D+0) THEN
- C HAVE OVERSHOT TOUT
- WRITE (LOUT,9080) T,TOUT,H
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- HO = H
- T0 = TOUT
- IDID = -5
-@@ -534,7 +534,7 @@
- T0 = T
- IF ((T-TOUT)*H.GE.0.0D+0) THEN
- C HAVE OVERSHOT,SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- IDID = KFLAG
- T0 = TOUT
- HO = H
-@@ -667,7 +667,7 @@
- 20 IF ((T+H).EQ.T) THEN
- WRITE (LOUT,9000)
- END IF
-- CALL STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,MASBND,
-+ CALL A_STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,MASBND,
- + NIND1,NIND2,NIND3,T,TOUT,TEND,Y,N,
- + YMAX,ERRORS,SAVE1,SAVE2,SCALE,PW,PWCOPY,AM,YHOLD,
- + YNHOLD,ARH,IPIV,LOUT,MAXDER,ITOL,RTOL,ATOL,RPAR,IPAR,F,
-@@ -679,7 +679,7 @@
- ENDIF
- KGO = 1 - KFLAG
- IF (KGO.EQ.1) THEN
--C NORMAL RETURN FROM STIFF
-+C NORMAL RETURN FROM A_STIFF
- GO TO 30
-
- ELSE IF (KGO.EQ.2) THEN
-@@ -756,7 +756,7 @@
- IF (((T-TOUT)*H.GE.0.0D+0) .OR. (DABS(T-TOUT).LE.
- + 100.0D+0*UROUND*HMAX)) THEN
- C HAVE OVERSHOT, SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- T0 = TOUT
- HO = H
- IDID = KFLAG
-@@ -773,7 +773,7 @@
-
- ELSE IF ((T-TOUT)*H.GE.0.0D+0) THEN
- C HAVE OVERSHOT, SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- IDID = KFLAG
- HO = H
- T0 = TOUT
-@@ -812,14 +812,14 @@
-
- ELSE
- C HAVE PASSED TOUT SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- T0 = TOUT
- IDID = KFLAG
- END IF
- HO = H
- IF(KFLAG.NE.0) IDID = KFLAG
- RETURN
--C -------------------------- END OF SUBROUTINE OVDRIV -----------------
-+C -------------------------- END OF SUBROUTINE A_OVDRIV -----------------
- 9000 FORMAT (' WARNING.. T + H = T ON NEXT STEP.')
- 9010 FORMAT (/,/,' KFLAG = -2 FROM INTEGRATOR AT T = ',E16.8,' H =',
- + E16.8,/,
-@@ -853,7 +853,7 @@
-
-
- END
-- SUBROUTINE INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ SUBROUTINE A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C .. SCALAR ARGUMENTS ..
-@@ -880,14 +880,14 @@
- 20 CONTINUE
- 30 CONTINUE
- RETURN
--C -------------- END OF SUBROUTINE INTERP ---------------------------
-+C -------------- END OF SUBROUTINE A_INTERP ---------------------------
- END
-- SUBROUTINE COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-+ SUBROUTINE A_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C --------------------------------------------------------------------
--C COSET IS CALLED BY THE INTEGRATOR AND SETS THE COEFFICIENTS USED
-+C A_COSET IS CALLED BY THE INTEGRATOR AND SETS THE COEFFICIENTS USED
- C BY THE CONVENTIONAL BACKWARD DIFFERENTIATION SCHEME AND THE
- C MODIFIED EXTENDED BACKWARD DIFFERENTIATION SCHEME. THE VECTOR
- C EL OF LENGTH NQ+1 DETERMINES THE BASIC BDF METHOD WHILE THE VECTOR
-@@ -1017,10 +1017,10 @@
- TQ(4) = 0.5D+0*TQ(2)/DBLE(FLOAT(NQ))
- IF(NQ.NE.1) TQ(5)=PERTST(NQ-1,1)
- RETURN
--C --------------------- END OF SUBROUTINE COSET ---------------------
-+C --------------------- END OF SUBROUTINE A_COSET ---------------------
- END
-
-- SUBROUTINE PSET(Y,N,H,T,UROUND,EPSJAC,CON,MITER,MBND,
-+ SUBROUTINE A_PSET(Y,N,H,T,UROUND,EPSJAC,CON,MITER,MBND,
- + MASBND,NIND1,NIND2,NIND3,IER,F,PDERV,MAS,
- + NRENEW,YMAX,SAVE1,SAVE2,PW,PWCOPY,AM,WRKSPC,IPIV,
- + ITOL,RTOL,ATOL,NPSET,NJE,NFE,NDEC,IPAR,RPAR,IERR)
-@@ -1029,7 +1029,7 @@
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C -------------------------------------------------------------------
--C PSET IS CALLED BY STIFF TO COMPUTE AND PROCESS THE MATRIX
-+C A_PSET IS CALLED BY A_STIFF TO COMPUTE AND PROCESS THE MATRIX
- C M/(H*EL(1)) - J WHERE J IS AN APPROXIMATION TO THE RELEVANT JACOBIAN
- C AND M IS THE MASS MATRIX. THIS MATRIX IS THEN SUBJECTED TO LU
- C DECOMPOSITION IN PREPARATION FOR LATER SOLUTION OF LINEAR SYSTEMS
-@@ -1037,7 +1037,7 @@
- C MATRIX J IS FOUND BY THE USER-SUPPLIED ROUTINE PDERV IF MITER=1
- C OR 3 OR BY FINITE DIFFERENCING IF MITER = 2 OR 4.
- C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION WITH
--C PSET USES THE FOLLOWING ..
-+C A_PSET USES THE FOLLOWING ..
- C EPSJAC = DSQRT(UROUND), USED IN NUMERICAL JACOBIAN INCREMENTS.
- C *******************************************************************
- C THE ARGUMENT NRENEW IS USED TO SIGNAL WHETHER OR NOT
-@@ -1060,7 +1060,7 @@
- INTEGER I,J,J1,JJKK,FOUR,FIVE
- C ..
- C .. EXTERNAL SUBROUTINES ..
-- EXTERNAL DEC,F,PDERV,DGBFA,MAS
-+ EXTERNAL A_DEC,F,PDERV,A_DGBFA,MAS
- C ..
- C .. INTRINSIC FUNCTIONS ..
- INTRINSIC DABS,DMAX1,DSQRT
-@@ -1267,7 +1267,7 @@
- II = II + MBND(4)
- 75 CONTINUE
- ENDIF
-- CALL DGBFA(PW,MBND(4),N,ML,MU,IPIV,IER)
-+ CALL A_DGBFA(PW,MBND(4),N,ML,MU,IPIV,IER)
- NDEC = NDEC + 1
- ELSE
- IF(MASBND(1).EQ.0) THEN
-@@ -1278,13 +1278,13 @@
- J = J + NP1
- 80 CONTINUE
- ENDIF
-- CALL DEC(N,N,PW,IPIV,IER)
-+ CALL A_DEC(N,N,PW,IPIV,IER)
- NDEC = NDEC + 1
- ENDIF
- RETURN
--C ---------------------- END OF SUBROUTINE PSET ---------------------
-+C ---------------------- END OF SUBROUTINE A_PSET ---------------------
- END
-- SUBROUTINE DEC(N,NDIM,A,IP,IER)
-+ SUBROUTINE A_DEC(N,NDIM,A,IP,IER)
-
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
-@@ -1301,9 +1301,9 @@
- C IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR 0.
- C IER = 0 IF MATRIX IS NON-SINGULAR, OR K IF FOUND TO BE SINGULAR
- C AT STAGE K.
--C USE SOL TO OBTAIN SOLUTION OF LINEAR SYSTEM.
-+C USE A_SOL TO OBTAIN SOLUTION OF LINEAR SYSTEM.
- C DETERM(A) = IP(N)*A(1,1)*A(2,2)* . . . *A(N,N).
--C IF IP(N) = 0, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
-+C IF IP(N) = 0, A IS SINGULAR, A_SOL WILL DIVIDE BY ZERO.
- C
- C REFERENCE.
- C C.B. MOLER, ALGORITHM 423, LINEAR EQUATION SOLVER, C.A.C.M
-@@ -1362,9 +1362,9 @@
- 80 IER = K
- IP(N) = 0
- RETURN
--C --------------------- END OF SUBROUTINE DEC ----------------------
-+C --------------------- END OF SUBROUTINE A_DEC ----------------------
- END
-- SUBROUTINE SOL(N,NDIM,A,B,IP)
-+ SUBROUTINE A_SOL(N,NDIM,A,B,IP)
-
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
-@@ -1386,10 +1386,10 @@
- C INPUT ..
- C N = ORDER OF MATRIX.
- C NDIM = DECLARED DIMENSION OF MATRIX A.
--C A = TRIANGULARISED MATRIX OBTAINED FROM DEC.
-+C A = TRIANGULARISED MATRIX OBTAINED FROM A_DEC.
- C B = RIGHT HAND SIDE VECTOR.
--C IP = PIVOT VECTOR OBTAINED FROM DEC.
--C DO NOT USE IF DEC HAS SET IER .NE. 0
-+C IP = PIVOT VECTOR OBTAINED FROM A_DEC.
-+C DO NOT USE IF A_DEC HAS SET IER .NE. 0
- C OUTPUT..
- C B = SOLUTION VECTOR, X.
- C ------------------------------------------------------------------
-@@ -1416,15 +1416,15 @@
- 40 CONTINUE
- 50 B(1) = B(1)/A(1,1)
- RETURN
--C ------------------------- END OF SUBROUTINE SOL ------------------
-+C ------------------------- END OF SUBROUTINE A_SOL ------------------
- END
-- subroutine dgbfa(abd,lda,n,ml,mu,ipvt,info)
-+ subroutine a_dgbfa(abd,lda,n,ml,mu,ipvt,info)
- integer lda,n,ml,mu,ipvt(1),info
- double precision abd(lda,1)
- c
--c dgbfa factors a double precision band matrix by elimination.
-+c a_dgbfa factors a double precision band matrix by elimination.
- c
--c dgbfa is usually called by dgbco, but it can be called
-+c a_dgbfa is usually called by dgbco, but it can be called
- c directly with a saving in time if rcond is not needed.
- c
- c on entry
-@@ -1466,7 +1466,7 @@
- c = 0 normal value.
- c = k if u(k,k) .eq. 0.0 . this is not an error
- c condition for this subroutine, but it does
--c indicate that dgbsl will divide by zero if
-+c indicate that a_dgbsl will divide by zero if
- c called. use rcond in dgbco for a reliable
- c indication of singularity.
- c
-@@ -1593,151 +1593,18 @@
- return
- end
- c
-- subroutine daxpy(n,da,dx,incx,dy,incy)
--c
--c constant times a vector plus a vector.
--c uses unrolled loops for increments equal to one.
--c jack dongarra, linpack, 3/11/78.
--c
-- double precision dx(1),dy(1),da
-- integer i,incx,incy,ix,iy,m,mp1,n
--c
-- if(n.le.0)return
-- if (da .eq. 0.0d0) return
-- if(incx.eq.1.and.incy.eq.1)go to 20
--c
--c code for unequal increments or equal increments
--c not equal to 1
--c
-- ix = 1
-- iy = 1
-- if(incx.lt.0)ix = (-n+1)*incx + 1
-- if(incy.lt.0)iy = (-n+1)*incy + 1
-- do 10 i = 1,n
-- dy(iy) = dy(iy) + da*dx(ix)
-- ix = ix + incx
-- iy = iy + incy
-- 10 continue
-- return
--c
--c code for both increments equal to 1
--c
--c
--c clean-up loop
--c
-- 20 m = mod(n,4)
-- if( m .eq. 0 ) go to 40
-- do 30 i = 1,m
-- dy(i) = dy(i) + da*dx(i)
-- 30 continue
-- if( n .lt. 4 ) return
-- 40 mp1 = m + 1
-- do 50 i = mp1,n,4
-- dy(i) = dy(i) + da*dx(i)
-- dy(i + 1) = dy(i + 1) + da*dx(i + 1)
-- dy(i + 2) = dy(i + 2) + da*dx(i + 2)
-- dy(i + 3) = dy(i + 3) + da*dx(i + 3)
-- 50 continue
-- return
-- end
--c
-- subroutine dscal(n,da,dx,incx)
--c
--c scales a vector by a constant.
--c uses unrolled loops for increment equal to one.
--c jack dongarra, linpack, 3/11/78.
--c modified to correct problem with negative increment, 8/21/90.
--c
-- double precision da,dx(1)
-- integer i,incx,ix,m,mp1,n
--c
-- if(n.le.0)return
-- if(incx.eq.1)go to 20
--c
--c code for increment not equal to 1
--c
-- ix = 1
-- if(incx.lt.0)ix = (-n+1)*incx + 1
-- do 10 i = 1,n
-- dx(ix) = da*dx(ix)
-- ix = ix + incx
-- 10 continue
-- return
--c
--c code for increment equal to 1
--c
--c
--c clean-up loop
--c
-- 20 m = mod(n,5)
-- if( m .eq. 0 ) go to 40
-- do 30 i = 1,m
-- dx(i) = da*dx(i)
-- 30 continue
-- if( n .lt. 5 ) return
-- 40 mp1 = m + 1
-- do 50 i = mp1,n,5
-- dx(i) = da*dx(i)
-- dx(i + 1) = da*dx(i + 1)
-- dx(i + 2) = da*dx(i + 2)
-- dx(i + 3) = da*dx(i + 3)
-- dx(i + 4) = da*dx(i + 4)
-- 50 continue
-- return
-- end
--c
-- integer function idamax(n,dx,incx)
--c
--c finds the index of element having max. absolute value.
--c jack dongarra, linpack, 3/11/78.
--c modified to correct problem with negative increment, 8/21/90.
--c
-- double precision dx(1),dmax
-- integer i,incx,ix,n
--c
-- idamax = 0
-- if( n .lt. 1 ) return
-- idamax = 1
-- if(n.eq.1)return
-- if(incx.eq.1)go to 20
--c
--c code for increment not equal to 1
--c
-- ix = 1
-- if(incx.lt.0)ix = (-n+1)*incx + 1
-- dmax = dabs(dx(ix))
-- ix = ix + incx
-- do 10 i = 2,n
-- if(dabs(dx(ix)).le.dmax) go to 5
-- idamax = i
-- dmax = dabs(dx(ix))
-- 5 ix = ix + incx
-- 10 continue
-- return
--c
--c code for increment equal to 1
--c
-- 20 dmax = dabs(dx(1))
-- do 30 i = 2,n
-- if(dabs(dx(i)).le.dmax) go to 30
-- idamax = i
-- dmax = dabs(dx(i))
-- 30 continue
-- return
-- end
--
-- subroutine dgbsl(abd,lda,n,ml,mu,ipvt,b,job)
-+ subroutine a_dgbsl(abd,lda,n,ml,mu,ipvt,b,job)
- integer lda,n,ml,mu,ipvt(*),job
- double precision abd(lda,*),b(*)
- c
--c dgbsl solves the double precision band system
-+c a_dgbsl solves the double precision band system
- c a * x = b or trans(a) * x = b
--c using the factors computed by dgbco or dgbfa.
-+c using the factors computed by dgbco or a_dgbfa.
- c
- c on entry
- c
- c abd double precision(lda, n)
--c the output from dgbco or dgbfa.
-+c the output from dgbco or a_dgbfa.
- c
- c lda integer
- c the leading dimension of the array abd .
-@@ -1752,7 +1619,7 @@
- c number of diagonals above the main diagonal.
- c
- c ipvt integer(n)
--c the pivot vector from dgbco or dgbfa.
-+c the pivot vector from dgbco or a_dgbfa.
- c
- c b double precision(n)
- c the right hand side vector.
-@@ -1773,14 +1640,14 @@
- c but it is often caused by improper arguments or improper
- c setting of lda . it will not occur if the subroutines are
- c called correctly and if dgbco has set rcond .gt. 0.0
--c or dgbfa has set info .eq. 0 .
-+c or a_dgbfa has set info .eq. 0 .
- c
- c to compute inverse(a) * c where c is a matrix
- c with p columns
- c call dgbco(abd,lda,n,ml,mu,ipvt,rcond,z)
- c if (rcond is too small) go to ...
- c do 10 j = 1, p
--c call dgbsl(abd,lda,n,ml,mu,ipvt,c(1,j),0)
-+c call a_dgbsl(abd,lda,n,ml,mu,ipvt,c(1,j),0)
- c 10 continue
- c
- c linpack. this version dated 08/14/78 .
-@@ -1862,62 +1729,13 @@
- return
- end
- c
-- double precision function ddot(n,dx,incx,dy,incy)
--c
--c forms the dot product of two vectors.
--c uses unrolled loops for increments equal to one.
--c jack dongarra, linpack, 3/11/78.
--c
-- double precision dx(1),dy(1),dtemp
-- integer i,incx,incy,ix,iy,m,mp1,n
--c
-- ddot = 0.0d0
-- dtemp = 0.0d0
-- if(n.le.0)return
-- if(incx.eq.1.and.incy.eq.1)go to 20
--c
--c code for unequal increments or equal increments
--c not equal to 1
--c
-- ix = 1
-- iy = 1
-- if(incx.lt.0)ix = (-n+1)*incx + 1
-- if(incy.lt.0)iy = (-n+1)*incy + 1
-- do 10 i = 1,n
-- dtemp = dtemp + dx(ix)*dy(iy)
-- ix = ix + incx
-- iy = iy + incy
-- 10 continue
-- ddot = dtemp
-- return
--c
--c code for both increments equal to 1
--c
--c
--c clean-up loop
--c
-- 20 m = mod(n,5)
-- if( m .eq. 0 ) go to 40
-- do 30 i = 1,m
-- dtemp = dtemp + dx(i)*dy(i)
-- 30 continue
-- if( n .lt. 5 ) go to 60
-- 40 mp1 = m + 1
-- do 50 i = mp1,n,5
-- dtemp = dtemp + dx(i)*dy(i) + dx(i + 1)*dy(i + 1) +
-- * dx(i + 2)*dy(i + 2) + dx(i + 3)*dy(i + 3) + dx(i + 4)*dy(i + 4)
-- 50 continue
-- 60 ddot = dtemp
-- return
-- end
--
-- SUBROUTINE ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-+ SUBROUTINE A_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C ***************************************************
- C
- C THIS ROUTINE CALCULATES ERRORS USED IN TESTS
--C IN STIFF .
-+C IN A_STIFF .
- C
- C ***************************************************
- C .. SCALAR ARGUMENTS ..
-@@ -1950,7 +1768,7 @@
- C ** ERROR ASSOCIATED WITH METHOD OF ORDER TWO LOWER.
- RETURN
- END
-- SUBROUTINE PRDICT(T,H,Y,L,N,YPRIME,NFE,IPAR,RPAR,F,IERR)
-+ SUBROUTINE A_PRDICT(T,H,Y,L,N,YPRIME,NFE,IPAR,RPAR,F,IERR)
-
-
-
-@@ -1987,10 +1805,10 @@
- RETURN
-
- END
-- SUBROUTINE ITRAT2(QQQ,Y,N,T,HBETA,ERRBND,ARH,CRATE,TCRATE,M,WORKED
-- + ,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,AM,MASBND,NIND1,
-- + NIND2,NIND3,IPIV,LMB,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,NBSOL,
-- + NFE,NQUSED,F,IERR)
-+ SUBROUTINE A_ITRAT2(QQQ,Y,N,T,HBETA,ERRBND,ARH,CRATE,TCRATE,M,
-+ + WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,AM,MASBND,
-+ + NIND1,NIND2,NIND3,IPIV,LMB,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,
-+ + NBSOL,NFE,NQUSED,F,IERR)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C .. SCALAR ARGUMENTS ..
-@@ -2006,7 +1824,7 @@
- INTEGER I
- C ..
- C .. EXTERNAL SUBROUTINES ..
-- EXTERNAL F,SOL,DGBSL
-+ EXTERNAL F,A_SOL,A_DGBSL
- C ..
- C .. INTRINSIC FUNCTIONS ..
- INTRINSIC DMAX1,DMIN1
-@@ -2077,10 +1895,10 @@
- 8812 CONTINUE
- ENDIF
- IF(MF.GE.23) THEN
-- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
-+ CALL A_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
- NBSOL = NBSOL + 1
- ELSE
-- CALL SOL(N,N,PW,SAVE1,IPIV)
-+ CALL A_SOL(N,N,PW,SAVE1,IPIV)
- NBSOL = NBSOL + 1
- ENDIF
- D = ZERO
-@@ -2131,10 +1949,10 @@
- C IF WE ARE HERE THEN PARTIALS ARE O.K.
- C
- IF( MF.GE. 23) THEN
-- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
-+ CALL A_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
- NBSOL=NBSOL + 1
- ELSE
-- CALL SOL(N,N,PW,SAVE1,IPIV)
-+ CALL A_SOL(N,N,PW,SAVE1,IPIV)
- NBSOL = NBSOL + 1
- ENDIF
- C
-@@ -2180,7 +1998,7 @@
-
- END
-
-- SUBROUTINE STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
-+ SUBROUTINE A_STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
- + MASBND,NIND1,NIND2,NIND3,T,TOUT,TEND,Y,N,
- + YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,PWCOPY,AM,YHOLD,
- + YNHOLD,ARH,IPIV,LOUT,MAXDER,ITOL,RTOL,ATOL,RPAR,IPAR,F,
-@@ -2191,13 +2009,13 @@
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C ------------------------------------------------------------------
--C THE SUBROUTINE STIFF PERFORMS ONE STEP OF THE INTEGRATION OF AN
-+C THE SUBROUTINE A_STIFF PERFORMS ONE STEP OF THE INTEGRATION OF AN
- C INITIAL VALUE PROBLEM FOR A SYSTEM OF ORDINARY DIFFERENTIAL
- C EQUATIONS OR LINEARLY IMPLICIT DIFFERENTIAL ALGEBRAIC EQUATIONS.
--C COMMUNICATION WITH STIFF IS DONE WITH THE FOLLOWING VARIABLES..
-+C COMMUNICATION WITH A_STIFF IS DONE WITH THE FOLLOWING VARIABLES..
- C Y AN N BY LMAX+3 ARRAY CONTAINING THE DEPENDENT VARIABLES
- C AND THEIR BACKWARD DIFFERENCES. MAXDER (=LMAX-1) IS THE
--C MAXIMUM ORDER AVAILABLE. SEE SUBROUTINE COSET.
-+C MAXIMUM ORDER AVAILABLE. SEE SUBROUTINE A_COSET.
- C Y(I,J+1) CONTAINS THE JTH BACKWARD DIFFERENCE OF Y(I)
- C T THE INDEPENDENT VARIABLE. T IS UPDATED ON EACH STEP TAKEN.
- C H THE STEPSIZE TO BE ATTEMPTED ON THE NEXT STEP.
-@@ -2207,7 +2025,7 @@
- C HMIN THE MINIMUM AND MAXIMUM ABSOLUTE VALUE OF THE STEPSIZE
- C HMAX TO BE USED FOR THE STEP. THESE MAY BE CHANGED AT ANY
- C TIME BUT WILL NOT TAKE EFFECT UNTIL THE NEXT H CHANGE.
--C RTOL,ATOL THE ERROR BOUNDS. SEE DESCRIPTION IN OVDRIV.
-+C RTOL,ATOL THE ERROR BOUNDS. SEE DESCRIPTION IN A_OVDRIV.
- C N THE NUMBER OF FIRST ORDER DIFFERENTIAL EQUATIONS.
- C MF THE METHOD FLAG. MUST BE SET TO 21,22,23 OR 24 AT PRESENT
- C KFLAG A COMPLETION FLAG WITH THE FOLLOWING MEANINGS..
-@@ -2242,7 +2060,7 @@
- C MATRIX WAS FORMED BY A NEW J.
- C AVOLDJ STORES VALUE FOR AVERAGE CRATE WHEN ITERATION
- C MATRIX WAS FORMED BY AN OLD J.
--C NRENEW FLAG THAT IS USED IN COMMUNICATION WITH SUBROUTINE PSET.
-+C NRENEW FLAG THAT IS USED IN COMMUNICATION WITH SUBROUTINE A_PSET.
- C IF NRENEW > 0 THEN FORM A NEW JACOBIAN BEFORE
- C COMPUTING THE COEFFICIENT MATRIX FOR
- C THE NEWTON-RAPHSON ITERATION
-@@ -2271,8 +2089,8 @@
- DIMENSION EL(10),ELST(10),TQ(5)
- C ..
- C .. EXTERNAL SUBROUTINES ..
-- EXTERNAL COSET,CPYARY,ERRORS,F,HCHOSE,ITRAT2,
-- + PRDICT,PSET,RSCALE,SOL,DGBSL,PDERV,MAS
-+ EXTERNAL A_COSET,A_CPYARY,A_ERRORS,F,A_HCHOSE,A_ITRAT2,
-+ + A_PRDICT,A_PSET,A_RSCALE,A_SOL,A_DGBSL,PDERV,MAS
- C ..
- C .. INTRINSIC FUNCTIONS ..
- INTRINSIC DABS,DMAX1,DMIN1
-@@ -2378,7 +2196,7 @@
- C BE RE-SCALED. IF H IS CHANGED, IDOUB IS SET TO L+1 TO PREVENT
- C FURTHER CHANGES IN H FOR THAT MANY STEPS.
- C -----------------------------------------------------------------
-- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-+ CALL A_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
- LMAX = MAXDER + 1
- RC = RC*EL(1)/OLDLO
- OLDLO = EL(1)
-@@ -2389,20 +2207,20 @@
- C NRENEW AND NEWPAR ARE TO INSTRUCT ROUTINE THAT
- C WE WISH A NEW J TO BE CALCULATED FOR THIS STEP.
- C *****************************************************
-- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-+ CALL A_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
- DO 20 I = 1,N
- ARH(I) = EL(2)*Y(I,1)
- 20 CONTINUE
-- CALL CPYARY(N*L,Y,YHOLD)
-+ CALL A_CPYARY(N*L,Y,YHOLD)
- QI = H*EL(1)
- QQ = ONE/QI
-- CALL PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
-+ CALL A_PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
- IF(IERR.NE.0) GOTO 8000
- GO TO 110
- C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- C DIFFERENT PARAMETERS ON THIS CALL <
- C <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-- 30 CALL CPYARY(N*L,YHOLD,Y)
-+ 30 CALL A_CPYARY(N*L,YHOLD,Y)
- IF (MF.NE.MFOLD) THEN
- METH = MF/10
- MITER = MF - 10*METH
-@@ -2445,7 +2263,7 @@
- C *********************************************
- 40 RH = DMAX1(RH,HMIN/DABS(H))
- 50 RH = DMIN1(RH,HMAX/DABS(H),RMAX)
-- CALL RSCALE(N,L,RH,Y)
-+ CALL A_RSCALE(N,L,RH,Y)
- RMAX = 10.0D+0
- JCHANG = 1
- H = H*RH
-@@ -2462,7 +2280,7 @@
- END IF
-
- IDOUB = L + 1
-- CALL CPYARY(N*L,Y,YHOLD)
-+ CALL A_CPYARY(N*L,Y,YHOLD)
-
- 60 IF (DABS(RC-ONE).GT.UPBND) IWEVAL = MITER
- HUSED = H
-@@ -2487,7 +2305,7 @@
- IF (JCHANG.EQ.1) THEN
- C IF WE HAVE CHANGED STEPSIZE THEN PREDICT A VALUE FOR Y(T+H)
- C AND EVALUATE THE DERIVATIVE THERE (STORED IN SAVE2())
-- CALL PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
-+ CALL A_PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
- IF(IERR.NE.0) GOTO 8000
-
- ELSE
-@@ -2507,7 +2325,7 @@
- C -------------------------------------------------------------------
- C IF INDICATED, THE MATRIX P = I/(H*EL(2)) - J IS RE-EVALUATED BEFORE
- C STARTING THE CORRECTOR ITERATION. IWEVAL IS SET = 0 TO INDICATE
--C THAT THIS HAS BEEN DONE. P IS COMPUTED AND PROCESSED IN PSET.
-+C THAT THIS HAS BEEN DONE. P IS COMPUTED AND PROCESSED IN A_PSET.
- C THE PROCESSED MATRIX IS STORED IN PW
- C -------------------------------------------------------------------
- IWEVAL = 0
-@@ -2573,13 +2391,13 @@
- JSNOLD = 0
- MQ1TMP = MEQC1
- MQ2TMP = MEQC2
-- CALL PSET(Y,N,H,T,UROUND,EPSJAC,QI,MITER,MBND,MASBND,
-+ CALL A_PSET(Y,N,H,T,UROUND,EPSJAC,QI,MITER,MBND,MASBND,
- + NIND1,NIND2,NIND3,IER,F,PDERV,MAS,NRENEW,YMAX,SAVE1,SAVE2,
- + PW,PWCOPY,AM,ERROR,IPIV,ITOL,RTOL,ATOL,NPSET,NJE,NFE,NDEC,IPAR
- + ,RPAR,IERR)
- IF(IERR.NE.0) GOTO 8000
- QQQ=QI
--C NOTE THAT ERROR() IS JUST BEING USED AS A WORKSPACE BY PSET
-+C NOTE THAT ERROR() IS JUST BEING USED AS A WORKSPACE BY A_PSET
- IF (IER.NE.0) THEN
- C IF IER>0 THEN WE HAVE HAD A SINGULARITY IN THE ITERATION MATRIX
- IJUS=1
-@@ -2603,7 +2421,7 @@
- C LOOP. THE UPDATED Y VECTOR IS STORED TEMPORARILY IN SAVE1.
- C **********************************************************************
- IF (.NOT.SAMPLE) THEN
-- CALL ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,WORKED,YMAX,
-+ CALL A_ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,WORKED,YMAX,
- + ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,AM,MASBND,
- + NIND1,NIND2,NIND3,IPIV,1,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,NBSOL,
- + NFE,NQUSED,F,IERR)
-@@ -2611,7 +2429,7 @@
- ITST = 2
-
- ELSE
-- CALL ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,WORKED,YMAX,
-+ CALL A_ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,WORKED,YMAX,
- + ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,AM,MASBND,
- +NIND1,NIND2,NIND3,IPIV,0,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,NBSOL,
- + NFE,NQUSED,F,IERR)
-@@ -2752,7 +2570,7 @@
- ARH(I) = ARH(I) + EL(JP1)*Y(I,J1)
- 200 CONTINUE
- 210 CONTINUE
-- CALL PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
-+ CALL A_PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
- IF(IERR.NE.0) GOTO 8000
- DO 220 I = 1,N
- SAVE1(I) = Y(I,1)
-@@ -2763,7 +2581,7 @@
- C FOR NOW WILL ASSUME THAT WE DO NOT WISH TO SAMPLE
- C AT THE N+2 STEP POINT
- C
-- CALL ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE2,TCRAT2,M2,WORKED,YMAX,
-+ CALL A_ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE2,TCRAT2,M2,WORKED,YMAX,
- + ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,AM,MASBND,
- +NIND1,NIND2,NIND3,IPIV,1,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,NBSOL,
- + NFE,NQUSED,F,IERR)
-@@ -2872,10 +2690,10 @@
- 3111 CONTINUE
- ENDIF
- IF (MF.GE. 23) THEN
-- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
-+ CALL A_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
- NBSOL=NBSOL+1
- ELSE
-- CALL SOL(N,N,PW,SAVE1,IPIV)
-+ CALL A_SOL(N,N,PW,SAVE1,IPIV)
- NBSOL = NBSOL + 1
- ENDIF
- DO 321 I=1,N
-@@ -2971,7 +2789,7 @@
- IF(NQ.GT.1) FFAIL = 0.5D+0/DBLE(FLOAT(NQ))
- IF(NQ.GT.2) FRFAIL = 0.5D+0/DBLE(FLOAT(NQ-1))
- EFAIL = 0.5D+0/DBLE(FLOAT(L))
-- CALL CPYARY(N*L,YHOLD,Y)
-+ CALL A_CPYARY(N*L,YHOLD,Y)
- RMAX = 2.0D+0
- IF (DABS(H).LE.HMIN*1.00001D+0) THEN
- C
-@@ -3000,10 +2818,10 @@
- NQ=NEWQ
- RH=ONE/(PLFAIL*DBLE(FLOAT(-KFAIL)))
- L=NQ+1
-- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-+ CALL A_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
- RC=RC*EL(1)/OLDLO
- OLDLO=EL(1)
-- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-+ CALL A_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
- ELSE
- NEWQ = NQ
- RH = ONE/ (PRFAIL*DBLE(FLOAT(-KFAIL)))
-@@ -3029,7 +2847,7 @@
- C *********************************
- JCHANG = 1
- RH = DMAX1(HMIN/DABS(H),0.1D+0)
-- CALL HCHOSE(RH,H,OVRIDE)
-+ CALL A_HCHOSE(RH,H,OVRIDE)
- H = H*RH
- CALL F(N,T,YHOLD,SAVE1,IPAR,RPAR,IERR)
- IF(IERR.NE.0) GOTO 8000
-@@ -3048,11 +2866,11 @@
- NQ = 1
- L = 2
- C RESET ORDER, RECALCULATE ERROR BOUNDS
-- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-+ CALL A_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
- LMAX = MAXDER + 1
- RC = RC*EL(1)/OLDLO
- OLDLO = EL(1)
-- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-+ CALL A_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
- C NOW JUMP TO NORMAL CONTINUATION POINT
- GO TO 60
- C **********************************************************************
-@@ -3216,7 +3034,7 @@
- GOTO 440
- ENDIF
- RH = DMIN1(RH,RMAX)
-- CALL HCHOSE(RH,H,OVRIDE)
-+ CALL A_HCHOSE(RH,H,OVRIDE)
- IF ((JSINUP.LE.20).AND.(KFLAG.EQ.0).AND.(RH.LT.1.1D+0)) THEN
- C WE HAVE RUN INTO PROBLEMS
- IDOUB = 10
-@@ -3244,17 +3062,17 @@
- NQ = NEWQ
- L = NQ + 1
- C RESET ORDER,RECALCULATE ERROR BOUNDS
-- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-+ CALL A_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
- LMAX = MAXDER + 1
- RC = RC*EL(1)/OLDLO
- OLDLO = EL(1)
-- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-+ CALL A_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
- END IF
-
-
- RH = DMAX1(RH,HMIN/DABS(H))
- RH = DMIN1(RH,HMAX/DABS(H),RMAX)
-- CALL RSCALE(N,L,RH,Y)
-+ CALL A_RSCALE(N,L,RH,Y)
- RMAX = 10.0D+0
- JCHANG = 1
- H = H*RH
-@@ -3271,7 +3089,7 @@
- C INFORMATION NECESSARY TO PERFORM AN INTERPOLATION TO FIND THE
- C SOLUTION AT THE SPECIFIED OUTPUT POINT IF APPROPRIATE.
- C ----------------------------------------------------------------------
-- CALL CPYARY(N*L,Y,YHOLD)
-+ CALL A_CPYARY(N*L,Y,YHOLD)
- NSTEP = NSTEP + 1
- JSINUP = JSINUP + 1
- JSNOLD = JSNOLD + 1
-@@ -3312,17 +3130,17 @@
- C TRY AGAIN WITH UPDATED PARTIALS
- C
- 8000 IF(IERR.NE.0) RETURN
-- IF(IJUS.EQ.0) CALL HCHOSE(RH,H,OVRIDE)
-+ IF(IJUS.EQ.0) CALL A_HCHOSE(RH,H,OVRIDE)
- IF(.NOT.FINISH) THEN
- GO TO 40
- ELSE
- RETURN
- END IF
-
--C ------------------- END OF SUBROUTINE STIFF --------------------------
-+C ------------------- END OF SUBROUTINE A_STIFF --------------------------
- 9000 FORMAT (1X,' CORRECTOR HAS NOT CONVERGED')
- END
-- SUBROUTINE RSCALE(N,L,RH,Y)
-+ SUBROUTINE A_RSCALE(N,L,RH,Y)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C .. SCALAR ARGUMENTS ..
-@@ -3432,7 +3250,7 @@
- RETURN
-
- END
-- SUBROUTINE CPYARY(NELEM,SOURCE,TARGET)
-+ SUBROUTINE A_CPYARY(NELEM,SOURCE,TARGET)
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C
- C COPIES THE ARRAY SOURCE() INTO THE ARRAY TARGET()
-@@ -3455,7 +3273,7 @@
- RETURN
-
- END
-- SUBROUTINE HCHOSE(RH,H,OVRIDE)
-+ SUBROUTINE A_HCHOSE(RH,H,OVRIDE)
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- COMMON / STPSZE / HSTPSZ(2,14)
- LOGICAL OVRIDE
-@@ -3492,947 +3310,3 @@
- C ************************************************************
- C
- END
-- DOUBLE PRECISION FUNCTION DLAMCH( CMACH )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- CHARACTER CMACH
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMCH determines double precision machine parameters.
--*
--* Arguments
--* =========
--*
--* CMACH (input) CHARACTER*1
--* Specifies the value to be returned by DLAMCH:
--* = 'E' or 'e', DLAMCH := eps
--* = 'S' or 's , DLAMCH := sfmin
--* = 'B' or 'b', DLAMCH := base
--* = 'P' or 'p', DLAMCH := eps*base
--* = 'N' or 'n', DLAMCH := t
--* = 'R' or 'r', DLAMCH := rnd
--* = 'M' or 'm', DLAMCH := emin
--* = 'U' or 'u', DLAMCH := rmin
--* = 'L' or 'l', DLAMCH := emax
--* = 'O' or 'o', DLAMCH := rmax
--*
--* where
--*
--* eps = relative machine precision
--* sfmin = safe minimum, such that 1/sfmin does not overflow
--* base = base of the machine
--* prec = eps*base
--* t = number of (base) digits in the mantissa
--* rnd = 1.0 when rounding occurs in addition, 0.0 otherwise
--* emin = minimum exponent before (gradual) underflow
--* rmin = underflow threshold - base**(emin-1)
--* emax = largest exponent before overflow
--* rmax = overflow threshold - (base**emax)*(1-eps)
--*
--* =====================================================================
--*
--* .. Parameters ..
-- DOUBLE PRECISION ONE, ZERO
-- PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 )
--* ..
--* .. Local Scalars ..
-- LOGICAL FIRST, LRND
-- INTEGER BETA, IMAX, IMIN, IT
-- DOUBLE PRECISION BASE, EMAX, EMIN, EPS, PREC, RMACH, RMAX, RMIN,
-- $ RND, SFMIN, SMALL, T
--* ..
--* .. External Functions ..
-- LOGICAL LSAME
-- EXTERNAL LSAME
--* ..
--* .. External Subroutines ..
-- EXTERNAL DLAMC2
--* ..
--* .. Save statement ..
-- SAVE FIRST, EPS, SFMIN, BASE, T, RND, EMIN, RMIN,
-- $ EMAX, RMAX, PREC
--* ..
--* .. Data statements ..
-- DATA FIRST / .TRUE. /
--* ..
--* .. Executable Statements ..
--*
-- IF( FIRST ) THEN
-- FIRST = .FALSE.
-- CALL DLAMC2( BETA, IT, LRND, EPS, IMIN, RMIN, IMAX, RMAX )
-- BASE = BETA
-- T = IT
-- IF( LRND ) THEN
-- RND = ONE
-- EPS = ( BASE**( 1-IT ) ) / 2
-- ELSE
-- RND = ZERO
-- EPS = BASE**( 1-IT )
-- END IF
-- PREC = EPS*BASE
-- EMIN = IMIN
-- EMAX = IMAX
-- SFMIN = RMIN
-- SMALL = ONE / RMAX
-- IF( SMALL.GE.SFMIN ) THEN
--*
--* Use SMALL plus a bit, to avoid the possibility of rounding
--* causing overflow when computing 1/sfmin.
--*
-- SFMIN = SMALL*( ONE+EPS )
-- END IF
-- END IF
--*
-- IF( LSAME( CMACH, 'E' ) ) THEN
-- RMACH = EPS
-- ELSE IF( LSAME( CMACH, 'S' ) ) THEN
-- RMACH = SFMIN
-- ELSE IF( LSAME( CMACH, 'B' ) ) THEN
-- RMACH = BASE
-- ELSE IF( LSAME( CMACH, 'P' ) ) THEN
-- RMACH = PREC
-- ELSE IF( LSAME( CMACH, 'N' ) ) THEN
-- RMACH = T
-- ELSE IF( LSAME( CMACH, 'R' ) ) THEN
-- RMACH = RND
-- ELSE IF( LSAME( CMACH, 'M' ) ) THEN
-- RMACH = EMIN
-- ELSE IF( LSAME( CMACH, 'U' ) ) THEN
-- RMACH = RMIN
-- ELSE IF( LSAME( CMACH, 'L' ) ) THEN
-- RMACH = EMAX
-- ELSE IF( LSAME( CMACH, 'O' ) ) THEN
-- RMACH = RMAX
-- END IF
--*
-- DLAMCH = RMACH
-- RETURN
--*
--* End of DLAMCH
--*
-- END
--*
--************************************************************************
--*
-- SUBROUTINE DLAMC1( BETA, T, RND, IEEE1 )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- LOGICAL IEEE1, RND
-- INTEGER BETA, T
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMC1 determines the machine parameters given by BETA, T, RND, and
--* IEEE1.
--*
--* Arguments
--* =========
--*
--* BETA (output) INTEGER
--* The base of the machine.
--*
--* T (output) INTEGER
--* The number of ( BETA ) digits in the mantissa.
--*
--* RND (output) LOGICAL
--* Specifies whether proper rounding ( RND = .TRUE. ) or
--* chopping ( RND = .FALSE. ) occurs in addition. This may not
--* be a reliable guide to the way in which the machine performs
--* its arithmetic.
--*
--* IEEE1 (output) LOGICAL
--* Specifies whether rounding appears to be done in the IEEE
--* 'round to nearest' style.
--*
--* Further Details
--* ===============
--*
--* The routine is based on the routine ENVRON by Malcolm and
--* incorporates suggestions by Gentleman and Marovich. See
--*
--* Malcolm M. A. (1972) Algorithms to reveal properties of
--* floating-point arithmetic. Comms. of the ACM, 15, 949-951.
--*
--* Gentleman W. M. and Marovich S. B. (1974) More on algorithms
--* that reveal properties of floating point arithmetic units.
--* Comms. of the ACM, 17, 276-277.
--*
--* =====================================================================
--*
--* .. Local Scalars ..
-- LOGICAL FIRST, LIEEE1, LRND
-- INTEGER LBETA, LT
-- DOUBLE PRECISION A, B, C, F, ONE, QTR, SAVEC, T1, T2
--* ..
--* .. External Functions ..
-- DOUBLE PRECISION DLAMC3
-- EXTERNAL DLAMC3
--* ..
--* .. Save statement ..
-- SAVE FIRST, LIEEE1, LBETA, LRND, LT
--* ..
--* .. Data statements ..
-- DATA FIRST / .TRUE. /
--* ..
--* .. Executable Statements ..
--*
-- IF( FIRST ) THEN
-- FIRST = .FALSE.
-- ONE = 1
--*
--* LBETA, LIEEE1, LT and LRND are the local values of BETA,
--* IEEE1, T and RND.
--*
--* Throughout this routine we use the function DLAMC3 to ensure
--* that relevant values are stored and not held in registers, or
--* are not affected by optimizers.
--*
--* Compute a = 2.0**m with the smallest positive integer m such
--* that
--*
--* fl( a + 1.0 ) = a.
--*
-- A = 1
-- C = 1
--*
--*+ WHILE( C.EQ.ONE )LOOP
-- 10 CONTINUE
-- IF( C.EQ.ONE ) THEN
-- A = 2*A
-- C = DLAMC3( A, ONE )
-- C = DLAMC3( C, -A )
-- GO TO 10
-- END IF
--*+ END WHILE
--*
--* Now compute b = 2.0**m with the smallest positive integer m
--* such that
--*
--* fl( a + b ) .gt. a.
--*
-- B = 1
-- C = DLAMC3( A, B )
--*
--*+ WHILE( C.EQ.A )LOOP
-- 20 CONTINUE
-- IF( C.EQ.A ) THEN
-- B = 2*B
-- C = DLAMC3( A, B )
-- GO TO 20
-- END IF
--*+ END WHILE
--*
--* Now compute the base. a and c are neighbouring floating point
--* numbers in the interval ( beta**t, beta**( t + 1 ) ) and so
--* their difference is beta. Adding 0.25 to c is to ensure that it
--* is truncated to beta and not ( beta - 1 ).
--*
-- QTR = ONE / 4
-- SAVEC = C
-- C = DLAMC3( C, -A )
-- LBETA = C + QTR
--*
--* Now determine whether rounding or chopping occurs, by adding a
--* bit less than beta/2 and a bit more than beta/2 to a.
--*
-- B = LBETA
-- F = DLAMC3( B / 2, -B / 100 )
-- C = DLAMC3( F, A )
-- IF( C.EQ.A ) THEN
-- LRND = .TRUE.
-- ELSE
-- LRND = .FALSE.
-- END IF
-- F = DLAMC3( B / 2, B / 100 )
-- C = DLAMC3( F, A )
-- IF( ( LRND ) .AND. ( C.EQ.A ) )
-- $ LRND = .FALSE.
--*
--* Try and decide whether rounding is done in the IEEE 'round to
--* nearest' style. B/2 is half a unit in the last place of the two
--* numbers A and SAVEC. Furthermore, A is even, i.e. has last bit
--* zero, and SAVEC is odd. Thus adding B/2 to A should not change
--* A, but adding B/2 to SAVEC should change SAVEC.
--*
-- T1 = DLAMC3( B / 2, A )
-- T2 = DLAMC3( B / 2, SAVEC )
-- LIEEE1 = ( T1.EQ.A ) .AND. ( T2.GT.SAVEC ) .AND. LRND
--*
--* Now find the mantissa, t. It should be the integer part of
--* log to the base beta of a, however it is safer to determine t
--* by powering. So we find t as the smallest positive integer for
--* which
--*
--* fl( beta**t + 1.0 ) = 1.0.
--*
-- LT = 0
-- A = 1
-- C = 1
--*
--*+ WHILE( C.EQ.ONE )LOOP
-- 30 CONTINUE
-- IF( C.EQ.ONE ) THEN
-- LT = LT + 1
-- A = A*LBETA
-- C = DLAMC3( A, ONE )
-- C = DLAMC3( C, -A )
-- GO TO 30
-- END IF
--*+ END WHILE
--*
-- END IF
--*
-- BETA = LBETA
-- T = LT
-- RND = LRND
-- IEEE1 = LIEEE1
-- RETURN
--*
--* End of DLAMC1
--*
-- END
--*
--************************************************************************
--*
-- SUBROUTINE DLAMC2( BETA, T, RND, EPS, EMIN, RMIN, EMAX, RMAX )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- LOGICAL RND
-- INTEGER BETA, EMAX, EMIN, T
-- DOUBLE PRECISION EPS, RMAX, RMIN
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMC2 determines the machine parameters specified in its argument
--* list.
--*
--* Arguments
--* =========
--*
--* BETA (output) INTEGER
--* The base of the machine.
--*
--* T (output) INTEGER
--* The number of ( BETA ) digits in the mantissa.
--*
--* RND (output) LOGICAL
--* Specifies whether proper rounding ( RND = .TRUE. ) or
--* chopping ( RND = .FALSE. ) occurs in addition. This may not
--* be a reliable guide to the way in which the machine performs
--* its arithmetic.
--*
--* EPS (output) DOUBLE PRECISION
--* The smallest positive number such that
--*
--* fl( 1.0 - EPS ) .LT. 1.0,
--*
--* where fl denotes the computed value.
--*
--* EMIN (output) INTEGER
--* The minimum exponent before (gradual) underflow occurs.
--*
--* RMIN (output) DOUBLE PRECISION
--* The smallest normalized number for the machine, given by
--* BASE**( EMIN - 1 ), where BASE is the floating point value
--* of BETA.
--*
--* EMAX (output) INTEGER
--* The maximum exponent before overflow occurs.
--*
--* RMAX (output) DOUBLE PRECISION
--* The largest positive number for the machine, given by
--* BASE**EMAX * ( 1 - EPS ), where BASE is the floating point
--* value of BETA.
--*
--* Further Details
--* ===============
--*
--* The computation of EPS is based on a routine PARANOIA by
--* W. Kahan of the University of California at Berkeley.
--*
--* =====================================================================
--*
--* .. Local Scalars ..
-- LOGICAL FIRST, IEEE, IWARN, LIEEE1, LRND
-- INTEGER GNMIN, GPMIN, I, LBETA, LEMAX, LEMIN, LT,
-- $ NGNMIN, NGPMIN
-- DOUBLE PRECISION A, B, C, HALF, LEPS, LRMAX, LRMIN, ONE, RBASE,
-- $ SIXTH, SMALL, THIRD, TWO, ZERO
--* ..
--* .. External Functions ..
-- DOUBLE PRECISION DLAMC3
-- EXTERNAL DLAMC3
--* ..
--* .. External Subroutines ..
-- EXTERNAL DLAMC1, DLAMC4, DLAMC5
--* ..
--* .. Intrinsic Functions ..
-- INTRINSIC ABS, MAX, MIN
--* ..
--* .. Save statement ..
-- SAVE FIRST, IWARN, LBETA, LEMAX, LEMIN, LEPS, LRMAX,
-- $ LRMIN, LT
--* ..
--* .. Data statements ..
-- DATA FIRST / .TRUE. / , IWARN / .FALSE. /
--* ..
--* .. Executable Statements ..
--*
-- IF( FIRST ) THEN
-- FIRST = .FALSE.
-- ZERO = 0
-- ONE = 1
-- TWO = 2
--*
--* LBETA, LT, LRND, LEPS, LEMIN and LRMIN are the local values of
--* BETA, T, RND, EPS, EMIN and RMIN.
--*
--* Throughout this routine we use the function DLAMC3 to ensure
--* that relevant values are stored and not held in registers, or
--* are not affected by optimizers.
--*
--* DLAMC1 returns the parameters LBETA, LT, LRND and LIEEE1.
--*
-- CALL DLAMC1( LBETA, LT, LRND, LIEEE1 )
--*
--* Start to find EPS.
--*
-- B = LBETA
-- A = B**( -LT )
-- LEPS = A
--*
--* Try some tricks to see whether or not this is the correct EPS.
--*
-- B = TWO / 3
-- HALF = ONE / 2
-- SIXTH = DLAMC3( B, -HALF )
-- THIRD = DLAMC3( SIXTH, SIXTH )
-- B = DLAMC3( THIRD, -HALF )
-- B = DLAMC3( B, SIXTH )
-- B = ABS( B )
-- IF( B.LT.LEPS )
-- $ B = LEPS
--*
-- LEPS = 1
--*
--*+ WHILE( ( LEPS.GT.B ).AND.( B.GT.ZERO ) )LOOP
-- 10 CONTINUE
-- IF( ( LEPS.GT.B ) .AND. ( B.GT.ZERO ) ) THEN
-- LEPS = B
-- C = DLAMC3( HALF*LEPS, ( TWO**5 )*( LEPS**2 ) )
-- C = DLAMC3( HALF, -C )
-- B = DLAMC3( HALF, C )
-- C = DLAMC3( HALF, -B )
-- B = DLAMC3( HALF, C )
-- GO TO 10
-- END IF
--*+ END WHILE
--*
-- IF( A.LT.LEPS )
-- $ LEPS = A
--*
--* Computation of EPS complete.
--*
--* Now find EMIN. Let A = + or - 1, and + or - (1 + BASE**(-3)).
--* Keep dividing A by BETA until (gradual) underflow occurs. This
--* is detected when we cannot recover the previous A.
--*
-- RBASE = ONE / LBETA
-- SMALL = ONE
-- DO 20 I = 1, 3
-- SMALL = DLAMC3( SMALL*RBASE, ZERO )
-- 20 CONTINUE
-- A = DLAMC3( ONE, SMALL )
-- CALL DLAMC4( NGPMIN, ONE, LBETA )
-- CALL DLAMC4( NGNMIN, -ONE, LBETA )
-- CALL DLAMC4( GPMIN, A, LBETA )
-- CALL DLAMC4( GNMIN, -A, LBETA )
-- IEEE = .FALSE.
--*
-- IF( ( NGPMIN.EQ.NGNMIN ) .AND. ( GPMIN.EQ.GNMIN ) ) THEN
-- IF( NGPMIN.EQ.GPMIN ) THEN
-- LEMIN = NGPMIN
--* ( Non twos-complement machines, no gradual underflow;
--* e.g., VAX )
-- ELSE IF( ( GPMIN-NGPMIN ).EQ.3 ) THEN
-- LEMIN = NGPMIN - 1 + LT
-- IEEE = .TRUE.
--* ( Non twos-complement machines, with gradual underflow;
--* e.g., IEEE standard followers )
-- ELSE
-- LEMIN = MIN( NGPMIN, GPMIN )
--* ( A guess; no known machine )
-- IWARN = .TRUE.
-- END IF
--*
-- ELSE IF( ( NGPMIN.EQ.GPMIN ) .AND. ( NGNMIN.EQ.GNMIN ) ) THEN
-- IF( ABS( NGPMIN-NGNMIN ).EQ.1 ) THEN
-- LEMIN = MAX( NGPMIN, NGNMIN )
--* ( Twos-complement machines, no gradual underflow;
--* e.g., CYBER 205 )
-- ELSE
-- LEMIN = MIN( NGPMIN, NGNMIN )
--* ( A guess; no known machine )
-- IWARN = .TRUE.
-- END IF
--*
-- ELSE IF( ( ABS( NGPMIN-NGNMIN ).EQ.1 ) .AND.
-- $ ( GPMIN.EQ.GNMIN ) ) THEN
-- IF( ( GPMIN-MIN( NGPMIN, NGNMIN ) ).EQ.3 ) THEN
-- LEMIN = MAX( NGPMIN, NGNMIN ) - 1 + LT
--* ( Twos-complement machines with gradual underflow;
--* no known machine )
-- ELSE
-- LEMIN = MIN( NGPMIN, NGNMIN )
--* ( A guess; no known machine )
-- IWARN = .TRUE.
-- END IF
--*
-- ELSE
-- LEMIN = MIN( NGPMIN, NGNMIN, GPMIN, GNMIN )
--* ( A guess; no known machine )
-- IWARN = .TRUE.
-- END IF
--***
--* Comment out this if block if EMIN is ok
-- IF( IWARN ) THEN
-- FIRST = .TRUE.
-- WRITE( 6, FMT = 9999 )LEMIN
-- END IF
--***
--*
--* Assume IEEE arithmetic if we found denormalised numbers above,
--* or if arithmetic seems to round in the IEEE style, determined
--* in routine DLAMC1. A true IEEE machine should have both things
--* true; however, faulty machines may have one or the other.
--*
-- IEEE = IEEE .OR. LIEEE1
--*
--* Compute RMIN by successive division by BETA. We could compute
--* RMIN as BASE**( EMIN - 1 ), but some machines underflow during
--* this computation.
--*
-- LRMIN = 1
-- DO 30 I = 1, 1 - LEMIN
-- LRMIN = DLAMC3( LRMIN*RBASE, ZERO )
-- 30 CONTINUE
--*
--* Finally, call DLAMC5 to compute EMAX and RMAX.
--*
-- CALL DLAMC5( LBETA, LT, LEMIN, IEEE, LEMAX, LRMAX )
-- END IF
--*
-- BETA = LBETA
-- T = LT
-- RND = LRND
-- EPS = LEPS
-- EMIN = LEMIN
-- RMIN = LRMIN
-- EMAX = LEMAX
-- RMAX = LRMAX
--*
-- RETURN
--*
-- 9999 FORMAT( / / ' WARNING. The value EMIN may be incorrect:-',
-- $ ' EMIN = ', I8, /
-- $ ' If, after inspection, the value EMIN looks',
-- $ ' acceptable please comment out ',
-- $ / ' the IF block as marked within the code of routine',
-- $ ' DLAMC2,', / ' otherwise supply EMIN explicitly.', / )
--*
--* End of DLAMC2
--*
-- END
--*
--************************************************************************
--*
-- DOUBLE PRECISION FUNCTION DLAMC3( A, B )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- DOUBLE PRECISION A, B
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMC3 is intended to force A and B to be stored prior to doing
--* the addition of A and B , for use in situations where optimizers
--* might hold one of these in a register.
--*
--* Arguments
--* =========
--*
--* A, B (input) DOUBLE PRECISION
--* The values A and B.
--*
--* =====================================================================
--*
--* .. Executable Statements ..
--*
-- DLAMC3 = A + B
--*
-- RETURN
--*
--* End of DLAMC3
--*
-- END
--*
--************************************************************************
--*
-- SUBROUTINE DLAMC4( EMIN, START, BASE )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- INTEGER BASE, EMIN
-- DOUBLE PRECISION START
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMC4 is a service routine for DLAMC2.
--*
--* Arguments
--* =========
--*
--* EMIN (output) EMIN
--* The minimum exponent before (gradual) underflow, computed by
--* setting A = START and dividing by BASE until the previous A
--* can not be recovered.
--*
--* START (input) DOUBLE PRECISION
--* The starting point for determining EMIN.
--*
--* BASE (input) INTEGER
--* The base of the machine.
--*
--* =====================================================================
--*
--* .. Local Scalars ..
-- INTEGER I
-- DOUBLE PRECISION A, B1, B2, C1, C2, D1, D2, ONE, RBASE, ZERO
--* ..
--* .. External Functions ..
-- DOUBLE PRECISION DLAMC3
-- EXTERNAL DLAMC3
--* ..
--* .. Executable Statements ..
--*
-- A = START
-- ONE = 1
-- RBASE = ONE / BASE
-- ZERO = 0
-- EMIN = 1
-- B1 = DLAMC3( A*RBASE, ZERO )
-- C1 = A
-- C2 = A
-- D1 = A
-- D2 = A
--*+ WHILE( ( C1.EQ.A ).AND.( C2.EQ.A ).AND.
--* $ ( D1.EQ.A ).AND.( D2.EQ.A ) )LOOP
-- 10 CONTINUE
-- IF( ( C1.EQ.A ) .AND. ( C2.EQ.A ) .AND. ( D1.EQ.A ) .AND.
-- $ ( D2.EQ.A ) ) THEN
-- EMIN = EMIN - 1
-- A = B1
-- B1 = DLAMC3( A / BASE, ZERO )
-- C1 = DLAMC3( B1*BASE, ZERO )
-- D1 = ZERO
-- DO 20 I = 1, BASE
-- D1 = D1 + B1
-- 20 CONTINUE
-- B2 = DLAMC3( A*RBASE, ZERO )
-- C2 = DLAMC3( B2 / RBASE, ZERO )
-- D2 = ZERO
-- DO 30 I = 1, BASE
-- D2 = D2 + B2
-- 30 CONTINUE
-- GO TO 10
-- END IF
--*+ END WHILE
--*
-- RETURN
--*
--* End of DLAMC4
--*
-- END
--*
--************************************************************************
--*
-- SUBROUTINE DLAMC5( BETA, P, EMIN, IEEE, EMAX, RMAX )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- LOGICAL IEEE
-- INTEGER BETA, EMAX, EMIN, P
-- DOUBLE PRECISION RMAX
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMC5 attempts to compute RMAX, the largest machine floating-point
--* number, without overflow. It assumes that EMAX + abs(EMIN) sum
--* approximately to a power of 2. It will fail on machines where this
--* assumption does not hold, for example, the Cyber 205 (EMIN = -28625,
--* EMAX = 28718). It will also fail if the value supplied for EMIN is
--* too large (i.e. too close to zero), probably with overflow.
--*
--* Arguments
--* =========
--*
--* BETA (input) INTEGER
--* The base of floating-point arithmetic.
--*
--* P (input) INTEGER
--* The number of base BETA digits in the mantissa of a
--* floating-point value.
--*
--* EMIN (input) INTEGER
--* The minimum exponent before (gradual) underflow.
--*
--* IEEE (input) LOGICAL
--* A logical flag specifying whether or not the arithmetic
--* system is thought to comply with the IEEE standard.
--*
--* EMAX (output) INTEGER
--* The largest exponent before overflow
--*
--* RMAX (output) DOUBLE PRECISION
--* The largest machine floating-point number.
--*
--* =====================================================================
--*
--* .. Parameters ..
-- DOUBLE PRECISION ZERO, ONE
-- PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 )
--* ..
--* .. Local Scalars ..
-- INTEGER EXBITS, EXPSUM, I, LEXP, NBITS, TRY, UEXP
-- DOUBLE PRECISION OLDY, RECBAS, Y, Z
--* ..
--* .. External Functions ..
-- DOUBLE PRECISION DLAMC3
-- EXTERNAL DLAMC3
--* ..
--* .. Intrinsic Functions ..
-- INTRINSIC MOD
--* ..
--* .. Executable Statements ..
--*
--* First compute LEXP and UEXP, two powers of 2 that bound
--* abs(EMIN). We then assume that EMAX + abs(EMIN) will sum
--* approximately to the bound that is closest to abs(EMIN).
--* (EMAX is the exponent of the required number RMAX).
--*
-- LEXP = 1
-- EXBITS = 1
-- 10 CONTINUE
-- TRY = LEXP*2
-- IF( TRY.LE.( -EMIN ) ) THEN
-- LEXP = TRY
-- EXBITS = EXBITS + 1
-- GO TO 10
-- END IF
-- IF( LEXP.EQ.-EMIN ) THEN
-- UEXP = LEXP
-- ELSE
-- UEXP = TRY
-- EXBITS = EXBITS + 1
-- END IF
--*
--* Now -LEXP is less than or equal to EMIN, and -UEXP is greater
--* than or equal to EMIN. EXBITS is the number of bits needed to
--* store the exponent.
--*
-- IF( ( UEXP+EMIN ).GT.( -LEXP-EMIN ) ) THEN
-- EXPSUM = 2*LEXP
-- ELSE
-- EXPSUM = 2*UEXP
-- END IF
--*
--* EXPSUM is the exponent range, approximately equal to
--* EMAX - EMIN + 1 .
--*
-- EMAX = EXPSUM + EMIN - 1
-- NBITS = 1 + EXBITS + P
--*
--* NBITS is the total number of bits needed to store a
--* floating-point number.
--*
-- IF( ( MOD( NBITS, 2 ).EQ.1 ) .AND. ( BETA.EQ.2 ) ) THEN
--*
--* Either there are an odd number of bits used to store a
--* floating-point number, which is unlikely, or some bits are
--* not used in the representation of numbers, which is possible,
--* (e.g. Cray machines) or the mantissa has an implicit bit,
--* (e.g. IEEE machines, Dec Vax machines), which is perhaps the
--* most likely. We have to assume the last alternative.
--* If this is true, then we need to reduce EMAX by one because
--* there must be some way of representing zero in an implicit-bit
--* system. On machines like Cray, we are reducing EMAX by one
--* unnecessarily.
--*
-- EMAX = EMAX - 1
-- END IF
--*
-- IF( IEEE ) THEN
--*
--* Assume we are on an IEEE machine which reserves one exponent
--* for infinity and NaN.
--*
-- EMAX = EMAX - 1
-- END IF
--*
--* Now create RMAX, the largest machine number, which should
--* be equal to (1.0 - BETA**(-P)) * BETA**EMAX .
--*
--* First compute 1.0 - BETA**(-P), being careful that the
--* result is less than 1.0 .
--*
-- RECBAS = ONE / BETA
-- Z = BETA - ONE
-- Y = ZERO
-- DO 20 I = 1, P
-- Z = Z*RECBAS
-- IF( Y.LT.ONE )
-- $ OLDY = Y
-- Y = DLAMC3( Y, Z )
-- 20 CONTINUE
-- IF( Y.GE.ONE )
-- $ Y = OLDY
--*
--* Now multiply by BETA**EMAX to get RMAX.
--*
-- DO 30 I = 1, EMAX
-- Y = DLAMC3( Y*BETA, ZERO )
-- 30 CONTINUE
--*
-- RMAX = Y
-- RETURN
--*
--* End of DLAMC5
--*
-- END
-- LOGICAL FUNCTION LSAME( CA, CB )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* September 30, 1994
--*
--* .. Scalar Arguments ..
-- CHARACTER CA, CB
--* ..
--*
--* Purpose
--* =======
--*
--* LSAME returns .TRUE. if CA is the same letter as CB regardless of
--* case.
--*
--* Arguments
--* =========
--*
--* CA (input) CHARACTER*1
--* CB (input) CHARACTER*1
--* CA and CB specify the single characters to be compared.
--*
--* =====================================================================
--*
--* .. Intrinsic Functions ..
-- INTRINSIC ICHAR
--* ..
--* .. Local Scalars ..
-- INTEGER INTA, INTB, ZCODE
--* ..
--* .. Executable Statements ..
--*
--* Test if the characters are equal
--*
-- LSAME = CA.EQ.CB
-- IF( LSAME )
-- $ RETURN
--*
--* Now test for equivalence if both characters are alphabetic.
--*
-- ZCODE = ICHAR( 'Z' )
--*
--* Use 'Z' rather than 'A' so that ASCII can be detected on Prime
--* machines, on which ICHAR returns a value with bit 8 set.
--* ICHAR('A') on Prime machines returns 193 which is the same as
--* ICHAR('A') on an EBCDIC machine.
--*
-- INTA = ICHAR( CA )
-- INTB = ICHAR( CB )
--*
-- IF( ZCODE.EQ.90 .OR. ZCODE.EQ.122 ) THEN
--*
--* ASCII is assumed - ZCODE is the ASCII code of either lower or
--* upper case 'Z'.
--*
-- IF( INTA.GE.97 .AND. INTA.LE.122 ) INTA = INTA - 32
-- IF( INTB.GE.97 .AND. INTB.LE.122 ) INTB = INTB - 32
--*
-- ELSE IF( ZCODE.EQ.233 .OR. ZCODE.EQ.169 ) THEN
--*
--* EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or
--* upper case 'Z'.
--*
-- IF( INTA.GE.129 .AND. INTA.LE.137 .OR.
-- $ INTA.GE.145 .AND. INTA.LE.153 .OR.
-- $ INTA.GE.162 .AND. INTA.LE.169 ) INTA = INTA + 64
-- IF( INTB.GE.129 .AND. INTB.LE.137 .OR.
-- $ INTB.GE.145 .AND. INTB.LE.153 .OR.
-- $ INTB.GE.162 .AND. INTB.LE.169 ) INTB = INTB + 64
--*
-- ELSE IF( ZCODE.EQ.218 .OR. ZCODE.EQ.250 ) THEN
--*
--* ASCII is assumed, on Prime machines - ZCODE is the ASCII code
--* plus 128 of either lower or upper case 'Z'.
--*
-- IF( INTA.GE.225 .AND. INTA.LE.250 ) INTA = INTA - 32
-- IF( INTB.GE.225 .AND. INTB.LE.250 ) INTB = INTB - 32
-- END IF
-- LSAME = INTA.EQ.INTB
--*
--* RETURN
--*
--* End of LSAME
--*
-- END
-diff -u -u cash.orig/mebdfi.f cash/mebdfi.f
---- cash.orig/mebdfi.f 2007-11-16 19:00:20.000000000 +0100
-+++ cash/mebdfi.f 2008-01-19 17:24:20.000000000 +0100
-@@ -58,11 +58,11 @@
- C
- C SEPTEMBER 20th 1999: FIRST RELEASE
- C
--C OVDRIV
-+C I_OVDRIV
- C A PACKAGE FOR THE SOLUTION OF THE INITIAL VALUE PROBLEM
- C FOR SYSTEMS OF IMPLICIT DIFFERENTIAL ALGEBRAIC EQUATIONS
- c G(t,Y,Y')=0, Y=(Y(1),Y(2),Y(3),.....,Y(N)).
--C SUBROUTINE OVDRIV IS A DRIVER ROUTINE FOR THIS PACKAGE.
-+C SUBROUTINE I_OVDRIV IS A DRIVER ROUTINE FOR THIS PACKAGE.
- C
- C REFERENCES
- C
-@@ -82,7 +82,7 @@
- C SPRINGER 1996, page 267.
- C
- C ----------------------------------------------------------------
--C OVDRIV IS TO BE CALLED ONCE FOR EACH OUTPUT VALUE OF T, AND
-+C I_OVDRIV IS TO BE CALLED ONCE FOR EACH OUTPUT VALUE OF T, AND
- C IN TURN MAKES REPEATED CALLS TO THE CORE INTEGRATOR STIFF.
- C
- C THE INPUT PARAMETERS ARE ..
-@@ -158,7 +158,7 @@
- C SHOULD BE NON-NEGATIVE. IF ITOL = 1 THEN SINGLE STEP ERROR
- C ESTIMATES DIVIDED BY YMAX(I) WILL BE KEPT LESS THAN 1
- C IN ROOT-MEAN-SQUARE NORM. THE VECTOR YMAX OF WEIGHTS IS
--C COMPUTED IN OVDRIV. INITIALLY YMAX(I) IS SET AS
-+C COMPUTED IN I_OVDRIV. INITIALLY YMAX(I) IS SET AS
- C THE MAXIMUM OF 1 AND ABS(Y(I)). THEREAFTER YMAX(I) IS
- C THE LARGEST VALUE OF ABS(Y(I)) SEEN SO FAR, OR THE
- C INITIAL VALUE YMAX(I) IF THAT IS LARGER.
-@@ -242,23 +242,23 @@
- C -12 INSUFFICIENT INTEGER WORKSPACE FOR THE INTEGRATION
- C
- C
--C IN ADDITION TO OVDRIVE, THE FOLLOWING ROUTINES ARE PROVIDED
-+C IN ADDITION TO I_OVDRIVE, THE FOLLOWING ROUTINES ARE PROVIDED
- C IN THE PACKAGE..
- C
--C INTERP( - ) INTERPOLATES TO GET THE OUTPUT VALUES
-+C I_INTERP( - ) INTERPOLATES TO GET THE OUTPUT VALUES
- C AT T=TOUT FROM THE DATA IN THE Y ARRAY.
--C STIFF( - ) IS THE CORE INTEGRATOR ROUTINE. IT PERFORMS A
-+C I_STIFF( - ) IS THE CORE INTEGRATOR ROUTINE. IT PERFORMS A
- C SINGLE STEP AND ASSOCIATED ERROR CONTROL.
--C COSET( - ) SETS COEFFICIENTS FOR BACKWARD DIFFERENTIATION
-+C I_COSET( - ) SETS COEFFICIENTS FOR BACKWARD DIFFERENTIATION
- C SCHEMES FOR USE IN THE CORE INTEGRATOR.
--C PSET( - ) COMPUTES AND PROCESSES THE NEWTON ITERATION
-+C I_PSET( - ) COMPUTES AND PROCESSES THE NEWTON ITERATION
- C MATRIX DG/DY + (1/(H*BETA))DG/DY'
--C DEC( - ) PERFORMS AN LU DECOMPOSITION ON A MATRIX.
--C SOL( - ) SOLVES LINEAR SYSTEMS A*X = B AFTER DEC
-+C I_DEC( - ) PERFORMS AN LU DECOMPOSITION ON A MATRIX.
-+C I_SOL( - ) SOLVES LINEAR SYSTEMS A*X = B AFTER I_DEC
- C HAS BEEN CALLED FOR THE MATRIX A
--C DGBFA ( - ) FACTORS A DOUBLE PRECISION BAND MATRIX BY
-+C I_DGBFA ( - ) FACTORS A DOUBLE PRECISION BAND MATRIX BY
- C ELIMINATION.
--C DGBSL ( - ) SOLVES A BANDED LINEAR SYSTEM A*x=b
-+C I_DGBSL ( - ) SOLVES A BANDED LINEAR SYSTEM A*x=b
- C
- C ALSO SUPPLIED ARE THE BLAS ROUTINES
- C
-@@ -330,7 +330,7 @@
- C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- C THIS SUBROUTINE IS FOR THE PURPOSE *
- C OF SPLITTING UP THE WORK ARRAYS WORK AND IWORK *
--C FOR USE INSIDE THE INTEGRATOR STIFF *
-+C FOR USE INSIDE THE INTEGRATOR I_STIFF *
- C <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
- C .. SCALAR ARGUMENTS ..
-@@ -346,7 +346,7 @@
- C COMMON BLOCKS
- C ..
- C .. EXTERNAL SUBROUTINES ..
-- EXTERNAL OVDRIV,PDERV,RESID
-+ EXTERNAL I_OVDRIV,PDERV,RESID
- C ..
- C .. SAVE STATEMENT ..
- SAVE I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11
-@@ -397,7 +397,7 @@
- c THE ERROR FLAG IS INITIALISED
- c
-
-- CALL OVDRIV(N,T0,HO,Y0,YPRIME,TOUT,TEND,MF,IDID,LOUT,WORK(3),
-+ CALL I_OVDRIV(N,T0,HO,Y0,YPRIME,TOUT,TEND,MF,IDID,LOUT,WORK(3),
- + WORK(I1),WORK(I2),WORK(I3),WORK(I4),WORK(I5),WORK(I6),
- + WORK(I7),WORK(I8),WORK(I9),WORK(I10),IWORK(15),
- + MBND,IWORK(1),IWORK(2),IWORK(3),MAXDER,ITOL,RTOL,ATOL,RPAR,
-@@ -428,7 +428,7 @@
- END
- C--------------------------------------------------------------------------
- C
-- SUBROUTINE OVDRIV(N,T0,HO,Y0,YPRIME,TOUT,TEND,MF,IDID,LOUT,Y,
-+ SUBROUTINE I_OVDRIV(N,T0,HO,Y0,YPRIME,TOUT,TEND,MF,IDID,LOUT,Y,
- + YHOLD,YNHOLD,YMAX,ERRORS,SAVE1,SAVE2,SCALE,ARH,PW,PWCOPY,
- + IPIV,MBND,NIND1,NIND2,NIND3,MAXDER,ITOL,RTOL,ATOL,RPAR,
- + IPAR,PDERV,RESID,NQUSED,NSTEP,NFAIL,NRE,NJE,NDEC,NBSOL,
-@@ -452,7 +452,7 @@
- INTEGER I,KGO,NHCUT
- C ..
- C .. EXTERNAL SUBROUTINES ..
-- EXTERNAL INTERP,STIFF,PDERV,RESID
-+ EXTERNAL I_INTERP,I_STIFF,PDERV,RESID
- C ..
- C .. INTRINSIC FUNCTIONS ..
- INTRINSIC DABS,DMAX1
-@@ -468,7 +468,7 @@
- HMAX = DABS(TEND-T0)/10.0D+0
- IF ((T-TOUT)*H.GE.0.0D+0) THEN
- C HAVE OVERSHOT THE OUTPUT POINT, SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- IDID = KFLAG
- T0 = TOUT
- HO = H
-@@ -486,7 +486,7 @@
- IF (((T-TOUT)*H.GE.0.0D+0) .OR. (DABS(T-TOUT).LE.
- + 100.0D+0*UROUND*HMAX)) THEN
- C HAVE OVERSHOT THE OUTPUT POINT, SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- T0 = TOUT
- HO = H
- IDID = KFLAG
-@@ -513,7 +513,7 @@
- IF ((T-TOUT)*H.GE.0.0D+0) THEN
- C HAVE OVERSHOT TOUT
- WRITE (LOUT,9080) T,TOUT,H
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- HO = H
- T0 = TOUT
- IDID = -5
-@@ -527,7 +527,7 @@
- T0 = T
- IF ((T-TOUT)*H.GE.0.0D+0) THEN
- C HAVE OVERSHOT,SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- IDID = KFLAG
- T0 = TOUT
- HO = H
-@@ -660,7 +660,7 @@
- 20 IF ((T+H).EQ.T) THEN
- WRITE (LOUT,9000)
- END IF
-- CALL STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
-+ CALL I_STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
- + NIND1,NIND2,NIND3,T,TOUT,TEND,Y,YPRIME,N,
- + YMAX,ERRORS,SAVE1,SAVE2,SCALE,PW,PWCOPY,YHOLD,
- + YNHOLD,ARH,IPIV,LOUT,MAXDER,ITOL,RTOL,ATOL,RPAR,IPAR,
-@@ -672,7 +672,7 @@
- C ENDIF
- KGO = 1 - KFLAG
- IF (KGO.EQ.1) THEN
--C NORMAL RETURN FROM STIFF
-+C NORMAL RETURN FROM I_STIFF
- GO TO 30
-
- ELSE IF (KGO.EQ.2) THEN
-@@ -708,7 +708,7 @@
- C FOR ANY OTHER VALUE OF IDID, CONTROL RETURNS TO THE INTEGRATOR
- C UNLESS TOUT HAS BEEN REACHED. THEN INTERPOLATED VALUES OF Y ARE
- C COMPUTED AND STORED IN Y0 ON RETURN.
--C IF INTERPOLATION IS NOT DESIRED, THE CALL TO INTERP SHOULD BE
-+C IF INTERPOLATION IS NOT DESIRED, THE CALL TO I_INTERP SHOULD BE
- C REMOVED AND CONTROL TRANSFERRED TO STATEMENT 500 INSTEAD OF 520.
- C --------------------------------------------------------------------
- IF(NSTEP.GT.MAXSTP) THEN
-@@ -749,7 +749,7 @@
- IF (((T-TOUT)*H.GE.0.0D+0) .OR. (DABS(T-TOUT).LE.
- + 100.0D+0*UROUND*HMAX)) THEN
- C HAVE OVERSHOT, SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- T0 = TOUT
- HO = H
- IDID = KFLAG
-@@ -766,7 +766,7 @@
-
- ELSE IF ((T-TOUT)*H.GE.0.0D+0) THEN
- C HAVE OVERSHOT, SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- IDID = KFLAG
- HO = H
- T0 = TOUT
-@@ -805,14 +805,14 @@
-
- ELSE
- C HAVE PASSED TOUT SO INTERPOLATE
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- T0 = TOUT
- IDID = KFLAG
- END IF
- HO = H
- IF(KFLAG.NE.0) IDID = KFLAG
- RETURN
--C -------------------------- END OF SUBROUTINE OVDRIV -----------------
-+C -------------------------- END OF SUBROUTINE I_OVDRIV -----------------
- 9000 FORMAT (' WARNING.. T + H = T ON NEXT STEP.')
- 9010 FORMAT (/,/,' KFLAG = -2 FROM INTEGRATOR AT T = ',E16.8,' H =',
- + E16.8,/,
-@@ -848,7 +848,7 @@
- END
- C--------------------------------------------------------------------------
- C
-- SUBROUTINE INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ SUBROUTINE I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C .. SCALAR ARGUMENTS ..
-@@ -875,15 +875,15 @@
- 20 CONTINUE
- 30 CONTINUE
- RETURN
--C -------------- END OF SUBROUTINE INTERP ---------------------------
-+C -------------- END OF SUBROUTINE I_INTERP ---------------------------
- END
- C
-- SUBROUTINE COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-+ SUBROUTINE I_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C --------------------------------------------------------------------
--C COSET IS CALLED BY THE INTEGRATOR AND SETS THE COEFFICIENTS USED
-+C I_COSET IS CALLED BY THE INTEGRATOR AND SETS THE COEFFICIENTS USED
- C BY THE CONVENTIONAL BACKWARD DIFFERENTIATION SCHEME AND THE
- C MODIFIED EXTENDED BACKWARD DIFFERENTIATION SCHEME. THE VECTOR
- C EL OF LENGTH NQ+1 DETERMINES THE BASIC BDF METHOD WHILE THE VECTOR
-@@ -1013,24 +1013,24 @@
- TQ(4) = 0.5D+0*TQ(2)/DBLE(FLOAT(NQ))
- IF(NQ.NE.1) TQ(5)=PERTST(NQ-1,1)
- RETURN
--C --------------------- END OF SUBROUTINE COSET ---------------------
-+C --------------------- END OF SUBROUTINE I_COSET ---------------------
- END
-
-- SUBROUTINE PSET(Y,YPRIME,N,H,T,UROUND,EPSJAC,CON,MITER,MBND,
-+ SUBROUTINE I_PSET(Y,YPRIME,N,H,T,UROUND,EPSJAC,CON,MITER,MBND,
- + NIND1,NIND2,NIND3,IER,PDERV,RESID,NRENEW,YMAX,SAVE1,SAVE2,
- + SAVE3,PW,PWCOPY,WRKSPC,IPIV,ITOL,RTOL,ATOL,NPSET,NJE,NRE,
- + NDEC,IPAR,RPAR,IERR)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C -------------------------------------------------------------------
--C PSET IS CALLED BY STIFF TO COMPUTE AND PROCESS THE MATRIX
-+C I_PSET IS CALLED BY I_STIFF TO COMPUTE AND PROCESS THE MATRIX
- C PD=DG/DY + (1/CON)DG/DY'. THIS MATRIX IS THEN SUBJECTED TO LU
- C DECOMPOSITION IN PREPARATION FOR LATER SOLUTION OF LINEAR SYSTEMS
- C OF ALGEBRAIC EQUATIONS WITH LU AS THE COEFFICIENT MATRIX. THE
- C MATRIX PD IS FOUND BY THE USER-SUPPLIED ROUTINE PDERV IF MITER=1
- C OR 3 OR BY FINITE DIFFERENCING IF MITER = 2 OR 4.
- C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION WITH
--C PSET USES THE FOLLOWING ..
-+C I_PSET USES THE FOLLOWING ..
- C EPSJAC = DSQRT(UROUND), USED IN NUMERICAL JACOBIAN INCREMENTS.
- C *******************************************************************
- C THE ARGUMENT NRENEW IS USED TO SIGNAL WHETHER OR NOT
-@@ -1052,7 +1052,7 @@
- INTEGER I,J,J1,JJKK
- C ..
- C .. EXTERNAL SUBROUTINES ..
-- EXTERNAL DEC,PDERV,DGBFA,RESID
-+ EXTERNAL I_DEC,PDERV,I_DGBFA,RESID
- C ..
- C .. INTRINSIC FUNCTIONS ..
- INTRINSIC DABS,DMAX1,DSQRT
-@@ -1192,17 +1192,17 @@
- NRE=NRE+ MIN(MBND(3),N)
- C
- 70 IF (MITER.GT.2) THEN
-- CALL DGBFA(PW,MBND(4),N,ML,MU,IPIV,IER)
-+ CALL I_DGBFA(PW,MBND(4),N,ML,MU,IPIV,IER)
- NDEC = NDEC + 1
- ELSE
-- CALL DEC(N,N,PW,IPIV,IER)
-+ CALL I_DEC(N,N,PW,IPIV,IER)
- NDEC = NDEC + 1
- ENDIF
- RETURN
--C ---------------------- END OF SUBROUTINE PSET ---------------------
-+C ---------------------- END OF SUBROUTINE I_PSET ---------------------
- END
- C
-- SUBROUTINE DEC(N,NDIM,A,IP,IER)
-+ SUBROUTINE I_DEC(N,NDIM,A,IP,IER)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C -------------------------------------------------------------------
-@@ -1218,9 +1218,9 @@
- C IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR 0.
- C IER = 0 IF MATRIX IS NON-SINGULAR, OR K IF FOUND TO BE SINGULAR
- C AT STAGE K.
--C USE SOL TO OBTAIN SOLUTION OF LINEAR SYSTEM.
-+C USE I_SOL TO OBTAIN SOLUTION OF LINEAR SYSTEM.
- C DETERM(A) = IP(N)*A(1,1)*A(2,2)* . . . *A(N,N).
--C IF IP(N) = 0, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
-+C IF IP(N) = 0, A IS SINGULAR, I_SOL WILL DIVIDE BY ZERO.
- C
- C REFERENCE.
- C C.B. MOLER, ALGORITHM 423, LINEAR EQUATION SOLVER, C.A.C.M
-@@ -1279,10 +1279,10 @@
- 80 IER = K
- IP(N) = 0
- RETURN
--C--------------------- END OF SUBROUTINE DEC ----------------------
-+C--------------------- END OF SUBROUTINE I_DEC ----------------------
- END
- C
-- SUBROUTINE SOL(N,NDIM,A,B,IP)
-+ SUBROUTINE I_SOL(N,NDIM,A,B,IP)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C .. SCALAR ARGUMENTS ..
-@@ -1305,8 +1305,8 @@
- C NDIM = DECLARED DIMENSION OF MATRIX A.
- C A = TRIANGULARISED MATRIX OBTAINED FROM DEC.
- C B = RIGHT HAND SIDE VECTOR.
--C IP = PIVOT VECTOR OBTAINED FROM DEC.
--C DO NOT USE IF DEC HAS SET IER .NE. 0
-+C IP = PIVOT VECTOR OBTAINED FROM I_DEC.
-+C DO NOT USE IF I_DEC HAS SET IER .NE. 0
- C OUTPUT..
- C B = SOLUTION VECTOR, X.
- C ------------------------------------------------------------------
-@@ -1333,16 +1333,16 @@
- 40 CONTINUE
- 50 B(1) = B(1)/A(1,1)
- RETURN
--C------------------------- END OF SUBROUTINE SOL ------------------
-+C------------------------- END OF SUBROUTINE I_SOL ------------------
- END
- C
-- subroutine dgbfa(abd,lda,n,ml,mu,ipvt,info)
-+ subroutine i_dgbfa(abd,lda,n,ml,mu,ipvt,info)
- integer lda,n,ml,mu,ipvt(1),info
- double precision abd(lda,1)
- c
--c dgbfa factors a double precision band matrix by elimination.
-+c i_dgbfa factors a double precision band matrix by elimination.
- c
--c dgbfa is usually called by dgbco, but it can be called
-+c i_dgbfa is usually called by dgbco, but it can be called
- c directly with a saving in time if rcond is not needed.
- c
- c on entry
-@@ -1384,7 +1384,7 @@
- c = 0 normal value.
- c = k if u(k,k) .eq. 0.0 . this is not an error
- c condition for this subroutine, but it does
--c indicate that dgbsl will divide by zero if
-+c indicate that i_dgbsl will divide by zero if
- c called. use rcond in dgbco for a reliable
- c indication of singularity.
- c
-@@ -1511,151 +1511,18 @@
- return
- end
- C--------------------------------------------------------------------------
-- subroutine daxpy(n,da,dx,incx,dy,incy)
--c
--c constant times a vector plus a vector.
--c uses unrolled loops for increments equal to one.
--c jack dongarra, linpack, 3/11/78.
--c
-- double precision dx(1),dy(1),da
-- integer i,incx,incy,ix,iy,m,mp1,n
--c
-- if(n.le.0)return
-- if (da .eq. 0.0d0) return
-- if(incx.eq.1.and.incy.eq.1)go to 20
--c
--c code for unequal increments or equal increments
--c not equal to 1
--c
-- ix = 1
-- iy = 1
-- if(incx.lt.0)ix = (-n+1)*incx + 1
-- if(incy.lt.0)iy = (-n+1)*incy + 1
-- do 10 i = 1,n
-- dy(iy) = dy(iy) + da*dx(ix)
-- ix = ix + incx
-- iy = iy + incy
-- 10 continue
-- return
--c
--c code for both increments equal to 1
--c
--c
--c clean-up loop
--c
-- 20 m = mod(n,4)
-- if( m .eq. 0 ) go to 40
-- do 30 i = 1,m
-- dy(i) = dy(i) + da*dx(i)
-- 30 continue
-- if( n .lt. 4 ) return
-- 40 mp1 = m + 1
-- do 50 i = mp1,n,4
-- dy(i) = dy(i) + da*dx(i)
-- dy(i + 1) = dy(i + 1) + da*dx(i + 1)
-- dy(i + 2) = dy(i + 2) + da*dx(i + 2)
-- dy(i + 3) = dy(i + 3) + da*dx(i + 3)
-- 50 continue
-- return
-- end
--C---------------------------------------------------------------------------
-- subroutine dscal(n,da,dx,incx)
--c
--c scales a vector by a constant.
--c uses unrolled loops for increment equal to one.
--c jack dongarra, linpack, 3/11/78.
--c modified to correct problem with negative increment, 8/21/90.
--c
-- double precision da,dx(1)
-- integer i,incx,ix,m,mp1,n
--c
-- if(n.le.0)return
-- if(incx.eq.1)go to 20
--c
--c code for increment not equal to 1
--c
-- ix = 1
-- if(incx.lt.0)ix = (-n+1)*incx + 1
-- do 10 i = 1,n
-- dx(ix) = da*dx(ix)
-- ix = ix + incx
-- 10 continue
-- return
--c
--c code for increment equal to 1
--c
--c
--c clean-up loop
--c
-- 20 m = mod(n,5)
-- if( m .eq. 0 ) go to 40
-- do 30 i = 1,m
-- dx(i) = da*dx(i)
-- 30 continue
-- if( n .lt. 5 ) return
-- 40 mp1 = m + 1
-- do 50 i = mp1,n,5
-- dx(i) = da*dx(i)
-- dx(i + 1) = da*dx(i + 1)
-- dx(i + 2) = da*dx(i + 2)
-- dx(i + 3) = da*dx(i + 3)
-- dx(i + 4) = da*dx(i + 4)
-- 50 continue
-- return
-- end
--C--------------------------------------------------------------------------
-- integer function idamax(n,dx,incx)
--c
--c finds the index of element having max. absolute value.
--c jack dongarra, linpack, 3/11/78.
--c modified to correct problem with negative increment, 8/21/90.
--c
-- double precision dx(1),dmax
-- integer i,incx,ix,n
--c
-- idamax = 0
-- if( n .lt. 1 ) return
-- idamax = 1
-- if(n.eq.1)return
-- if(incx.eq.1)go to 20
--c
--c code for increment not equal to 1
--c
-- ix = 1
-- if(incx.lt.0)ix = (-n+1)*incx + 1
-- dmax = dabs(dx(ix))
-- ix = ix + incx
-- do 10 i = 2,n
-- if(dabs(dx(ix)).le.dmax) go to 5
-- idamax = i
-- dmax = dabs(dx(ix))
-- 5 ix = ix + incx
-- 10 continue
-- return
--c
--c code for increment equal to 1
--c
-- 20 dmax = dabs(dx(1))
-- do 30 i = 2,n
-- if(dabs(dx(i)).le.dmax) go to 30
-- idamax = i
-- dmax = dabs(dx(i))
-- 30 continue
-- return
-- end
--C--------------------------------------------------------------------------
-- subroutine dgbsl(abd,lda,n,ml,mu,ipvt,b,job)
-+ subroutine i_dgbsl(abd,lda,n,ml,mu,ipvt,b,job)
- integer lda,n,ml,mu,ipvt(*),job
- double precision abd(lda,*),b(*)
- c
--c dgbsl solves the double precision band system
-+c i_dgbsl solves the double precision band system
- c a * x = b or trans(a) * x = b
--c using the factors computed by dgbco or dgbfa.
-+c using the factors computed by dgbco or i_dgbfa.
- c
- c on entry
- c
- c abd double precision(lda, n)
--c the output from dgbco or dgbfa.
-+c the output from dgbco or i_dgbfa.
- c
- c lda integer
- c the leading dimension of the array abd .
-@@ -1670,7 +1537,7 @@
- c number of diagonals above the main diagonal.
- c
- c ipvt integer(n)
--c the pivot vector from dgbco or dgbfa.
-+c the pivot vector from dgbco or i_dgbfa.
- c
- c b double precision(n)
- c the right hand side vector.
-@@ -1691,14 +1558,14 @@
- c but it is often caused by improper arguments or improper
- c setting of lda . it will not occur if the subroutines are
- c called correctly and if dgbco has set rcond .gt. 0.0
--c or dgbfa has set info .eq. 0 .
-+c or i_dgbfa has set info .eq. 0 .
- c
- c to compute inverse(a) * c where c is a matrix
- c with p columns
- c call dgbco(abd,lda,n,ml,mu,ipvt,rcond,z)
- c if (rcond is too small) go to ...
- c do 10 j = 1, p
--c call dgbsl(abd,lda,n,ml,mu,ipvt,c(1,j),0)
-+c call i_dgbsl(abd,lda,n,ml,mu,ipvt,c(1,j),0)
- c 10 continue
- c
- c linpack. this version dated 08/14/78 .
-@@ -1780,64 +1647,14 @@
- return
- end
- C---------------------------------------------------------------------------
-- double precision function ddot(n,dx,incx,dy,incy)
--c
--c forms the dot product of two vectors.
--c uses unrolled loops for increments equal to one.
--c jack dongarra, linpack, 3/11/78.
--c
-- double precision dx(1),dy(1),dtemp
-- integer i,incx,incy,ix,iy,m,mp1,n
--c
-- ddot = 0.0d0
-- dtemp = 0.0d0
-- if(n.le.0)return
-- if(incx.eq.1.and.incy.eq.1)go to 20
--c
--c code for unequal increments or equal increments
--c not equal to 1
--c
-- ix = 1
-- iy = 1
-- if(incx.lt.0)ix = (-n+1)*incx + 1
-- if(incy.lt.0)iy = (-n+1)*incy + 1
-- do 10 i = 1,n
-- dtemp = dtemp + dx(ix)*dy(iy)
-- ix = ix + incx
-- iy = iy + incy
-- 10 continue
-- ddot = dtemp
-- return
--c
--c code for both increments equal to 1
--c
--c
--c clean-up loop
--c
-- 20 m = mod(n,5)
-- if( m .eq. 0 ) go to 40
-- do 30 i = 1,m
-- dtemp = dtemp + dx(i)*dy(i)
-- 30 continue
-- if( n .lt. 5 ) go to 60
-- 40 mp1 = m + 1
-- do 50 i = mp1,n,5
-- dtemp = dtemp + dx(i)*dy(i) + dx(i + 1)*dy(i + 1) +
-- * dx(i + 2)*dy(i + 2) + dx(i + 3)*dy(i + 3) +
-- * dx(i + 4)*dy(i + 4)
-- 50 continue
-- 60 ddot = dtemp
-- return
-- end
--C---------------------------------------------------------------------------
-
-- SUBROUTINE ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-+ SUBROUTINE I_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C ***************************************************
- C
- C THIS ROUTINE CALCULATES ERRORS USED IN TESTS
--C IN STIFF .
-+C IN I_STIFF .
- C
- C ***************************************************
- C .. SCALAR ARGUMENTS ..
-@@ -1872,7 +1689,7 @@
- END
- C--------------------------------------------------------------------------
-
-- SUBROUTINE PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
-+ SUBROUTINE I_PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C **********************************************************************
-@@ -1903,7 +1720,7 @@
- END
- C------------------------------------------------------------------------
-
-- SUBROUTINE ITRAT2(QQQ,Y,YPRIME,N,T,HBETA,ERRBND,ARH,CRATE,TCRATE
-+ SUBROUTINE I_ITRAT2(QQQ,Y,YPRIME,N,T,HBETA,ERRBND,ARH,CRATE,TCRATE
- + ,M,WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,NIND1,
- + NIND2,NIND3,IPIV,LMB,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,NBSOL,
- + NRE,NQUSED,RESID,IERR)
-@@ -1922,7 +1739,7 @@
- INTEGER I
- C ..
- C .. EXTERNAL SUBROUTINES ..
-- EXTERNAL SOL,DGBSL,RESID
-+ EXTERNAL I_SOL,I_DGBSL,RESID
- C ..
- C .. INTRINSIC FUNCTIONS ..
- INTRINSIC DMAX1,DMIN1
-@@ -1963,10 +1780,10 @@
- C
- call resid(n,t,y,save2,yprime,ipar,rpar,ierr)
- IF(MF.GE.23) THEN
-- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE2,0)
-+ CALL I_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE2,0)
- NBSOL = NBSOL + 1
- ELSE
-- CALL SOL(N,N,PW,SAVE2,IPIV)
-+ CALL I_SOL(N,N,PW,SAVE2,IPIV)
- NBSOL = NBSOL + 1
- ENDIF
- D = ZERO
-@@ -1992,10 +1809,10 @@
- C IF WE ARE HERE THEN PARTIALS ARE O.K.
- C
- IF( MF.GE. 23) THEN
-- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE2,0)
-+ CALL I_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE2,0)
- NBSOL=NBSOL + 1
- ELSE
-- CALL SOL(N,N,PW,SAVE2,IPIV)
-+ CALL I_SOL(N,N,PW,SAVE2,IPIV)
- NBSOL = NBSOL + 1
- ENDIF
- C
-@@ -2043,7 +1860,7 @@
- END
- C--------------------------------------------------------------------------
-
-- SUBROUTINE STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
-+ SUBROUTINE I_STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
- + NIND1,NIND2,NIND3,T,TOUT,TEND,Y,YPRIME,N,
- + YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,PWCOPY,YHOLD,
- + YNHOLD,ARH,IPIV,LOUT,MAXDER,ITOL,RTOL,ATOL,RPAR,IPAR,
-@@ -2052,13 +1869,13 @@
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C ------------------------------------------------------------------
--C THE SUBROUTINE STIFF PERFORMS ONE STEP OF THE INTEGRATION OF AN
-+C THE SUBROUTINE I_STIFF PERFORMS ONE STEP OF THE INTEGRATION OF AN
- C INITIAL VALUE PROBLEM FOR A SYSTEM OF
- C IMPLICIT DIFFERENTIAL ALGEBRAIC EQUATIONS.
--C COMMUNICATION WITH STIFF IS DONE WITH THE FOLLOWING VARIABLES..
-+C COMMUNICATION WITH I_STIFF IS DONE WITH THE FOLLOWING VARIABLES..
- C Y AN N BY LMAX+3 ARRAY CONTAINING THE DEPENDENT VARIABLES
- C AND THEIR BACKWARD DIFFERENCES. MAXDER (=LMAX-1) IS THE
--C MAXIMUM ORDER AVAILABLE. SEE SUBROUTINE COSET.
-+C MAXIMUM ORDER AVAILABLE. SEE SUBROUTINE I_COSET.
- C Y(I,J+1) CONTAINS THE JTH BACKWARD DIFFERENCE OF Y(I)
- C T THE INDEPENDENT VARIABLE. T IS UPDATED ON EACH STEP TAKEN.
- C H THE STEPSIZE TO BE ATTEMPTED ON THE NEXT STEP.
-@@ -2068,7 +1885,7 @@
- C HMIN THE MINIMUM AND MAXIMUM ABSOLUTE VALUE OF THE STEPSIZE
- C HMAX TO BE USED FOR THE STEP. THESE MAY BE CHANGED AT ANY
- C TIME BUT WILL NOT TAKE EFFECT UNTIL THE NEXT H CHANGE.
--C RTOL,ATOL THE ERROR BOUNDS. SEE DESCRIPTION IN OVDRIV.
-+C RTOL,ATOL THE ERROR BOUNDS. SEE DESCRIPTION IN I_OVDRIV.
- C N THE NUMBER OF FIRST ORDER DIFFERENTIAL EQUATIONS.
- C MF THE METHOD FLAG. MUST BE SET TO 21,22,23 OR 24 AT PRESENT
- C KFLAG A COMPLETION FLAG WITH THE FOLLOWING MEANINGS..
-@@ -2103,7 +1920,7 @@
- C MATRIX WAS FORMED BY A NEW J.
- C AVOLDJ STORES VALUE FOR AVERAGE CRATE WHEN ITERATION
- C MATRIX WAS FORMED BY AN OLD J.
--C NRENEW FLAG THAT IS USED IN COMMUNICATION WITH SUBROUTINE PSET.
-+C NRENEW FLAG THAT IS USED IN COMMUNICATION WITH SUBROUTINE I_PSET.
- C IF NRENEW > 0 THEN FORM A NEW JACOBIAN BEFORE
- C COMPUTING THE COEFFICIENT MATRIX FOR
- C THE NEWTON-RAPHSON ITERATION
-@@ -2132,8 +1949,8 @@
- DIMENSION EL(10),ELST(10),TQ(5)
- C ..
- C .. EXTERNAL SUBROUTINES ..
-- EXTERNAL COSET,CPYARY,ERRORS,HCHOSE,ITRAT2,
-- + PRDICT,PSET,RSCALE,SOL,DGBSL,PDERV,RESID
-+ EXTERNAL I_COSET,I_CPYARY,I_ERRORS,I_HCHOSE,I_ITRAT2,
-+ + I_PRDICT,I_PSET,I_RSCALE,I_SOL,I_DGBSL,PDERV,RESID
- C ..
- C .. INTRINSIC FUNCTIONS ..
- INTRINSIC DABS,DMAX1,DMIN1
-@@ -2225,14 +2042,14 @@
- HUSED = H
- C -----------------------------------------------------------------
- C IF THE CALLER HAS CHANGED N , THE CONSTANTS E, EDN, EUP
--C AND BND MUST BE RESET. E IS A COMPARISON FOR ERRORS AT THE
-+C AND BND MUST BE RESET. E IS A COMPARISON FOR I_ERRORS AT THE
- C CURRENT ORDER NQ. EUP IS TO TEST FOR INCREASING THE ORDER,
- C EDN FOR DECREASING THE ORDER. BND IS USED TO TEST FOR CONVERGENCE
- C OF THE CORRECTOR ITERATES. IF THE CALLER HAS CHANGED H, Y MUST
- C BE RE-SCALED. IF H IS CHANGED, IDOUB IS SET TO L+1 TO PREVENT
- C FURTHER CHANGES IN H FOR THAT MANY STEPS.
- C -----------------------------------------------------------------
-- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-+ CALL I_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
- LMAX = MAXDER + 1
- RC = RC*EL(1)/OLDLO
- OLDLO = EL(1)
-@@ -2243,14 +2060,14 @@
- C NRENEW AND NEWPAR ARE TO INSTRUCT ROUTINE THAT
- C WE WISH A NEW J TO BE CALCULATED FOR THIS STEP.
- C *****************************************************
-- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-+ CALL I_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
- DO 20 I = 1,N
- ARH(I) = EL(2)*Y(I,1)
- 20 CONTINUE
-- CALL CPYARY(N*L,Y,YHOLD)
-+ CALL I_CPYARY(N*L,Y,YHOLD)
- QI = H*EL(1)
- QQ = ONE/QI
-- CALL PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
-+ CALL I_PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
- IF(IERR.NE.0) THEN
- H=H/2
- IERR = 0
-@@ -2263,7 +2080,7 @@
- C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- C DIFFERENT PARAMETERS ON THIS CALL <
- C <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-- 30 CALL CPYARY(N*L,YHOLD,Y)
-+ 30 CALL I_CPYARY(N*L,YHOLD,Y)
- IF (MF.NE.MFOLD) THEN
- METH = MF/10
- MITER = MF - 10*METH
-@@ -2306,7 +2123,7 @@
- C *********************************************
- 40 RH = DMAX1(RH,HMIN/DABS(H))
- 50 RH = DMIN1(RH,HMAX/DABS(H),RMAX)
-- CALL RSCALE(N,L,RH,Y)
-+ CALL I_RSCALE(N,L,RH,Y)
- RMAX = 10.0D+0
- JCHANG = 1
- H = H*RH
-@@ -2323,7 +2140,7 @@
- END IF
-
- IDOUB = L + 1
-- CALL CPYARY(N*L,Y,YHOLD)
-+ CALL I_CPYARY(N*L,Y,YHOLD)
-
- 60 IF (DABS(RC-ONE).GT.UPBND) IWEVAL = MITER
- HUSED = H
-@@ -2348,7 +2165,7 @@
- IF (JCHANG.EQ.1) THEN
- C IF WE HAVE CHANGED STEPSIZE THEN PREDICT A VALUE FOR Y(T+H)
- C AND EVALUATE THE DERIVATIVE THERE (STORED IN SAVE2())
-- CALL PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
-+ CALL I_PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
- IF(IERR.NE.0) GOTO 8000
- DO 95 I=1,N
- YPRIME(I)=(Y(I,1)-ARH(I))/QI
-@@ -2371,7 +2188,7 @@
- C -------------------------------------------------------------------
- C IF INDICATED, THE MATRIX P = I/(H*EL(2)) - J IS RE-EVALUATED BEFORE
- C STARTING THE CORRECTOR ITERATION. IWEVAL IS SET = 0 TO INDICATE
--C THAT THIS HAS BEEN DONE. P IS COMPUTED AND PROCESSED IN PSET.
-+C THAT THIS HAS BEEN DONE. P IS COMPUTED AND PROCESSED IN I_PSET.
- C THE PROCESSED MATRIX IS STORED IN PW
- C -------------------------------------------------------------------
- IWEVAL = 0
-@@ -2436,14 +2253,14 @@
- JSNOLD = 0
- MQ1TMP = MEQC1
- MQ2TMP = MEQC2
-- CALL PSET(Y,YPRIME,N,H,T,UROUND,EPSJAC,QI,MITER,MBND,
-+ CALL I_PSET(Y,YPRIME,N,H,T,UROUND,EPSJAC,QI,MITER,MBND,
- + NIND1,NIND2,NIND3,IER,PDERV,RESID,NRENEW,YMAX,SAVE1,SAVE2,
- + SCALE,PW,PWCOPY,ERROR,IPIV,ITOL,RTOL,ATOL,NPSET,NJE,NRE,NDEC
- + ,IPAR,RPAR,IERR)
- IF(IERR.NE.0) GOTO 8000
- QQQ=QI
- C
--C NOTE THAT ERROR() IS JUST BEING USED AS A WORKSPACE BY PSET
-+C NOTE THAT ERROR() IS JUST BEING USED AS A WORKSPACE BY I_PSET
- IF (IER.NE.0) THEN
- C IF IER>0 THEN WE HAVE HAD A SINGULARITY IN THE ITERATION MATRIX
- IJUS=1
-@@ -2467,14 +2284,14 @@
- C LOOP. THE UPDATED Y VECTOR IS STORED TEMPORARILY IN SAVE1.
- C **********************************************************************
- IF (.NOT.SAMPLE) THEN
-- CALL ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,
-+ CALL I_ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,
- + WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,
- + NIND1,NIND2,NIND3,IPIV,1,ITOL,RTOL,ATOL,IPAR,RPAR,
- + HUSED,NBSOL,NRE,NQUSED,resid,IERR)
- IF(IERR.NE.0) GOTO 8000
-
- ELSE
-- CALL ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,
-+ CALL I_ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,
- + WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,
- + NIND1,NIND2,NIND3,IPIV,0,ITOL,RTOL,ATOL,IPAR,RPAR,
- + HUSED,NBSOL,NRE,NQUSED,resid,IERR)
-@@ -2589,7 +2406,7 @@
- ARH(I) = ARH(I) + EL(JP1)*Y(I,J1)
- 200 CONTINUE
- 210 CONTINUE
-- CALL PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
-+ CALL I_PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
- IF(IERR.NE.0) GOTO 8000
- DO 215 I=1,N
- YPRIME(I)=(Y(I,1)-ARH(I))/QQQ
-@@ -2603,7 +2420,7 @@
- C FOR NOW WILL ASSUME THAT WE DO NOT WISH TO SAMPLE
- C AT THE N+2 STEP POINT
- C
-- CALL ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE2,TCRAT2,M2,
-+ CALL I_ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE2,TCRAT2,M2,
- + WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,
- + NIND1,NIND2,NIND3,IPIV,1,ITOL,RTOL,ATOL,IPAR,RPAR,
- + HUSED,NBSOL,NRE,NQUSED,resid,IERR)
-@@ -2661,10 +2478,10 @@
- NRE=NRE+1
- C
- IF (MF.GE. 23) THEN
-- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
-+ CALL I_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
- NBSOL=NBSOL+1
- ELSE
-- CALL SOL(N,N,PW,SAVE1,IPIV)
-+ CALL I_SOL(N,N,PW,SAVE1,IPIV)
- NBSOL = NBSOL + 1
- ENDIF
- DO 321 I=1,N
-@@ -2758,7 +2575,7 @@
- IF(NQ.GT.1) FFAIL = 0.5D+0/DBLE(FLOAT(NQ))
- IF(NQ.GT.2) FRFAIL = 0.5D+0/DBLE(FLOAT(NQ-1))
- EFAIL = 0.5D+0/DBLE(FLOAT(L))
-- CALL CPYARY(N*L,YHOLD,Y)
-+ CALL I_CPYARY(N*L,YHOLD,Y)
- RMAX = 2.0D+0
- IF (DABS(H).LE.HMIN*1.00001D+0) THEN
- C
-@@ -2787,10 +2604,10 @@
- NQ=NEWQ
- RH=ONE/(PLFAIL*DBLE(FLOAT(-KFAIL)))
- L=NQ+1
-- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-+ CALL I_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
- RC=RC*EL(1)/OLDLO
- OLDLO=EL(1)
-- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-+ CALL I_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
- ELSE
- NEWQ = NQ
- RH = ONE/ (PRFAIL*DBLE(FLOAT(-KFAIL)))
-@@ -2816,7 +2633,7 @@
- C *********************************
- JCHANG = 1
- RH = DMAX1(HMIN/DABS(H),0.1D+0)
-- CALL HCHOSE(RH,H,OVRIDE)
-+ CALL I_HCHOSE(RH,H,OVRIDE)
- H = H*RH
- DO 350 I = 1,N
- Y(I,1) = YHOLD(I,1)
-@@ -2832,11 +2649,11 @@
- NQ = 1
- L = 2
- C RESET ORDER, RECALCULATE ERROR BOUNDS
-- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-+ CALL I_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
- LMAX = MAXDER + 1
- RC = RC*EL(1)/OLDLO
- OLDLO = EL(1)
-- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-+ CALL I_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
- C NOW JUMP TO NORMAL CONTINUATION POINT
- GO TO 60
- C **********************************************************************
-@@ -3003,7 +2820,7 @@
- GOTO 440
- ENDIF
- RH = DMIN1(RH,RMAX)
-- CALL HCHOSE(RH,H,OVRIDE)
-+ CALL I_HCHOSE(RH,H,OVRIDE)
- IF ((JSINUP.LE.20).AND.(KFLAG.EQ.0).AND.(RH.LT.1.1D+0)) THEN
- C WE HAVE RUN INTO PROBLEMS
- IDOUB = 10
-@@ -3031,16 +2848,16 @@
- NQ = NEWQ
- L = NQ + 1
- C RESET ORDER,RECALCULATE ERROR BOUNDS
-- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
-+ CALL I_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
- LMAX = MAXDER + 1
- RC = RC*EL(1)/OLDLO
- OLDLO = EL(1)
-- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
-+ CALL I_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
- END IF
-
- RH = DMAX1(RH,HMIN/DABS(H))
- RH = DMIN1(RH,HMAX/DABS(H),RMAX)
-- CALL RSCALE(N,L,RH,Y)
-+ CALL I_RSCALE(N,L,RH,Y)
- RMAX = 10.0D+0
- JCHANG = 1
- H = H*RH
-@@ -3057,7 +2874,7 @@
- C INFORMATION NECESSARY TO PERFORM AN INTERPOLATION TO FIND THE
- C SOLUTION AT THE SPECIFIED OUTPUT POINT IF APPROPRIATE.
- C ----------------------------------------------------------------------
-- CALL CPYARY(N*L,Y,YHOLD)
-+ CALL I_CPYARY(N*L,Y,YHOLD)
- NSTEP = NSTEP + 1
- JSINUP = JSINUP + 1
- JSNOLD = JSNOLD + 1
-@@ -3112,7 +2929,7 @@
- IF ((T-TOUT)*H.GE.0.0D+0) THEN
- C HAVE OVERSHOT TOUT
- WRITE (LOUT,*) T,TOUT,H
-- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
-+ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
- HO = H
- T0 = TOUT
- IDID = -5
-@@ -3123,7 +2940,7 @@
- goto 30
- endif
- c
-- IF(IJUS.EQ.0) CALL HCHOSE(RH,H,OVRIDE)
-+ IF(IJUS.EQ.0) CALL I_HCHOSE(RH,H,OVRIDE)
- IF(.NOT.FINISH) THEN
- GO TO 40
- ELSE
-@@ -3132,9 +2949,9 @@
-
- 9000 FORMAT (1X,' CORRECTOR HAS NOT CONVERGED')
- END
--C ------------------- END OF SUBROUTINE STIFF --------------------------
-+C ------------------- END OF SUBROUTINE I_STIFF --------------------------
-
-- SUBROUTINE RSCALE(N,L,RH,Y)
-+ SUBROUTINE I_RSCALE(N,L,RH,Y)
-
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C .. SCALAR ARGUMENTS ..
-@@ -3246,7 +3063,7 @@
- END
- C---------------------------------------------------------------------------
-
-- SUBROUTINE CPYARY(NELEM,SOURCE,TARGET)
-+ SUBROUTINE I_CPYARY(NELEM,SOURCE,TARGET)
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- C
- C COPIES THE ARRAY SOURCE() INTO THE ARRAY TARGET()
-@@ -3271,7 +3088,7 @@
- END
- C----------------------------------------------------------------------------
-
-- SUBROUTINE HCHOSE(RH,H,OVRIDE)
-+ SUBROUTINE I_HCHOSE(RH,H,OVRIDE)
- IMPLICIT DOUBLE PRECISION(A-H,O-Z)
- COMMON / STPSZE / HSTPSZ(2,14)
- LOGICAL OVRIDE
-@@ -3306,953 +3123,3 @@
-
- RETURN
- END
--C
--C ************************************************************
--C
-- DOUBLE PRECISION FUNCTION DLAMCH( CMACH )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- CHARACTER CMACH
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMCH determines double precision machine parameters.
--*
--* Arguments
--* =========
--*
--* CMACH (input) CHARACTER*1
--* Specifies the value to be returned by DLAMCH:
--* = 'E' or 'e', DLAMCH := eps
--* = 'S' or 's , DLAMCH := sfmin
--* = 'B' or 'b', DLAMCH := base
--* = 'P' or 'p', DLAMCH := eps*base
--* = 'N' or 'n', DLAMCH := t
--* = 'R' or 'r', DLAMCH := rnd
--* = 'M' or 'm', DLAMCH := emin
--* = 'U' or 'u', DLAMCH := rmin
--* = 'L' or 'l', DLAMCH := emax
--* = 'O' or 'o', DLAMCH := rmax
--*
--* where
--*
--* eps = relative machine precision
--* sfmin = safe minimum, such that 1/sfmin does not overflow
--* base = base of the machine
--* prec = eps*base
--* t = number of (base) digits in the mantissa
--* rnd = 1.0 when rounding occurs in addition, 0.0 otherwise
--* emin = minimum exponent before (gradual) underflow
--* rmin = underflow threshold - base**(emin-1)
--* emax = largest exponent before overflow
--* rmax = overflow threshold - (base**emax)*(1-eps)
--*
--* =====================================================================
--*
--* .. Parameters ..
-- DOUBLE PRECISION ONE, ZERO
-- PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 )
--* ..
--* .. Local Scalars ..
-- LOGICAL FIRST, LRND
-- INTEGER BETA, IMAX, IMIN, IT
-- DOUBLE PRECISION BASE, EMAX, EMIN, EPS, PREC, RMACH, RMAX, RMIN,
-- $ RND, SFMIN, SMALL, T
--* ..
--* .. External Functions ..
-- LOGICAL LSAME
-- EXTERNAL LSAME
--* ..
--* .. External Subroutines ..
-- EXTERNAL DLAMC2
--* ..
--* .. Save statement ..
-- SAVE FIRST, EPS, SFMIN, BASE, T, RND, EMIN, RMIN,
-- $ EMAX, RMAX, PREC
--* ..
--* .. Data statements ..
-- DATA FIRST / .TRUE. /
--* ..
--* .. Executable Statements ..
--*
-- IF( FIRST ) THEN
-- FIRST = .FALSE.
-- CALL DLAMC2( BETA, IT, LRND, EPS, IMIN, RMIN, IMAX, RMAX )
-- BASE = BETA
-- T = IT
-- IF( LRND ) THEN
-- RND = ONE
-- EPS = ( BASE**( 1-IT ) ) / 2
-- ELSE
-- RND = ZERO
-- EPS = BASE**( 1-IT )
-- END IF
-- PREC = EPS*BASE
-- EMIN = IMIN
-- EMAX = IMAX
-- SFMIN = RMIN
-- SMALL = ONE / RMAX
-- IF( SMALL.GE.SFMIN ) THEN
--*
--* Use SMALL plus a bit, to avoid the possibility of rounding
--* causing overflow when computing 1/sfmin.
--*
-- SFMIN = SMALL*( ONE+EPS )
-- END IF
-- END IF
--*
-- IF( LSAME( CMACH, 'E' ) ) THEN
-- RMACH = EPS
-- ELSE IF( LSAME( CMACH, 'S' ) ) THEN
-- RMACH = SFMIN
-- ELSE IF( LSAME( CMACH, 'B' ) ) THEN
-- RMACH = BASE
-- ELSE IF( LSAME( CMACH, 'P' ) ) THEN
-- RMACH = PREC
-- ELSE IF( LSAME( CMACH, 'N' ) ) THEN
-- RMACH = T
-- ELSE IF( LSAME( CMACH, 'R' ) ) THEN
-- RMACH = RND
-- ELSE IF( LSAME( CMACH, 'M' ) ) THEN
-- RMACH = EMIN
-- ELSE IF( LSAME( CMACH, 'U' ) ) THEN
-- RMACH = RMIN
-- ELSE IF( LSAME( CMACH, 'L' ) ) THEN
-- RMACH = EMAX
-- ELSE IF( LSAME( CMACH, 'O' ) ) THEN
-- RMACH = RMAX
-- END IF
--*
-- DLAMCH = RMACH
-- RETURN
--*
--* End of DLAMCH
--*
-- END
--*
--************************************************************************
--*
-- SUBROUTINE DLAMC1( BETA, T, RND, IEEE1 )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- LOGICAL IEEE1, RND
-- INTEGER BETA, T
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMC1 determines the machine parameters given by BETA, T, RND, and
--* IEEE1.
--*
--* Arguments
--* =========
--*
--* BETA (output) INTEGER
--* The base of the machine.
--*
--* T (output) INTEGER
--* The number of ( BETA ) digits in the mantissa.
--*
--* RND (output) LOGICAL
--* Specifies whether proper rounding ( RND = .TRUE. ) or
--* chopping ( RND = .FALSE. ) occurs in addition. This may not
--* be a reliable guide to the way in which the machine performs
--* its arithmetic.
--*
--* IEEE1 (output) LOGICAL
--* Specifies whether rounding appears to be done in the IEEE
--* 'round to nearest' style.
--*
--* Further Details
--* ===============
--*
--* The routine is based on the routine ENVRON by Malcolm and
--* incorporates suggestions by Gentleman and Marovich. See
--*
--* Malcolm M. A. (1972) Algorithms to reveal properties of
--* floating-point arithmetic. Comms. of the ACM, 15, 949-951.
--*
--* Gentleman W. M. and Marovich S. B. (1974) More on algorithms
--* that reveal properties of floating point arithmetic units.
--* Comms. of the ACM, 17, 276-277.
--*
--* =====================================================================
--*
--* .. Local Scalars ..
-- LOGICAL FIRST, LIEEE1, LRND
-- INTEGER LBETA, LT
-- DOUBLE PRECISION A, B, C, F, ONE, QTR, SAVEC, T1, T2
--* ..
--* .. External Functions ..
-- DOUBLE PRECISION DLAMC3
-- EXTERNAL DLAMC3
--* ..
--* .. Save statement ..
-- SAVE FIRST, LIEEE1, LBETA, LRND, LT
--* ..
--* .. Data statements ..
-- DATA FIRST / .TRUE. /
--* ..
--* .. Executable Statements ..
--*
-- IF( FIRST ) THEN
-- FIRST = .FALSE.
-- ONE = 1
--*
--* LBETA, LIEEE1, LT and LRND are the local values of BETA,
--* IEEE1, T and RND.
--*
--* Throughout this routine we use the function DLAMC3 to ensure
--* that relevant values are stored and not held in registers, or
--* are not affected by optimizers.
--*
--* Compute a = 2.0**m with the smallest positive integer m such
--* that
--*
--* fl( a + 1.0 ) = a.
--*
-- A = 1
-- C = 1
--*
--*+ WHILE( C.EQ.ONE )LOOP
-- 10 CONTINUE
-- IF( C.EQ.ONE ) THEN
-- A = 2*A
-- C = DLAMC3( A, ONE )
-- C = DLAMC3( C, -A )
-- GO TO 10
-- END IF
--*+ END WHILE
--*
--* Now compute b = 2.0**m with the smallest positive integer m
--* such that
--*
--* fl( a + b ) .gt. a.
--*
-- B = 1
-- C = DLAMC3( A, B )
--*
--*+ WHILE( C.EQ.A )LOOP
-- 20 CONTINUE
-- IF( C.EQ.A ) THEN
-- B = 2*B
-- C = DLAMC3( A, B )
-- GO TO 20
-- END IF
--*+ END WHILE
--*
--* Now compute the base. a and c are neighbouring floating point
--* numbers in the interval ( beta**t, beta**( t + 1 ) ) and so
--* their difference is beta. Adding 0.25 to c is to ensure that it
--* is truncated to beta and not ( beta - 1 ).
--*
-- QTR = ONE / 4
-- SAVEC = C
-- C = DLAMC3( C, -A )
-- LBETA = C + QTR
--*
--* Now determine whether rounding or chopping occurs, by adding a
--* bit less than beta/2 and a bit more than beta/2 to a.
--*
-- B = LBETA
-- F = DLAMC3( B / 2, -B / 100 )
-- C = DLAMC3( F, A )
-- IF( C.EQ.A ) THEN
-- LRND = .TRUE.
-- ELSE
-- LRND = .FALSE.
-- END IF
-- F = DLAMC3( B / 2, B / 100 )
-- C = DLAMC3( F, A )
-- IF( ( LRND ) .AND. ( C.EQ.A ) )
-- $ LRND = .FALSE.
--*
--* Try and decide whether rounding is done in the IEEE 'round to
--* nearest' style. B/2 is half a unit in the last place of the two
--* numbers A and SAVEC. Furthermore, A is even, i.e. has last bit
--* zero, and SAVEC is odd. Thus adding B/2 to A should not change
--* A, but adding B/2 to SAVEC should change SAVEC.
--*
-- T1 = DLAMC3( B / 2, A )
-- T2 = DLAMC3( B / 2, SAVEC )
-- LIEEE1 = ( T1.EQ.A ) .AND. ( T2.GT.SAVEC ) .AND. LRND
--*
--* Now find the mantissa, t. It should be the integer part of
--* log to the base beta of a, however it is safer to determine t
--* by powering. So we find t as the smallest positive integer for
--* which
--*
--* fl( beta**t + 1.0 ) = 1.0.
--*
-- LT = 0
-- A = 1
-- C = 1
--*
--*+ WHILE( C.EQ.ONE )LOOP
-- 30 CONTINUE
-- IF( C.EQ.ONE ) THEN
-- LT = LT + 1
-- A = A*LBETA
-- C = DLAMC3( A, ONE )
-- C = DLAMC3( C, -A )
-- GO TO 30
-- END IF
--*+ END WHILE
--*
-- END IF
--*
-- BETA = LBETA
-- T = LT
-- RND = LRND
-- IEEE1 = LIEEE1
-- RETURN
--*
--* End of DLAMC1
--*
-- END
--*
--************************************************************************
--*
-- SUBROUTINE DLAMC2( BETA, T, RND, EPS, EMIN, RMIN, EMAX, RMAX )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- LOGICAL RND
-- INTEGER BETA, EMAX, EMIN, T
-- DOUBLE PRECISION EPS, RMAX, RMIN
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMC2 determines the machine parameters specified in its argument
--* list.
--*
--* Arguments
--* =========
--*
--* BETA (output) INTEGER
--* The base of the machine.
--*
--* T (output) INTEGER
--* The number of ( BETA ) digits in the mantissa.
--*
--* RND (output) LOGICAL
--* Specifies whether proper rounding ( RND = .TRUE. ) or
--* chopping ( RND = .FALSE. ) occurs in addition. This may not
--* be a reliable guide to the way in which the machine performs
--* its arithmetic.
--*
--* EPS (output) DOUBLE PRECISION
--* The smallest positive number such that
--*
--* fl( 1.0 - EPS ) .LT. 1.0,
--*
--* where fl denotes the computed value.
--*
--* EMIN (output) INTEGER
--* The minimum exponent before (gradual) underflow occurs.
--*
--* RMIN (output) DOUBLE PRECISION
--* The smallest normalized number for the machine, given by
--* BASE**( EMIN - 1 ), where BASE is the floating point value
--* of BETA.
--*
--* EMAX (output) INTEGER
--* The maximum exponent before overflow occurs.
--*
--* RMAX (output) DOUBLE PRECISION
--* The largest positive number for the machine, given by
--* BASE**EMAX * ( 1 - EPS ), where BASE is the floating point
--* value of BETA.
--*
--* Further Details
--* ===============
--*
--* The computation of EPS is based on a routine PARANOIA by
--* W. Kahan of the University of California at Berkeley.
--*
--* =====================================================================
--*
--* .. Local Scalars ..
-- LOGICAL FIRST, IEEE, IWARN, LIEEE1, LRND
-- INTEGER GNMIN, GPMIN, I, LBETA, LEMAX, LEMIN, LT,
-- $ NGNMIN, NGPMIN
-- DOUBLE PRECISION A, B, C, HALF, LEPS, LRMAX, LRMIN, ONE, RBASE,
-- $ SIXTH, SMALL, THIRD, TWO, ZERO
--* ..
--* .. External Functions ..
-- DOUBLE PRECISION DLAMC3
-- EXTERNAL DLAMC3
--* ..
--* .. External Subroutines ..
-- EXTERNAL DLAMC1, DLAMC4, DLAMC5
--* ..
--* .. Intrinsic Functions ..
-- INTRINSIC ABS, MAX, MIN
--* ..
--* .. Save statement ..
-- SAVE FIRST, IWARN, LBETA, LEMAX, LEMIN, LEPS, LRMAX,
-- $ LRMIN, LT
--* ..
--* .. Data statements ..
-- DATA FIRST / .TRUE. / , IWARN / .FALSE. /
--* ..
--* .. Executable Statements ..
--*
-- IF( FIRST ) THEN
-- FIRST = .FALSE.
-- ZERO = 0
-- ONE = 1
-- TWO = 2
--*
--* LBETA, LT, LRND, LEPS, LEMIN and LRMIN are the local values of
--* BETA, T, RND, EPS, EMIN and RMIN.
--*
--* Throughout this routine we use the function DLAMC3 to ensure
--* that relevant values are stored and not held in registers, or
--* are not affected by optimizers.
--*
--* DLAMC1 returns the parameters LBETA, LT, LRND and LIEEE1.
--*
-- CALL DLAMC1( LBETA, LT, LRND, LIEEE1 )
--*
--* Start to find EPS.
--*
-- B = LBETA
-- A = B**( -LT )
-- LEPS = A
--*
--* Try some tricks to see whether or not this is the correct EPS.
--*
-- B = TWO / 3
-- HALF = ONE / 2
-- SIXTH = DLAMC3( B, -HALF )
-- THIRD = DLAMC3( SIXTH, SIXTH )
-- B = DLAMC3( THIRD, -HALF )
-- B = DLAMC3( B, SIXTH )
-- B = ABS( B )
-- IF( B.LT.LEPS )
-- $ B = LEPS
--*
-- LEPS = 1
--*
--*+ WHILE( ( LEPS.GT.B ).AND.( B.GT.ZERO ) )LOOP
-- 10 CONTINUE
-- IF( ( LEPS.GT.B ) .AND. ( B.GT.ZERO ) ) THEN
-- LEPS = B
-- C = DLAMC3( HALF*LEPS, ( TWO**5 )*( LEPS**2 ) )
-- C = DLAMC3( HALF, -C )
-- B = DLAMC3( HALF, C )
-- C = DLAMC3( HALF, -B )
-- B = DLAMC3( HALF, C )
-- GO TO 10
-- END IF
--*+ END WHILE
--*
-- IF( A.LT.LEPS )
-- $ LEPS = A
--*
--* Computation of EPS complete.
--*
--* Now find EMIN. Let A = + or - 1, and + or - (1 + BASE**(-3)).
--* Keep dividing A by BETA until (gradual) underflow occurs. This
--* is detected when we cannot recover the previous A.
--*
-- RBASE = ONE / LBETA
-- SMALL = ONE
-- DO 20 I = 1, 3
-- SMALL = DLAMC3( SMALL*RBASE, ZERO )
-- 20 CONTINUE
-- A = DLAMC3( ONE, SMALL )
-- CALL DLAMC4( NGPMIN, ONE, LBETA )
-- CALL DLAMC4( NGNMIN, -ONE, LBETA )
-- CALL DLAMC4( GPMIN, A, LBETA )
-- CALL DLAMC4( GNMIN, -A, LBETA )
-- IEEE = .FALSE.
--*
-- IF( ( NGPMIN.EQ.NGNMIN ) .AND. ( GPMIN.EQ.GNMIN ) ) THEN
-- IF( NGPMIN.EQ.GPMIN ) THEN
-- LEMIN = NGPMIN
--* ( Non twos-complement machines, no gradual underflow;
--* e.g., VAX )
-- ELSE IF( ( GPMIN-NGPMIN ).EQ.3 ) THEN
-- LEMIN = NGPMIN - 1 + LT
-- IEEE = .TRUE.
--* ( Non twos-complement machines, with gradual underflow;
--* e.g., IEEE standard followers )
-- ELSE
-- LEMIN = MIN( NGPMIN, GPMIN )
--* ( A guess; no known machine )
-- IWARN = .TRUE.
-- END IF
--*
-- ELSE IF( ( NGPMIN.EQ.GPMIN ) .AND. ( NGNMIN.EQ.GNMIN ) ) THEN
-- IF( ABS( NGPMIN-NGNMIN ).EQ.1 ) THEN
-- LEMIN = MAX( NGPMIN, NGNMIN )
--* ( Twos-complement machines, no gradual underflow;
--* e.g., CYBER 205 )
-- ELSE
-- LEMIN = MIN( NGPMIN, NGNMIN )
--* ( A guess; no known machine )
-- IWARN = .TRUE.
-- END IF
--*
-- ELSE IF( ( ABS( NGPMIN-NGNMIN ).EQ.1 ) .AND.
-- $ ( GPMIN.EQ.GNMIN ) ) THEN
-- IF( ( GPMIN-MIN( NGPMIN, NGNMIN ) ).EQ.3 ) THEN
-- LEMIN = MAX( NGPMIN, NGNMIN ) - 1 + LT
--* ( Twos-complement machines with gradual underflow;
--* no known machine )
-- ELSE
-- LEMIN = MIN( NGPMIN, NGNMIN )
--* ( A guess; no known machine )
-- IWARN = .TRUE.
-- END IF
--*
-- ELSE
-- LEMIN = MIN( NGPMIN, NGNMIN, GPMIN, GNMIN )
--* ( A guess; no known machine )
-- IWARN = .TRUE.
-- END IF
--***
--* Comment out this if block if EMIN is ok
-- IF( IWARN ) THEN
-- FIRST = .TRUE.
-- WRITE( 6, FMT = 9999 )LEMIN
-- END IF
--***
--*
--* Assume IEEE arithmetic if we found denormalised numbers above,
--* or if arithmetic seems to round in the IEEE style, determined
--* in routine DLAMC1. A true IEEE machine should have both things
--* true; however, faulty machines may have one or the other.
--*
-- IEEE = IEEE .OR. LIEEE1
--*
--* Compute RMIN by successive division by BETA. We could compute
--* RMIN as BASE**( EMIN - 1 ), but some machines underflow during
--* this computation.
--*
-- LRMIN = 1
-- DO 30 I = 1, 1 - LEMIN
-- LRMIN = DLAMC3( LRMIN*RBASE, ZERO )
-- 30 CONTINUE
--*
--* Finally, call DLAMC5 to compute EMAX and RMAX.
--*
-- CALL DLAMC5( LBETA, LT, LEMIN, IEEE, LEMAX, LRMAX )
-- END IF
--*
-- BETA = LBETA
-- T = LT
-- RND = LRND
-- EPS = LEPS
-- EMIN = LEMIN
-- RMIN = LRMIN
-- EMAX = LEMAX
-- RMAX = LRMAX
--*
-- RETURN
--*
-- 9999 FORMAT( / / ' WARNING. The value EMIN may be incorrect:-',
-- $ ' EMIN = ', I8, /
-- $ ' If, after inspection, the value EMIN looks',
-- $ ' acceptable please comment out ',
-- $ / ' the IF block as marked within the code of routine',
-- $ ' DLAMC2,', / ' otherwise supply EMIN explicitly.', / )
--*
--* End of DLAMC2
--*
-- END
--*
--************************************************************************
--*
-- DOUBLE PRECISION FUNCTION DLAMC3( A, B )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- DOUBLE PRECISION A, B
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMC3 is intended to force A and B to be stored prior to doing
--* the addition of A and B , for use in situations where optimizers
--* might hold one of these in a register.
--*
--* Arguments
--* =========
--*
--* A, B (input) DOUBLE PRECISION
--* The values A and B.
--*
--* =====================================================================
--*
--* .. Executable Statements ..
--*
-- DLAMC3 = A + B
--*
-- RETURN
--*
--* End of DLAMC3
--*
-- END
--*
--************************************************************************
--*
-- SUBROUTINE DLAMC4( EMIN, START, BASE )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- INTEGER BASE, EMIN
-- DOUBLE PRECISION START
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMC4 is a service routine for DLAMC2.
--*
--* Arguments
--* =========
--*
--* EMIN (output) EMIN
--* The minimum exponent before (gradual) underflow, computed by
--* setting A = START and dividing by BASE until the previous A
--* can not be recovered.
--*
--* START (input) DOUBLE PRECISION
--* The starting point for determining EMIN.
--*
--* BASE (input) INTEGER
--* The base of the machine.
--*
--* =====================================================================
--*
--* .. Local Scalars ..
-- INTEGER I
-- DOUBLE PRECISION A, B1, B2, C1, C2, D1, D2, ONE, RBASE, ZERO
--* ..
--* .. External Functions ..
-- DOUBLE PRECISION DLAMC3
-- EXTERNAL DLAMC3
--* ..
--* .. Executable Statements ..
--*
-- A = START
-- ONE = 1
-- RBASE = ONE / BASE
-- ZERO = 0
-- EMIN = 1
-- B1 = DLAMC3( A*RBASE, ZERO )
-- C1 = A
-- C2 = A
-- D1 = A
-- D2 = A
--*+ WHILE( ( C1.EQ.A ).AND.( C2.EQ.A ).AND.
--* $ ( D1.EQ.A ).AND.( D2.EQ.A ) )LOOP
-- 10 CONTINUE
-- IF( ( C1.EQ.A ) .AND. ( C2.EQ.A ) .AND. ( D1.EQ.A ) .AND.
-- $ ( D2.EQ.A ) ) THEN
-- EMIN = EMIN - 1
-- A = B1
-- B1 = DLAMC3( A / BASE, ZERO )
-- C1 = DLAMC3( B1*BASE, ZERO )
-- D1 = ZERO
-- DO 20 I = 1, BASE
-- D1 = D1 + B1
-- 20 CONTINUE
-- B2 = DLAMC3( A*RBASE, ZERO )
-- C2 = DLAMC3( B2 / RBASE, ZERO )
-- D2 = ZERO
-- DO 30 I = 1, BASE
-- D2 = D2 + B2
-- 30 CONTINUE
-- GO TO 10
-- END IF
--*+ END WHILE
--*
-- RETURN
--*
--* End of DLAMC4
--*
-- END
--*
--************************************************************************
--*
-- SUBROUTINE DLAMC5( BETA, P, EMIN, IEEE, EMAX, RMAX )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* October 31, 1992
--*
--* .. Scalar Arguments ..
-- LOGICAL IEEE
-- INTEGER BETA, EMAX, EMIN, P
-- DOUBLE PRECISION RMAX
--* ..
--*
--* Purpose
--* =======
--*
--* DLAMC5 attempts to compute RMAX, the largest machine floating-point
--* number, without overflow. It assumes that EMAX + abs(EMIN) sum
--* approximately to a power of 2. It will fail on machines where this
--* assumption does not hold, for example, the Cyber 205 (EMIN = -28625,
--* EMAX = 28718). It will also fail if the value supplied for EMIN is
--* too large (i.e. too close to zero), probably with overflow.
--*
--* Arguments
--* =========
--*
--* BETA (input) INTEGER
--* The base of floating-point arithmetic.
--*
--* P (input) INTEGER
--* The number of base BETA digits in the mantissa of a
--* floating-point value.
--*
--* EMIN (input) INTEGER
--* The minimum exponent before (gradual) underflow.
--*
--* IEEE (input) LOGICAL
--* A logical flag specifying whether or not the arithmetic
--* system is thought to comply with the IEEE standard.
--*
--* EMAX (output) INTEGER
--* The largest exponent before overflow
--*
--* RMAX (output) DOUBLE PRECISION
--* The largest machine floating-point number.
--*
--* =====================================================================
--*
--* .. Parameters ..
-- DOUBLE PRECISION ZERO, ONE
-- PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 )
--* ..
--* .. Local Scalars ..
-- INTEGER EXBITS, EXPSUM, I, LEXP, NBITS, TRY, UEXP
-- DOUBLE PRECISION OLDY, RECBAS, Y, Z
--* ..
--* .. External Functions ..
-- DOUBLE PRECISION DLAMC3
-- EXTERNAL DLAMC3
--* ..
--* .. Intrinsic Functions ..
-- INTRINSIC MOD
--* ..
--* .. Executable Statements ..
--*
--* First compute LEXP and UEXP, two powers of 2 that bound
--* abs(EMIN). We then assume that EMAX + abs(EMIN) will sum
--* approximately to the bound that is closest to abs(EMIN).
--* (EMAX is the exponent of the required number RMAX).
--*
-- LEXP = 1
-- EXBITS = 1
-- 10 CONTINUE
-- TRY = LEXP*2
-- IF( TRY.LE.( -EMIN ) ) THEN
-- LEXP = TRY
-- EXBITS = EXBITS + 1
-- GO TO 10
-- END IF
-- IF( LEXP.EQ.-EMIN ) THEN
-- UEXP = LEXP
-- ELSE
-- UEXP = TRY
-- EXBITS = EXBITS + 1
-- END IF
--*
--* Now -LEXP is less than or equal to EMIN, and -UEXP is greater
--* than or equal to EMIN. EXBITS is the number of bits needed to
--* store the exponent.
--*
-- IF( ( UEXP+EMIN ).GT.( -LEXP-EMIN ) ) THEN
-- EXPSUM = 2*LEXP
-- ELSE
-- EXPSUM = 2*UEXP
-- END IF
--*
--* EXPSUM is the exponent range, approximately equal to
--* EMAX - EMIN + 1 .
--*
-- EMAX = EXPSUM + EMIN - 1
-- NBITS = 1 + EXBITS + P
--*
--* NBITS is the total number of bits needed to store a
--* floating-point number.
--*
-- IF( ( MOD( NBITS, 2 ).EQ.1 ) .AND. ( BETA.EQ.2 ) ) THEN
--*
--* Either there are an odd number of bits used to store a
--* floating-point number, which is unlikely, or some bits are
--* not used in the representation of numbers, which is possible,
--* (e.g. Cray machines) or the mantissa has an implicit bit,
--* (e.g. IEEE machines, Dec Vax machines), which is perhaps the
--* most likely. We have to assume the last alternative.
--* If this is true, then we need to reduce EMAX by one because
--* there must be some way of representing zero in an implicit-bit
--* system. On machines like Cray, we are reducing EMAX by one
--* unnecessarily.
--*
-- EMAX = EMAX - 1
-- END IF
--*
-- IF( IEEE ) THEN
--*
--* Assume we are on an IEEE machine which reserves one exponent
--* for infinity and NaN.
--*
-- EMAX = EMAX - 1
-- END IF
--*
--* Now create RMAX, the largest machine number, which should
--* be equal to (1.0 - BETA**(-P)) * BETA**EMAX .
--*
--* First compute 1.0 - BETA**(-P), being careful that the
--* result is less than 1.0 .
--*
-- RECBAS = ONE / BETA
-- Z = BETA - ONE
-- Y = ZERO
-- DO 20 I = 1, P
-- Z = Z*RECBAS
-- IF( Y.LT.ONE )
-- $ OLDY = Y
-- Y = DLAMC3( Y, Z )
-- 20 CONTINUE
-- IF( Y.GE.ONE )
-- $ Y = OLDY
--*
--* Now multiply by BETA**EMAX to get RMAX.
--*
-- DO 30 I = 1, EMAX
-- Y = DLAMC3( Y*BETA, ZERO )
-- 30 CONTINUE
--*
-- RMAX = Y
-- RETURN
--*
--* End of DLAMC5
--*
-- END
-- LOGICAL FUNCTION LSAME( CA, CB )
--*
--* -- LAPACK auxiliary routine (version 2.0) --
--* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
--* Courant Institute, Argonne National Lab, and Rice University
--* September 30, 1994
--*
--* .. Scalar Arguments ..
-- CHARACTER CA, CB
--* ..
--*
--* Purpose
--* =======
--*
--* LSAME returns .TRUE. if CA is the same letter as CB regardless of
--* case.
--*
--* Arguments
--* =========
--*
--* CA (input) CHARACTER*1
--* CB (input) CHARACTER*1
--* CA and CB specify the single characters to be compared.
--*
--* =====================================================================
--*
--* .. Intrinsic Functions ..
-- INTRINSIC ICHAR
--* ..
--* .. Local Scalars ..
-- INTEGER INTA, INTB, ZCODE
--* ..
--* .. Executable Statements ..
--*
--* Test if the characters are equal
--*
-- LSAME = CA.EQ.CB
-- IF( LSAME )
-- $ RETURN
--*
--* Now test for equivalence if both characters are alphabetic.
--*
-- ZCODE = ICHAR( 'Z' )
--*
--* Use 'Z' rather than 'A' so that ASCII can be detected on Prime
--* machines, on which ICHAR returns a value with bit 8 set.
--* ICHAR('A') on Prime machines returns 193 which is the same as
--* ICHAR('A') on an EBCDIC machine.
--*
-- INTA = ICHAR( CA )
-- INTB = ICHAR( CB )
--*
-- IF( ZCODE.EQ.90 .OR. ZCODE.EQ.122 ) THEN
--*
--* ASCII is assumed - ZCODE is the ASCII code of either lower or
--* upper case 'Z'.
--*
-- IF( INTA.GE.97 .AND. INTA.LE.122 ) INTA = INTA - 32
-- IF( INTB.GE.97 .AND. INTB.LE.122 ) INTB = INTB - 32
--*
-- ELSE IF( ZCODE.EQ.233 .OR. ZCODE.EQ.169 ) THEN
--*
--* EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or
--* upper case 'Z'.
--*
-- IF( INTA.GE.129 .AND. INTA.LE.137 .OR.
-- $ INTA.GE.145 .AND. INTA.LE.153 .OR.
-- $ INTA.GE.162 .AND. INTA.LE.169 ) INTA = INTA + 64
-- IF( INTB.GE.129 .AND. INTB.LE.137 .OR.
-- $ INTB.GE.145 .AND. INTB.LE.153 .OR.
-- $ INTB.GE.162 .AND. INTB.LE.169 ) INTB = INTB + 64
--*
-- ELSE IF( ZCODE.EQ.218 .OR. ZCODE.EQ.250 ) THEN
--*
--* ASCII is assumed, on Prime machines - ZCODE is the ASCII code
--* plus 128 of either lower or upper case 'Z'.
--*
-- IF( INTA.GE.225 .AND. INTA.LE.250 ) INTA = INTA - 32
-- IF( INTB.GE.225 .AND. INTB.LE.250 ) INTB = INTB - 32
-- END IF
-- LSAME = INTA.EQ.INTB
--*
--* RETURN
--*
--* End of LSAME
--*
-- END
--
--C----------------------------------------------------------------------------
--
+--- cash.orig/mebdfdae.f 2007-12-15 15:37:46.000000000 -0500
++++ cash/mebdfdae.f 2014-03-02 16:20:04.683064613 -0500
+@@ -53,13 +53,13 @@
+ C
+ C NOVEMBER 6th 1998: FIRST RELEASE
+ C
+-C OVDRIV
++C A_OVDRIV
+ C A PACKAGE FOR THE SOLUTION OF THE INITIAL VALUE PROBLEM
+ C FOR SYSTEMS OF ORDINARY DIFFERENTIAL EQUATIONS
+ C DY/DT = F(Y,T), Y=(Y(1),Y(2),Y(3), . . . ,Y(N))
+ C AND LINEARLY IMPLICIT DIFFERENTIAL ALGEBRAIC EQUATIONS
+ C M(DY/DT) = F(Y,T)
+-C SUBROUTINE OVDRIV IS A DRIVER ROUTINE FOR THIS PACKAGE
++C SUBROUTINE A_OVDRIV IS A DRIVER ROUTINE FOR THIS PACKAGE
+ C
+ C REFERENCES
+ C
+@@ -79,8 +79,8 @@
+ C SPRINGER 1996, page 267.
+ C
+ C ----------------------------------------------------------------
+-C OVDRIV IS TO BE CALLED ONCE FOR EACH OUTPUT VALUE OF T, AND
+-C IN TURN MAKES REPEATED CALLS TO THE CORE INTEGRATOR STIFF.
++C A_OVDRIV IS TO BE CALLED ONCE FOR EACH OUTPUT VALUE OF T, AND
++C IN TURN MAKES REPEATED CALLS TO THE CORE INTEGRATOR A_STIFF.
+ C
+ C THE INPUT PARAMETERS ARE ..
+ C N = THE NUMBER OF FIRST ORDER DIFFERENTIAL EQUATIONS.
+@@ -165,7 +165,7 @@
+ C SHOULD BE NON-NEGATIVE. IF ITOL = 1 THEN SINGLE STEP ERROR
+ C ESTIMATES DIVIDED BY YMAX(I) WILL BE KEPT LESS THAN 1
+ C IN ROOT-MEAN-SQUARE NORM. THE VECTOR YMAX OF WEIGHTS IS
+-C COMPUTED IN OVDRIV. INITIALLY YMAX(I) IS SET AS
++C COMPUTED IN A_OVDRIV. INITIALLY YMAX(I) IS SET AS
+ C THE MAXIMUM OF 1 AND ABS(Y(I)). THEREAFTER YMAX(I) IS
+ C THE LARGEST VALUE OF ABS(Y(I)) SEEN SO FAR, OR THE
+ C INITIAL VALUE YMAX(I) IF THAT IS LARGER.
+@@ -251,20 +251,20 @@
+ C IN ADDITION TO OVDRIVE, THE FOLLOWING ROUTINES ARE PROVIDED
+ C IN THE PACKAGE..
+ C
+-C INTERP( - ) INTERPOLATES TO GET THE OUTPUT VALUES
++C A_INTERP( - ) INTERPOLATES TO GET THE OUTPUT VALUES
+ C AT T=TOUT FROM THE DATA IN THE Y ARRAY.
+-C STIFF( - ) IS THE CORE INTEGRATOR ROUTINE. IT PERFORMS A
++C A_STIFF( - ) IS THE CORE INTEGRATOR ROUTINE. IT PERFORMS A
+ C SINGLE STEP AND ASSOCIATED ERROR CONTROL.
+-C COSET( - ) SETS COEFFICIENTS FOR BACKWARD DIFFERENTIATION
++C A_COSET( - ) SETS COEFFICIENTS FOR BACKWARD DIFFERENTIATION
+ C SCHEMES FOR USE IN THE CORE INTEGRATOR.
+-C PSET( - ) COMPUTES AND PROCESSES THE JACOBIAN
++C A_PSET( - ) COMPUTES AND PROCESSES THE JACOBIAN
+ C MATRIX J = DF/DY
+-C DEC( - ) PERFORMS AN LU DECOMPOSITION ON A MATRIX.
+-C SOL( - ) SOLVES LINEAR SYSTEMS A*X = B AFTER DEC
++C A_DEC( - ) PERFORMS AN LU DECOMPOSITION ON A MATRIX.
++C A_SOL( - ) SOLVES LINEAR SYSTEMS A*X = B AFTER A_DEC
+ C HAS BEEN CALLED FOR THE MATRIX A
+-C DGBFA ( - ) FACTORS A DOUBLE PRECISION BAND MATRIX BY
++C A_DGBFA ( - ) FACTORS A DOUBLE PRECISION BAND MATRIX BY
+ C ELIMINATION.
+-C DGBSL ( - ) SOLVES A BANDED LINEAR SYSTEM A*x=b
++C A_DGBSL ( - ) SOLVES A BANDED LINEAR SYSTEM A*x=b
+ C
+ C ALSO SUPPLIED ARE THE BLAS ROUTINES
+ C
+@@ -338,7 +338,7 @@
+ C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ C THIS SUBROUTINE IS FOR THE PURPOSE *
+ C OF SPLITTING UP THE WORK ARRAYS WORK AND IWORK *
+-C FOR USE INSIDE THE INTEGRATOR STIFF *
++C FOR USE INSIDE THE INTEGRATOR A_STIFF *
+ C <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+ C .. SCALAR ARGUMENTS ..
+@@ -353,7 +353,7 @@
+ C COMMON BLOCKS
+ C ..
+ C .. EXTERNAL SUBROUTINES ..
+- EXTERNAL OVDRIV,F,PDERV,MAS
++ EXTERNAL A_OVDRIV,F,PDERV,MAS
+ C ..
+ C .. SAVE STATEMENT ..
+ SAVE I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12
+@@ -401,7 +401,7 @@
+ c WORKSPACE HAS TO BE AT LEAST N+14.
+ c
+
+- CALL OVDRIV(N,T0,HO,Y0,TOUT,TEND,MF,IDID,LOUT,WORK(3),WORK(I1),
++ CALL A_OVDRIV(N,T0,HO,Y0,TOUT,TEND,MF,IDID,LOUT,WORK(3),WORK(I1),
+ + WORK(I2),WORK(I3),WORK(I4),WORK(I5),WORK(I6),WORK(I7),
+ + WORK(I8),WORK(I9),WORK(I10),WORK(I11),IWORK(15),MBND,MASBND,
+ + IWORK(1),IWORK(2),IWORK(3),MAXDER,ITOL,RTOL,ATOL,RPAR,IPAR,
+@@ -431,7 +431,7 @@
+ + ' WITH N = ',I6)
+ END
+
+- SUBROUTINE OVDRIV(N,T0,HO,Y0,TOUT,TEND,MF,IDID,LOUT,Y,YHOLD,
++ SUBROUTINE A_OVDRIV(N,T0,HO,Y0,TOUT,TEND,MF,IDID,LOUT,Y,YHOLD,
+ + YNHOLD,YMAX,ERRORS,SAVE1,SAVE2,SCALE,ARH,PW,PWCOPY,
+ + AM,IPIV,MBND,MASBND,NIND1,NIND2,NIND3,MAXDER,ITOL,
+ + RTOL,ATOL,RPAR,IPAR,F,PDERV,MAS,NQUSED,NSTEP,NFAIL,
+@@ -457,7 +457,7 @@
+ INTEGER I,KGO,NHCUT
+ C ..
+ C .. EXTERNAL SUBROUTINES ..
+- EXTERNAL INTERP,STIFF,F,PDERV,MAS
++ EXTERNAL A_INTERP,A_STIFF,F,PDERV,MAS
+ C ..
+ C .. INTRINSIC FUNCTIONS ..
+ INTRINSIC DABS,DMAX1
+@@ -475,7 +475,7 @@
+ HMAX = DABS(TEND-T0)*10.0D+0
+ IF ((T-TOUT)*H.GE.0.0D+0) THEN
+ C HAVE OVERSHOT THE OUTPUT POINT, SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ IDID = KFLAG
+ T0 = TOUT
+ HO = H
+@@ -493,7 +493,7 @@
+ IF (((T-TOUT)*H.GE.0.0D+0) .OR. (DABS(T-TOUT).LE.
+ + 100.0D+0*UROUND*HMAX)) THEN
+ C HAVE OVERSHOT THE OUTPUT POINT, SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ T0 = TOUT
+ HO = H
+ IDID = KFLAG
+@@ -520,7 +520,7 @@
+ IF ((T-TOUT)*H.GE.0.0D+0) THEN
+ C HAVE OVERSHOT TOUT
+ WRITE (LOUT,9080) T,TOUT,H
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ HO = H
+ T0 = TOUT
+ IDID = -5
+@@ -534,7 +534,7 @@
+ T0 = T
+ IF ((T-TOUT)*H.GE.0.0D+0) THEN
+ C HAVE OVERSHOT,SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ IDID = KFLAG
+ T0 = TOUT
+ HO = H
+@@ -667,7 +667,7 @@
+ 20 IF ((T+H).EQ.T) THEN
+ WRITE (LOUT,9000)
+ END IF
+- CALL STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,MASBND,
++ CALL A_STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,MASBND,
+ + NIND1,NIND2,NIND3,T,TOUT,TEND,Y,N,
+ + YMAX,ERRORS,SAVE1,SAVE2,SCALE,PW,PWCOPY,AM,YHOLD,
+ + YNHOLD,ARH,IPIV,LOUT,MAXDER,ITOL,RTOL,ATOL,RPAR,IPAR,F,
+@@ -679,7 +679,7 @@
+ ENDIF
+ KGO = 1 - KFLAG
+ IF (KGO.EQ.1) THEN
+-C NORMAL RETURN FROM STIFF
++C NORMAL RETURN FROM A_STIFF
+ GO TO 30
+
+ ELSE IF (KGO.EQ.2) THEN
+@@ -756,7 +756,7 @@
+ IF (((T-TOUT)*H.GE.0.0D+0) .OR. (DABS(T-TOUT).LE.
+ + 100.0D+0*UROUND*HMAX)) THEN
+ C HAVE OVERSHOT, SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ T0 = TOUT
+ HO = H
+ IDID = KFLAG
+@@ -773,7 +773,7 @@
+
+ ELSE IF ((T-TOUT)*H.GE.0.0D+0) THEN
+ C HAVE OVERSHOT, SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ IDID = KFLAG
+ HO = H
+ T0 = TOUT
+@@ -812,14 +812,14 @@
+
+ ELSE
+ C HAVE PASSED TOUT SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ T0 = TOUT
+ IDID = KFLAG
+ END IF
+ HO = H
+ IF(KFLAG.NE.0) IDID = KFLAG
+ RETURN
+-C -------------------------- END OF SUBROUTINE OVDRIV -----------------
++C -------------------------- END OF SUBROUTINE A_OVDRIV -----------------
+ 9000 FORMAT (' WARNING.. T + H = T ON NEXT STEP.')
+ 9010 FORMAT (/,/,' KFLAG = -2 FROM INTEGRATOR AT T = ',E16.8,' H =',
+ + E16.8,/,
+@@ -853,7 +853,7 @@
+
+
+ END
+- SUBROUTINE INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ SUBROUTINE A_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C .. SCALAR ARGUMENTS ..
+@@ -880,14 +880,14 @@
+ 20 CONTINUE
+ 30 CONTINUE
+ RETURN
+-C -------------- END OF SUBROUTINE INTERP ---------------------------
++C -------------- END OF SUBROUTINE A_INTERP ---------------------------
+ END
+- SUBROUTINE COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
++ SUBROUTINE A_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
+
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C --------------------------------------------------------------------
+-C COSET IS CALLED BY THE INTEGRATOR AND SETS THE COEFFICIENTS USED
++C A_COSET IS CALLED BY THE INTEGRATOR AND SETS THE COEFFICIENTS USED
+ C BY THE CONVENTIONAL BACKWARD DIFFERENTIATION SCHEME AND THE
+ C MODIFIED EXTENDED BACKWARD DIFFERENTIATION SCHEME. THE VECTOR
+ C EL OF LENGTH NQ+1 DETERMINES THE BASIC BDF METHOD WHILE THE VECTOR
+@@ -1017,10 +1017,10 @@
+ TQ(4) = 0.5D+0*TQ(2)/DBLE(FLOAT(NQ))
+ IF(NQ.NE.1) TQ(5)=PERTST(NQ-1,1)
+ RETURN
+-C --------------------- END OF SUBROUTINE COSET ---------------------
++C --------------------- END OF SUBROUTINE A_COSET ---------------------
+ END
+
+- SUBROUTINE PSET(Y,N,H,T,UROUND,EPSJAC,CON,MITER,MBND,
++ SUBROUTINE A_PSET(Y,N,H,T,UROUND,EPSJAC,CON,MITER,MBND,
+ + MASBND,NIND1,NIND2,NIND3,IER,F,PDERV,MAS,
+ + NRENEW,YMAX,SAVE1,SAVE2,PW,PWCOPY,AM,WRKSPC,IPIV,
+ + ITOL,RTOL,ATOL,NPSET,NJE,NFE,NDEC,IPAR,RPAR,IERR)
+@@ -1029,7 +1029,7 @@
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C -------------------------------------------------------------------
+-C PSET IS CALLED BY STIFF TO COMPUTE AND PROCESS THE MATRIX
++C A_PSET IS CALLED BY A_STIFF TO COMPUTE AND PROCESS THE MATRIX
+ C M/(H*EL(1)) - J WHERE J IS AN APPROXIMATION TO THE RELEVANT JACOBIAN
+ C AND M IS THE MASS MATRIX. THIS MATRIX IS THEN SUBJECTED TO LU
+ C DECOMPOSITION IN PREPARATION FOR LATER SOLUTION OF LINEAR SYSTEMS
+@@ -1037,7 +1037,7 @@
+ C MATRIX J IS FOUND BY THE USER-SUPPLIED ROUTINE PDERV IF MITER=1
+ C OR 3 OR BY FINITE DIFFERENCING IF MITER = 2 OR 4.
+ C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION WITH
+-C PSET USES THE FOLLOWING ..
++C A_PSET USES THE FOLLOWING ..
+ C EPSJAC = DSQRT(UROUND), USED IN NUMERICAL JACOBIAN INCREMENTS.
+ C *******************************************************************
+ C THE ARGUMENT NRENEW IS USED TO SIGNAL WHETHER OR NOT
+@@ -1060,7 +1060,7 @@
+ INTEGER I,J,J1,JJKK,FOUR,FIVE
+ C ..
+ C .. EXTERNAL SUBROUTINES ..
+- EXTERNAL DEC,F,PDERV,DGBFA,MAS
++ EXTERNAL A_DEC,F,PDERV,A_DGBFA,MAS
+ C ..
+ C .. INTRINSIC FUNCTIONS ..
+ INTRINSIC DABS,DMAX1,DSQRT
+@@ -1267,7 +1267,7 @@
+ II = II + MBND(4)
+ 75 CONTINUE
+ ENDIF
+- CALL DGBFA(PW,MBND(4),N,ML,MU,IPIV,IER)
++ CALL A_DGBFA(PW,MBND(4),N,ML,MU,IPIV,IER)
+ NDEC = NDEC + 1
+ ELSE
+ IF(MASBND(1).EQ.0) THEN
+@@ -1278,13 +1278,13 @@
+ J = J + NP1
+ 80 CONTINUE
+ ENDIF
+- CALL DEC(N,N,PW,IPIV,IER)
++ CALL A_DEC(N,N,PW,IPIV,IER)
+ NDEC = NDEC + 1
+ ENDIF
+ RETURN
+-C ---------------------- END OF SUBROUTINE PSET ---------------------
++C ---------------------- END OF SUBROUTINE A_PSET ---------------------
+ END
+- SUBROUTINE DEC(N,NDIM,A,IP,IER)
++ SUBROUTINE A_DEC(N,NDIM,A,IP,IER)
+
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+@@ -1301,9 +1301,9 @@
+ C IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR 0.
+ C IER = 0 IF MATRIX IS NON-SINGULAR, OR K IF FOUND TO BE SINGULAR
+ C AT STAGE K.
+-C USE SOL TO OBTAIN SOLUTION OF LINEAR SYSTEM.
++C USE A_SOL TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+ C DETERM(A) = IP(N)*A(1,1)*A(2,2)* . . . *A(N,N).
+-C IF IP(N) = 0, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
++C IF IP(N) = 0, A IS SINGULAR, A_SOL WILL DIVIDE BY ZERO.
+ C
+ C REFERENCE.
+ C C.B. MOLER, ALGORITHM 423, LINEAR EQUATION SOLVER, C.A.C.M
+@@ -1362,9 +1362,9 @@
+ 80 IER = K
+ IP(N) = 0
+ RETURN
+-C --------------------- END OF SUBROUTINE DEC ----------------------
++C --------------------- END OF SUBROUTINE A_DEC ----------------------
+ END
+- SUBROUTINE SOL(N,NDIM,A,B,IP)
++ SUBROUTINE A_SOL(N,NDIM,A,B,IP)
+
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+@@ -1386,10 +1386,10 @@
+ C INPUT ..
+ C N = ORDER OF MATRIX.
+ C NDIM = DECLARED DIMENSION OF MATRIX A.
+-C A = TRIANGULARISED MATRIX OBTAINED FROM DEC.
++C A = TRIANGULARISED MATRIX OBTAINED FROM A_DEC.
+ C B = RIGHT HAND SIDE VECTOR.
+-C IP = PIVOT VECTOR OBTAINED FROM DEC.
+-C DO NOT USE IF DEC HAS SET IER .NE. 0
++C IP = PIVOT VECTOR OBTAINED FROM A_DEC.
++C DO NOT USE IF A_DEC HAS SET IER .NE. 0
+ C OUTPUT..
+ C B = SOLUTION VECTOR, X.
+ C ------------------------------------------------------------------
+@@ -1416,15 +1416,15 @@
+ 40 CONTINUE
+ 50 B(1) = B(1)/A(1,1)
+ RETURN
+-C ------------------------- END OF SUBROUTINE SOL ------------------
++C ------------------------- END OF SUBROUTINE A_SOL ------------------
+ END
+- subroutine dgbfa(abd,lda,n,ml,mu,ipvt,info)
++ subroutine a_dgbfa(abd,lda,n,ml,mu,ipvt,info)
+ integer lda,n,ml,mu,ipvt(1),info
+ double precision abd(lda,1)
+ c
+-c dgbfa factors a double precision band matrix by elimination.
++c a_dgbfa factors a double precision band matrix by elimination.
+ c
+-c dgbfa is usually called by dgbco, but it can be called
++c a_dgbfa is usually called by dgbco, but it can be called
+ c directly with a saving in time if rcond is not needed.
+ c
+ c on entry
+@@ -1466,7 +1466,7 @@
+ c = 0 normal value.
+ c = k if u(k,k) .eq. 0.0 . this is not an error
+ c condition for this subroutine, but it does
+-c indicate that dgbsl will divide by zero if
++c indicate that a_dgbsl will divide by zero if
+ c called. use rcond in dgbco for a reliable
+ c indication of singularity.
+ c
+@@ -1593,151 +1593,18 @@
+ return
+ end
+ c
+- subroutine daxpy(n,da,dx,incx,dy,incy)
+-c
+-c constant times a vector plus a vector.
+-c uses unrolled loops for increments equal to one.
+-c jack dongarra, linpack, 3/11/78.
+-c
+- double precision dx(1),dy(1),da
+- integer i,incx,incy,ix,iy,m,mp1,n
+-c
+- if(n.le.0)return
+- if (da .eq. 0.0d0) return
+- if(incx.eq.1.and.incy.eq.1)go to 20
+-c
+-c code for unequal increments or equal increments
+-c not equal to 1
+-c
+- ix = 1
+- iy = 1
+- if(incx.lt.0)ix = (-n+1)*incx + 1
+- if(incy.lt.0)iy = (-n+1)*incy + 1
+- do 10 i = 1,n
+- dy(iy) = dy(iy) + da*dx(ix)
+- ix = ix + incx
+- iy = iy + incy
+- 10 continue
+- return
+-c
+-c code for both increments equal to 1
+-c
+-c
+-c clean-up loop
+-c
+- 20 m = mod(n,4)
+- if( m .eq. 0 ) go to 40
+- do 30 i = 1,m
+- dy(i) = dy(i) + da*dx(i)
+- 30 continue
+- if( n .lt. 4 ) return
+- 40 mp1 = m + 1
+- do 50 i = mp1,n,4
+- dy(i) = dy(i) + da*dx(i)
+- dy(i + 1) = dy(i + 1) + da*dx(i + 1)
+- dy(i + 2) = dy(i + 2) + da*dx(i + 2)
+- dy(i + 3) = dy(i + 3) + da*dx(i + 3)
+- 50 continue
+- return
+- end
+-c
+- subroutine dscal(n,da,dx,incx)
+-c
+-c scales a vector by a constant.
+-c uses unrolled loops for increment equal to one.
+-c jack dongarra, linpack, 3/11/78.
+-c modified to correct problem with negative increment, 8/21/90.
+-c
+- double precision da,dx(1)
+- integer i,incx,ix,m,mp1,n
+-c
+- if(n.le.0)return
+- if(incx.eq.1)go to 20
+-c
+-c code for increment not equal to 1
+-c
+- ix = 1
+- if(incx.lt.0)ix = (-n+1)*incx + 1
+- do 10 i = 1,n
+- dx(ix) = da*dx(ix)
+- ix = ix + incx
+- 10 continue
+- return
+-c
+-c code for increment equal to 1
+-c
+-c
+-c clean-up loop
+-c
+- 20 m = mod(n,5)
+- if( m .eq. 0 ) go to 40
+- do 30 i = 1,m
+- dx(i) = da*dx(i)
+- 30 continue
+- if( n .lt. 5 ) return
+- 40 mp1 = m + 1
+- do 50 i = mp1,n,5
+- dx(i) = da*dx(i)
+- dx(i + 1) = da*dx(i + 1)
+- dx(i + 2) = da*dx(i + 2)
+- dx(i + 3) = da*dx(i + 3)
+- dx(i + 4) = da*dx(i + 4)
+- 50 continue
+- return
+- end
+-c
+- integer function idamax(n,dx,incx)
+-c
+-c finds the index of element having max. absolute value.
+-c jack dongarra, linpack, 3/11/78.
+-c modified to correct problem with negative increment, 8/21/90.
+-c
+- double precision dx(1),dmax
+- integer i,incx,ix,n
+-c
+- idamax = 0
+- if( n .lt. 1 ) return
+- idamax = 1
+- if(n.eq.1)return
+- if(incx.eq.1)go to 20
+-c
+-c code for increment not equal to 1
+-c
+- ix = 1
+- if(incx.lt.0)ix = (-n+1)*incx + 1
+- dmax = dabs(dx(ix))
+- ix = ix + incx
+- do 10 i = 2,n
+- if(dabs(dx(ix)).le.dmax) go to 5
+- idamax = i
+- dmax = dabs(dx(ix))
+- 5 ix = ix + incx
+- 10 continue
+- return
+-c
+-c code for increment equal to 1
+-c
+- 20 dmax = dabs(dx(1))
+- do 30 i = 2,n
+- if(dabs(dx(i)).le.dmax) go to 30
+- idamax = i
+- dmax = dabs(dx(i))
+- 30 continue
+- return
+- end
+-
+- subroutine dgbsl(abd,lda,n,ml,mu,ipvt,b,job)
++ subroutine a_dgbsl(abd,lda,n,ml,mu,ipvt,b,job)
+ integer lda,n,ml,mu,ipvt(*),job
+ double precision abd(lda,*),b(*)
+ c
+-c dgbsl solves the double precision band system
++c a_dgbsl solves the double precision band system
+ c a * x = b or trans(a) * x = b
+-c using the factors computed by dgbco or dgbfa.
++c using the factors computed by dgbco or a_dgbfa.
+ c
+ c on entry
+ c
+ c abd double precision(lda, n)
+-c the output from dgbco or dgbfa.
++c the output from dgbco or a_dgbfa.
+ c
+ c lda integer
+ c the leading dimension of the array abd .
+@@ -1752,7 +1619,7 @@
+ c number of diagonals above the main diagonal.
+ c
+ c ipvt integer(n)
+-c the pivot vector from dgbco or dgbfa.
++c the pivot vector from dgbco or a_dgbfa.
+ c
+ c b double precision(n)
+ c the right hand side vector.
+@@ -1773,14 +1640,14 @@
+ c but it is often caused by improper arguments or improper
+ c setting of lda . it will not occur if the subroutines are
+ c called correctly and if dgbco has set rcond .gt. 0.0
+-c or dgbfa has set info .eq. 0 .
++c or a_dgbfa has set info .eq. 0 .
+ c
+ c to compute inverse(a) * c where c is a matrix
+ c with p columns
+ c call dgbco(abd,lda,n,ml,mu,ipvt,rcond,z)
+ c if (rcond is too small) go to ...
+ c do 10 j = 1, p
+-c call dgbsl(abd,lda,n,ml,mu,ipvt,c(1,j),0)
++c call a_dgbsl(abd,lda,n,ml,mu,ipvt,c(1,j),0)
+ c 10 continue
+ c
+ c linpack. this version dated 08/14/78 .
+@@ -1862,62 +1729,13 @@
+ return
+ end
+ c
+- double precision function ddot(n,dx,incx,dy,incy)
+-c
+-c forms the dot product of two vectors.
+-c uses unrolled loops for increments equal to one.
+-c jack dongarra, linpack, 3/11/78.
+-c
+- double precision dx(1),dy(1),dtemp
+- integer i,incx,incy,ix,iy,m,mp1,n
+-c
+- ddot = 0.0d0
+- dtemp = 0.0d0
+- if(n.le.0)return
+- if(incx.eq.1.and.incy.eq.1)go to 20
+-c
+-c code for unequal increments or equal increments
+-c not equal to 1
+-c
+- ix = 1
+- iy = 1
+- if(incx.lt.0)ix = (-n+1)*incx + 1
+- if(incy.lt.0)iy = (-n+1)*incy + 1
+- do 10 i = 1,n
+- dtemp = dtemp + dx(ix)*dy(iy)
+- ix = ix + incx
+- iy = iy + incy
+- 10 continue
+- ddot = dtemp
+- return
+-c
+-c code for both increments equal to 1
+-c
+-c
+-c clean-up loop
+-c
+- 20 m = mod(n,5)
+- if( m .eq. 0 ) go to 40
+- do 30 i = 1,m
+- dtemp = dtemp + dx(i)*dy(i)
+- 30 continue
+- if( n .lt. 5 ) go to 60
+- 40 mp1 = m + 1
+- do 50 i = mp1,n,5
+- dtemp = dtemp + dx(i)*dy(i) + dx(i + 1)*dy(i + 1) +
+- * dx(i + 2)*dy(i + 2) + dx(i + 3)*dy(i + 3) + dx(i + 4)*dy(i + 4)
+- 50 continue
+- 60 ddot = dtemp
+- return
+- end
+-
+- SUBROUTINE ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
++ SUBROUTINE A_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C ***************************************************
+ C
+ C THIS ROUTINE CALCULATES ERRORS USED IN TESTS
+-C IN STIFF .
++C IN A_STIFF .
+ C
+ C ***************************************************
+ C .. SCALAR ARGUMENTS ..
+@@ -1950,7 +1768,7 @@
+ C ** ERROR ASSOCIATED WITH METHOD OF ORDER TWO LOWER.
+ RETURN
+ END
+- SUBROUTINE PRDICT(T,H,Y,L,N,YPRIME,NFE,IPAR,RPAR,F,IERR)
++ SUBROUTINE A_PRDICT(T,H,Y,L,N,YPRIME,NFE,IPAR,RPAR,F,IERR)
+
+
+
+@@ -1987,10 +1805,10 @@
+ RETURN
+
+ END
+- SUBROUTINE ITRAT2(QQQ,Y,N,T,HBETA,ERRBND,ARH,CRATE,TCRATE,M,WORKED
+- + ,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,AM,MASBND,NIND1,
+- + NIND2,NIND3,IPIV,LMB,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,NBSOL,
+- + NFE,NQUSED,F,IERR)
++ SUBROUTINE A_ITRAT2(QQQ,Y,N,T,HBETA,ERRBND,ARH,CRATE,TCRATE,M,
++ + WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,AM,MASBND,
++ + NIND1,NIND2,NIND3,IPIV,LMB,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,
++ + NBSOL,NFE,NQUSED,F,IERR)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C .. SCALAR ARGUMENTS ..
+@@ -2006,7 +1824,7 @@
+ INTEGER I
+ C ..
+ C .. EXTERNAL SUBROUTINES ..
+- EXTERNAL F,SOL,DGBSL
++ EXTERNAL F,A_SOL,A_DGBSL
+ C ..
+ C .. INTRINSIC FUNCTIONS ..
+ INTRINSIC DMAX1,DMIN1
+@@ -2077,10 +1895,10 @@
+ 8812 CONTINUE
+ ENDIF
+ IF(MF.GE.23) THEN
+- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
++ CALL A_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
+ NBSOL = NBSOL + 1
+ ELSE
+- CALL SOL(N,N,PW,SAVE1,IPIV)
++ CALL A_SOL(N,N,PW,SAVE1,IPIV)
+ NBSOL = NBSOL + 1
+ ENDIF
+ D = ZERO
+@@ -2131,10 +1949,10 @@
+ C IF WE ARE HERE THEN PARTIALS ARE O.K.
+ C
+ IF( MF.GE. 23) THEN
+- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
++ CALL A_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
+ NBSOL=NBSOL + 1
+ ELSE
+- CALL SOL(N,N,PW,SAVE1,IPIV)
++ CALL A_SOL(N,N,PW,SAVE1,IPIV)
+ NBSOL = NBSOL + 1
+ ENDIF
+ C
+@@ -2180,7 +1998,7 @@
+
+ END
+
+- SUBROUTINE STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
++ SUBROUTINE A_STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
+ + MASBND,NIND1,NIND2,NIND3,T,TOUT,TEND,Y,N,
+ + YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,PWCOPY,AM,YHOLD,
+ + YNHOLD,ARH,IPIV,LOUT,MAXDER,ITOL,RTOL,ATOL,RPAR,IPAR,F,
+@@ -2191,13 +2009,13 @@
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C ------------------------------------------------------------------
+-C THE SUBROUTINE STIFF PERFORMS ONE STEP OF THE INTEGRATION OF AN
++C THE SUBROUTINE A_STIFF PERFORMS ONE STEP OF THE INTEGRATION OF AN
+ C INITIAL VALUE PROBLEM FOR A SYSTEM OF ORDINARY DIFFERENTIAL
+ C EQUATIONS OR LINEARLY IMPLICIT DIFFERENTIAL ALGEBRAIC EQUATIONS.
+-C COMMUNICATION WITH STIFF IS DONE WITH THE FOLLOWING VARIABLES..
++C COMMUNICATION WITH A_STIFF IS DONE WITH THE FOLLOWING VARIABLES..
+ C Y AN N BY LMAX+3 ARRAY CONTAINING THE DEPENDENT VARIABLES
+ C AND THEIR BACKWARD DIFFERENCES. MAXDER (=LMAX-1) IS THE
+-C MAXIMUM ORDER AVAILABLE. SEE SUBROUTINE COSET.
++C MAXIMUM ORDER AVAILABLE. SEE SUBROUTINE A_COSET.
+ C Y(I,J+1) CONTAINS THE JTH BACKWARD DIFFERENCE OF Y(I)
+ C T THE INDEPENDENT VARIABLE. T IS UPDATED ON EACH STEP TAKEN.
+ C H THE STEPSIZE TO BE ATTEMPTED ON THE NEXT STEP.
+@@ -2207,7 +2025,7 @@
+ C HMIN THE MINIMUM AND MAXIMUM ABSOLUTE VALUE OF THE STEPSIZE
+ C HMAX TO BE USED FOR THE STEP. THESE MAY BE CHANGED AT ANY
+ C TIME BUT WILL NOT TAKE EFFECT UNTIL THE NEXT H CHANGE.
+-C RTOL,ATOL THE ERROR BOUNDS. SEE DESCRIPTION IN OVDRIV.
++C RTOL,ATOL THE ERROR BOUNDS. SEE DESCRIPTION IN A_OVDRIV.
+ C N THE NUMBER OF FIRST ORDER DIFFERENTIAL EQUATIONS.
+ C MF THE METHOD FLAG. MUST BE SET TO 21,22,23 OR 24 AT PRESENT
+ C KFLAG A COMPLETION FLAG WITH THE FOLLOWING MEANINGS..
+@@ -2242,7 +2060,7 @@
+ C MATRIX WAS FORMED BY A NEW J.
+ C AVOLDJ STORES VALUE FOR AVERAGE CRATE WHEN ITERATION
+ C MATRIX WAS FORMED BY AN OLD J.
+-C NRENEW FLAG THAT IS USED IN COMMUNICATION WITH SUBROUTINE PSET.
++C NRENEW FLAG THAT IS USED IN COMMUNICATION WITH SUBROUTINE A_PSET.
+ C IF NRENEW > 0 THEN FORM A NEW JACOBIAN BEFORE
+ C COMPUTING THE COEFFICIENT MATRIX FOR
+ C THE NEWTON-RAPHSON ITERATION
+@@ -2271,8 +2089,8 @@
+ DIMENSION EL(10),ELST(10),TQ(5)
+ C ..
+ C .. EXTERNAL SUBROUTINES ..
+- EXTERNAL COSET,CPYARY,ERRORS,F,HCHOSE,ITRAT2,
+- + PRDICT,PSET,RSCALE,SOL,DGBSL,PDERV,MAS
++ EXTERNAL A_COSET,A_CPYARY,A_ERRORS,F,A_HCHOSE,A_ITRAT2,
++ + A_PRDICT,A_PSET,A_RSCALE,A_SOL,A_DGBSL,PDERV,MAS
+ C ..
+ C .. INTRINSIC FUNCTIONS ..
+ INTRINSIC DABS,DMAX1,DMIN1
+@@ -2378,7 +2196,7 @@
+ C BE RE-SCALED. IF H IS CHANGED, IDOUB IS SET TO L+1 TO PREVENT
+ C FURTHER CHANGES IN H FOR THAT MANY STEPS.
+ C -----------------------------------------------------------------
+- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
++ CALL A_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
+ LMAX = MAXDER + 1
+ RC = RC*EL(1)/OLDLO
+ OLDLO = EL(1)
+@@ -2389,20 +2207,20 @@
+ C NRENEW AND NEWPAR ARE TO INSTRUCT ROUTINE THAT
+ C WE WISH A NEW J TO BE CALCULATED FOR THIS STEP.
+ C *****************************************************
+- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
++ CALL A_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
+ DO 20 I = 1,N
+ ARH(I) = EL(2)*Y(I,1)
+ 20 CONTINUE
+- CALL CPYARY(N*L,Y,YHOLD)
++ CALL A_CPYARY(N*L,Y,YHOLD)
+ QI = H*EL(1)
+ QQ = ONE/QI
+- CALL PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
++ CALL A_PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
+ IF(IERR.NE.0) GOTO 8000
+ GO TO 110
+ C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ C DIFFERENT PARAMETERS ON THIS CALL <
+ C <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+- 30 CALL CPYARY(N*L,YHOLD,Y)
++ 30 CALL A_CPYARY(N*L,YHOLD,Y)
+ IF (MF.NE.MFOLD) THEN
+ METH = MF/10
+ MITER = MF - 10*METH
+@@ -2445,7 +2263,7 @@
+ C *********************************************
+ 40 RH = DMAX1(RH,HMIN/DABS(H))
+ 50 RH = DMIN1(RH,HMAX/DABS(H),RMAX)
+- CALL RSCALE(N,L,RH,Y)
++ CALL A_RSCALE(N,L,RH,Y)
+ RMAX = 10.0D+0
+ JCHANG = 1
+ H = H*RH
+@@ -2462,7 +2280,7 @@
+ END IF
+
+ IDOUB = L + 1
+- CALL CPYARY(N*L,Y,YHOLD)
++ CALL A_CPYARY(N*L,Y,YHOLD)
+
+ 60 IF (DABS(RC-ONE).GT.UPBND) IWEVAL = MITER
+ HUSED = H
+@@ -2487,7 +2305,7 @@
+ IF (JCHANG.EQ.1) THEN
+ C IF WE HAVE CHANGED STEPSIZE THEN PREDICT A VALUE FOR Y(T+H)
+ C AND EVALUATE THE DERIVATIVE THERE (STORED IN SAVE2())
+- CALL PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
++ CALL A_PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
+ IF(IERR.NE.0) GOTO 8000
+
+ ELSE
+@@ -2507,7 +2325,7 @@
+ C -------------------------------------------------------------------
+ C IF INDICATED, THE MATRIX P = I/(H*EL(2)) - J IS RE-EVALUATED BEFORE
+ C STARTING THE CORRECTOR ITERATION. IWEVAL IS SET = 0 TO INDICATE
+-C THAT THIS HAS BEEN DONE. P IS COMPUTED AND PROCESSED IN PSET.
++C THAT THIS HAS BEEN DONE. P IS COMPUTED AND PROCESSED IN A_PSET.
+ C THE PROCESSED MATRIX IS STORED IN PW
+ C -------------------------------------------------------------------
+ IWEVAL = 0
+@@ -2573,13 +2391,13 @@
+ JSNOLD = 0
+ MQ1TMP = MEQC1
+ MQ2TMP = MEQC2
+- CALL PSET(Y,N,H,T,UROUND,EPSJAC,QI,MITER,MBND,MASBND,
++ CALL A_PSET(Y,N,H,T,UROUND,EPSJAC,QI,MITER,MBND,MASBND,
+ + NIND1,NIND2,NIND3,IER,F,PDERV,MAS,NRENEW,YMAX,SAVE1,SAVE2,
+ + PW,PWCOPY,AM,ERROR,IPIV,ITOL,RTOL,ATOL,NPSET,NJE,NFE,NDEC,IPAR
+ + ,RPAR,IERR)
+ IF(IERR.NE.0) GOTO 8000
+ QQQ=QI
+-C NOTE THAT ERROR() IS JUST BEING USED AS A WORKSPACE BY PSET
++C NOTE THAT ERROR() IS JUST BEING USED AS A WORKSPACE BY A_PSET
+ IF (IER.NE.0) THEN
+ C IF IER>0 THEN WE HAVE HAD A SINGULARITY IN THE ITERATION MATRIX
+ IJUS=1
+@@ -2603,7 +2421,7 @@
+ C LOOP. THE UPDATED Y VECTOR IS STORED TEMPORARILY IN SAVE1.
+ C **********************************************************************
+ IF (.NOT.SAMPLE) THEN
+- CALL ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,WORKED,YMAX,
++ CALL A_ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,WORKED,YMAX,
+ + ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,AM,MASBND,
+ + NIND1,NIND2,NIND3,IPIV,1,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,NBSOL,
+ + NFE,NQUSED,F,IERR)
+@@ -2611,7 +2429,7 @@
+ ITST = 2
+
+ ELSE
+- CALL ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,WORKED,YMAX,
++ CALL A_ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,WORKED,YMAX,
+ + ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,AM,MASBND,
+ +NIND1,NIND2,NIND3,IPIV,0,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,NBSOL,
+ + NFE,NQUSED,F,IERR)
+@@ -2752,7 +2570,7 @@
+ ARH(I) = ARH(I) + EL(JP1)*Y(I,J1)
+ 200 CONTINUE
+ 210 CONTINUE
+- CALL PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
++ CALL A_PRDICT(T,H,Y,L,N,SAVE2,NFE,IPAR,RPAR,F,IERR)
+ IF(IERR.NE.0) GOTO 8000
+ DO 220 I = 1,N
+ SAVE1(I) = Y(I,1)
+@@ -2763,7 +2581,7 @@
+ C FOR NOW WILL ASSUME THAT WE DO NOT WISH TO SAMPLE
+ C AT THE N+2 STEP POINT
+ C
+- CALL ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE2,TCRAT2,M2,WORKED,YMAX,
++ CALL A_ITRAT2(QQQ,Y,N,T,QI,BND,ARH,CRATE2,TCRAT2,M2,WORKED,YMAX,
+ + ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,AM,MASBND,
+ +NIND1,NIND2,NIND3,IPIV,1,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,NBSOL,
+ + NFE,NQUSED,F,IERR)
+@@ -2872,10 +2690,10 @@
+ 3111 CONTINUE
+ ENDIF
+ IF (MF.GE. 23) THEN
+- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
++ CALL A_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
+ NBSOL=NBSOL+1
+ ELSE
+- CALL SOL(N,N,PW,SAVE1,IPIV)
++ CALL A_SOL(N,N,PW,SAVE1,IPIV)
+ NBSOL = NBSOL + 1
+ ENDIF
+ DO 321 I=1,N
+@@ -2971,7 +2789,7 @@
+ IF(NQ.GT.1) FFAIL = 0.5D+0/DBLE(FLOAT(NQ))
+ IF(NQ.GT.2) FRFAIL = 0.5D+0/DBLE(FLOAT(NQ-1))
+ EFAIL = 0.5D+0/DBLE(FLOAT(L))
+- CALL CPYARY(N*L,YHOLD,Y)
++ CALL A_CPYARY(N*L,YHOLD,Y)
+ RMAX = 2.0D+0
+ IF (DABS(H).LE.HMIN*1.00001D+0) THEN
+ C
+@@ -3000,10 +2818,10 @@
+ NQ=NEWQ
+ RH=ONE/(PLFAIL*DBLE(FLOAT(-KFAIL)))
+ L=NQ+1
+- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
++ CALL A_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
+ RC=RC*EL(1)/OLDLO
+ OLDLO=EL(1)
+- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
++ CALL A_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
+ ELSE
+ NEWQ = NQ
+ RH = ONE/ (PRFAIL*DBLE(FLOAT(-KFAIL)))
+@@ -3029,7 +2847,7 @@
+ C *********************************
+ JCHANG = 1
+ RH = DMAX1(HMIN/DABS(H),0.1D+0)
+- CALL HCHOSE(RH,H,OVRIDE)
++ CALL A_HCHOSE(RH,H,OVRIDE)
+ H = H*RH
+ CALL F(N,T,YHOLD,SAVE1,IPAR,RPAR,IERR)
+ IF(IERR.NE.0) GOTO 8000
+@@ -3048,11 +2866,11 @@
+ NQ = 1
+ L = 2
+ C RESET ORDER, RECALCULATE ERROR BOUNDS
+- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
++ CALL A_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
+ LMAX = MAXDER + 1
+ RC = RC*EL(1)/OLDLO
+ OLDLO = EL(1)
+- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
++ CALL A_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
+ C NOW JUMP TO NORMAL CONTINUATION POINT
+ GO TO 60
+ C **********************************************************************
+@@ -3216,7 +3034,7 @@
+ GOTO 440
+ ENDIF
+ RH = DMIN1(RH,RMAX)
+- CALL HCHOSE(RH,H,OVRIDE)
++ CALL A_HCHOSE(RH,H,OVRIDE)
+ IF ((JSINUP.LE.20).AND.(KFLAG.EQ.0).AND.(RH.LT.1.1D+0)) THEN
+ C WE HAVE RUN INTO PROBLEMS
+ IDOUB = 10
+@@ -3244,17 +3062,17 @@
+ NQ = NEWQ
+ L = NQ + 1
+ C RESET ORDER,RECALCULATE ERROR BOUNDS
+- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
++ CALL A_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
+ LMAX = MAXDER + 1
+ RC = RC*EL(1)/OLDLO
+ OLDLO = EL(1)
+- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
++ CALL A_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
+ END IF
+
+
+ RH = DMAX1(RH,HMIN/DABS(H))
+ RH = DMIN1(RH,HMAX/DABS(H),RMAX)
+- CALL RSCALE(N,L,RH,Y)
++ CALL A_RSCALE(N,L,RH,Y)
+ RMAX = 10.0D+0
+ JCHANG = 1
+ H = H*RH
+@@ -3271,7 +3089,7 @@
+ C INFORMATION NECESSARY TO PERFORM AN INTERPOLATION TO FIND THE
+ C SOLUTION AT THE SPECIFIED OUTPUT POINT IF APPROPRIATE.
+ C ----------------------------------------------------------------------
+- CALL CPYARY(N*L,Y,YHOLD)
++ CALL A_CPYARY(N*L,Y,YHOLD)
+ NSTEP = NSTEP + 1
+ JSINUP = JSINUP + 1
+ JSNOLD = JSNOLD + 1
+@@ -3312,17 +3130,17 @@
+ C TRY AGAIN WITH UPDATED PARTIALS
+ C
+ 8000 IF(IERR.NE.0) RETURN
+- IF(IJUS.EQ.0) CALL HCHOSE(RH,H,OVRIDE)
++ IF(IJUS.EQ.0) CALL A_HCHOSE(RH,H,OVRIDE)
+ IF(.NOT.FINISH) THEN
+ GO TO 40
+ ELSE
+ RETURN
+ END IF
+
+-C ------------------- END OF SUBROUTINE STIFF --------------------------
++C ------------------- END OF SUBROUTINE A_STIFF --------------------------
+ 9000 FORMAT (1X,' CORRECTOR HAS NOT CONVERGED')
+ END
+- SUBROUTINE RSCALE(N,L,RH,Y)
++ SUBROUTINE A_RSCALE(N,L,RH,Y)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C .. SCALAR ARGUMENTS ..
+@@ -3432,7 +3250,7 @@
+ RETURN
+
+ END
+- SUBROUTINE CPYARY(NELEM,SOURCE,TARGET)
++ SUBROUTINE A_CPYARY(NELEM,SOURCE,TARGET)
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C
+ C COPIES THE ARRAY SOURCE() INTO THE ARRAY TARGET()
+@@ -3455,7 +3273,7 @@
+ RETURN
+
+ END
+- SUBROUTINE HCHOSE(RH,H,OVRIDE)
++ SUBROUTINE A_HCHOSE(RH,H,OVRIDE)
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ COMMON / STPSZE / HSTPSZ(2,14)
+ LOGICAL OVRIDE
+@@ -3492,947 +3310,3 @@
+ C ************************************************************
+ C
+ END
+- DOUBLE PRECISION FUNCTION DLAMCH( CMACH )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- CHARACTER CMACH
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMCH determines double precision machine parameters.
+-*
+-* Arguments
+-* =========
+-*
+-* CMACH (input) CHARACTER*1
+-* Specifies the value to be returned by DLAMCH:
+-* = 'E' or 'e', DLAMCH := eps
+-* = 'S' or 's , DLAMCH := sfmin
+-* = 'B' or 'b', DLAMCH := base
+-* = 'P' or 'p', DLAMCH := eps*base
+-* = 'N' or 'n', DLAMCH := t
+-* = 'R' or 'r', DLAMCH := rnd
+-* = 'M' or 'm', DLAMCH := emin
+-* = 'U' or 'u', DLAMCH := rmin
+-* = 'L' or 'l', DLAMCH := emax
+-* = 'O' or 'o', DLAMCH := rmax
+-*
+-* where
+-*
+-* eps = relative machine precision
+-* sfmin = safe minimum, such that 1/sfmin does not overflow
+-* base = base of the machine
+-* prec = eps*base
+-* t = number of (base) digits in the mantissa
+-* rnd = 1.0 when rounding occurs in addition, 0.0 otherwise
+-* emin = minimum exponent before (gradual) underflow
+-* rmin = underflow threshold - base**(emin-1)
+-* emax = largest exponent before overflow
+-* rmax = overflow threshold - (base**emax)*(1-eps)
+-*
+-* =====================================================================
+-*
+-* .. Parameters ..
+- DOUBLE PRECISION ONE, ZERO
+- PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 )
+-* ..
+-* .. Local Scalars ..
+- LOGICAL FIRST, LRND
+- INTEGER BETA, IMAX, IMIN, IT
+- DOUBLE PRECISION BASE, EMAX, EMIN, EPS, PREC, RMACH, RMAX, RMIN,
+- $ RND, SFMIN, SMALL, T
+-* ..
+-* .. External Functions ..
+- LOGICAL LSAME
+- EXTERNAL LSAME
+-* ..
+-* .. External Subroutines ..
+- EXTERNAL DLAMC2
+-* ..
+-* .. Save statement ..
+- SAVE FIRST, EPS, SFMIN, BASE, T, RND, EMIN, RMIN,
+- $ EMAX, RMAX, PREC
+-* ..
+-* .. Data statements ..
+- DATA FIRST / .TRUE. /
+-* ..
+-* .. Executable Statements ..
+-*
+- IF( FIRST ) THEN
+- FIRST = .FALSE.
+- CALL DLAMC2( BETA, IT, LRND, EPS, IMIN, RMIN, IMAX, RMAX )
+- BASE = BETA
+- T = IT
+- IF( LRND ) THEN
+- RND = ONE
+- EPS = ( BASE**( 1-IT ) ) / 2
+- ELSE
+- RND = ZERO
+- EPS = BASE**( 1-IT )
+- END IF
+- PREC = EPS*BASE
+- EMIN = IMIN
+- EMAX = IMAX
+- SFMIN = RMIN
+- SMALL = ONE / RMAX
+- IF( SMALL.GE.SFMIN ) THEN
+-*
+-* Use SMALL plus a bit, to avoid the possibility of rounding
+-* causing overflow when computing 1/sfmin.
+-*
+- SFMIN = SMALL*( ONE+EPS )
+- END IF
+- END IF
+-*
+- IF( LSAME( CMACH, 'E' ) ) THEN
+- RMACH = EPS
+- ELSE IF( LSAME( CMACH, 'S' ) ) THEN
+- RMACH = SFMIN
+- ELSE IF( LSAME( CMACH, 'B' ) ) THEN
+- RMACH = BASE
+- ELSE IF( LSAME( CMACH, 'P' ) ) THEN
+- RMACH = PREC
+- ELSE IF( LSAME( CMACH, 'N' ) ) THEN
+- RMACH = T
+- ELSE IF( LSAME( CMACH, 'R' ) ) THEN
+- RMACH = RND
+- ELSE IF( LSAME( CMACH, 'M' ) ) THEN
+- RMACH = EMIN
+- ELSE IF( LSAME( CMACH, 'U' ) ) THEN
+- RMACH = RMIN
+- ELSE IF( LSAME( CMACH, 'L' ) ) THEN
+- RMACH = EMAX
+- ELSE IF( LSAME( CMACH, 'O' ) ) THEN
+- RMACH = RMAX
+- END IF
+-*
+- DLAMCH = RMACH
+- RETURN
+-*
+-* End of DLAMCH
+-*
+- END
+-*
+-************************************************************************
+-*
+- SUBROUTINE DLAMC1( BETA, T, RND, IEEE1 )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- LOGICAL IEEE1, RND
+- INTEGER BETA, T
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMC1 determines the machine parameters given by BETA, T, RND, and
+-* IEEE1.
+-*
+-* Arguments
+-* =========
+-*
+-* BETA (output) INTEGER
+-* The base of the machine.
+-*
+-* T (output) INTEGER
+-* The number of ( BETA ) digits in the mantissa.
+-*
+-* RND (output) LOGICAL
+-* Specifies whether proper rounding ( RND = .TRUE. ) or
+-* chopping ( RND = .FALSE. ) occurs in addition. This may not
+-* be a reliable guide to the way in which the machine performs
+-* its arithmetic.
+-*
+-* IEEE1 (output) LOGICAL
+-* Specifies whether rounding appears to be done in the IEEE
+-* 'round to nearest' style.
+-*
+-* Further Details
+-* ===============
+-*
+-* The routine is based on the routine ENVRON by Malcolm and
+-* incorporates suggestions by Gentleman and Marovich. See
+-*
+-* Malcolm M. A. (1972) Algorithms to reveal properties of
+-* floating-point arithmetic. Comms. of the ACM, 15, 949-951.
+-*
+-* Gentleman W. M. and Marovich S. B. (1974) More on algorithms
+-* that reveal properties of floating point arithmetic units.
+-* Comms. of the ACM, 17, 276-277.
+-*
+-* =====================================================================
+-*
+-* .. Local Scalars ..
+- LOGICAL FIRST, LIEEE1, LRND
+- INTEGER LBETA, LT
+- DOUBLE PRECISION A, B, C, F, ONE, QTR, SAVEC, T1, T2
+-* ..
+-* .. External Functions ..
+- DOUBLE PRECISION DLAMC3
+- EXTERNAL DLAMC3
+-* ..
+-* .. Save statement ..
+- SAVE FIRST, LIEEE1, LBETA, LRND, LT
+-* ..
+-* .. Data statements ..
+- DATA FIRST / .TRUE. /
+-* ..
+-* .. Executable Statements ..
+-*
+- IF( FIRST ) THEN
+- FIRST = .FALSE.
+- ONE = 1
+-*
+-* LBETA, LIEEE1, LT and LRND are the local values of BETA,
+-* IEEE1, T and RND.
+-*
+-* Throughout this routine we use the function DLAMC3 to ensure
+-* that relevant values are stored and not held in registers, or
+-* are not affected by optimizers.
+-*
+-* Compute a = 2.0**m with the smallest positive integer m such
+-* that
+-*
+-* fl( a + 1.0 ) = a.
+-*
+- A = 1
+- C = 1
+-*
+-*+ WHILE( C.EQ.ONE )LOOP
+- 10 CONTINUE
+- IF( C.EQ.ONE ) THEN
+- A = 2*A
+- C = DLAMC3( A, ONE )
+- C = DLAMC3( C, -A )
+- GO TO 10
+- END IF
+-*+ END WHILE
+-*
+-* Now compute b = 2.0**m with the smallest positive integer m
+-* such that
+-*
+-* fl( a + b ) .gt. a.
+-*
+- B = 1
+- C = DLAMC3( A, B )
+-*
+-*+ WHILE( C.EQ.A )LOOP
+- 20 CONTINUE
+- IF( C.EQ.A ) THEN
+- B = 2*B
+- C = DLAMC3( A, B )
+- GO TO 20
+- END IF
+-*+ END WHILE
+-*
+-* Now compute the base. a and c are neighbouring floating point
+-* numbers in the interval ( beta**t, beta**( t + 1 ) ) and so
+-* their difference is beta. Adding 0.25 to c is to ensure that it
+-* is truncated to beta and not ( beta - 1 ).
+-*
+- QTR = ONE / 4
+- SAVEC = C
+- C = DLAMC3( C, -A )
+- LBETA = C + QTR
+-*
+-* Now determine whether rounding or chopping occurs, by adding a
+-* bit less than beta/2 and a bit more than beta/2 to a.
+-*
+- B = LBETA
+- F = DLAMC3( B / 2, -B / 100 )
+- C = DLAMC3( F, A )
+- IF( C.EQ.A ) THEN
+- LRND = .TRUE.
+- ELSE
+- LRND = .FALSE.
+- END IF
+- F = DLAMC3( B / 2, B / 100 )
+- C = DLAMC3( F, A )
+- IF( ( LRND ) .AND. ( C.EQ.A ) )
+- $ LRND = .FALSE.
+-*
+-* Try and decide whether rounding is done in the IEEE 'round to
+-* nearest' style. B/2 is half a unit in the last place of the two
+-* numbers A and SAVEC. Furthermore, A is even, i.e. has last bit
+-* zero, and SAVEC is odd. Thus adding B/2 to A should not change
+-* A, but adding B/2 to SAVEC should change SAVEC.
+-*
+- T1 = DLAMC3( B / 2, A )
+- T2 = DLAMC3( B / 2, SAVEC )
+- LIEEE1 = ( T1.EQ.A ) .AND. ( T2.GT.SAVEC ) .AND. LRND
+-*
+-* Now find the mantissa, t. It should be the integer part of
+-* log to the base beta of a, however it is safer to determine t
+-* by powering. So we find t as the smallest positive integer for
+-* which
+-*
+-* fl( beta**t + 1.0 ) = 1.0.
+-*
+- LT = 0
+- A = 1
+- C = 1
+-*
+-*+ WHILE( C.EQ.ONE )LOOP
+- 30 CONTINUE
+- IF( C.EQ.ONE ) THEN
+- LT = LT + 1
+- A = A*LBETA
+- C = DLAMC3( A, ONE )
+- C = DLAMC3( C, -A )
+- GO TO 30
+- END IF
+-*+ END WHILE
+-*
+- END IF
+-*
+- BETA = LBETA
+- T = LT
+- RND = LRND
+- IEEE1 = LIEEE1
+- RETURN
+-*
+-* End of DLAMC1
+-*
+- END
+-*
+-************************************************************************
+-*
+- SUBROUTINE DLAMC2( BETA, T, RND, EPS, EMIN, RMIN, EMAX, RMAX )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- LOGICAL RND
+- INTEGER BETA, EMAX, EMIN, T
+- DOUBLE PRECISION EPS, RMAX, RMIN
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMC2 determines the machine parameters specified in its argument
+-* list.
+-*
+-* Arguments
+-* =========
+-*
+-* BETA (output) INTEGER
+-* The base of the machine.
+-*
+-* T (output) INTEGER
+-* The number of ( BETA ) digits in the mantissa.
+-*
+-* RND (output) LOGICAL
+-* Specifies whether proper rounding ( RND = .TRUE. ) or
+-* chopping ( RND = .FALSE. ) occurs in addition. This may not
+-* be a reliable guide to the way in which the machine performs
+-* its arithmetic.
+-*
+-* EPS (output) DOUBLE PRECISION
+-* The smallest positive number such that
+-*
+-* fl( 1.0 - EPS ) .LT. 1.0,
+-*
+-* where fl denotes the computed value.
+-*
+-* EMIN (output) INTEGER
+-* The minimum exponent before (gradual) underflow occurs.
+-*
+-* RMIN (output) DOUBLE PRECISION
+-* The smallest normalized number for the machine, given by
+-* BASE**( EMIN - 1 ), where BASE is the floating point value
+-* of BETA.
+-*
+-* EMAX (output) INTEGER
+-* The maximum exponent before overflow occurs.
+-*
+-* RMAX (output) DOUBLE PRECISION
+-* The largest positive number for the machine, given by
+-* BASE**EMAX * ( 1 - EPS ), where BASE is the floating point
+-* value of BETA.
+-*
+-* Further Details
+-* ===============
+-*
+-* The computation of EPS is based on a routine PARANOIA by
+-* W. Kahan of the University of California at Berkeley.
+-*
+-* =====================================================================
+-*
+-* .. Local Scalars ..
+- LOGICAL FIRST, IEEE, IWARN, LIEEE1, LRND
+- INTEGER GNMIN, GPMIN, I, LBETA, LEMAX, LEMIN, LT,
+- $ NGNMIN, NGPMIN
+- DOUBLE PRECISION A, B, C, HALF, LEPS, LRMAX, LRMIN, ONE, RBASE,
+- $ SIXTH, SMALL, THIRD, TWO, ZERO
+-* ..
+-* .. External Functions ..
+- DOUBLE PRECISION DLAMC3
+- EXTERNAL DLAMC3
+-* ..
+-* .. External Subroutines ..
+- EXTERNAL DLAMC1, DLAMC4, DLAMC5
+-* ..
+-* .. Intrinsic Functions ..
+- INTRINSIC ABS, MAX, MIN
+-* ..
+-* .. Save statement ..
+- SAVE FIRST, IWARN, LBETA, LEMAX, LEMIN, LEPS, LRMAX,
+- $ LRMIN, LT
+-* ..
+-* .. Data statements ..
+- DATA FIRST / .TRUE. / , IWARN / .FALSE. /
+-* ..
+-* .. Executable Statements ..
+-*
+- IF( FIRST ) THEN
+- FIRST = .FALSE.
+- ZERO = 0
+- ONE = 1
+- TWO = 2
+-*
+-* LBETA, LT, LRND, LEPS, LEMIN and LRMIN are the local values of
+-* BETA, T, RND, EPS, EMIN and RMIN.
+-*
+-* Throughout this routine we use the function DLAMC3 to ensure
+-* that relevant values are stored and not held in registers, or
+-* are not affected by optimizers.
+-*
+-* DLAMC1 returns the parameters LBETA, LT, LRND and LIEEE1.
+-*
+- CALL DLAMC1( LBETA, LT, LRND, LIEEE1 )
+-*
+-* Start to find EPS.
+-*
+- B = LBETA
+- A = B**( -LT )
+- LEPS = A
+-*
+-* Try some tricks to see whether or not this is the correct EPS.
+-*
+- B = TWO / 3
+- HALF = ONE / 2
+- SIXTH = DLAMC3( B, -HALF )
+- THIRD = DLAMC3( SIXTH, SIXTH )
+- B = DLAMC3( THIRD, -HALF )
+- B = DLAMC3( B, SIXTH )
+- B = ABS( B )
+- IF( B.LT.LEPS )
+- $ B = LEPS
+-*
+- LEPS = 1
+-*
+-*+ WHILE( ( LEPS.GT.B ).AND.( B.GT.ZERO ) )LOOP
+- 10 CONTINUE
+- IF( ( LEPS.GT.B ) .AND. ( B.GT.ZERO ) ) THEN
+- LEPS = B
+- C = DLAMC3( HALF*LEPS, ( TWO**5 )*( LEPS**2 ) )
+- C = DLAMC3( HALF, -C )
+- B = DLAMC3( HALF, C )
+- C = DLAMC3( HALF, -B )
+- B = DLAMC3( HALF, C )
+- GO TO 10
+- END IF
+-*+ END WHILE
+-*
+- IF( A.LT.LEPS )
+- $ LEPS = A
+-*
+-* Computation of EPS complete.
+-*
+-* Now find EMIN. Let A = + or - 1, and + or - (1 + BASE**(-3)).
+-* Keep dividing A by BETA until (gradual) underflow occurs. This
+-* is detected when we cannot recover the previous A.
+-*
+- RBASE = ONE / LBETA
+- SMALL = ONE
+- DO 20 I = 1, 3
+- SMALL = DLAMC3( SMALL*RBASE, ZERO )
+- 20 CONTINUE
+- A = DLAMC3( ONE, SMALL )
+- CALL DLAMC4( NGPMIN, ONE, LBETA )
+- CALL DLAMC4( NGNMIN, -ONE, LBETA )
+- CALL DLAMC4( GPMIN, A, LBETA )
+- CALL DLAMC4( GNMIN, -A, LBETA )
+- IEEE = .FALSE.
+-*
+- IF( ( NGPMIN.EQ.NGNMIN ) .AND. ( GPMIN.EQ.GNMIN ) ) THEN
+- IF( NGPMIN.EQ.GPMIN ) THEN
+- LEMIN = NGPMIN
+-* ( Non twos-complement machines, no gradual underflow;
+-* e.g., VAX )
+- ELSE IF( ( GPMIN-NGPMIN ).EQ.3 ) THEN
+- LEMIN = NGPMIN - 1 + LT
+- IEEE = .TRUE.
+-* ( Non twos-complement machines, with gradual underflow;
+-* e.g., IEEE standard followers )
+- ELSE
+- LEMIN = MIN( NGPMIN, GPMIN )
+-* ( A guess; no known machine )
+- IWARN = .TRUE.
+- END IF
+-*
+- ELSE IF( ( NGPMIN.EQ.GPMIN ) .AND. ( NGNMIN.EQ.GNMIN ) ) THEN
+- IF( ABS( NGPMIN-NGNMIN ).EQ.1 ) THEN
+- LEMIN = MAX( NGPMIN, NGNMIN )
+-* ( Twos-complement machines, no gradual underflow;
+-* e.g., CYBER 205 )
+- ELSE
+- LEMIN = MIN( NGPMIN, NGNMIN )
+-* ( A guess; no known machine )
+- IWARN = .TRUE.
+- END IF
+-*
+- ELSE IF( ( ABS( NGPMIN-NGNMIN ).EQ.1 ) .AND.
+- $ ( GPMIN.EQ.GNMIN ) ) THEN
+- IF( ( GPMIN-MIN( NGPMIN, NGNMIN ) ).EQ.3 ) THEN
+- LEMIN = MAX( NGPMIN, NGNMIN ) - 1 + LT
+-* ( Twos-complement machines with gradual underflow;
+-* no known machine )
+- ELSE
+- LEMIN = MIN( NGPMIN, NGNMIN )
+-* ( A guess; no known machine )
+- IWARN = .TRUE.
+- END IF
+-*
+- ELSE
+- LEMIN = MIN( NGPMIN, NGNMIN, GPMIN, GNMIN )
+-* ( A guess; no known machine )
+- IWARN = .TRUE.
+- END IF
+-***
+-* Comment out this if block if EMIN is ok
+- IF( IWARN ) THEN
+- FIRST = .TRUE.
+- WRITE( 6, FMT = 9999 )LEMIN
+- END IF
+-***
+-*
+-* Assume IEEE arithmetic if we found denormalised numbers above,
+-* or if arithmetic seems to round in the IEEE style, determined
+-* in routine DLAMC1. A true IEEE machine should have both things
+-* true; however, faulty machines may have one or the other.
+-*
+- IEEE = IEEE .OR. LIEEE1
+-*
+-* Compute RMIN by successive division by BETA. We could compute
+-* RMIN as BASE**( EMIN - 1 ), but some machines underflow during
+-* this computation.
+-*
+- LRMIN = 1
+- DO 30 I = 1, 1 - LEMIN
+- LRMIN = DLAMC3( LRMIN*RBASE, ZERO )
+- 30 CONTINUE
+-*
+-* Finally, call DLAMC5 to compute EMAX and RMAX.
+-*
+- CALL DLAMC5( LBETA, LT, LEMIN, IEEE, LEMAX, LRMAX )
+- END IF
+-*
+- BETA = LBETA
+- T = LT
+- RND = LRND
+- EPS = LEPS
+- EMIN = LEMIN
+- RMIN = LRMIN
+- EMAX = LEMAX
+- RMAX = LRMAX
+-*
+- RETURN
+-*
+- 9999 FORMAT( / / ' WARNING. The value EMIN may be incorrect:-',
+- $ ' EMIN = ', I8, /
+- $ ' If, after inspection, the value EMIN looks',
+- $ ' acceptable please comment out ',
+- $ / ' the IF block as marked within the code of routine',
+- $ ' DLAMC2,', / ' otherwise supply EMIN explicitly.', / )
+-*
+-* End of DLAMC2
+-*
+- END
+-*
+-************************************************************************
+-*
+- DOUBLE PRECISION FUNCTION DLAMC3( A, B )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- DOUBLE PRECISION A, B
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMC3 is intended to force A and B to be stored prior to doing
+-* the addition of A and B , for use in situations where optimizers
+-* might hold one of these in a register.
+-*
+-* Arguments
+-* =========
+-*
+-* A, B (input) DOUBLE PRECISION
+-* The values A and B.
+-*
+-* =====================================================================
+-*
+-* .. Executable Statements ..
+-*
+- DLAMC3 = A + B
+-*
+- RETURN
+-*
+-* End of DLAMC3
+-*
+- END
+-*
+-************************************************************************
+-*
+- SUBROUTINE DLAMC4( EMIN, START, BASE )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- INTEGER BASE, EMIN
+- DOUBLE PRECISION START
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMC4 is a service routine for DLAMC2.
+-*
+-* Arguments
+-* =========
+-*
+-* EMIN (output) EMIN
+-* The minimum exponent before (gradual) underflow, computed by
+-* setting A = START and dividing by BASE until the previous A
+-* can not be recovered.
+-*
+-* START (input) DOUBLE PRECISION
+-* The starting point for determining EMIN.
+-*
+-* BASE (input) INTEGER
+-* The base of the machine.
+-*
+-* =====================================================================
+-*
+-* .. Local Scalars ..
+- INTEGER I
+- DOUBLE PRECISION A, B1, B2, C1, C2, D1, D2, ONE, RBASE, ZERO
+-* ..
+-* .. External Functions ..
+- DOUBLE PRECISION DLAMC3
+- EXTERNAL DLAMC3
+-* ..
+-* .. Executable Statements ..
+-*
+- A = START
+- ONE = 1
+- RBASE = ONE / BASE
+- ZERO = 0
+- EMIN = 1
+- B1 = DLAMC3( A*RBASE, ZERO )
+- C1 = A
+- C2 = A
+- D1 = A
+- D2 = A
+-*+ WHILE( ( C1.EQ.A ).AND.( C2.EQ.A ).AND.
+-* $ ( D1.EQ.A ).AND.( D2.EQ.A ) )LOOP
+- 10 CONTINUE
+- IF( ( C1.EQ.A ) .AND. ( C2.EQ.A ) .AND. ( D1.EQ.A ) .AND.
+- $ ( D2.EQ.A ) ) THEN
+- EMIN = EMIN - 1
+- A = B1
+- B1 = DLAMC3( A / BASE, ZERO )
+- C1 = DLAMC3( B1*BASE, ZERO )
+- D1 = ZERO
+- DO 20 I = 1, BASE
+- D1 = D1 + B1
+- 20 CONTINUE
+- B2 = DLAMC3( A*RBASE, ZERO )
+- C2 = DLAMC3( B2 / RBASE, ZERO )
+- D2 = ZERO
+- DO 30 I = 1, BASE
+- D2 = D2 + B2
+- 30 CONTINUE
+- GO TO 10
+- END IF
+-*+ END WHILE
+-*
+- RETURN
+-*
+-* End of DLAMC4
+-*
+- END
+-*
+-************************************************************************
+-*
+- SUBROUTINE DLAMC5( BETA, P, EMIN, IEEE, EMAX, RMAX )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- LOGICAL IEEE
+- INTEGER BETA, EMAX, EMIN, P
+- DOUBLE PRECISION RMAX
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMC5 attempts to compute RMAX, the largest machine floating-point
+-* number, without overflow. It assumes that EMAX + abs(EMIN) sum
+-* approximately to a power of 2. It will fail on machines where this
+-* assumption does not hold, for example, the Cyber 205 (EMIN = -28625,
+-* EMAX = 28718). It will also fail if the value supplied for EMIN is
+-* too large (i.e. too close to zero), probably with overflow.
+-*
+-* Arguments
+-* =========
+-*
+-* BETA (input) INTEGER
+-* The base of floating-point arithmetic.
+-*
+-* P (input) INTEGER
+-* The number of base BETA digits in the mantissa of a
+-* floating-point value.
+-*
+-* EMIN (input) INTEGER
+-* The minimum exponent before (gradual) underflow.
+-*
+-* IEEE (input) LOGICAL
+-* A logical flag specifying whether or not the arithmetic
+-* system is thought to comply with the IEEE standard.
+-*
+-* EMAX (output) INTEGER
+-* The largest exponent before overflow
+-*
+-* RMAX (output) DOUBLE PRECISION
+-* The largest machine floating-point number.
+-*
+-* =====================================================================
+-*
+-* .. Parameters ..
+- DOUBLE PRECISION ZERO, ONE
+- PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 )
+-* ..
+-* .. Local Scalars ..
+- INTEGER EXBITS, EXPSUM, I, LEXP, NBITS, TRY, UEXP
+- DOUBLE PRECISION OLDY, RECBAS, Y, Z
+-* ..
+-* .. External Functions ..
+- DOUBLE PRECISION DLAMC3
+- EXTERNAL DLAMC3
+-* ..
+-* .. Intrinsic Functions ..
+- INTRINSIC MOD
+-* ..
+-* .. Executable Statements ..
+-*
+-* First compute LEXP and UEXP, two powers of 2 that bound
+-* abs(EMIN). We then assume that EMAX + abs(EMIN) will sum
+-* approximately to the bound that is closest to abs(EMIN).
+-* (EMAX is the exponent of the required number RMAX).
+-*
+- LEXP = 1
+- EXBITS = 1
+- 10 CONTINUE
+- TRY = LEXP*2
+- IF( TRY.LE.( -EMIN ) ) THEN
+- LEXP = TRY
+- EXBITS = EXBITS + 1
+- GO TO 10
+- END IF
+- IF( LEXP.EQ.-EMIN ) THEN
+- UEXP = LEXP
+- ELSE
+- UEXP = TRY
+- EXBITS = EXBITS + 1
+- END IF
+-*
+-* Now -LEXP is less than or equal to EMIN, and -UEXP is greater
+-* than or equal to EMIN. EXBITS is the number of bits needed to
+-* store the exponent.
+-*
+- IF( ( UEXP+EMIN ).GT.( -LEXP-EMIN ) ) THEN
+- EXPSUM = 2*LEXP
+- ELSE
+- EXPSUM = 2*UEXP
+- END IF
+-*
+-* EXPSUM is the exponent range, approximately equal to
+-* EMAX - EMIN + 1 .
+-*
+- EMAX = EXPSUM + EMIN - 1
+- NBITS = 1 + EXBITS + P
+-*
+-* NBITS is the total number of bits needed to store a
+-* floating-point number.
+-*
+- IF( ( MOD( NBITS, 2 ).EQ.1 ) .AND. ( BETA.EQ.2 ) ) THEN
+-*
+-* Either there are an odd number of bits used to store a
+-* floating-point number, which is unlikely, or some bits are
+-* not used in the representation of numbers, which is possible,
+-* (e.g. Cray machines) or the mantissa has an implicit bit,
+-* (e.g. IEEE machines, Dec Vax machines), which is perhaps the
+-* most likely. We have to assume the last alternative.
+-* If this is true, then we need to reduce EMAX by one because
+-* there must be some way of representing zero in an implicit-bit
+-* system. On machines like Cray, we are reducing EMAX by one
+-* unnecessarily.
+-*
+- EMAX = EMAX - 1
+- END IF
+-*
+- IF( IEEE ) THEN
+-*
+-* Assume we are on an IEEE machine which reserves one exponent
+-* for infinity and NaN.
+-*
+- EMAX = EMAX - 1
+- END IF
+-*
+-* Now create RMAX, the largest machine number, which should
+-* be equal to (1.0 - BETA**(-P)) * BETA**EMAX .
+-*
+-* First compute 1.0 - BETA**(-P), being careful that the
+-* result is less than 1.0 .
+-*
+- RECBAS = ONE / BETA
+- Z = BETA - ONE
+- Y = ZERO
+- DO 20 I = 1, P
+- Z = Z*RECBAS
+- IF( Y.LT.ONE )
+- $ OLDY = Y
+- Y = DLAMC3( Y, Z )
+- 20 CONTINUE
+- IF( Y.GE.ONE )
+- $ Y = OLDY
+-*
+-* Now multiply by BETA**EMAX to get RMAX.
+-*
+- DO 30 I = 1, EMAX
+- Y = DLAMC3( Y*BETA, ZERO )
+- 30 CONTINUE
+-*
+- RMAX = Y
+- RETURN
+-*
+-* End of DLAMC5
+-*
+- END
+- LOGICAL FUNCTION LSAME( CA, CB )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* September 30, 1994
+-*
+-* .. Scalar Arguments ..
+- CHARACTER CA, CB
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* LSAME returns .TRUE. if CA is the same letter as CB regardless of
+-* case.
+-*
+-* Arguments
+-* =========
+-*
+-* CA (input) CHARACTER*1
+-* CB (input) CHARACTER*1
+-* CA and CB specify the single characters to be compared.
+-*
+-* =====================================================================
+-*
+-* .. Intrinsic Functions ..
+- INTRINSIC ICHAR
+-* ..
+-* .. Local Scalars ..
+- INTEGER INTA, INTB, ZCODE
+-* ..
+-* .. Executable Statements ..
+-*
+-* Test if the characters are equal
+-*
+- LSAME = CA.EQ.CB
+- IF( LSAME )
+- $ RETURN
+-*
+-* Now test for equivalence if both characters are alphabetic.
+-*
+- ZCODE = ICHAR( 'Z' )
+-*
+-* Use 'Z' rather than 'A' so that ASCII can be detected on Prime
+-* machines, on which ICHAR returns a value with bit 8 set.
+-* ICHAR('A') on Prime machines returns 193 which is the same as
+-* ICHAR('A') on an EBCDIC machine.
+-*
+- INTA = ICHAR( CA )
+- INTB = ICHAR( CB )
+-*
+- IF( ZCODE.EQ.90 .OR. ZCODE.EQ.122 ) THEN
+-*
+-* ASCII is assumed - ZCODE is the ASCII code of either lower or
+-* upper case 'Z'.
+-*
+- IF( INTA.GE.97 .AND. INTA.LE.122 ) INTA = INTA - 32
+- IF( INTB.GE.97 .AND. INTB.LE.122 ) INTB = INTB - 32
+-*
+- ELSE IF( ZCODE.EQ.233 .OR. ZCODE.EQ.169 ) THEN
+-*
+-* EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or
+-* upper case 'Z'.
+-*
+- IF( INTA.GE.129 .AND. INTA.LE.137 .OR.
+- $ INTA.GE.145 .AND. INTA.LE.153 .OR.
+- $ INTA.GE.162 .AND. INTA.LE.169 ) INTA = INTA + 64
+- IF( INTB.GE.129 .AND. INTB.LE.137 .OR.
+- $ INTB.GE.145 .AND. INTB.LE.153 .OR.
+- $ INTB.GE.162 .AND. INTB.LE.169 ) INTB = INTB + 64
+-*
+- ELSE IF( ZCODE.EQ.218 .OR. ZCODE.EQ.250 ) THEN
+-*
+-* ASCII is assumed, on Prime machines - ZCODE is the ASCII code
+-* plus 128 of either lower or upper case 'Z'.
+-*
+- IF( INTA.GE.225 .AND. INTA.LE.250 ) INTA = INTA - 32
+- IF( INTB.GE.225 .AND. INTB.LE.250 ) INTB = INTB - 32
+- END IF
+- LSAME = INTA.EQ.INTB
+-*
+-* RETURN
+-*
+-* End of LSAME
+-*
+- END
+--- cash.orig/mebdfi.f 2007-12-15 15:37:46.000000000 -0500
++++ cash/mebdfi.f 2014-03-02 16:22:33.208828923 -0500
+@@ -58,11 +58,11 @@
+ C
+ C SEPTEMBER 20th 1999: FIRST RELEASE
+ C
+-C OVDRIV
++C I_OVDRIV
+ C A PACKAGE FOR THE SOLUTION OF THE INITIAL VALUE PROBLEM
+ C FOR SYSTEMS OF IMPLICIT DIFFERENTIAL ALGEBRAIC EQUATIONS
+ c G(t,Y,Y')=0, Y=(Y(1),Y(2),Y(3),.....,Y(N)).
+-C SUBROUTINE OVDRIV IS A DRIVER ROUTINE FOR THIS PACKAGE.
++C SUBROUTINE I_OVDRIV IS A DRIVER ROUTINE FOR THIS PACKAGE.
+ C
+ C REFERENCES
+ C
+@@ -82,7 +82,7 @@
+ C SPRINGER 1996, page 267.
+ C
+ C ----------------------------------------------------------------
+-C OVDRIV IS TO BE CALLED ONCE FOR EACH OUTPUT VALUE OF T, AND
++C I_OVDRIV IS TO BE CALLED ONCE FOR EACH OUTPUT VALUE OF T, AND
+ C IN TURN MAKES REPEATED CALLS TO THE CORE INTEGRATOR STIFF.
+ C
+ C THE INPUT PARAMETERS ARE ..
+@@ -158,7 +158,7 @@
+ C SHOULD BE NON-NEGATIVE. IF ITOL = 1 THEN SINGLE STEP ERROR
+ C ESTIMATES DIVIDED BY YMAX(I) WILL BE KEPT LESS THAN 1
+ C IN ROOT-MEAN-SQUARE NORM. THE VECTOR YMAX OF WEIGHTS IS
+-C COMPUTED IN OVDRIV. INITIALLY YMAX(I) IS SET AS
++C COMPUTED IN I_OVDRIV. INITIALLY YMAX(I) IS SET AS
+ C THE MAXIMUM OF 1 AND ABS(Y(I)). THEREAFTER YMAX(I) IS
+ C THE LARGEST VALUE OF ABS(Y(I)) SEEN SO FAR, OR THE
+ C INITIAL VALUE YMAX(I) IF THAT IS LARGER.
+@@ -242,23 +242,23 @@
+ C -12 INSUFFICIENT INTEGER WORKSPACE FOR THE INTEGRATION
+ C
+ C
+-C IN ADDITION TO OVDRIVE, THE FOLLOWING ROUTINES ARE PROVIDED
++C IN ADDITION TO I_OVDRIVE, THE FOLLOWING ROUTINES ARE PROVIDED
+ C IN THE PACKAGE..
+ C
+-C INTERP( - ) INTERPOLATES TO GET THE OUTPUT VALUES
++C I_INTERP( - ) INTERPOLATES TO GET THE OUTPUT VALUES
+ C AT T=TOUT FROM THE DATA IN THE Y ARRAY.
+-C STIFF( - ) IS THE CORE INTEGRATOR ROUTINE. IT PERFORMS A
++C I_STIFF( - ) IS THE CORE INTEGRATOR ROUTINE. IT PERFORMS A
+ C SINGLE STEP AND ASSOCIATED ERROR CONTROL.
+-C COSET( - ) SETS COEFFICIENTS FOR BACKWARD DIFFERENTIATION
++C I_COSET( - ) SETS COEFFICIENTS FOR BACKWARD DIFFERENTIATION
+ C SCHEMES FOR USE IN THE CORE INTEGRATOR.
+-C PSET( - ) COMPUTES AND PROCESSES THE NEWTON ITERATION
++C I_PSET( - ) COMPUTES AND PROCESSES THE NEWTON ITERATION
+ C MATRIX DG/DY + (1/(H*BETA))DG/DY'
+-C DEC( - ) PERFORMS AN LU DECOMPOSITION ON A MATRIX.
+-C SOL( - ) SOLVES LINEAR SYSTEMS A*X = B AFTER DEC
++C I_DEC( - ) PERFORMS AN LU DECOMPOSITION ON A MATRIX.
++C I_SOL( - ) SOLVES LINEAR SYSTEMS A*X = B AFTER I_DEC
+ C HAS BEEN CALLED FOR THE MATRIX A
+-C DGBFA ( - ) FACTORS A DOUBLE PRECISION BAND MATRIX BY
++C I_DGBFA ( - ) FACTORS A DOUBLE PRECISION BAND MATRIX BY
+ C ELIMINATION.
+-C DGBSL ( - ) SOLVES A BANDED LINEAR SYSTEM A*x=b
++C I_DGBSL ( - ) SOLVES A BANDED LINEAR SYSTEM A*x=b
+ C
+ C ALSO SUPPLIED ARE THE BLAS ROUTINES
+ C
+@@ -330,7 +330,7 @@
+ C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ C THIS SUBROUTINE IS FOR THE PURPOSE *
+ C OF SPLITTING UP THE WORK ARRAYS WORK AND IWORK *
+-C FOR USE INSIDE THE INTEGRATOR STIFF *
++C FOR USE INSIDE THE INTEGRATOR I_STIFF *
+ C <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+ C .. SCALAR ARGUMENTS ..
+@@ -346,7 +346,7 @@
+ C COMMON BLOCKS
+ C ..
+ C .. EXTERNAL SUBROUTINES ..
+- EXTERNAL OVDRIV,PDERV,RESID
++ EXTERNAL I_OVDRIV,PDERV,RESID
+ C ..
+ C .. SAVE STATEMENT ..
+ SAVE I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11
+@@ -397,7 +397,7 @@
+ c THE ERROR FLAG IS INITIALISED
+ c
+
+- CALL OVDRIV(N,T0,HO,Y0,YPRIME,TOUT,TEND,MF,IDID,LOUT,WORK(3),
++ CALL I_OVDRIV(N,T0,HO,Y0,YPRIME,TOUT,TEND,MF,IDID,LOUT,WORK(3),
+ + WORK(I1),WORK(I2),WORK(I3),WORK(I4),WORK(I5),WORK(I6),
+ + WORK(I7),WORK(I8),WORK(I9),WORK(I10),IWORK(15),
+ + MBND,IWORK(1),IWORK(2),IWORK(3),MAXDER,ITOL,RTOL,ATOL,RPAR,
+@@ -428,7 +428,7 @@
+ END
+ C--------------------------------------------------------------------------
+ C
+- SUBROUTINE OVDRIV(N,T0,HO,Y0,YPRIME,TOUT,TEND,MF,IDID,LOUT,Y,
++ SUBROUTINE I_OVDRIV(N,T0,HO,Y0,YPRIME,TOUT,TEND,MF,IDID,LOUT,Y,
+ + YHOLD,YNHOLD,YMAX,ERRORS,SAVE1,SAVE2,SCALE,ARH,PW,PWCOPY,
+ + IPIV,MBND,NIND1,NIND2,NIND3,MAXDER,ITOL,RTOL,ATOL,RPAR,
+ + IPAR,PDERV,RESID,NQUSED,NSTEP,NFAIL,NRE,NJE,NDEC,NBSOL,
+@@ -452,7 +452,7 @@
+ INTEGER I,KGO,NHCUT
+ C ..
+ C .. EXTERNAL SUBROUTINES ..
+- EXTERNAL INTERP,STIFF,PDERV,RESID
++ EXTERNAL I_INTERP,I_STIFF,PDERV,RESID
+ C ..
+ C .. INTRINSIC FUNCTIONS ..
+ INTRINSIC DABS,DMAX1
+@@ -468,7 +468,7 @@
+ HMAX = DABS(TEND-T0)/10.0D+0
+ IF ((T-TOUT)*H.GE.0.0D+0) THEN
+ C HAVE OVERSHOT THE OUTPUT POINT, SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ IDID = KFLAG
+ T0 = TOUT
+ HO = H
+@@ -486,7 +486,7 @@
+ IF (((T-TOUT)*H.GE.0.0D+0) .OR. (DABS(T-TOUT).LE.
+ + 100.0D+0*UROUND*HMAX)) THEN
+ C HAVE OVERSHOT THE OUTPUT POINT, SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ T0 = TOUT
+ HO = H
+ IDID = KFLAG
+@@ -513,7 +513,7 @@
+ IF ((T-TOUT)*H.GE.0.0D+0) THEN
+ C HAVE OVERSHOT TOUT
+ WRITE (LOUT,9080) T,TOUT,H
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ HO = H
+ T0 = TOUT
+ IDID = -5
+@@ -527,7 +527,7 @@
+ T0 = T
+ IF ((T-TOUT)*H.GE.0.0D+0) THEN
+ C HAVE OVERSHOT,SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ IDID = KFLAG
+ T0 = TOUT
+ HO = H
+@@ -660,7 +660,7 @@
+ 20 IF ((T+H).EQ.T) THEN
+ WRITE (LOUT,9000)
+ END IF
+- CALL STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
++ CALL I_STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
+ + NIND1,NIND2,NIND3,T,TOUT,TEND,Y,YPRIME,N,
+ + YMAX,ERRORS,SAVE1,SAVE2,SCALE,PW,PWCOPY,YHOLD,
+ + YNHOLD,ARH,IPIV,LOUT,MAXDER,ITOL,RTOL,ATOL,RPAR,IPAR,
+@@ -672,7 +672,7 @@
+ C ENDIF
+ KGO = 1 - KFLAG
+ IF (KGO.EQ.1) THEN
+-C NORMAL RETURN FROM STIFF
++C NORMAL RETURN FROM I_STIFF
+ GO TO 30
+
+ ELSE IF (KGO.EQ.2) THEN
+@@ -708,7 +708,7 @@
+ C FOR ANY OTHER VALUE OF IDID, CONTROL RETURNS TO THE INTEGRATOR
+ C UNLESS TOUT HAS BEEN REACHED. THEN INTERPOLATED VALUES OF Y ARE
+ C COMPUTED AND STORED IN Y0 ON RETURN.
+-C IF INTERPOLATION IS NOT DESIRED, THE CALL TO INTERP SHOULD BE
++C IF INTERPOLATION IS NOT DESIRED, THE CALL TO I_INTERP SHOULD BE
+ C REMOVED AND CONTROL TRANSFERRED TO STATEMENT 500 INSTEAD OF 520.
+ C --------------------------------------------------------------------
+ IF(NSTEP.GT.MAXSTP) THEN
+@@ -749,7 +749,7 @@
+ IF (((T-TOUT)*H.GE.0.0D+0) .OR. (DABS(T-TOUT).LE.
+ + 100.0D+0*UROUND*HMAX)) THEN
+ C HAVE OVERSHOT, SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ T0 = TOUT
+ HO = H
+ IDID = KFLAG
+@@ -766,7 +766,7 @@
+
+ ELSE IF ((T-TOUT)*H.GE.0.0D+0) THEN
+ C HAVE OVERSHOT, SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ IDID = KFLAG
+ HO = H
+ T0 = TOUT
+@@ -805,14 +805,14 @@
+
+ ELSE
+ C HAVE PASSED TOUT SO INTERPOLATE
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ T0 = TOUT
+ IDID = KFLAG
+ END IF
+ HO = H
+ IF(KFLAG.NE.0) IDID = KFLAG
+ RETURN
+-C -------------------------- END OF SUBROUTINE OVDRIV -----------------
++C -------------------------- END OF SUBROUTINE I_OVDRIV -----------------
+ 9000 FORMAT (' WARNING.. T + H = T ON NEXT STEP.')
+ 9010 FORMAT (/,/,' KFLAG = -2 FROM INTEGRATOR AT T = ',E16.8,' H =',
+ + E16.8,/,
+@@ -848,7 +848,7 @@
+ END
+ C--------------------------------------------------------------------------
+ C
+- SUBROUTINE INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ SUBROUTINE I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C .. SCALAR ARGUMENTS ..
+@@ -875,15 +875,15 @@
+ 20 CONTINUE
+ 30 CONTINUE
+ RETURN
+-C -------------- END OF SUBROUTINE INTERP ---------------------------
++C -------------- END OF SUBROUTINE I_INTERP ---------------------------
+ END
+ C
+- SUBROUTINE COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
++ SUBROUTINE I_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
+
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C --------------------------------------------------------------------
+-C COSET IS CALLED BY THE INTEGRATOR AND SETS THE COEFFICIENTS USED
++C I_COSET IS CALLED BY THE INTEGRATOR AND SETS THE COEFFICIENTS USED
+ C BY THE CONVENTIONAL BACKWARD DIFFERENTIATION SCHEME AND THE
+ C MODIFIED EXTENDED BACKWARD DIFFERENTIATION SCHEME. THE VECTOR
+ C EL OF LENGTH NQ+1 DETERMINES THE BASIC BDF METHOD WHILE THE VECTOR
+@@ -1013,24 +1013,24 @@
+ TQ(4) = 0.5D+0*TQ(2)/DBLE(FLOAT(NQ))
+ IF(NQ.NE.1) TQ(5)=PERTST(NQ-1,1)
+ RETURN
+-C --------------------- END OF SUBROUTINE COSET ---------------------
++C --------------------- END OF SUBROUTINE I_COSET ---------------------
+ END
+
+- SUBROUTINE PSET(Y,YPRIME,N,H,T,UROUND,EPSJAC,CON,MITER,MBND,
++ SUBROUTINE I_PSET(Y,YPRIME,N,H,T,UROUND,EPSJAC,CON,MITER,MBND,
+ + NIND1,NIND2,NIND3,IER,PDERV,RESID,NRENEW,YMAX,SAVE1,SAVE2,
+ + SAVE3,PW,PWCOPY,WRKSPC,IPIV,ITOL,RTOL,ATOL,NPSET,NJE,NRE,
+ + NDEC,IPAR,RPAR,IERR)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C -------------------------------------------------------------------
+-C PSET IS CALLED BY STIFF TO COMPUTE AND PROCESS THE MATRIX
++C I_PSET IS CALLED BY I_STIFF TO COMPUTE AND PROCESS THE MATRIX
+ C PD=DG/DY + (1/CON)DG/DY'. THIS MATRIX IS THEN SUBJECTED TO LU
+ C DECOMPOSITION IN PREPARATION FOR LATER SOLUTION OF LINEAR SYSTEMS
+ C OF ALGEBRAIC EQUATIONS WITH LU AS THE COEFFICIENT MATRIX. THE
+ C MATRIX PD IS FOUND BY THE USER-SUPPLIED ROUTINE PDERV IF MITER=1
+ C OR 3 OR BY FINITE DIFFERENCING IF MITER = 2 OR 4.
+ C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION WITH
+-C PSET USES THE FOLLOWING ..
++C I_PSET USES THE FOLLOWING ..
+ C EPSJAC = DSQRT(UROUND), USED IN NUMERICAL JACOBIAN INCREMENTS.
+ C *******************************************************************
+ C THE ARGUMENT NRENEW IS USED TO SIGNAL WHETHER OR NOT
+@@ -1052,7 +1052,7 @@
+ INTEGER I,J,J1,JJKK
+ C ..
+ C .. EXTERNAL SUBROUTINES ..
+- EXTERNAL DEC,PDERV,DGBFA,RESID
++ EXTERNAL I_DEC,PDERV,I_DGBFA,RESID
+ C ..
+ C .. INTRINSIC FUNCTIONS ..
+ INTRINSIC DABS,DMAX1,DSQRT
+@@ -1192,17 +1192,17 @@
+ NRE=NRE+ MIN(MBND(3),N)
+ C
+ 70 IF (MITER.GT.2) THEN
+- CALL DGBFA(PW,MBND(4),N,ML,MU,IPIV,IER)
++ CALL I_DGBFA(PW,MBND(4),N,ML,MU,IPIV,IER)
+ NDEC = NDEC + 1
+ ELSE
+- CALL DEC(N,N,PW,IPIV,IER)
++ CALL I_DEC(N,N,PW,IPIV,IER)
+ NDEC = NDEC + 1
+ ENDIF
+ RETURN
+-C ---------------------- END OF SUBROUTINE PSET ---------------------
++C ---------------------- END OF SUBROUTINE I_PSET ---------------------
+ END
+ C
+- SUBROUTINE DEC(N,NDIM,A,IP,IER)
++ SUBROUTINE I_DEC(N,NDIM,A,IP,IER)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C -------------------------------------------------------------------
+@@ -1218,9 +1218,9 @@
+ C IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR 0.
+ C IER = 0 IF MATRIX IS NON-SINGULAR, OR K IF FOUND TO BE SINGULAR
+ C AT STAGE K.
+-C USE SOL TO OBTAIN SOLUTION OF LINEAR SYSTEM.
++C USE I_SOL TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+ C DETERM(A) = IP(N)*A(1,1)*A(2,2)* . . . *A(N,N).
+-C IF IP(N) = 0, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
++C IF IP(N) = 0, A IS SINGULAR, I_SOL WILL DIVIDE BY ZERO.
+ C
+ C REFERENCE.
+ C C.B. MOLER, ALGORITHM 423, LINEAR EQUATION SOLVER, C.A.C.M
+@@ -1279,10 +1279,10 @@
+ 80 IER = K
+ IP(N) = 0
+ RETURN
+-C--------------------- END OF SUBROUTINE DEC ----------------------
++C--------------------- END OF SUBROUTINE I_DEC ----------------------
+ END
+ C
+- SUBROUTINE SOL(N,NDIM,A,B,IP)
++ SUBROUTINE I_SOL(N,NDIM,A,B,IP)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C .. SCALAR ARGUMENTS ..
+@@ -1305,8 +1305,8 @@
+ C NDIM = DECLARED DIMENSION OF MATRIX A.
+ C A = TRIANGULARISED MATRIX OBTAINED FROM DEC.
+ C B = RIGHT HAND SIDE VECTOR.
+-C IP = PIVOT VECTOR OBTAINED FROM DEC.
+-C DO NOT USE IF DEC HAS SET IER .NE. 0
++C IP = PIVOT VECTOR OBTAINED FROM I_DEC.
++C DO NOT USE IF I_DEC HAS SET IER .NE. 0
+ C OUTPUT..
+ C B = SOLUTION VECTOR, X.
+ C ------------------------------------------------------------------
+@@ -1333,16 +1333,16 @@
+ 40 CONTINUE
+ 50 B(1) = B(1)/A(1,1)
+ RETURN
+-C------------------------- END OF SUBROUTINE SOL ------------------
++C------------------------- END OF SUBROUTINE I_SOL ------------------
+ END
+ C
+- subroutine dgbfa(abd,lda,n,ml,mu,ipvt,info)
++ subroutine i_dgbfa(abd,lda,n,ml,mu,ipvt,info)
+ integer lda,n,ml,mu,ipvt(1),info
+ double precision abd(lda,1)
+ c
+-c dgbfa factors a double precision band matrix by elimination.
++c i_dgbfa factors a double precision band matrix by elimination.
+ c
+-c dgbfa is usually called by dgbco, but it can be called
++c i_dgbfa is usually called by dgbco, but it can be called
+ c directly with a saving in time if rcond is not needed.
+ c
+ c on entry
+@@ -1384,7 +1384,7 @@
+ c = 0 normal value.
+ c = k if u(k,k) .eq. 0.0 . this is not an error
+ c condition for this subroutine, but it does
+-c indicate that dgbsl will divide by zero if
++c indicate that i_dgbsl will divide by zero if
+ c called. use rcond in dgbco for a reliable
+ c indication of singularity.
+ c
+@@ -1511,151 +1511,18 @@
+ return
+ end
+ C--------------------------------------------------------------------------
+- subroutine daxpy(n,da,dx,incx,dy,incy)
+-c
+-c constant times a vector plus a vector.
+-c uses unrolled loops for increments equal to one.
+-c jack dongarra, linpack, 3/11/78.
+-c
+- double precision dx(1),dy(1),da
+- integer i,incx,incy,ix,iy,m,mp1,n
+-c
+- if(n.le.0)return
+- if (da .eq. 0.0d0) return
+- if(incx.eq.1.and.incy.eq.1)go to 20
+-c
+-c code for unequal increments or equal increments
+-c not equal to 1
+-c
+- ix = 1
+- iy = 1
+- if(incx.lt.0)ix = (-n+1)*incx + 1
+- if(incy.lt.0)iy = (-n+1)*incy + 1
+- do 10 i = 1,n
+- dy(iy) = dy(iy) + da*dx(ix)
+- ix = ix + incx
+- iy = iy + incy
+- 10 continue
+- return
+-c
+-c code for both increments equal to 1
+-c
+-c
+-c clean-up loop
+-c
+- 20 m = mod(n,4)
+- if( m .eq. 0 ) go to 40
+- do 30 i = 1,m
+- dy(i) = dy(i) + da*dx(i)
+- 30 continue
+- if( n .lt. 4 ) return
+- 40 mp1 = m + 1
+- do 50 i = mp1,n,4
+- dy(i) = dy(i) + da*dx(i)
+- dy(i + 1) = dy(i + 1) + da*dx(i + 1)
+- dy(i + 2) = dy(i + 2) + da*dx(i + 2)
+- dy(i + 3) = dy(i + 3) + da*dx(i + 3)
+- 50 continue
+- return
+- end
+-C---------------------------------------------------------------------------
+- subroutine dscal(n,da,dx,incx)
+-c
+-c scales a vector by a constant.
+-c uses unrolled loops for increment equal to one.
+-c jack dongarra, linpack, 3/11/78.
+-c modified to correct problem with negative increment, 8/21/90.
+-c
+- double precision da,dx(1)
+- integer i,incx,ix,m,mp1,n
+-c
+- if(n.le.0)return
+- if(incx.eq.1)go to 20
+-c
+-c code for increment not equal to 1
+-c
+- ix = 1
+- if(incx.lt.0)ix = (-n+1)*incx + 1
+- do 10 i = 1,n
+- dx(ix) = da*dx(ix)
+- ix = ix + incx
+- 10 continue
+- return
+-c
+-c code for increment equal to 1
+-c
+-c
+-c clean-up loop
+-c
+- 20 m = mod(n,5)
+- if( m .eq. 0 ) go to 40
+- do 30 i = 1,m
+- dx(i) = da*dx(i)
+- 30 continue
+- if( n .lt. 5 ) return
+- 40 mp1 = m + 1
+- do 50 i = mp1,n,5
+- dx(i) = da*dx(i)
+- dx(i + 1) = da*dx(i + 1)
+- dx(i + 2) = da*dx(i + 2)
+- dx(i + 3) = da*dx(i + 3)
+- dx(i + 4) = da*dx(i + 4)
+- 50 continue
+- return
+- end
+-C--------------------------------------------------------------------------
+- integer function idamax(n,dx,incx)
+-c
+-c finds the index of element having max. absolute value.
+-c jack dongarra, linpack, 3/11/78.
+-c modified to correct problem with negative increment, 8/21/90.
+-c
+- double precision dx(1),dmax
+- integer i,incx,ix,n
+-c
+- idamax = 0
+- if( n .lt. 1 ) return
+- idamax = 1
+- if(n.eq.1)return
+- if(incx.eq.1)go to 20
+-c
+-c code for increment not equal to 1
+-c
+- ix = 1
+- if(incx.lt.0)ix = (-n+1)*incx + 1
+- dmax = dabs(dx(ix))
+- ix = ix + incx
+- do 10 i = 2,n
+- if(dabs(dx(ix)).le.dmax) go to 5
+- idamax = i
+- dmax = dabs(dx(ix))
+- 5 ix = ix + incx
+- 10 continue
+- return
+-c
+-c code for increment equal to 1
+-c
+- 20 dmax = dabs(dx(1))
+- do 30 i = 2,n
+- if(dabs(dx(i)).le.dmax) go to 30
+- idamax = i
+- dmax = dabs(dx(i))
+- 30 continue
+- return
+- end
+-C--------------------------------------------------------------------------
+- subroutine dgbsl(abd,lda,n,ml,mu,ipvt,b,job)
++ subroutine i_dgbsl(abd,lda,n,ml,mu,ipvt,b,job)
+ integer lda,n,ml,mu,ipvt(*),job
+ double precision abd(lda,*),b(*)
+ c
+-c dgbsl solves the double precision band system
++c i_dgbsl solves the double precision band system
+ c a * x = b or trans(a) * x = b
+-c using the factors computed by dgbco or dgbfa.
++c using the factors computed by dgbco or i_dgbfa.
+ c
+ c on entry
+ c
+ c abd double precision(lda, n)
+-c the output from dgbco or dgbfa.
++c the output from dgbco or i_dgbfa.
+ c
+ c lda integer
+ c the leading dimension of the array abd .
+@@ -1670,7 +1537,7 @@
+ c number of diagonals above the main diagonal.
+ c
+ c ipvt integer(n)
+-c the pivot vector from dgbco or dgbfa.
++c the pivot vector from dgbco or i_dgbfa.
+ c
+ c b double precision(n)
+ c the right hand side vector.
+@@ -1691,14 +1558,14 @@
+ c but it is often caused by improper arguments or improper
+ c setting of lda . it will not occur if the subroutines are
+ c called correctly and if dgbco has set rcond .gt. 0.0
+-c or dgbfa has set info .eq. 0 .
++c or i_dgbfa has set info .eq. 0 .
+ c
+ c to compute inverse(a) * c where c is a matrix
+ c with p columns
+ c call dgbco(abd,lda,n,ml,mu,ipvt,rcond,z)
+ c if (rcond is too small) go to ...
+ c do 10 j = 1, p
+-c call dgbsl(abd,lda,n,ml,mu,ipvt,c(1,j),0)
++c call i_dgbsl(abd,lda,n,ml,mu,ipvt,c(1,j),0)
+ c 10 continue
+ c
+ c linpack. this version dated 08/14/78 .
+@@ -1780,64 +1647,14 @@
+ return
+ end
+ C---------------------------------------------------------------------------
+- double precision function ddot(n,dx,incx,dy,incy)
+-c
+-c forms the dot product of two vectors.
+-c uses unrolled loops for increments equal to one.
+-c jack dongarra, linpack, 3/11/78.
+-c
+- double precision dx(1),dy(1),dtemp
+- integer i,incx,incy,ix,iy,m,mp1,n
+-c
+- ddot = 0.0d0
+- dtemp = 0.0d0
+- if(n.le.0)return
+- if(incx.eq.1.and.incy.eq.1)go to 20
+-c
+-c code for unequal increments or equal increments
+-c not equal to 1
+-c
+- ix = 1
+- iy = 1
+- if(incx.lt.0)ix = (-n+1)*incx + 1
+- if(incy.lt.0)iy = (-n+1)*incy + 1
+- do 10 i = 1,n
+- dtemp = dtemp + dx(ix)*dy(iy)
+- ix = ix + incx
+- iy = iy + incy
+- 10 continue
+- ddot = dtemp
+- return
+-c
+-c code for both increments equal to 1
+-c
+-c
+-c clean-up loop
+-c
+- 20 m = mod(n,5)
+- if( m .eq. 0 ) go to 40
+- do 30 i = 1,m
+- dtemp = dtemp + dx(i)*dy(i)
+- 30 continue
+- if( n .lt. 5 ) go to 60
+- 40 mp1 = m + 1
+- do 50 i = mp1,n,5
+- dtemp = dtemp + dx(i)*dy(i) + dx(i + 1)*dy(i + 1) +
+- * dx(i + 2)*dy(i + 2) + dx(i + 3)*dy(i + 3) +
+- * dx(i + 4)*dy(i + 4)
+- 50 continue
+- 60 ddot = dtemp
+- return
+- end
+-C---------------------------------------------------------------------------
+
+- SUBROUTINE ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
++ SUBROUTINE I_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C ***************************************************
+ C
+ C THIS ROUTINE CALCULATES ERRORS USED IN TESTS
+-C IN STIFF .
++C IN I_STIFF .
+ C
+ C ***************************************************
+ C .. SCALAR ARGUMENTS ..
+@@ -1872,7 +1689,7 @@
+ END
+ C--------------------------------------------------------------------------
+
+- SUBROUTINE PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
++ SUBROUTINE I_PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C **********************************************************************
+@@ -1903,7 +1720,7 @@
+ END
+ C------------------------------------------------------------------------
+
+- SUBROUTINE ITRAT2(QQQ,Y,YPRIME,N,T,HBETA,ERRBND,ARH,CRATE,TCRATE
++ SUBROUTINE I_ITRAT2(QQQ,Y,YPRIME,N,T,HBETA,ERRBND,ARH,CRATE,TCRATE
+ + ,M,WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,NIND1,
+ + NIND2,NIND3,IPIV,LMB,ITOL,RTOL,ATOL,IPAR,RPAR,HUSED,NBSOL,
+ + NRE,NQUSED,RESID,IERR)
+@@ -1922,7 +1739,7 @@
+ INTEGER I
+ C ..
+ C .. EXTERNAL SUBROUTINES ..
+- EXTERNAL SOL,DGBSL,RESID
++ EXTERNAL I_SOL,I_DGBSL,RESID
+ C ..
+ C .. INTRINSIC FUNCTIONS ..
+ INTRINSIC DMAX1,DMIN1
+@@ -1963,10 +1780,10 @@
+ C
+ call resid(n,t,y,save2,yprime,ipar,rpar,ierr)
+ IF(MF.GE.23) THEN
+- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE2,0)
++ CALL I_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE2,0)
+ NBSOL = NBSOL + 1
+ ELSE
+- CALL SOL(N,N,PW,SAVE2,IPIV)
++ CALL I_SOL(N,N,PW,SAVE2,IPIV)
+ NBSOL = NBSOL + 1
+ ENDIF
+ D = ZERO
+@@ -1992,10 +1809,10 @@
+ C IF WE ARE HERE THEN PARTIALS ARE O.K.
+ C
+ IF( MF.GE. 23) THEN
+- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE2,0)
++ CALL I_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE2,0)
+ NBSOL=NBSOL + 1
+ ELSE
+- CALL SOL(N,N,PW,SAVE2,IPIV)
++ CALL I_SOL(N,N,PW,SAVE2,IPIV)
+ NBSOL = NBSOL + 1
+ ENDIF
+ C
+@@ -2043,7 +1860,7 @@
+ END
+ C--------------------------------------------------------------------------
+
+- SUBROUTINE STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
++ SUBROUTINE I_STIFF(H,HMAX,HMIN,JSTART,KFLAG,MF,MBND,
+ + NIND1,NIND2,NIND3,T,TOUT,TEND,Y,YPRIME,N,
+ + YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,PWCOPY,YHOLD,
+ + YNHOLD,ARH,IPIV,LOUT,MAXDER,ITOL,RTOL,ATOL,RPAR,IPAR,
+@@ -2052,13 +1869,13 @@
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C ------------------------------------------------------------------
+-C THE SUBROUTINE STIFF PERFORMS ONE STEP OF THE INTEGRATION OF AN
++C THE SUBROUTINE I_STIFF PERFORMS ONE STEP OF THE INTEGRATION OF AN
+ C INITIAL VALUE PROBLEM FOR A SYSTEM OF
+ C IMPLICIT DIFFERENTIAL ALGEBRAIC EQUATIONS.
+-C COMMUNICATION WITH STIFF IS DONE WITH THE FOLLOWING VARIABLES..
++C COMMUNICATION WITH I_STIFF IS DONE WITH THE FOLLOWING VARIABLES..
+ C Y AN N BY LMAX+3 ARRAY CONTAINING THE DEPENDENT VARIABLES
+ C AND THEIR BACKWARD DIFFERENCES. MAXDER (=LMAX-1) IS THE
+-C MAXIMUM ORDER AVAILABLE. SEE SUBROUTINE COSET.
++C MAXIMUM ORDER AVAILABLE. SEE SUBROUTINE I_COSET.
+ C Y(I,J+1) CONTAINS THE JTH BACKWARD DIFFERENCE OF Y(I)
+ C T THE INDEPENDENT VARIABLE. T IS UPDATED ON EACH STEP TAKEN.
+ C H THE STEPSIZE TO BE ATTEMPTED ON THE NEXT STEP.
+@@ -2068,7 +1885,7 @@
+ C HMIN THE MINIMUM AND MAXIMUM ABSOLUTE VALUE OF THE STEPSIZE
+ C HMAX TO BE USED FOR THE STEP. THESE MAY BE CHANGED AT ANY
+ C TIME BUT WILL NOT TAKE EFFECT UNTIL THE NEXT H CHANGE.
+-C RTOL,ATOL THE ERROR BOUNDS. SEE DESCRIPTION IN OVDRIV.
++C RTOL,ATOL THE ERROR BOUNDS. SEE DESCRIPTION IN I_OVDRIV.
+ C N THE NUMBER OF FIRST ORDER DIFFERENTIAL EQUATIONS.
+ C MF THE METHOD FLAG. MUST BE SET TO 21,22,23 OR 24 AT PRESENT
+ C KFLAG A COMPLETION FLAG WITH THE FOLLOWING MEANINGS..
+@@ -2103,7 +1920,7 @@
+ C MATRIX WAS FORMED BY A NEW J.
+ C AVOLDJ STORES VALUE FOR AVERAGE CRATE WHEN ITERATION
+ C MATRIX WAS FORMED BY AN OLD J.
+-C NRENEW FLAG THAT IS USED IN COMMUNICATION WITH SUBROUTINE PSET.
++C NRENEW FLAG THAT IS USED IN COMMUNICATION WITH SUBROUTINE I_PSET.
+ C IF NRENEW > 0 THEN FORM A NEW JACOBIAN BEFORE
+ C COMPUTING THE COEFFICIENT MATRIX FOR
+ C THE NEWTON-RAPHSON ITERATION
+@@ -2130,10 +1947,11 @@
+ C ..
+ C .. LOCAL ARRAYS ..
+ DIMENSION EL(10),ELST(10),TQ(5)
++ DIMENSION Y0(N)
+ C ..
+ C .. EXTERNAL SUBROUTINES ..
+- EXTERNAL COSET,CPYARY,ERRORS,HCHOSE,ITRAT2,
+- + PRDICT,PSET,RSCALE,SOL,DGBSL,PDERV,RESID
++ EXTERNAL I_COSET,I_CPYARY,I_ERRORS,I_HCHOSE,I_ITRAT2,
++ + I_PRDICT,I_PSET,I_RSCALE,I_SOL,I_DGBSL,PDERV,RESID
+ C ..
+ C .. INTRINSIC FUNCTIONS ..
+ INTRINSIC DABS,DMAX1,DMIN1
+@@ -2225,14 +2043,14 @@
+ HUSED = H
+ C -----------------------------------------------------------------
+ C IF THE CALLER HAS CHANGED N , THE CONSTANTS E, EDN, EUP
+-C AND BND MUST BE RESET. E IS A COMPARISON FOR ERRORS AT THE
++C AND BND MUST BE RESET. E IS A COMPARISON FOR I_ERRORS AT THE
+ C CURRENT ORDER NQ. EUP IS TO TEST FOR INCREASING THE ORDER,
+ C EDN FOR DECREASING THE ORDER. BND IS USED TO TEST FOR CONVERGENCE
+ C OF THE CORRECTOR ITERATES. IF THE CALLER HAS CHANGED H, Y MUST
+ C BE RE-SCALED. IF H IS CHANGED, IDOUB IS SET TO L+1 TO PREVENT
+ C FURTHER CHANGES IN H FOR THAT MANY STEPS.
+ C -----------------------------------------------------------------
+- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
++ CALL I_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
+ LMAX = MAXDER + 1
+ RC = RC*EL(1)/OLDLO
+ OLDLO = EL(1)
+@@ -2243,14 +2061,14 @@
+ C NRENEW AND NEWPAR ARE TO INSTRUCT ROUTINE THAT
+ C WE WISH A NEW J TO BE CALCULATED FOR THIS STEP.
+ C *****************************************************
+- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
++ CALL I_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
+ DO 20 I = 1,N
+ ARH(I) = EL(2)*Y(I,1)
+ 20 CONTINUE
+- CALL CPYARY(N*L,Y,YHOLD)
++ CALL I_CPYARY(N*L,Y,YHOLD)
+ QI = H*EL(1)
+ QQ = ONE/QI
+- CALL PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
++ CALL I_PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
+ IF(IERR.NE.0) THEN
+ H=H/2
+ IERR = 0
+@@ -2263,7 +2081,7 @@
+ C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ C DIFFERENT PARAMETERS ON THIS CALL <
+ C <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+- 30 CALL CPYARY(N*L,YHOLD,Y)
++ 30 CALL I_CPYARY(N*L,YHOLD,Y)
+ IF (MF.NE.MFOLD) THEN
+ METH = MF/10
+ MITER = MF - 10*METH
+@@ -2306,7 +2124,7 @@
+ C *********************************************
+ 40 RH = DMAX1(RH,HMIN/DABS(H))
+ 50 RH = DMIN1(RH,HMAX/DABS(H),RMAX)
+- CALL RSCALE(N,L,RH,Y)
++ CALL I_RSCALE(N,L,RH,Y)
+ RMAX = 10.0D+0
+ JCHANG = 1
+ H = H*RH
+@@ -2323,7 +2141,7 @@
+ END IF
+
+ IDOUB = L + 1
+- CALL CPYARY(N*L,Y,YHOLD)
++ CALL I_CPYARY(N*L,Y,YHOLD)
+
+ 60 IF (DABS(RC-ONE).GT.UPBND) IWEVAL = MITER
+ HUSED = H
+@@ -2348,7 +2166,7 @@
+ IF (JCHANG.EQ.1) THEN
+ C IF WE HAVE CHANGED STEPSIZE THEN PREDICT A VALUE FOR Y(T+H)
+ C AND EVALUATE THE DERIVATIVE THERE (STORED IN SAVE2())
+- CALL PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
++ CALL I_PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
+ IF(IERR.NE.0) GOTO 8000
+ DO 95 I=1,N
+ YPRIME(I)=(Y(I,1)-ARH(I))/QI
+@@ -2371,7 +2189,7 @@
+ C -------------------------------------------------------------------
+ C IF INDICATED, THE MATRIX P = I/(H*EL(2)) - J IS RE-EVALUATED BEFORE
+ C STARTING THE CORRECTOR ITERATION. IWEVAL IS SET = 0 TO INDICATE
+-C THAT THIS HAS BEEN DONE. P IS COMPUTED AND PROCESSED IN PSET.
++C THAT THIS HAS BEEN DONE. P IS COMPUTED AND PROCESSED IN I_PSET.
+ C THE PROCESSED MATRIX IS STORED IN PW
+ C -------------------------------------------------------------------
+ IWEVAL = 0
+@@ -2436,14 +2254,14 @@
+ JSNOLD = 0
+ MQ1TMP = MEQC1
+ MQ2TMP = MEQC2
+- CALL PSET(Y,YPRIME,N,H,T,UROUND,EPSJAC,QI,MITER,MBND,
++ CALL I_PSET(Y,YPRIME,N,H,T,UROUND,EPSJAC,QI,MITER,MBND,
+ + NIND1,NIND2,NIND3,IER,PDERV,RESID,NRENEW,YMAX,SAVE1,SAVE2,
+ + SCALE,PW,PWCOPY,ERROR,IPIV,ITOL,RTOL,ATOL,NPSET,NJE,NRE,NDEC
+ + ,IPAR,RPAR,IERR)
+ IF(IERR.NE.0) GOTO 8000
+ QQQ=QI
+ C
+-C NOTE THAT ERROR() IS JUST BEING USED AS A WORKSPACE BY PSET
++C NOTE THAT ERROR() IS JUST BEING USED AS A WORKSPACE BY I_PSET
+ IF (IER.NE.0) THEN
+ C IF IER>0 THEN WE HAVE HAD A SINGULARITY IN THE ITERATION MATRIX
+ IJUS=1
+@@ -2467,14 +2285,14 @@
+ C LOOP. THE UPDATED Y VECTOR IS STORED TEMPORARILY IN SAVE1.
+ C **********************************************************************
+ IF (.NOT.SAMPLE) THEN
+- CALL ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,
++ CALL I_ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,
+ + WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,
+ + NIND1,NIND2,NIND3,IPIV,1,ITOL,RTOL,ATOL,IPAR,RPAR,
+ + HUSED,NBSOL,NRE,NQUSED,resid,IERR)
+ IF(IERR.NE.0) GOTO 8000
+
+ ELSE
+- CALL ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,
++ CALL I_ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE1,TCRAT1,M1,
+ + WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,
+ + NIND1,NIND2,NIND3,IPIV,0,ITOL,RTOL,ATOL,IPAR,RPAR,
+ + HUSED,NBSOL,NRE,NQUSED,resid,IERR)
+@@ -2589,7 +2407,7 @@
+ ARH(I) = ARH(I) + EL(JP1)*Y(I,J1)
+ 200 CONTINUE
+ 210 CONTINUE
+- CALL PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
++ CALL I_PRDICT(T,H,Y,L,N,IPAR,RPAR,IERR)
+ IF(IERR.NE.0) GOTO 8000
+ DO 215 I=1,N
+ YPRIME(I)=(Y(I,1)-ARH(I))/QQQ
+@@ -2603,7 +2421,7 @@
+ C FOR NOW WILL ASSUME THAT WE DO NOT WISH TO SAMPLE
+ C AT THE N+2 STEP POINT
+ C
+- CALL ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE2,TCRAT2,M2,
++ CALL I_ITRAT2(QQQ,Y,YPRIME,N,T,QI,BND,ARH,CRATE2,TCRAT2,M2,
+ + WORKED,YMAX,ERROR,SAVE1,SAVE2,SCALE,PW,MF,MBND,
+ + NIND1,NIND2,NIND3,IPIV,1,ITOL,RTOL,ATOL,IPAR,RPAR,
+ + HUSED,NBSOL,NRE,NQUSED,resid,IERR)
+@@ -2661,10 +2479,10 @@
+ NRE=NRE+1
+ C
+ IF (MF.GE. 23) THEN
+- CALL DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
++ CALL I_DGBSL(PW,MBND(4),N,MBND(1),MBND(2),IPIV,SAVE1,0)
+ NBSOL=NBSOL+1
+ ELSE
+- CALL SOL(N,N,PW,SAVE1,IPIV)
++ CALL I_SOL(N,N,PW,SAVE1,IPIV)
+ NBSOL = NBSOL + 1
+ ENDIF
+ DO 321 I=1,N
+@@ -2758,7 +2576,7 @@
+ IF(NQ.GT.1) FFAIL = 0.5D+0/DBLE(FLOAT(NQ))
+ IF(NQ.GT.2) FRFAIL = 0.5D+0/DBLE(FLOAT(NQ-1))
+ EFAIL = 0.5D+0/DBLE(FLOAT(L))
+- CALL CPYARY(N*L,YHOLD,Y)
++ CALL I_CPYARY(N*L,YHOLD,Y)
+ RMAX = 2.0D+0
+ IF (DABS(H).LE.HMIN*1.00001D+0) THEN
+ C
+@@ -2787,10 +2605,10 @@
+ NQ=NEWQ
+ RH=ONE/(PLFAIL*DBLE(FLOAT(-KFAIL)))
+ L=NQ+1
+- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
++ CALL I_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
+ RC=RC*EL(1)/OLDLO
+ OLDLO=EL(1)
+- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
++ CALL I_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
+ ELSE
+ NEWQ = NQ
+ RH = ONE/ (PRFAIL*DBLE(FLOAT(-KFAIL)))
+@@ -2816,7 +2634,7 @@
+ C *********************************
+ JCHANG = 1
+ RH = DMAX1(HMIN/DABS(H),0.1D+0)
+- CALL HCHOSE(RH,H,OVRIDE)
++ CALL I_HCHOSE(RH,H,OVRIDE)
+ H = H*RH
+ DO 350 I = 1,N
+ Y(I,1) = YHOLD(I,1)
+@@ -2832,11 +2650,11 @@
+ NQ = 1
+ L = 2
+ C RESET ORDER, RECALCULATE ERROR BOUNDS
+- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
++ CALL I_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
+ LMAX = MAXDER + 1
+ RC = RC*EL(1)/OLDLO
+ OLDLO = EL(1)
+- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
++ CALL I_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
+ C NOW JUMP TO NORMAL CONTINUATION POINT
+ GO TO 60
+ C **********************************************************************
+@@ -3003,7 +2821,7 @@
+ GOTO 440
+ ENDIF
+ RH = DMIN1(RH,RMAX)
+- CALL HCHOSE(RH,H,OVRIDE)
++ CALL I_HCHOSE(RH,H,OVRIDE)
+ IF ((JSINUP.LE.20).AND.(KFLAG.EQ.0).AND.(RH.LT.1.1D+0)) THEN
+ C WE HAVE RUN INTO PROBLEMS
+ IDOUB = 10
+@@ -3031,16 +2849,16 @@
+ NQ = NEWQ
+ L = NQ + 1
+ C RESET ORDER,RECALCULATE ERROR BOUNDS
+- CALL COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
++ CALL I_COSET(NQ,EL,ELST,TQ,NCOSET,MAXORD)
+ LMAX = MAXDER + 1
+ RC = RC*EL(1)/OLDLO
+ OLDLO = EL(1)
+- CALL ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
++ CALL I_ERRORS(N,TQ,EDN,E,EUP,BND,EDDN)
+ END IF
+
+ RH = DMAX1(RH,HMIN/DABS(H))
+ RH = DMIN1(RH,HMAX/DABS(H),RMAX)
+- CALL RSCALE(N,L,RH,Y)
++ CALL I_RSCALE(N,L,RH,Y)
+ RMAX = 10.0D+0
+ JCHANG = 1
+ H = H*RH
+@@ -3057,7 +2875,7 @@
+ C INFORMATION NECESSARY TO PERFORM AN INTERPOLATION TO FIND THE
+ C SOLUTION AT THE SPECIFIED OUTPUT POINT IF APPROPRIATE.
+ C ----------------------------------------------------------------------
+- CALL CPYARY(N*L,Y,YHOLD)
++ CALL I_CPYARY(N*L,Y,YHOLD)
+ NSTEP = NSTEP + 1
+ JSINUP = JSINUP + 1
+ JSNOLD = JSNOLD + 1
+@@ -3112,7 +2930,7 @@
+ IF ((T-TOUT)*H.GE.0.0D+0) THEN
+ C HAVE OVERSHOT TOUT
+ WRITE (LOUT,*) T,TOUT,H
+- CALL INTERP(N,JSTART,H,T,Y,TOUT,Y0)
++ CALL I_INTERP(N,JSTART,H,T,Y,TOUT,Y0)
+ HO = H
+ T0 = TOUT
+ IDID = -5
+@@ -3123,7 +2941,7 @@
+ goto 30
+ endif
+ c
+- IF(IJUS.EQ.0) CALL HCHOSE(RH,H,OVRIDE)
++ IF(IJUS.EQ.0) CALL I_HCHOSE(RH,H,OVRIDE)
+ IF(.NOT.FINISH) THEN
+ GO TO 40
+ ELSE
+@@ -3132,9 +2950,9 @@
+
+ 9000 FORMAT (1X,' CORRECTOR HAS NOT CONVERGED')
+ END
+-C ------------------- END OF SUBROUTINE STIFF --------------------------
++C ------------------- END OF SUBROUTINE I_STIFF --------------------------
+
+- SUBROUTINE RSCALE(N,L,RH,Y)
++ SUBROUTINE I_RSCALE(N,L,RH,Y)
+
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C .. SCALAR ARGUMENTS ..
+@@ -3246,7 +3064,7 @@
+ END
+ C---------------------------------------------------------------------------
+
+- SUBROUTINE CPYARY(NELEM,SOURCE,TARGET)
++ SUBROUTINE I_CPYARY(NELEM,SOURCE,TARGET)
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ C
+ C COPIES THE ARRAY SOURCE() INTO THE ARRAY TARGET()
+@@ -3271,7 +3089,7 @@
+ END
+ C----------------------------------------------------------------------------
+
+- SUBROUTINE HCHOSE(RH,H,OVRIDE)
++ SUBROUTINE I_HCHOSE(RH,H,OVRIDE)
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ COMMON / STPSZE / HSTPSZ(2,14)
+ LOGICAL OVRIDE
+@@ -3306,953 +3124,3 @@
+
+ RETURN
+ END
+-C
+-C ************************************************************
+-C
+- DOUBLE PRECISION FUNCTION DLAMCH( CMACH )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- CHARACTER CMACH
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMCH determines double precision machine parameters.
+-*
+-* Arguments
+-* =========
+-*
+-* CMACH (input) CHARACTER*1
+-* Specifies the value to be returned by DLAMCH:
+-* = 'E' or 'e', DLAMCH := eps
+-* = 'S' or 's , DLAMCH := sfmin
+-* = 'B' or 'b', DLAMCH := base
+-* = 'P' or 'p', DLAMCH := eps*base
+-* = 'N' or 'n', DLAMCH := t
+-* = 'R' or 'r', DLAMCH := rnd
+-* = 'M' or 'm', DLAMCH := emin
+-* = 'U' or 'u', DLAMCH := rmin
+-* = 'L' or 'l', DLAMCH := emax
+-* = 'O' or 'o', DLAMCH := rmax
+-*
+-* where
+-*
+-* eps = relative machine precision
+-* sfmin = safe minimum, such that 1/sfmin does not overflow
+-* base = base of the machine
+-* prec = eps*base
+-* t = number of (base) digits in the mantissa
+-* rnd = 1.0 when rounding occurs in addition, 0.0 otherwise
+-* emin = minimum exponent before (gradual) underflow
+-* rmin = underflow threshold - base**(emin-1)
+-* emax = largest exponent before overflow
+-* rmax = overflow threshold - (base**emax)*(1-eps)
+-*
+-* =====================================================================
+-*
+-* .. Parameters ..
+- DOUBLE PRECISION ONE, ZERO
+- PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 )
+-* ..
+-* .. Local Scalars ..
+- LOGICAL FIRST, LRND
+- INTEGER BETA, IMAX, IMIN, IT
+- DOUBLE PRECISION BASE, EMAX, EMIN, EPS, PREC, RMACH, RMAX, RMIN,
+- $ RND, SFMIN, SMALL, T
+-* ..
+-* .. External Functions ..
+- LOGICAL LSAME
+- EXTERNAL LSAME
+-* ..
+-* .. External Subroutines ..
+- EXTERNAL DLAMC2
+-* ..
+-* .. Save statement ..
+- SAVE FIRST, EPS, SFMIN, BASE, T, RND, EMIN, RMIN,
+- $ EMAX, RMAX, PREC
+-* ..
+-* .. Data statements ..
+- DATA FIRST / .TRUE. /
+-* ..
+-* .. Executable Statements ..
+-*
+- IF( FIRST ) THEN
+- FIRST = .FALSE.
+- CALL DLAMC2( BETA, IT, LRND, EPS, IMIN, RMIN, IMAX, RMAX )
+- BASE = BETA
+- T = IT
+- IF( LRND ) THEN
+- RND = ONE
+- EPS = ( BASE**( 1-IT ) ) / 2
+- ELSE
+- RND = ZERO
+- EPS = BASE**( 1-IT )
+- END IF
+- PREC = EPS*BASE
+- EMIN = IMIN
+- EMAX = IMAX
+- SFMIN = RMIN
+- SMALL = ONE / RMAX
+- IF( SMALL.GE.SFMIN ) THEN
+-*
+-* Use SMALL plus a bit, to avoid the possibility of rounding
+-* causing overflow when computing 1/sfmin.
+-*
+- SFMIN = SMALL*( ONE+EPS )
+- END IF
+- END IF
+-*
+- IF( LSAME( CMACH, 'E' ) ) THEN
+- RMACH = EPS
+- ELSE IF( LSAME( CMACH, 'S' ) ) THEN
+- RMACH = SFMIN
+- ELSE IF( LSAME( CMACH, 'B' ) ) THEN
+- RMACH = BASE
+- ELSE IF( LSAME( CMACH, 'P' ) ) THEN
+- RMACH = PREC
+- ELSE IF( LSAME( CMACH, 'N' ) ) THEN
+- RMACH = T
+- ELSE IF( LSAME( CMACH, 'R' ) ) THEN
+- RMACH = RND
+- ELSE IF( LSAME( CMACH, 'M' ) ) THEN
+- RMACH = EMIN
+- ELSE IF( LSAME( CMACH, 'U' ) ) THEN
+- RMACH = RMIN
+- ELSE IF( LSAME( CMACH, 'L' ) ) THEN
+- RMACH = EMAX
+- ELSE IF( LSAME( CMACH, 'O' ) ) THEN
+- RMACH = RMAX
+- END IF
+-*
+- DLAMCH = RMACH
+- RETURN
+-*
+-* End of DLAMCH
+-*
+- END
+-*
+-************************************************************************
+-*
+- SUBROUTINE DLAMC1( BETA, T, RND, IEEE1 )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- LOGICAL IEEE1, RND
+- INTEGER BETA, T
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMC1 determines the machine parameters given by BETA, T, RND, and
+-* IEEE1.
+-*
+-* Arguments
+-* =========
+-*
+-* BETA (output) INTEGER
+-* The base of the machine.
+-*
+-* T (output) INTEGER
+-* The number of ( BETA ) digits in the mantissa.
+-*
+-* RND (output) LOGICAL
+-* Specifies whether proper rounding ( RND = .TRUE. ) or
+-* chopping ( RND = .FALSE. ) occurs in addition. This may not
+-* be a reliable guide to the way in which the machine performs
+-* its arithmetic.
+-*
+-* IEEE1 (output) LOGICAL
+-* Specifies whether rounding appears to be done in the IEEE
+-* 'round to nearest' style.
+-*
+-* Further Details
+-* ===============
+-*
+-* The routine is based on the routine ENVRON by Malcolm and
+-* incorporates suggestions by Gentleman and Marovich. See
+-*
+-* Malcolm M. A. (1972) Algorithms to reveal properties of
+-* floating-point arithmetic. Comms. of the ACM, 15, 949-951.
+-*
+-* Gentleman W. M. and Marovich S. B. (1974) More on algorithms
+-* that reveal properties of floating point arithmetic units.
+-* Comms. of the ACM, 17, 276-277.
+-*
+-* =====================================================================
+-*
+-* .. Local Scalars ..
+- LOGICAL FIRST, LIEEE1, LRND
+- INTEGER LBETA, LT
+- DOUBLE PRECISION A, B, C, F, ONE, QTR, SAVEC, T1, T2
+-* ..
+-* .. External Functions ..
+- DOUBLE PRECISION DLAMC3
+- EXTERNAL DLAMC3
+-* ..
+-* .. Save statement ..
+- SAVE FIRST, LIEEE1, LBETA, LRND, LT
+-* ..
+-* .. Data statements ..
+- DATA FIRST / .TRUE. /
+-* ..
+-* .. Executable Statements ..
+-*
+- IF( FIRST ) THEN
+- FIRST = .FALSE.
+- ONE = 1
+-*
+-* LBETA, LIEEE1, LT and LRND are the local values of BETA,
+-* IEEE1, T and RND.
+-*
+-* Throughout this routine we use the function DLAMC3 to ensure
+-* that relevant values are stored and not held in registers, or
+-* are not affected by optimizers.
+-*
+-* Compute a = 2.0**m with the smallest positive integer m such
+-* that
+-*
+-* fl( a + 1.0 ) = a.
+-*
+- A = 1
+- C = 1
+-*
+-*+ WHILE( C.EQ.ONE )LOOP
+- 10 CONTINUE
+- IF( C.EQ.ONE ) THEN
+- A = 2*A
+- C = DLAMC3( A, ONE )
+- C = DLAMC3( C, -A )
+- GO TO 10
+- END IF
+-*+ END WHILE
+-*
+-* Now compute b = 2.0**m with the smallest positive integer m
+-* such that
+-*
+-* fl( a + b ) .gt. a.
+-*
+- B = 1
+- C = DLAMC3( A, B )
+-*
+-*+ WHILE( C.EQ.A )LOOP
+- 20 CONTINUE
+- IF( C.EQ.A ) THEN
+- B = 2*B
+- C = DLAMC3( A, B )
+- GO TO 20
+- END IF
+-*+ END WHILE
+-*
+-* Now compute the base. a and c are neighbouring floating point
+-* numbers in the interval ( beta**t, beta**( t + 1 ) ) and so
+-* their difference is beta. Adding 0.25 to c is to ensure that it
+-* is truncated to beta and not ( beta - 1 ).
+-*
+- QTR = ONE / 4
+- SAVEC = C
+- C = DLAMC3( C, -A )
+- LBETA = C + QTR
+-*
+-* Now determine whether rounding or chopping occurs, by adding a
+-* bit less than beta/2 and a bit more than beta/2 to a.
+-*
+- B = LBETA
+- F = DLAMC3( B / 2, -B / 100 )
+- C = DLAMC3( F, A )
+- IF( C.EQ.A ) THEN
+- LRND = .TRUE.
+- ELSE
+- LRND = .FALSE.
+- END IF
+- F = DLAMC3( B / 2, B / 100 )
+- C = DLAMC3( F, A )
+- IF( ( LRND ) .AND. ( C.EQ.A ) )
+- $ LRND = .FALSE.
+-*
+-* Try and decide whether rounding is done in the IEEE 'round to
+-* nearest' style. B/2 is half a unit in the last place of the two
+-* numbers A and SAVEC. Furthermore, A is even, i.e. has last bit
+-* zero, and SAVEC is odd. Thus adding B/2 to A should not change
+-* A, but adding B/2 to SAVEC should change SAVEC.
+-*
+- T1 = DLAMC3( B / 2, A )
+- T2 = DLAMC3( B / 2, SAVEC )
+- LIEEE1 = ( T1.EQ.A ) .AND. ( T2.GT.SAVEC ) .AND. LRND
+-*
+-* Now find the mantissa, t. It should be the integer part of
+-* log to the base beta of a, however it is safer to determine t
+-* by powering. So we find t as the smallest positive integer for
+-* which
+-*
+-* fl( beta**t + 1.0 ) = 1.0.
+-*
+- LT = 0
+- A = 1
+- C = 1
+-*
+-*+ WHILE( C.EQ.ONE )LOOP
+- 30 CONTINUE
+- IF( C.EQ.ONE ) THEN
+- LT = LT + 1
+- A = A*LBETA
+- C = DLAMC3( A, ONE )
+- C = DLAMC3( C, -A )
+- GO TO 30
+- END IF
+-*+ END WHILE
+-*
+- END IF
+-*
+- BETA = LBETA
+- T = LT
+- RND = LRND
+- IEEE1 = LIEEE1
+- RETURN
+-*
+-* End of DLAMC1
+-*
+- END
+-*
+-************************************************************************
+-*
+- SUBROUTINE DLAMC2( BETA, T, RND, EPS, EMIN, RMIN, EMAX, RMAX )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- LOGICAL RND
+- INTEGER BETA, EMAX, EMIN, T
+- DOUBLE PRECISION EPS, RMAX, RMIN
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMC2 determines the machine parameters specified in its argument
+-* list.
+-*
+-* Arguments
+-* =========
+-*
+-* BETA (output) INTEGER
+-* The base of the machine.
+-*
+-* T (output) INTEGER
+-* The number of ( BETA ) digits in the mantissa.
+-*
+-* RND (output) LOGICAL
+-* Specifies whether proper rounding ( RND = .TRUE. ) or
+-* chopping ( RND = .FALSE. ) occurs in addition. This may not
+-* be a reliable guide to the way in which the machine performs
+-* its arithmetic.
+-*
+-* EPS (output) DOUBLE PRECISION
+-* The smallest positive number such that
+-*
+-* fl( 1.0 - EPS ) .LT. 1.0,
+-*
+-* where fl denotes the computed value.
+-*
+-* EMIN (output) INTEGER
+-* The minimum exponent before (gradual) underflow occurs.
+-*
+-* RMIN (output) DOUBLE PRECISION
+-* The smallest normalized number for the machine, given by
+-* BASE**( EMIN - 1 ), where BASE is the floating point value
+-* of BETA.
+-*
+-* EMAX (output) INTEGER
+-* The maximum exponent before overflow occurs.
+-*
+-* RMAX (output) DOUBLE PRECISION
+-* The largest positive number for the machine, given by
+-* BASE**EMAX * ( 1 - EPS ), where BASE is the floating point
+-* value of BETA.
+-*
+-* Further Details
+-* ===============
+-*
+-* The computation of EPS is based on a routine PARANOIA by
+-* W. Kahan of the University of California at Berkeley.
+-*
+-* =====================================================================
+-*
+-* .. Local Scalars ..
+- LOGICAL FIRST, IEEE, IWARN, LIEEE1, LRND
+- INTEGER GNMIN, GPMIN, I, LBETA, LEMAX, LEMIN, LT,
+- $ NGNMIN, NGPMIN
+- DOUBLE PRECISION A, B, C, HALF, LEPS, LRMAX, LRMIN, ONE, RBASE,
+- $ SIXTH, SMALL, THIRD, TWO, ZERO
+-* ..
+-* .. External Functions ..
+- DOUBLE PRECISION DLAMC3
+- EXTERNAL DLAMC3
+-* ..
+-* .. External Subroutines ..
+- EXTERNAL DLAMC1, DLAMC4, DLAMC5
+-* ..
+-* .. Intrinsic Functions ..
+- INTRINSIC ABS, MAX, MIN
+-* ..
+-* .. Save statement ..
+- SAVE FIRST, IWARN, LBETA, LEMAX, LEMIN, LEPS, LRMAX,
+- $ LRMIN, LT
+-* ..
+-* .. Data statements ..
+- DATA FIRST / .TRUE. / , IWARN / .FALSE. /
+-* ..
+-* .. Executable Statements ..
+-*
+- IF( FIRST ) THEN
+- FIRST = .FALSE.
+- ZERO = 0
+- ONE = 1
+- TWO = 2
+-*
+-* LBETA, LT, LRND, LEPS, LEMIN and LRMIN are the local values of
+-* BETA, T, RND, EPS, EMIN and RMIN.
+-*
+-* Throughout this routine we use the function DLAMC3 to ensure
+-* that relevant values are stored and not held in registers, or
+-* are not affected by optimizers.
+-*
+-* DLAMC1 returns the parameters LBETA, LT, LRND and LIEEE1.
+-*
+- CALL DLAMC1( LBETA, LT, LRND, LIEEE1 )
+-*
+-* Start to find EPS.
+-*
+- B = LBETA
+- A = B**( -LT )
+- LEPS = A
+-*
+-* Try some tricks to see whether or not this is the correct EPS.
+-*
+- B = TWO / 3
+- HALF = ONE / 2
+- SIXTH = DLAMC3( B, -HALF )
+- THIRD = DLAMC3( SIXTH, SIXTH )
+- B = DLAMC3( THIRD, -HALF )
+- B = DLAMC3( B, SIXTH )
+- B = ABS( B )
+- IF( B.LT.LEPS )
+- $ B = LEPS
+-*
+- LEPS = 1
+-*
+-*+ WHILE( ( LEPS.GT.B ).AND.( B.GT.ZERO ) )LOOP
+- 10 CONTINUE
+- IF( ( LEPS.GT.B ) .AND. ( B.GT.ZERO ) ) THEN
+- LEPS = B
+- C = DLAMC3( HALF*LEPS, ( TWO**5 )*( LEPS**2 ) )
+- C = DLAMC3( HALF, -C )
+- B = DLAMC3( HALF, C )
+- C = DLAMC3( HALF, -B )
+- B = DLAMC3( HALF, C )
+- GO TO 10
+- END IF
+-*+ END WHILE
+-*
+- IF( A.LT.LEPS )
+- $ LEPS = A
+-*
+-* Computation of EPS complete.
+-*
+-* Now find EMIN. Let A = + or - 1, and + or - (1 + BASE**(-3)).
+-* Keep dividing A by BETA until (gradual) underflow occurs. This
+-* is detected when we cannot recover the previous A.
+-*
+- RBASE = ONE / LBETA
+- SMALL = ONE
+- DO 20 I = 1, 3
+- SMALL = DLAMC3( SMALL*RBASE, ZERO )
+- 20 CONTINUE
+- A = DLAMC3( ONE, SMALL )
+- CALL DLAMC4( NGPMIN, ONE, LBETA )
+- CALL DLAMC4( NGNMIN, -ONE, LBETA )
+- CALL DLAMC4( GPMIN, A, LBETA )
+- CALL DLAMC4( GNMIN, -A, LBETA )
+- IEEE = .FALSE.
+-*
+- IF( ( NGPMIN.EQ.NGNMIN ) .AND. ( GPMIN.EQ.GNMIN ) ) THEN
+- IF( NGPMIN.EQ.GPMIN ) THEN
+- LEMIN = NGPMIN
+-* ( Non twos-complement machines, no gradual underflow;
+-* e.g., VAX )
+- ELSE IF( ( GPMIN-NGPMIN ).EQ.3 ) THEN
+- LEMIN = NGPMIN - 1 + LT
+- IEEE = .TRUE.
+-* ( Non twos-complement machines, with gradual underflow;
+-* e.g., IEEE standard followers )
+- ELSE
+- LEMIN = MIN( NGPMIN, GPMIN )
+-* ( A guess; no known machine )
+- IWARN = .TRUE.
+- END IF
+-*
+- ELSE IF( ( NGPMIN.EQ.GPMIN ) .AND. ( NGNMIN.EQ.GNMIN ) ) THEN
+- IF( ABS( NGPMIN-NGNMIN ).EQ.1 ) THEN
+- LEMIN = MAX( NGPMIN, NGNMIN )
+-* ( Twos-complement machines, no gradual underflow;
+-* e.g., CYBER 205 )
+- ELSE
+- LEMIN = MIN( NGPMIN, NGNMIN )
+-* ( A guess; no known machine )
+- IWARN = .TRUE.
+- END IF
+-*
+- ELSE IF( ( ABS( NGPMIN-NGNMIN ).EQ.1 ) .AND.
+- $ ( GPMIN.EQ.GNMIN ) ) THEN
+- IF( ( GPMIN-MIN( NGPMIN, NGNMIN ) ).EQ.3 ) THEN
+- LEMIN = MAX( NGPMIN, NGNMIN ) - 1 + LT
+-* ( Twos-complement machines with gradual underflow;
+-* no known machine )
+- ELSE
+- LEMIN = MIN( NGPMIN, NGNMIN )
+-* ( A guess; no known machine )
+- IWARN = .TRUE.
+- END IF
+-*
+- ELSE
+- LEMIN = MIN( NGPMIN, NGNMIN, GPMIN, GNMIN )
+-* ( A guess; no known machine )
+- IWARN = .TRUE.
+- END IF
+-***
+-* Comment out this if block if EMIN is ok
+- IF( IWARN ) THEN
+- FIRST = .TRUE.
+- WRITE( 6, FMT = 9999 )LEMIN
+- END IF
+-***
+-*
+-* Assume IEEE arithmetic if we found denormalised numbers above,
+-* or if arithmetic seems to round in the IEEE style, determined
+-* in routine DLAMC1. A true IEEE machine should have both things
+-* true; however, faulty machines may have one or the other.
+-*
+- IEEE = IEEE .OR. LIEEE1
+-*
+-* Compute RMIN by successive division by BETA. We could compute
+-* RMIN as BASE**( EMIN - 1 ), but some machines underflow during
+-* this computation.
+-*
+- LRMIN = 1
+- DO 30 I = 1, 1 - LEMIN
+- LRMIN = DLAMC3( LRMIN*RBASE, ZERO )
+- 30 CONTINUE
+-*
+-* Finally, call DLAMC5 to compute EMAX and RMAX.
+-*
+- CALL DLAMC5( LBETA, LT, LEMIN, IEEE, LEMAX, LRMAX )
+- END IF
+-*
+- BETA = LBETA
+- T = LT
+- RND = LRND
+- EPS = LEPS
+- EMIN = LEMIN
+- RMIN = LRMIN
+- EMAX = LEMAX
+- RMAX = LRMAX
+-*
+- RETURN
+-*
+- 9999 FORMAT( / / ' WARNING. The value EMIN may be incorrect:-',
+- $ ' EMIN = ', I8, /
+- $ ' If, after inspection, the value EMIN looks',
+- $ ' acceptable please comment out ',
+- $ / ' the IF block as marked within the code of routine',
+- $ ' DLAMC2,', / ' otherwise supply EMIN explicitly.', / )
+-*
+-* End of DLAMC2
+-*
+- END
+-*
+-************************************************************************
+-*
+- DOUBLE PRECISION FUNCTION DLAMC3( A, B )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- DOUBLE PRECISION A, B
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMC3 is intended to force A and B to be stored prior to doing
+-* the addition of A and B , for use in situations where optimizers
+-* might hold one of these in a register.
+-*
+-* Arguments
+-* =========
+-*
+-* A, B (input) DOUBLE PRECISION
+-* The values A and B.
+-*
+-* =====================================================================
+-*
+-* .. Executable Statements ..
+-*
+- DLAMC3 = A + B
+-*
+- RETURN
+-*
+-* End of DLAMC3
+-*
+- END
+-*
+-************************************************************************
+-*
+- SUBROUTINE DLAMC4( EMIN, START, BASE )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- INTEGER BASE, EMIN
+- DOUBLE PRECISION START
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMC4 is a service routine for DLAMC2.
+-*
+-* Arguments
+-* =========
+-*
+-* EMIN (output) EMIN
+-* The minimum exponent before (gradual) underflow, computed by
+-* setting A = START and dividing by BASE until the previous A
+-* can not be recovered.
+-*
+-* START (input) DOUBLE PRECISION
+-* The starting point for determining EMIN.
+-*
+-* BASE (input) INTEGER
+-* The base of the machine.
+-*
+-* =====================================================================
+-*
+-* .. Local Scalars ..
+- INTEGER I
+- DOUBLE PRECISION A, B1, B2, C1, C2, D1, D2, ONE, RBASE, ZERO
+-* ..
+-* .. External Functions ..
+- DOUBLE PRECISION DLAMC3
+- EXTERNAL DLAMC3
+-* ..
+-* .. Executable Statements ..
+-*
+- A = START
+- ONE = 1
+- RBASE = ONE / BASE
+- ZERO = 0
+- EMIN = 1
+- B1 = DLAMC3( A*RBASE, ZERO )
+- C1 = A
+- C2 = A
+- D1 = A
+- D2 = A
+-*+ WHILE( ( C1.EQ.A ).AND.( C2.EQ.A ).AND.
+-* $ ( D1.EQ.A ).AND.( D2.EQ.A ) )LOOP
+- 10 CONTINUE
+- IF( ( C1.EQ.A ) .AND. ( C2.EQ.A ) .AND. ( D1.EQ.A ) .AND.
+- $ ( D2.EQ.A ) ) THEN
+- EMIN = EMIN - 1
+- A = B1
+- B1 = DLAMC3( A / BASE, ZERO )
+- C1 = DLAMC3( B1*BASE, ZERO )
+- D1 = ZERO
+- DO 20 I = 1, BASE
+- D1 = D1 + B1
+- 20 CONTINUE
+- B2 = DLAMC3( A*RBASE, ZERO )
+- C2 = DLAMC3( B2 / RBASE, ZERO )
+- D2 = ZERO
+- DO 30 I = 1, BASE
+- D2 = D2 + B2
+- 30 CONTINUE
+- GO TO 10
+- END IF
+-*+ END WHILE
+-*
+- RETURN
+-*
+-* End of DLAMC4
+-*
+- END
+-*
+-************************************************************************
+-*
+- SUBROUTINE DLAMC5( BETA, P, EMIN, IEEE, EMAX, RMAX )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* October 31, 1992
+-*
+-* .. Scalar Arguments ..
+- LOGICAL IEEE
+- INTEGER BETA, EMAX, EMIN, P
+- DOUBLE PRECISION RMAX
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* DLAMC5 attempts to compute RMAX, the largest machine floating-point
+-* number, without overflow. It assumes that EMAX + abs(EMIN) sum
+-* approximately to a power of 2. It will fail on machines where this
+-* assumption does not hold, for example, the Cyber 205 (EMIN = -28625,
+-* EMAX = 28718). It will also fail if the value supplied for EMIN is
+-* too large (i.e. too close to zero), probably with overflow.
+-*
+-* Arguments
+-* =========
+-*
+-* BETA (input) INTEGER
+-* The base of floating-point arithmetic.
+-*
+-* P (input) INTEGER
+-* The number of base BETA digits in the mantissa of a
+-* floating-point value.
+-*
+-* EMIN (input) INTEGER
+-* The minimum exponent before (gradual) underflow.
+-*
+-* IEEE (input) LOGICAL
+-* A logical flag specifying whether or not the arithmetic
+-* system is thought to comply with the IEEE standard.
+-*
+-* EMAX (output) INTEGER
+-* The largest exponent before overflow
+-*
+-* RMAX (output) DOUBLE PRECISION
+-* The largest machine floating-point number.
+-*
+-* =====================================================================
+-*
+-* .. Parameters ..
+- DOUBLE PRECISION ZERO, ONE
+- PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 )
+-* ..
+-* .. Local Scalars ..
+- INTEGER EXBITS, EXPSUM, I, LEXP, NBITS, TRY, UEXP
+- DOUBLE PRECISION OLDY, RECBAS, Y, Z
+-* ..
+-* .. External Functions ..
+- DOUBLE PRECISION DLAMC3
+- EXTERNAL DLAMC3
+-* ..
+-* .. Intrinsic Functions ..
+- INTRINSIC MOD
+-* ..
+-* .. Executable Statements ..
+-*
+-* First compute LEXP and UEXP, two powers of 2 that bound
+-* abs(EMIN). We then assume that EMAX + abs(EMIN) will sum
+-* approximately to the bound that is closest to abs(EMIN).
+-* (EMAX is the exponent of the required number RMAX).
+-*
+- LEXP = 1
+- EXBITS = 1
+- 10 CONTINUE
+- TRY = LEXP*2
+- IF( TRY.LE.( -EMIN ) ) THEN
+- LEXP = TRY
+- EXBITS = EXBITS + 1
+- GO TO 10
+- END IF
+- IF( LEXP.EQ.-EMIN ) THEN
+- UEXP = LEXP
+- ELSE
+- UEXP = TRY
+- EXBITS = EXBITS + 1
+- END IF
+-*
+-* Now -LEXP is less than or equal to EMIN, and -UEXP is greater
+-* than or equal to EMIN. EXBITS is the number of bits needed to
+-* store the exponent.
+-*
+- IF( ( UEXP+EMIN ).GT.( -LEXP-EMIN ) ) THEN
+- EXPSUM = 2*LEXP
+- ELSE
+- EXPSUM = 2*UEXP
+- END IF
+-*
+-* EXPSUM is the exponent range, approximately equal to
+-* EMAX - EMIN + 1 .
+-*
+- EMAX = EXPSUM + EMIN - 1
+- NBITS = 1 + EXBITS + P
+-*
+-* NBITS is the total number of bits needed to store a
+-* floating-point number.
+-*
+- IF( ( MOD( NBITS, 2 ).EQ.1 ) .AND. ( BETA.EQ.2 ) ) THEN
+-*
+-* Either there are an odd number of bits used to store a
+-* floating-point number, which is unlikely, or some bits are
+-* not used in the representation of numbers, which is possible,
+-* (e.g. Cray machines) or the mantissa has an implicit bit,
+-* (e.g. IEEE machines, Dec Vax machines), which is perhaps the
+-* most likely. We have to assume the last alternative.
+-* If this is true, then we need to reduce EMAX by one because
+-* there must be some way of representing zero in an implicit-bit
+-* system. On machines like Cray, we are reducing EMAX by one
+-* unnecessarily.
+-*
+- EMAX = EMAX - 1
+- END IF
+-*
+- IF( IEEE ) THEN
+-*
+-* Assume we are on an IEEE machine which reserves one exponent
+-* for infinity and NaN.
+-*
+- EMAX = EMAX - 1
+- END IF
+-*
+-* Now create RMAX, the largest machine number, which should
+-* be equal to (1.0 - BETA**(-P)) * BETA**EMAX .
+-*
+-* First compute 1.0 - BETA**(-P), being careful that the
+-* result is less than 1.0 .
+-*
+- RECBAS = ONE / BETA
+- Z = BETA - ONE
+- Y = ZERO
+- DO 20 I = 1, P
+- Z = Z*RECBAS
+- IF( Y.LT.ONE )
+- $ OLDY = Y
+- Y = DLAMC3( Y, Z )
+- 20 CONTINUE
+- IF( Y.GE.ONE )
+- $ Y = OLDY
+-*
+-* Now multiply by BETA**EMAX to get RMAX.
+-*
+- DO 30 I = 1, EMAX
+- Y = DLAMC3( Y*BETA, ZERO )
+- 30 CONTINUE
+-*
+- RMAX = Y
+- RETURN
+-*
+-* End of DLAMC5
+-*
+- END
+- LOGICAL FUNCTION LSAME( CA, CB )
+-*
+-* -- LAPACK auxiliary routine (version 2.0) --
+-* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+-* Courant Institute, Argonne National Lab, and Rice University
+-* September 30, 1994
+-*
+-* .. Scalar Arguments ..
+- CHARACTER CA, CB
+-* ..
+-*
+-* Purpose
+-* =======
+-*
+-* LSAME returns .TRUE. if CA is the same letter as CB regardless of
+-* case.
+-*
+-* Arguments
+-* =========
+-*
+-* CA (input) CHARACTER*1
+-* CB (input) CHARACTER*1
+-* CA and CB specify the single characters to be compared.
+-*
+-* =====================================================================
+-*
+-* .. Intrinsic Functions ..
+- INTRINSIC ICHAR
+-* ..
+-* .. Local Scalars ..
+- INTEGER INTA, INTB, ZCODE
+-* ..
+-* .. Executable Statements ..
+-*
+-* Test if the characters are equal
+-*
+- LSAME = CA.EQ.CB
+- IF( LSAME )
+- $ RETURN
+-*
+-* Now test for equivalence if both characters are alphabetic.
+-*
+- ZCODE = ICHAR( 'Z' )
+-*
+-* Use 'Z' rather than 'A' so that ASCII can be detected on Prime
+-* machines, on which ICHAR returns a value with bit 8 set.
+-* ICHAR('A') on Prime machines returns 193 which is the same as
+-* ICHAR('A') on an EBCDIC machine.
+-*
+- INTA = ICHAR( CA )
+- INTB = ICHAR( CB )
+-*
+- IF( ZCODE.EQ.90 .OR. ZCODE.EQ.122 ) THEN
+-*
+-* ASCII is assumed - ZCODE is the ASCII code of either lower or
+-* upper case 'Z'.
+-*
+- IF( INTA.GE.97 .AND. INTA.LE.122 ) INTA = INTA - 32
+- IF( INTB.GE.97 .AND. INTB.LE.122 ) INTB = INTB - 32
+-*
+- ELSE IF( ZCODE.EQ.233 .OR. ZCODE.EQ.169 ) THEN
+-*
+-* EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or
+-* upper case 'Z'.
+-*
+- IF( INTA.GE.129 .AND. INTA.LE.137 .OR.
+- $ INTA.GE.145 .AND. INTA.LE.153 .OR.
+- $ INTA.GE.162 .AND. INTA.LE.169 ) INTA = INTA + 64
+- IF( INTB.GE.129 .AND. INTB.LE.137 .OR.
+- $ INTB.GE.145 .AND. INTB.LE.153 .OR.
+- $ INTB.GE.162 .AND. INTB.LE.169 ) INTB = INTB + 64
+-*
+- ELSE IF( ZCODE.EQ.218 .OR. ZCODE.EQ.250 ) THEN
+-*
+-* ASCII is assumed, on Prime machines - ZCODE is the ASCII code
+-* plus 128 of either lower or upper case 'Z'.
+-*
+- IF( INTA.GE.225 .AND. INTA.LE.250 ) INTA = INTA - 32
+- IF( INTB.GE.225 .AND. INTB.LE.250 ) INTB = INTB - 32
+- END IF
+- LSAME = INTA.EQ.INTB
+-*
+-* RETURN
+-*
+-* End of LSAME
+-*
+- END
+-
+-C----------------------------------------------------------------------------
+-
diff --git a/src/configure b/src/configure
deleted file mode 100755
index 08faf6d..0000000
--- a/src/configure
+++ /dev/null
@@ -1,4123 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-PACKAGE_URL=
-
-ac_unique_file="configure.base"
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-STRIP
-COPY_FLAGS
-RANLIB
-LN_S
-SHLEXT
-canonical_host_type
-OCTAVE_VERSION
-OCTAVE
-CXXPICFLAG
-CXXFLAGS
-CXX
-FPICFLAG
-FFLAGS
-F77
-CPICFLAG
-altopath
-altmpath
-altpath
-xpath
-opath
-mpath
-subver
-ver
-MKOCTFILE
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-TOPDIR
-VERSION
-PACKAGE
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-with_path
-with_mpath
-with_opath
-with_xpath
-with_altpath
-with_altmpath
-with_altopath
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
- cat <<\_ACEOF
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-path install path prefix
- --with-mpath override path for m-files
- --with-opath override path for oct-files
- --with-xpath override path for executables
- --with-altpath alternative functions install path prefix
- --with-altmpath override path for alternative m-files
- --with-altopath override path for alternative oct-files
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to the package provider.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-configure
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-PACKAGE=octave-forge
-MAJOR_VERSION=0
-MINOR_VERSION=1
-PATCH_LEVEL=0
-
-
-
-VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL
-
-
-
-TOPDIR=`pwd`
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-# Extract the first word of "mkoctfile", so it can be a program name with args.
-set dummy mkoctfile; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MKOCTFILE+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$MKOCTFILE"; then
- ac_cv_prog_MKOCTFILE="$MKOCTFILE" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_MKOCTFILE="mkoctfile"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-MKOCTFILE=$ac_cv_prog_MKOCTFILE
-if test -n "$MKOCTFILE"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKOCTFILE" >&5
-$as_echo "$MKOCTFILE" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-test -z "$MKOCTFILE" && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no mkoctfile found on path" >&5
-$as_echo "$as_me: WARNING: no mkoctfile found on path" >&2;}
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-path was given.
-if test "${with_path+set}" = set; then :
- withval=$with_path; path=$withval
-fi
-
-
-# Check whether --with-mpath was given.
-if test "${with_mpath+set}" = set; then :
- withval=$with_mpath; mpath=$withval
-fi
-
-
-# Check whether --with-opath was given.
-if test "${with_opath+set}" = set; then :
- withval=$with_opath; opath=$withval
-fi
-
-
-# Check whether --with-xpath was given.
-if test "${with_xpath+set}" = set; then :
- withval=$with_xpath; xpath=$withval
-fi
-
-
-# Check whether --with-altpath was given.
-if test "${with_altpath+set}" = set; then :
- withval=$with_altpath; altpath=$withval
-fi
-
-
-# Check whether --with-altmpath was given.
-if test "${with_altmpath+set}" = set; then :
- withval=$with_altmpath; altmpath=$withval
-fi
-
-
-# Check whether --with-altopath was given.
-if test "${with_altopath+set}" = set; then :
- withval=$with_altopath; altopath=$withval
-fi
-
-
-if test -n "$path" ; then
- test -z "$mpath" && mpath=$path
- test -z "$opath" && opath=$path/oct
- test -z "$xpath" && xpath=$path/bin
- test -z "$altpath" && altpath=$path-alternatives
-fi
-
-if test -n "$altpath" ; then
- test -z "$altmpath" && altmpath=$altpath
- test -z "$altopath" && altopath=$altpath/oct
-fi
-
-#if test -z "$mpath" || test -z "$opath" || test -z "$xpath" || test -z "$altmpath" || test -z "$altopath" || test -z "$ver" ; then
-if test -z "$mpath" || test -z "$opath" || test -z "$xpath" || test -z "$ver" ; then
- cat > conftest.cc <<EOF
-#include <octave/config.h>
-#include <octave/version.h>
-#include <octave/defaults.h>
-
-#define INFOV "\nINFOV=" OCTAVE_VERSION "\n"
-
-#define INFOH "\nINFOH=" OCTAVE_CANONICAL_HOST_TYPE "\n"
-
-#ifdef OCTAVE_LOCALVERFCNFILEDIR
-# define INFOM "\nINFOM=" OCTAVE_LOCALVERFCNFILEDIR "\n"
-#else
-# define INFOM "\nINFOM=" OCTAVE_LOCALFCNFILEPATH "\n"
-#endif
-
-#ifdef OCTAVE_LOCALVEROCTFILEDIR
-# define INFOO "\nINFOO=" OCTAVE_LOCALVEROCTFILEDIR "\n"
-#else
-# define INFOO "\nINFOO=" OCTAVE_LOCALOCTFILEPATH "\n"
-#endif
-
-#ifdef OCTAVE_LOCALVERARCHLIBDIR
-# define INFOX "\nINFOX=" OCTAVE_LOCALVERARCHLIBDIR "\n"
-#else
-# define INFOX "\nINFOX=" OCTAVE_LOCALARCHLIBDIR "\n"
-#endif
-
-const char *infom = INFOM;
-const char *infoo = INFOO;
-const char *infox = INFOX;
-const char *infoh = INFOH;
-const char *infov = INFOV;
-EOF
-
- $MKOCTFILE conftest.cc || as_fn_error $? "Could not run $MKOCTFILE" "$LINENO" 5
-
- eval `strings conftest.o | grep "^INFO.=" | sed -e "s,//.*$,,"`
- rm -rf conftest*
-
- ver=`echo $INFOV | sed -e "s/\.//" -e "s/\..*$//"`
- subver=`echo $INFOV | sed -e "s/^[^.]*[.][^.]*[.]//"`
- alt_mbase=`echo $INFOM | sed -e "s,\/[^\/]*$,,"`
- alt_obase=`echo $INFOO | sed -e "s,/site.*$,/site,"`
- test -z "$mpath" && mpath=$INFOM/octave-forge
- test -z "$opath" && opath=$INFOO/octave-forge
- test -z "$xpath" && xpath=$INFOX
- test -z "$altmpath" && altmpath=$alt_mbase/octave-forge-alternatives/m
- test -z "$altopath" && altopath=$alt_obase/octave-forge-alternatives/oct/$INFOH
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: retrieving compile and link flags from $MKOCTFILE" >&5
-$as_echo "retrieving compile and link flags from $MKOCTFILE" >&6; }
-CC=`$MKOCTFILE -p CC`
-CFLAGS=`$MKOCTFILE -p CFLAGS`
-CPPFLAGS=`$MKOCTFILE -p CPPFLAGS`
-CPICFLAG=`$MKOCTFILE -p CPICFLAG`
-LDFLAGS=`$MKOCTFILE -p LDFLAGS`
-LIBS=`$MKOCTFILE -p LIBS`
-
-
-
-
-
-F77=`$MKOCTFILE -p F77`
-FFLAGS=`$MKOCTFILE -p FFLAGS`
-FPICFLAG=`$MKOCTFILE -p FPICFLAG`
-
-
-
-
-CXX=`$MKOCTFILE -p CXX`
-CXXFLAGS=`$MKOCTFILE -p CXXFLAGS`
-CXXPICFLAG=`$MKOCTFILE -p CXXPICFLAG`
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for F77_FUNC" >&5
-$as_echo_n "checking for F77_FUNC... " >&6; }
-cat > conftest.cc << EOF
-#include <octave/config.h>
-int F77_FUNC (hello, HELLO) (const int &n);
-EOF
-ac_try="$MKOCTFILE -c conftest.cc"
-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- MKOCTFILE="$MKOCTFILE -DF77_FUNC=F77_FCN"
-fi
-
-
-
-
-
-
-
-# Extract the first word of "octave", so it can be a program name with args.
-set dummy octave; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCTAVE+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OCTAVE"; then
- ac_cv_prog_OCTAVE="$OCTAVE" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OCTAVE="octave"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OCTAVE=$ac_cv_prog_OCTAVE
-if test -n "$OCTAVE"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCTAVE" >&5
-$as_echo "$OCTAVE" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OCTAVE_VERSION in Octave" >&5
-$as_echo_n "checking for OCTAVE_VERSION in Octave... " >&6; }
-OCTAVE_VERSION=`echo "disp(OCTAVE_VERSION)" | $OCTAVE -qf`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCTAVE_VERSION" >&5
-$as_echo "$OCTAVE_VERSION" >&6; }
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for octave_config_info('canonical_host_type') in Octave" >&5
-$as_echo_n "checking for octave_config_info('canonical_host_type') in Octave... " >&6; }
-canonical_host_type=`echo "disp(octave_config_info('canonical_host_type'))" | $OCTAVE -qf`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $canonical_host_type" >&5
-$as_echo "$canonical_host_type" >&6; }
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for octave_config_info('SHLEXT') in Octave" >&5
-$as_echo_n "checking for octave_config_info('SHLEXT') in Octave... " >&6; }
-SHLEXT=`echo "disp(octave_config_info('SHLEXT'))" | $OCTAVE -qf`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHLEXT" >&5
-$as_echo "$SHLEXT" >&6; }
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-
-COPY_FLAGS="-Rfp"
-case "$canonical_host_type" in
- *-*-linux*)
- COPY_FLAGS="-fdp"
- ;;
-esac
-
-
-STRIP=${STRIP-strip}
-# Extract the first word of "$STRIP", so it can be a program name with args.
-set dummy $STRIP; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="$STRIP"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":"
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-case "$canonical_host_type" in
- powerpc-apple-darwin*|*-sgi-*)
- STRIP=:
- ;;
- *-cygwin-*|*-mingw-*)
- MKOCTFILE="$MKOCTFILE -s"
- ;;
-esac
-
-
-CONFIGURE_OUTPUTS="Makeconf"
-STATUS_MSG="
-octave commands will install into the following directories:
- m-files: $mpath
- oct-files: $opath
- binaries: $xpath
-alternatives:
- m-files: $altmpath
- oct-files: $altopath
-
-shell commands will install into the following directories:
- binaries: $bindir
- man pages: $mandir
- libraries: $libdir
- headers: $includedir
-
-octave-forge is configured with
- octave: $OCTAVE (version $OCTAVE_VERSION)
- mkoctfile: $MKOCTFILE for Octave $subver"
- ac_config_files="$ac_config_files $CONFIGURE_OUTPUTS"
-
-
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then branch to the quote section. Otherwise,
-# look for a macro that doesn't take arguments.
-ac_script='
-:mline
-/\\$/{
- N
- s,\\\n,,
- b mline
-}
-t clear
-:clear
-s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
-t quote
-s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
-t quote
-b any
-:quote
-s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
-s/\[/\\&/g
-s/\]/\\&/g
-s/\$/$$/g
-H
-:any
-${
- g
- s/^\n//
- s/\n/ /g
- p
-}
-'
-DEFS=`sed -n "$ac_script" confdefs.h`
-
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Report bugs to the package provider."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h | --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "$CONFIGURE_OUTPUTS") CONFIG_FILES="$CONFIG_FILES $CONFIGURE_OUTPUTS" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-
-eval set X " :F $CONFIG_FILES "
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
-
-
-
- esac
-
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
-
- echo " "
- echo " \"\$prefix\" is $prefix"
- echo " \"\$exec_prefix\" is $exec_prefix"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STATUS_MSG
-
-find . -name NOINSTALL -print # shows which toolboxes won't be installed
-" >&5
-$as_echo "$STATUS_MSG
-
-find . -name NOINSTALL -print # shows which toolboxes won't be installed
-" >&6; }
diff --git a/src/configure.base b/src/configure.base
deleted file mode 100644
index d3069df..0000000
--- a/src/configure.base
+++ /dev/null
@@ -1,319 +0,0 @@
-dnl The configure script is generated by autogen.sh from configure.base
-dnl and the various configure.add files in the source tree. Edit
-dnl configure.base and reprocess rather than modifying ./configure.
-
-dnl autoconf 2.13 certainly doesn't work! What is the minimum requirement?
-AC_PREREQ(2.2)
-
-AC_INIT(configure.base)
-
-PACKAGE=octave-forge
-MAJOR_VERSION=0
-MINOR_VERSION=1
-PATCH_LEVEL=0
-
-dnl Kill caching --- this ought to be the default
-define([AC_CACHE_LOAD], )dnl
-define([AC_CACHE_SAVE], )dnl
-
-dnl uncomment to put support files in another directory
-dnl AC_CONFIG_AUX_DIR(admin)
-
-VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL
-AC_SUBST(PACKAGE)
-AC_SUBST(VERSION)
-
-dnl need to find admin files, so keep track of the top dir.
-TOPDIR=`pwd`
-AC_SUBST(TOPDIR)
-
-dnl if mkoctfile doesn't work, then we need the following:
-dnl AC_PROG_CXX
-dnl AC_PROG_F77
-
-dnl Need C compiler regardless so define it in a way that
-dnl makes autoconf happy and we can override whatever we
-dnl need with mkoctfile -p.
-dnl XXX FIXME XXX should use mkoctfile to get CC and CFLAGS
-AC_PROG_CC
-
-dnl XXX FIXME XXX need tests for -p -c -s in mkoctfile.
-
-dnl *******************************************************************
-dnl Sort out mkoctfile version number and install paths
-
-dnl XXX FIXME XXX latest octave has octave-config so we don't
-dnl need to discover things here. Doesn't have --exe-site-dir
-dnl but defines --oct-site-dir and --m-site-dir
-
-dnl Check for mkoctfile
-AC_CHECK_PROG(MKOCTFILE,mkoctfile,mkoctfile)
-test -z "$MKOCTFILE" && AC_MSG_WARN([no mkoctfile found on path])
-
-AC_SUBST(ver)
-AC_SUBST(subver)
-AC_SUBST(mpath)
-AC_SUBST(opath)
-AC_SUBST(xpath)
-AC_SUBST(altpath)
-AC_SUBST(altmpath)
-AC_SUBST(altopath)
-
-AC_ARG_WITH(path,
- [ --with-path install path prefix],
- [ path=$withval ])
-AC_ARG_WITH(mpath,
- [ --with-mpath override path for m-files],
- [mpath=$withval])
-AC_ARG_WITH(opath,
- [ --with-opath override path for oct-files],
- [opath=$withval])
-AC_ARG_WITH(xpath,
- [ --with-xpath override path for executables],
- [xpath=$withval])
-AC_ARG_WITH(altpath,
- [ --with-altpath alternative functions install path prefix],
- [ altpath=$withval ])
-AC_ARG_WITH(altmpath,
- [ --with-altmpath override path for alternative m-files],
- [altmpath=$withval])
-AC_ARG_WITH(altopath,
- [ --with-altopath override path for alternative oct-files],
- [altopath=$withval])
-
-if test -n "$path" ; then
- test -z "$mpath" && mpath=$path
- test -z "$opath" && opath=$path/oct
- test -z "$xpath" && xpath=$path/bin
- test -z "$altpath" && altpath=$path-alternatives
-fi
-
-if test -n "$altpath" ; then
- test -z "$altmpath" && altmpath=$altpath
- test -z "$altopath" && altopath=$altpath/oct
-fi
-
-dnl Don't query if path/ver are given in the configure environment
-#if test -z "$mpath" || test -z "$opath" || test -z "$xpath" || test -z "$altmpath" || test -z "$altopath" || test -z "$ver" ; then
-if test -z "$mpath" || test -z "$opath" || test -z "$xpath" || test -z "$ver" ; then
- dnl Construct program to get mkoctfile version and local install paths
- cat > conftest.cc <<EOF
-#include <octave/config.h>
-#include <octave/version.h>
-#include <octave/defaults.h>
-
-#define INFOV "\nINFOV=" OCTAVE_VERSION "\n"
-
-#define INFOH "\nINFOH=" OCTAVE_CANONICAL_HOST_TYPE "\n"
-
-#ifdef OCTAVE_LOCALVERFCNFILEDIR
-# define INFOM "\nINFOM=" OCTAVE_LOCALVERFCNFILEDIR "\n"
-#else
-# define INFOM "\nINFOM=" OCTAVE_LOCALFCNFILEPATH "\n"
-#endif
-
-#ifdef OCTAVE_LOCALVEROCTFILEDIR
-# define INFOO "\nINFOO=" OCTAVE_LOCALVEROCTFILEDIR "\n"
-#else
-# define INFOO "\nINFOO=" OCTAVE_LOCALOCTFILEPATH "\n"
-#endif
-
-#ifdef OCTAVE_LOCALVERARCHLIBDIR
-# define INFOX "\nINFOX=" OCTAVE_LOCALVERARCHLIBDIR "\n"
-#else
-# define INFOX "\nINFOX=" OCTAVE_LOCALARCHLIBDIR "\n"
-#endif
-
-const char *infom = INFOM;
-const char *infoo = INFOO;
-const char *infox = INFOX;
-const char *infoh = INFOH;
-const char *infov = INFOV;
-EOF
-
- dnl Compile program perhaps with a special version of mkoctfile
- $MKOCTFILE conftest.cc || AC_MSG_ERROR(Could not run $MKOCTFILE)
-
- dnl Strip the config info from the compiled file
- eval `strings conftest.o | grep "^INFO.=" | sed -e "s,//.*$,,"`
- rm -rf conftest*
-
- dnl set the appropriate variables if they are not already set
- ver=`echo $INFOV | sed -e "s/\.//" -e "s/\..*$//"`
- subver=`echo $INFOV | sed -e "[s/^[^.]*[.][^.]*[.]//]"`
- alt_mbase=`echo $INFOM | sed -e "[s,\/[^\/]*$,,]"`
- alt_obase=`echo $INFOO | sed -e "[s,/site.*$,/site,]"`
- test -z "$mpath" && mpath=$INFOM/octave-forge
- test -z "$opath" && opath=$INFOO/octave-forge
- test -z "$xpath" && xpath=$INFOX
- test -z "$altmpath" && altmpath=$alt_mbase/octave-forge-alternatives/m
- test -z "$altopath" && altopath=$alt_obase/octave-forge-alternatives/oct/$INFOH
-fi
-
-dnl *******************************************************************
-
-dnl XXX FIXME XXX Should we allow the user to override these?
-dnl Do we even need them? The individual makefiles can call mkoctfile -p
-dnl themselves, so the only reason to keep them is for configure, and
-dnl for those things which are not built using mkoctfile (e.g., aurecord)
-dnl but it is not clear we should be using octave compile flags for those.
-
-dnl C compiler and flags
-AC_MSG_RESULT([retrieving compile and link flags from $MKOCTFILE])
-CC=`$MKOCTFILE -p CC`
-CFLAGS=`$MKOCTFILE -p CFLAGS`
-CPPFLAGS=`$MKOCTFILE -p CPPFLAGS`
-CPICFLAG=`$MKOCTFILE -p CPICFLAG`
-LDFLAGS=`$MKOCTFILE -p LDFLAGS`
-LIBS=`$MKOCTFILE -p LIBS`
-AC_SUBST(CC)
-AC_SUBST(CFLAGS)
-AC_SUBST(CPPFLAGS)
-AC_SUBST(CPICFLAG)
-
-dnl Fortran compiler and flags
-F77=`$MKOCTFILE -p F77`
-FFLAGS=`$MKOCTFILE -p FFLAGS`
-FPICFLAG=`$MKOCTFILE -p FPICFLAG`
-AC_SUBST(F77)
-AC_SUBST(FFLAGS)
-AC_SUBST(FPICFLAG)
-
-dnl C++ compiler and flags
-CXX=`$MKOCTFILE -p CXX`
-CXXFLAGS=`$MKOCTFILE -p CXXFLAGS`
-CXXPICFLAG=`$MKOCTFILE -p CXXPICFLAG`
-AC_SUBST(CXX)
-AC_SUBST(CXXFLAGS)
-AC_SUBST(CXXPICFLAG)
-
-dnl *******************************************************************
-
-dnl Check for features of your version of mkoctfile.
-dnl All checks should be designed so that the default
-dnl action if the tests are not performed is to do whatever
-dnl is appropriate for the most recent version of Octave.
-
-dnl Define the following macro:
-dnl OF_CHECK_LIB(lib,fn,true,false,helpers)
-dnl This is just like AC_CHECK_LIB, but it doesn't update LIBS
-AC_DEFUN(OF_CHECK_LIB,
-[save_LIBS="$LIBS"
-AC_CHECK_LIB($1,$2,$3,$4,$5)
-LIBS="$save_LIBS"
-])
-
-dnl Define the following macro:
-dnl TRY_MKOCTFILE(msg,program,action_if_true,action_if_false)
-dnl
-AC_DEFUN(TRY_MKOCTFILE,
-[AC_MSG_CHECKING($1)
-cat > conftest.cc << EOF
-#include <octave/config.h>
-$2
-EOF
-ac_try="$MKOCTFILE -c conftest.cc"
-if AC_TRY_EVAL(ac_try) ; then
- AC_MSG_RESULT(yes)
- $3
-else
- AC_MSG_RESULT(no)
- $4
-fi
-])
-
-dnl
-dnl Check if F77_FUNC works with MKOCTFILE
-dnl
-TRY_MKOCTFILE([for F77_FUNC],
-[int F77_FUNC (hello, HELLO) (const int &n);],,
-[MKOCTFILE="$MKOCTFILE -DF77_FUNC=F77_FCN"])
-
-dnl **********************************************************
-
-dnl Evaluate an expression in octave
-dnl
-dnl OCTAVE_EVAL(expr,var) -> var=expr
-dnl
-AC_DEFUN(OCTAVE_EVAL,
-[AC_MSG_CHECKING([for $1 in Octave])
-$2=`echo "disp($1)" | $OCTAVE -qf`
-AC_MSG_RESULT($$2)
-AC_SUBST($2)
-])
-
-dnl Check status of an octave variable
-dnl
-dnl OCTAVE_CHECK_EXIST(variable,action_if_true,action_if_false)
-dnl
-AC_DEFUN(OCTAVE_CHECK_EXIST,
-[AC_MSG_CHECKING([for $1 in Octave])
-if test `echo 'disp(exist("$1"))' | $OCTAVE -qf`X != 0X ; then
- AC_MSG_RESULT(yes)
- $2
-else
- AC_MSG_RESULT(no)
- $3
-fi
-])
-
-dnl should check that $(OCTAVE) --version matches $(MKOCTFILE) --version
-AC_CHECK_PROG(OCTAVE,octave,octave)
-OCTAVE_EVAL(OCTAVE_VERSION,OCTAVE_VERSION)
-
-dnl grab canonical host type so we can write system specific install stuff
-OCTAVE_EVAL(octave_config_info('canonical_host_type'),canonical_host_type)
-
-dnl grab SHLEXT from octave config
-OCTAVE_EVAL(octave_config_info('SHLEXT'),SHLEXT)
-
-AC_PROG_LN_S
-AC_PROG_RANLIB
-
-dnl Use $(COPY_FLAGS) to set options for cp when installing .oct files.
-COPY_FLAGS="-Rfp"
-case "$canonical_host_type" in
- *-*-linux*)
- COPY_FLAGS="-fdp"
- ;;
-esac
-AC_SUBST(COPY_FLAGS)
-
-dnl Use $(STRIP) in the makefile to strip executables. If not found,
-dnl STRIP expands to ':', which in the makefile does nothing.
-dnl Don't need this for .oct files since mkoctfile handles them directly
-STRIP=${STRIP-strip}
-AC_CHECK_PROG(STRIP,$STRIP,$STRIP,:)
-
-dnl Strip on windows, don't strip on Mac OS/X or IRIX
-dnl For the rest, you can force strip using MKOCTFILE="mkoctfile -s"
-dnl or avoid strip using STRIP=: before ./configure
-case "$canonical_host_type" in
- powerpc-apple-darwin*|*-sgi-*)
- STRIP=:
- ;;
- *-cygwin-*|*-mingw-*)
- MKOCTFILE="$MKOCTFILE -s"
- ;;
-esac
-
-
-CONFIGURE_OUTPUTS="Makeconf"
-STATUS_MSG="
-octave commands will install into the following directories:
- m-files: $mpath
- oct-files: $opath
- binaries: $xpath
-alternatives:
- m-files: $altmpath
- oct-files: $altopath
-
-shell commands will install into the following directories:
- binaries: $bindir
- man pages: $mandir
- libraries: $libdir
- headers: $includedir
-
-octave-forge is configured with
- octave: $OCTAVE (version $OCTAVE_VERSION)
- mkoctfile: $MKOCTFILE for Octave $subver"
diff --git a/src/daskr.diff b/src/daskr.diff
index d0396d0..dd776fa 100644
--- a/src/daskr.diff
+++ b/src/daskr.diff
@@ -1,46 +1,64 @@
---- daskr.orig/dlinpk.f 2008-05-19 11:26:08.000000000 +0200
-+++ daskr/dlinpk.f 2008-05-19 11:21:57.000000000 +0200
-@@ -760,14 +760,24 @@
- dnrm2 = zero
- go to 300
- c
-- 10 assign 30 to next
-+ 10 next = 30
- sum = zero
- nn = n * incx
- c begin main loop
- i = 1
-- 20 go to next,(30, 50, 70, 110)
-+ 20 if (next .eq. 30) then
-+ go to 30
-+ else if (next .eq. 50) then
-+ go to 50
-+ else if (next .eq. 70) then
-+ go to 70
-+ else if (next .eq. 110) then
-+ go to 110
-+ else
-+ continue
-+ end if
- 30 if( dabs(dx(i)) .gt. cutlo) go to 85
-- assign 50 to next
-+ next = 50
- xmax = zero
- c
- c phase 1. sum is zero
-@@ -776,13 +786,13 @@
- if( dabs(dx(i)) .gt. cutlo) go to 85
- c
- c prepare for phase 2.
-- assign 70 to next
-+ next = 70
- go to 105
- c
- c prepare for phase 4.
- c
- 100 i = j
-- assign 110 to next
-+ next = 110
- sum = (sum / dx(i)) / dx(i)
- 105 xmax = dabs(dx(i))
- go to 115
+--- daskr.orig/ddaskr.f 2008-03-14 06:34:48.000000000 -0400
++++ daskr/ddaskr.f 2014-03-02 16:10:47.319479666 -0500
+@@ -1405,6 +1405,7 @@
+ DIMENSION RWORK(LRW),IWORK(LIW)
+ DIMENSION RTOL(*),ATOL(*)
+ DIMENSION RPAR(*),IPAR(*)
++ DIMENSION JROOT(*)
+ CHARACTER MSG*80
+ EXTERNAL RES, JAC, PSOL, RT, DDASID, DDASIK, DNEDD, DNEDK
+ C
+@@ -2515,6 +2516,7 @@
+ * RWORK, RPAR
+ DIMENSION Y(*), YP(*), PHI(NEQ,*), PSI(*),
+ * R0(*), R1(*), RX(*), JROOT(*), RWORK(*), IWORK(*)
++ DIMENSION RPAR(*), IPAR(*)
+ INTEGER I, JFLAG
+ DOUBLE PRECISION H
+ DOUBLE PRECISION HMINR, T1, TEMP1, TEMP2, X, ZERO
+--- daskr.orig/dlinpk.f 2008-03-14 06:34:42.000000000 -0400
++++ daskr/dlinpk.f 2014-03-02 16:09:47.580384128 -0500
+@@ -760,14 +760,24 @@
+ dnrm2 = zero
+ go to 300
+ c
+- 10 assign 30 to next
++ 10 next = 30
+ sum = zero
+ nn = n * incx
+ c begin main loop
+ i = 1
+- 20 go to next,(30, 50, 70, 110)
++ 20 if (next .eq. 30) then
++ go to 30
++ else if (next .eq. 50) then
++ go to 50
++ else if (next .eq. 70) then
++ go to 70
++ else if (next .eq. 110) then
++ go to 110
++ else
++ continue
++ end if
+ 30 if( dabs(dx(i)) .gt. cutlo) go to 85
+- assign 50 to next
++ next = 50
+ xmax = zero
+ c
+ c phase 1. sum is zero
+@@ -776,13 +786,13 @@
+ if( dabs(dx(i)) .gt. cutlo) go to 85
+ c
+ c prepare for phase 2.
+- assign 70 to next
++ next = 70
+ go to 105
+ c
+ c prepare for phase 4.
+ c
+ 100 i = j
+- assign 110 to next
++ next = 110
+ sum = (sum / dx(i)) / dx(i)
+ 105 xmax = dabs(dx(i))
+ go to 115
diff --git a/src/mexfiles.tgz b/src/mexfiles.tgz
deleted file mode 100644
index 8591de2..0000000
Binary files a/src/mexfiles.tgz and /dev/null differ
diff --git a/src/odepkg_auxiliary_functions.cc b/src/odepkg_auxiliary_functions.cc
index ba3dd68..d5180eb 100644
--- a/src/odepkg_auxiliary_functions.cc
+++ b/src/odepkg_auxiliary_functions.cc
@@ -25,9 +25,9 @@ along with this program; If not, see <http://www.gnu.org/licenses/>.
/* -*- texinfo -*-
* @subsection Source file @file{odepkg_auxiliary_functions.cc}
*
- * @deftypefn {Function} octave_value odepkg_auxiliary_getmapvalue (std::string vnam, Octave_map vmap)
+ * @deftypefn {Function} octave_value odepkg_auxiliary_getmapvalue (std::string vnam, octave_scalar_map vmap)
*
- * Return the @code{octave_value} from the field that is identified by the string @var{vnam} of the @code{Octave_map} that is given by @var{vmap}. The input arguments of this function are
+ * Return the @code{octave_value} from the field that is identified by the string @var{vnam} of the @code{octave_scalar_map} that is given by @var{vmap}. The input arguments of this function are
*
* @itemize @minus
* @item @var{vnam}: The name of the field whose value is returned
@@ -35,11 +35,6 @@ along with this program; If not, see <http://www.gnu.org/licenses/>.
* @end itemize
* @end deftypefn
*/
-octave_value odepkg_auxiliary_getmapvalue (std::string vnam, Octave_map vmap) {
- Octave_map::const_iterator viter;
- viter = vmap.seek (vnam);
- return (vmap.contents(viter)(0));
-}
/* -*- texinfo -*-
* @deftypefn {Function} octave_idx_type odepkg_auxiliary_isvector (octave_value vval)
@@ -371,7 +366,7 @@ octave_value odepkg_auxiliary_evalmassode
octave_value odepkg_auxiliary_makestats
(octave_value_list vstats, octave_idx_type vprnt) {
- Octave_map vretval;
+ octave_scalar_map vretval;
if (vstats.length () < 5)
error_with_id ("OdePkg:InvalidArgument",
diff --git a/src/odepkg_auxiliary_functions.h b/src/odepkg_auxiliary_functions.h
index e602a37..e6cc7a4 100644
--- a/src/odepkg_auxiliary_functions.h
+++ b/src/odepkg_auxiliary_functions.h
@@ -19,9 +19,6 @@ along with this program; If not, see <http://www.gnu.org/licenses/>.
#if !defined (odepkg_auxiliary_functions_h)
#define odepkg_auxiliary_functions_h 1
-octave_value odepkg_auxiliary_getmapvalue
- (std::string vnam, Octave_map vmap);
-
octave_idx_type odepkg_auxiliary_isvector
(octave_value vval);
diff --git a/src/odepkg_octsolver_ddaskr.cc b/src/odepkg_octsolver_ddaskr.cc
index 72b0ba3..d88bbdb 100644
--- a/src/odepkg_octsolver_ddaskr.cc
+++ b/src/odepkg_octsolver_ddaskr.cc
@@ -228,7 +228,7 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
octave_idx_type nargin = args.length (); // The number of input arguments
octave_value_list vretval; // The cell array of return args
- Octave_map vodeopt; // The OdePkg options structure
+ octave_scalar_map vodeopt; // The OdePkg options structure
// Check number and types of all the input arguments
if (nargin < 4) {
@@ -286,7 +286,7 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Fifth input argument != OdePkg option, need a default structure
if (!args(4).is_map ()) {
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
for (octave_idx_type vcnt = 4; vcnt < nargin; vcnt++)
vddaskrextarg(vcnt-4) = args(vcnt); // Save arguments in vddaskrextarg
}
@@ -297,7 +297,7 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
varin(0) = args(4); varin(1) = "odekdi";
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create structure of args(4)
+ vodeopt = tmp(0).scalar_map_value (); // Create structure of args(4)
for (octave_idx_type vcnt = 5; vcnt < nargin; vcnt++)
vddaskrextarg(vcnt-5) = args(vcnt); // Save extra arguments
}
@@ -308,14 +308,14 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
varin(0) = args(4); varin(1) = "odekdi"; // Check structure
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
} // if (nargin >= 5)
else { // if nargin == 4, everything else has been checked before
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
/* Start PREPROCESSING, ie. check which options have been set and
@@ -325,7 +325,7 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Implementation of the option RelTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vreltol = odepkg_auxiliary_getmapvalue ("RelTol", vodeopt);
+ octave_value vreltol = vodeopt.contents ("RelTol");
if (vreltol.is_empty ()) {
vreltol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -341,7 +341,7 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Implementation of the option AbsTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vabstol = odepkg_auxiliary_getmapvalue ("AbsTol", vodeopt);
+ octave_value vabstol = vodeopt.contents ("AbsTol");
if (vabstol.is_empty ()) {
vabstol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -368,7 +368,7 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option NormControl will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnorm = odepkg_auxiliary_getmapvalue ("NormControl", vodeopt);
+ octave_value vnorm = vodeopt.contents ("NormControl");
if (!vnorm.is_empty ())
if (vnorm.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -376,34 +376,34 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option NonNegative will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnneg = odepkg_auxiliary_getmapvalue ("NonNegative", vodeopt);
+ octave_value vnneg = vodeopt.contents ("NonNegative");
if (!vnneg.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NonNegative\" will be ignored by this solver");
// Implementation of the option OutputFcn has been finished, this
// option can be set by the user to another value than default value
- octave_value vplot = odepkg_auxiliary_getmapvalue ("OutputFcn", vodeopt);
+ octave_value vplot = vodeopt.contents ("OutputFcn");
if (vplot.is_empty () && nargout == 0) vplot = "odeplot";
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- octave_value voutsel = odepkg_auxiliary_getmapvalue ("OutputSel", vodeopt);
+ octave_value voutsel = vodeopt.contents ("OutputSel");
// The option Refine will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vrefine = odepkg_auxiliary_getmapvalue ("Refine", vodeopt);
+ octave_value vrefine = vodeopt.contents ("Refine");
if (vrefine.int_value () != 0)
warning_with_id ("OdePkg:InvalidOption",
"Option \"Refine\" will be ignored by this solver");
// Implementation of the option Stats has been finished, this option
// can be set by the user to another value than default value
- octave_value vstats = odepkg_auxiliary_getmapvalue ("Stats", vodeopt);
+ octave_value vstats = vodeopt.contents ("Stats");
// Implementation of the option InitialStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vinitstep = odepkg_auxiliary_getmapvalue ("InitialStep", vodeopt);
+ octave_value vinitstep = vodeopt.contents ("InitialStep");
if (args(1).length () > 2) {
if (!vinitstep.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
@@ -418,7 +418,7 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Implementation of the option MaxStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vmaxstep = odepkg_auxiliary_getmapvalue ("MaxStep", vodeopt);
+ octave_value vmaxstep = vodeopt.contents ("MaxStep");
if (vmaxstep.is_empty () && args(1).length () == 2) {
vmaxstep = (args(1).vector_value ()(1) - args(1).vector_value ()(0)) / 12.5;
warning_with_id ("OdePkg:InvalidOption",
@@ -429,23 +429,23 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Implementation of the option Events has been finished, this
// option can be set by the user to another value than default
// value, odepkg_structure_check already checks for a valid value
- octave_value vevents = odepkg_auxiliary_getmapvalue ("Events", vodeopt);
+ octave_value vevents = vodeopt.contents ("Events");
octave_value_list veveres; // We save the results of Events here
// The options 'Jacobian', 'JPattern' and 'Vectorized'
- octave_value vjac = odepkg_auxiliary_getmapvalue ("Jacobian", vodeopt);
+ octave_value vjac = vodeopt.contents ("Jacobian");
if (!vjac.is_empty ()) vddaskrjacfun = vjac;
// The option Mass will be ignored by this solver. We can't handle
// Mass-matrix options with IDE problems
- octave_value vmass = odepkg_auxiliary_getmapvalue ("Mass", vodeopt);
+ octave_value vmass = vodeopt.contents ("Mass");
if (!vmass.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"Mass\" will be ignored by this solver");
// The option MStateDependence will be ignored by this solver. We
// can't handle Mass-matrix options with IDE problems
- octave_value vmst = odepkg_auxiliary_getmapvalue ("MStateDependence", vodeopt);
+ octave_value vmst = vodeopt.contents ("MStateDependence");
if (!vmst.is_empty ())
if (vmst.string_value ().compare ("weak") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -453,14 +453,14 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option MvPattern will be ignored by this solver. We
// can't handle Mass-matrix options with IDE problems
- octave_value vmvpat = odepkg_auxiliary_getmapvalue ("MvPattern", vodeopt);
+ octave_value vmvpat = vodeopt.contents ("MvPattern");
if (!vmvpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MvPattern\" will be ignored by this solver");
// The option MvPattern will be ignored by this solver. We
// can't handle Mass-matrix options with IDE problems
- octave_value vmsing = odepkg_auxiliary_getmapvalue ("MassSingular", vodeopt);
+ octave_value vmsing = vodeopt.contents ("MassSingular");
if (!vmsing.is_empty ())
if (vmsing.string_value ().compare ("maybe") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -468,14 +468,14 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option InitialSlope will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vinitslope = odepkg_auxiliary_getmapvalue ("InitialSlope", vodeopt);
+ octave_value vinitslope = vodeopt.contents ("InitialSlope");
if (!vinitslope.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"InitialSlope\" will be ignored by this solver");
// Implementation of the option MaxOrder has been finished, this
// option can be set by the user to another value than default value
- octave_value vmaxder = odepkg_auxiliary_getmapvalue ("MaxOrder", vodeopt);
+ octave_value vmaxder = vodeopt.contents ("MaxOrder");
if (vmaxder.is_empty ()) {
vmaxder = 3;
warning_with_id ("OdePkg:InvalidOption",
@@ -488,7 +488,7 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
}
// The option BDF will be ignored because this is a BDF solver
- octave_value vbdf = odepkg_auxiliary_getmapvalue ("BDF", vodeopt);
+ octave_value vbdf = vodeopt.contents ("BDF");
if (!vbdf.is_empty ())
if (vbdf.string_value () != "on") {
vbdf = "on"; warning_with_id ("OdePkg:InvalidOption",
@@ -498,12 +498,12 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option NewtonTol and MaxNewtonIterations will be ignored by
// this solver, IT NEEDS TO BE CHECKED IF THE FORTRAN CORE SOLVER
// CAN HANDLE THESE OPTIONS
- octave_value vntol = odepkg_auxiliary_getmapvalue ("NewtonTol", vodeopt);
+ octave_value vntol = vodeopt.contents ("NewtonTol");
if (!vntol.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NewtonTol\" will be ignored by this solver");
octave_value vmaxnewton =
- odepkg_auxiliary_getmapvalue ("MaxNewtonIterations", vodeopt);
+ vodeopt.contents ("MaxNewtonIterations");
if (!vmaxnewton.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxNewtonIterations\" will be ignored by this solver");
@@ -667,7 +667,7 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
octave_value vtres, vyres;
odepkg_auxiliary_solstore (vtres, vyres, 2);
- // Get the stats information as an Octave_map if the option 'Stats'
+ // Get the stats information as an octave_scalar_map if the option 'Stats'
// has been set with odeset
// "nsteps", "nfailed", "nfevals", "npds", "ndecomps", "nlinsols"
octave_value_list vstatinput;
@@ -686,7 +686,7 @@ odekdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Set up output arguments that depend on how many output arguments
// are desired -- check the nargout variable
if (nargout == 1) {
- Octave_map vretmap;
+ octave_scalar_map vretmap;
vretmap.assign ("x", vtres);
vretmap.assign ("y", vyres);
vretmap.assign ("solver", "odekdi");
diff --git a/src/odepkg_octsolver_mebdfdae.cc b/src/odepkg_octsolver_mebdfdae.cc
index acf38e3..ca5e086 100644
--- a/src/odepkg_octsolver_mebdfdae.cc
+++ b/src/odepkg_octsolver_mebdfdae.cc
@@ -274,7 +274,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
octave_idx_type nargin = args.length (); // The number of input arguments
octave_value_list vretval; // The cell array of return args
- Octave_map vodeopt; // The OdePkg options structure
+ octave_scalar_map vodeopt; // The OdePkg options structure
// Check number and types of all the input arguments
if (nargin < 3) {
@@ -316,7 +316,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Fourth input argument != OdePkg option, need a default structure
if (!args(3).is_map ()) {
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
for (octave_idx_type vcnt = 3; vcnt < nargin; vcnt++)
vmebdfdaeextarg(vcnt-3) = args(vcnt); // Save arguments in vmebdfdaeextarg
}
@@ -327,7 +327,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
varin(0) = args(3); varin(1) = "odebda";
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create structure from args(4)
+ vodeopt = tmp(0).scalar_map_value (); // Create structure from args(4)
for (octave_idx_type vcnt = 4; vcnt < nargin; vcnt++)
vmebdfdaeextarg(vcnt-4) = args(vcnt); // Save extra arguments
}
@@ -338,14 +338,14 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
varin(0) = args(3); varin(1) = "odebda"; // Check structure
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
} // if (nargin >= 4)
else { // if nargin == 3, everything else has been checked before
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
/* Start PREPROCESSING, ie. check which options have been set and
@@ -355,7 +355,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option RelTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vreltol = odepkg_auxiliary_getmapvalue ("RelTol", vodeopt);
+ octave_value vreltol = vodeopt.contents ("RelTol");
if (vreltol.is_empty ()) {
vreltol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -372,7 +372,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option AbsTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vabstol = odepkg_auxiliary_getmapvalue ("AbsTol", vodeopt);
+ octave_value vabstol = vodeopt.contents ("AbsTol");
if (vabstol.is_empty ()) {
vabstol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -397,7 +397,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NormControl will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnorm = odepkg_auxiliary_getmapvalue ("NormControl", vodeopt);
+ octave_value vnorm = vodeopt.contents ("NormControl");
if (!vnorm.is_empty ())
if (vnorm.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -405,34 +405,34 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NonNegative will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnneg = odepkg_auxiliary_getmapvalue ("NonNegative", vodeopt);
+ octave_value vnneg = vodeopt.contents ("NonNegative");
if (!vnneg.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NonNegative\" will be ignored by this solver");
// Implementation of the option OutputFcn has been finished, this
// option can be set by the user to another value than default value
- octave_value vplot = odepkg_auxiliary_getmapvalue ("OutputFcn", vodeopt);
+ octave_value vplot = vodeopt.contents ("OutputFcn");
if (vplot.is_empty () && nargout == 0) vplot = "odeplot";
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- octave_value voutsel = odepkg_auxiliary_getmapvalue ("OutputSel", vodeopt);
+ octave_value voutsel = vodeopt.contents ("OutputSel");
// The option Refine will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vrefine = odepkg_auxiliary_getmapvalue ("Refine", vodeopt);
+ octave_value vrefine = vodeopt.contents ("Refine");
if (vrefine.int_value () != 0)
warning_with_id ("OdePkg:InvalidOption",
"Option \"Refine\" will be ignored by this solver");
// Implementation of the option Stats has been finished, this option
// can be set by the user to another value than default value
- octave_value vstats = odepkg_auxiliary_getmapvalue ("Stats", vodeopt);
+ octave_value vstats = vodeopt.contents ("Stats");
// Implementation of the option InitialStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vinitstep = odepkg_auxiliary_getmapvalue ("InitialStep", vodeopt);
+ octave_value vinitstep = vodeopt.contents ("InitialStep");
if (args(1).length () > 2) {
if (!vinitstep.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
@@ -448,7 +448,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option MaxStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vmaxstep = odepkg_auxiliary_getmapvalue ("MaxStep", vodeopt);
+ octave_value vmaxstep = vodeopt.contents ("MaxStep");
if (vmaxstep.is_empty () && args(1).length () == 2) {
vmaxstep = (args(1).vector_value ()(1) - args(1).vector_value ()(0)) / 12.5;
warning_with_id ("OdePkg:InvalidOption",
@@ -459,11 +459,11 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option Events has been finished, this
// option can be set by the user to another value than default
// value, odepkg_structure_check already checks for a valid value
- octave_value vevents = odepkg_auxiliary_getmapvalue ("Events", vodeopt);
+ octave_value vevents = vodeopt.contents ("Events");
octave_value_list veveres; // We save the results of Events here
// The options 'Jacobian', 'JPattern' and 'Vectorized'
- octave_value vjac = odepkg_auxiliary_getmapvalue ("Jacobian", vodeopt);
+ octave_value vjac = vodeopt.contents ("Jacobian");
octave_idx_type vmebdfdaejac = 22; // We need to set this if no Jac available
if (!vjac.is_empty ()) {
vmebdfdaejacfun = vjac; vmebdfdaejac = 21;
@@ -471,7 +471,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option 'Mass' has been finished, these
// options can be set by the user to another value than default
- vmebdfdaemass = odepkg_auxiliary_getmapvalue ("Mass", vodeopt);
+ vmebdfdaemass = vodeopt.contents ("Mass");
octave_idx_type vmebdfdaemas = 0;
if (!vmebdfdaemass.is_empty ()) {
vmebdfdaemas = 1;
@@ -482,7 +482,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option MStateDependence will be ignored by this solver, the
// core Fortran solver doesn't support this option
- vmebdfdaemassstate = odepkg_auxiliary_getmapvalue ("MStateDependence", vodeopt);
+ vmebdfdaemassstate = vodeopt.contents ("MStateDependence");
if (!vmebdfdaemassstate.is_empty ())
if (vmebdfdaemassstate.string_value ().compare ("weak") != 0) // 'weak' is default
warning_with_id ("OdePkg:InvalidOption",
@@ -490,14 +490,14 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option MStateDependence will be ignored by this solver, the
// core Fortran solver doesn't support this option
- octave_value vmvpat = odepkg_auxiliary_getmapvalue ("MvPattern", vodeopt);
+ octave_value vmvpat = vodeopt.contents ("MvPattern");
if (!vmvpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MvPattern\" will be ignored by this solver");
// The option MassSingular will be ignored by this solver, the
// core Fortran solver doesn't support this option
- octave_value vmsing = odepkg_auxiliary_getmapvalue ("MassSingular", vodeopt);
+ octave_value vmsing = vodeopt.contents ("MassSingular");
if (!vmsing.is_empty ())
if (vmsing.string_value ().compare ("maybe") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -505,14 +505,14 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option InitialSlope will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vinitslope = odepkg_auxiliary_getmapvalue ("InitialSlope", vodeopt);
+ octave_value vinitslope = vodeopt.contents ("InitialSlope");
if (!vinitslope.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"InitialSlope\" will be ignored by this solver");
// Implementation of the option MaxOrder has been finished, this
// option can be set by the user to another value than default value
- octave_value vmaxder = odepkg_auxiliary_getmapvalue ("MaxOrder", vodeopt);
+ octave_value vmaxder = vodeopt.contents ("MaxOrder");
if (vmaxder.is_empty ()) {
vmaxder = 3;
warning_with_id ("OdePkg:InvalidOption",
@@ -527,7 +527,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
}
// The option BDF will be ignored because this is a BDF solver
- octave_value vbdf = odepkg_auxiliary_getmapvalue ("BDF", vodeopt);
+ octave_value vbdf = vodeopt.contents ("BDF");
if (vbdf.is_string ())
if (vbdf.string_value () != "on") {
vbdf = "on"; warning_with_id ("OdePkg:InvalidOption",
@@ -536,12 +536,12 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NewtonTol and MaxNewtonIterations will be ignored by
// this solver, IT NEEDS TO BE CHECKED IF THE FORTRAN CORE SOLVER
// CAN HANDLE THESE OPTIONS
- octave_value vntol = odepkg_auxiliary_getmapvalue ("NewtonTol", vodeopt);
+ octave_value vntol = vodeopt.contents ("NewtonTol");
if (!vntol.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NewtonTol\" will be ignored by this solver");
octave_value vmaxnewton =
- odepkg_auxiliary_getmapvalue ("MaxNewtonIterations", vodeopt);
+ vodeopt.contents ("MaxNewtonIterations");
if (!vmaxnewton.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxNewtonIterations\" will be ignored by this solver");
@@ -733,7 +733,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
odepkg_auxiliary_solstore (vtres, vyres, 2);
// odepkg_auxiliary_solstore (vtres, vyres, voutsel, 100);
- // Get the stats information as an Octave_map if the option 'Stats'
+ // Get the stats information as an octave_scalar_map if the option 'Stats'
// has been set with odeset
// "nsteps", "nfailed", "nfevals", "npds", "ndecomps", "nlinsols"
octave_value_list vstatinput;
@@ -752,7 +752,7 @@ odebda (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Set up output arguments that depends on how many output arguments
// are desired by the caller
if (nargout == 1) {
- Octave_map vretmap;
+ octave_scalar_map vretmap;
vretmap.assign ("x", vtres);
vretmap.assign ("y", vyres);
vretmap.assign ("solver", "odebda");
diff --git a/src/odepkg_octsolver_mebdfi.cc b/src/odepkg_octsolver_mebdfi.cc
index 553aaca..5b66cfe 100644
--- a/src/odepkg_octsolver_mebdfi.cc
+++ b/src/odepkg_octsolver_mebdfi.cc
@@ -350,7 +350,7 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
octave_idx_type nargin = args.length (); // The number of input arguments
octave_value_list vretval; // The cell array of return args
- Octave_map vodeopt; // The OdePkg options structure
+ octave_scalar_map vodeopt; // The OdePkg options structure
// Check number and types of all the input arguments
if (nargin < 4) {
@@ -408,7 +408,7 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Fifth input argument != OdePkg option, need a default structure
if (!args(4).is_map ()) {
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
for (octave_idx_type vcnt = 4; vcnt < nargin; vcnt++)
vmebdfiextarg(vcnt-4) = args(vcnt); // Save arguments in vmebdfiextarg
}
@@ -419,7 +419,7 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
varin(0) = args(4); varin(1) = "odebdi";
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create structure of args(4)
+ vodeopt = tmp(0).scalar_map_value (); // Create structure of args(4)
for (octave_idx_type vcnt = 5; vcnt < nargin; vcnt++)
vmebdfiextarg(vcnt-5) = args(vcnt); // Save extra arguments
}
@@ -430,14 +430,14 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
varin(0) = args(4); varin(1) = "odebdi"; // Check structure
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
} // if (nargin >= 5)
else { // if nargin == 4, everything else has been checked before
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
/* Start PREPROCESSING, ie. check which options have been set and
@@ -447,7 +447,7 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Implementation of the option RelTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vreltol = odepkg_auxiliary_getmapvalue ("RelTol", vodeopt);
+ octave_value vreltol = vodeopt.contents ("RelTol");
if (vreltol.is_empty ()) {
vreltol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -464,7 +464,7 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Implementation of the option AbsTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vabstol = odepkg_auxiliary_getmapvalue ("AbsTol", vodeopt);
+ octave_value vabstol = vodeopt.contents ("AbsTol");
if (vabstol.is_empty ()) {
vabstol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -489,7 +489,7 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option NormControl will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnorm = odepkg_auxiliary_getmapvalue ("NormControl", vodeopt);
+ octave_value vnorm = vodeopt.contents ("NormControl");
if (!vnorm.is_empty ())
if (vnorm.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -497,34 +497,34 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option NonNegative will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnneg = odepkg_auxiliary_getmapvalue ("NonNegative", vodeopt);
+ octave_value vnneg = vodeopt.contents ("NonNegative");
if (!vnneg.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NonNegative\" will be ignored by this solver");
// Implementation of the option OutputFcn has been finished, this
// option can be set by the user to another value than default value
- octave_value vplot = odepkg_auxiliary_getmapvalue ("OutputFcn", vodeopt);
+ octave_value vplot = vodeopt.contents ("OutputFcn");
if (vplot.is_empty () && nargout == 0) vplot = "odeplot";
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- octave_value voutsel = odepkg_auxiliary_getmapvalue ("OutputSel", vodeopt);
+ octave_value voutsel = vodeopt.contents ("OutputSel");
// The option Refine will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vrefine = odepkg_auxiliary_getmapvalue ("Refine", vodeopt);
+ octave_value vrefine = vodeopt.contents ("Refine");
if (vrefine.int_value () != 0)
warning_with_id ("OdePkg:InvalidOption",
"Option \"Refine\" will be ignored by this solver");
// Implementation of the option Stats has been finished, this option
// can be set by the user to another value than default value
- octave_value vstats = odepkg_auxiliary_getmapvalue ("Stats", vodeopt);
+ octave_value vstats = vodeopt.contents ("Stats");
// Implementation of the option InitialStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vinitstep = odepkg_auxiliary_getmapvalue ("InitialStep", vodeopt);
+ octave_value vinitstep = vodeopt.contents ("InitialStep");
if (args(1).length () > 2) {
if (!vinitstep.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
@@ -540,7 +540,7 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Implementation of the option MaxStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vmaxstep = odepkg_auxiliary_getmapvalue ("MaxStep", vodeopt);
+ octave_value vmaxstep = vodeopt.contents ("MaxStep");
if (vmaxstep.is_empty () && args(1).length () == 2) {
vmaxstep = (args(1).vector_value ()(1) - args(1).vector_value ()(0)) / 12.5;
warning_with_id ("OdePkg:InvalidOption",
@@ -551,11 +551,11 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Implementation of the option Events has been finished, this
// option can be set by the user to another value than default
// value, odepkg_structure_check already checks for a valid value
- octave_value vevents = odepkg_auxiliary_getmapvalue ("Events", vodeopt);
+ octave_value vevents = vodeopt.contents ("Events");
octave_value_list veveres; // We save the results of Events here
// The options 'Jacobian', 'JPattern' and 'Vectorized'
- octave_value vjac = odepkg_auxiliary_getmapvalue ("Jacobian", vodeopt);
+ octave_value vjac = vodeopt.contents ("Jacobian");
octave_idx_type vmebdfijac = 22; // We need to set this if no Jac available
if (!vjac.is_empty ()) {
vmebdfijacfun = vjac; vmebdfijac = 21;
@@ -563,14 +563,14 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option Mass will be ignored by this solver. We can't handle
// Mass-matrix options with IDE problems
- octave_value vmass = odepkg_auxiliary_getmapvalue ("Mass", vodeopt);
+ octave_value vmass = vodeopt.contents ("Mass");
if (!vmass.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"Mass\" will be ignored by this solver");
// The option MStateDependence will be ignored by this solver. We
// can't handle Mass-matrix options with IDE problems
- octave_value vmst = odepkg_auxiliary_getmapvalue ("MStateDependence", vodeopt);
+ octave_value vmst = vodeopt.contents ("MStateDependence");
if (!vmst.is_empty ())
if (vmst.string_value ().compare ("weak") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -578,14 +578,14 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option MvPattern will be ignored by this solver. We
// can't handle Mass-matrix options with IDE problems
- octave_value vmvpat = odepkg_auxiliary_getmapvalue ("MvPattern", vodeopt);
+ octave_value vmvpat = vodeopt.contents ("MvPattern");
if (!vmvpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MvPattern\" will be ignored by this solver");
// The option MvPattern will be ignored by this solver. We
// can't handle Mass-matrix options with IDE problems
- octave_value vmsing = odepkg_auxiliary_getmapvalue ("MassSingular", vodeopt);
+ octave_value vmsing = vodeopt.contents ("MassSingular");
if (!vmsing.is_empty ())
if (vmsing.string_value ().compare ("maybe") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -593,14 +593,14 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option InitialSlope will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vinitslope = odepkg_auxiliary_getmapvalue ("InitialSlope", vodeopt);
+ octave_value vinitslope = vodeopt.contents ("InitialSlope");
if (!vinitslope.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"InitialSlope\" will be ignored by this solver");
// Implementation of the option MaxOrder has been finished, this
// option can be set by the user to another value than default value
- octave_value vmaxder = odepkg_auxiliary_getmapvalue ("MaxOrder", vodeopt);
+ octave_value vmaxder = vodeopt.contents ("MaxOrder");
if (vmaxder.is_empty ()) {
vmaxder = 3;
warning_with_id ("OdePkg:InvalidOption",
@@ -615,7 +615,7 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
}
// The option BDF will be ignored because this is a BDF solver
- octave_value vbdf = odepkg_auxiliary_getmapvalue ("BDF", vodeopt);
+ octave_value vbdf = vodeopt.contents ("BDF");
if (vbdf.is_string ())
if (vbdf.string_value () != "on") {
vbdf = "on"; warning_with_id ("OdePkg:InvalidOption",
@@ -624,12 +624,12 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// The option NewtonTol and MaxNewtonIterations will be ignored by
// this solver, IT NEEDS TO BE CHECKED IF THE FORTRAN CORE SOLVER
// CAN HANDLE THESE OPTIONS
- octave_value vntol = odepkg_auxiliary_getmapvalue ("NewtonTol", vodeopt);
+ octave_value vntol = vodeopt.contents ("NewtonTol");
if (!vntol.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NewtonTol\" will be ignored by this solver");
octave_value vmaxnewton =
- odepkg_auxiliary_getmapvalue ("MaxNewtonIterations", vodeopt);
+ vodeopt.contents ("MaxNewtonIterations");
if (!vmaxnewton.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxNewtonIterations\" will be ignored by this solver");
@@ -838,7 +838,7 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
odepkg_auxiliary_solstore (vtres, vyres, 2);
// odepkg_auxiliary_solstore (vtres, vyres, voutsel, 100);
- // Get the stats information as an Octave_map if the option 'Stats'
+ // Get the stats information as an octave_scalar_map if the option 'Stats'
// has been set with odeset
octave_value_list vstatinput;
vstatinput(0) = IWORK[4];
@@ -857,7 +857,7 @@ odebdi (@@odepkg_equations_ilorenz, [0, 25], [3 15 1], \\\n\
// Set up output arguments that depends on how many output arguments
// are desired by the caller
if (nargout == 1) {
- Octave_map vretmap;
+ octave_scalar_map vretmap;
vretmap.assign ("x", vtres);
vretmap.assign ("y", vyres);
vretmap.assign ("solver", "odebdi");
diff --git a/src/odepkg_octsolver_radau.cc b/src/odepkg_octsolver_radau.cc
index 1d89578..d07af4d 100644
--- a/src/odepkg_octsolver_radau.cc
+++ b/src/odepkg_octsolver_radau.cc
@@ -277,7 +277,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
octave_idx_type nargin = args.length (); // The number of input arguments
octave_value_list vretval; // The cell array of return args
- Octave_map vodeopt; // The OdePkg options structure
+ octave_scalar_map vodeopt; // The OdePkg options structure
// Check number and types of all input arguments
if (nargin < 3) {
@@ -319,7 +319,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Fourth input argument != OdePkg option, need a default structure
if (!args(3).is_map ()) {
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
for (octave_idx_type vcnt = 3; vcnt < nargin; vcnt++)
vradauextarg(vcnt-3) = args(vcnt); // Save arguments in vradauextarg
}
@@ -330,7 +330,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
varin(0) = args(3); varin(1) = "ode2r";
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create structure from args(4)
+ vodeopt = tmp(0).scalar_map_value (); // Create structure from args(4)
for (octave_idx_type vcnt = 4; vcnt < nargin; vcnt++)
vradauextarg(vcnt-4) = args(vcnt); // Save extra arguments
}
@@ -341,14 +341,14 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
varin(0) = args(3); varin(1) = "ode2r"; // Check structure
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
} // if (nargin >= 4)
else { // if nargin == 3, everything else has been checked before
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
/* Start PREPROCESSING, ie. check which options have been set and
@@ -358,7 +358,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option RelTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vreltol = odepkg_auxiliary_getmapvalue ("RelTol", vodeopt);
+ octave_value vreltol = vodeopt.contents ("RelTol");
if (vreltol.is_empty ()) {
vreltol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -375,7 +375,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option AbsTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vabstol = odepkg_auxiliary_getmapvalue ("AbsTol", vodeopt);
+ octave_value vabstol = vodeopt.contents ("AbsTol");
if (vabstol.is_empty ()) {
vabstol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -405,7 +405,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NormControl will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnorm = odepkg_auxiliary_getmapvalue ("NormControl", vodeopt);
+ octave_value vnorm = vodeopt.contents ("NormControl");
if (!vnorm.is_empty ())
if (vnorm.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -413,31 +413,31 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NonNegative will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnneg = odepkg_auxiliary_getmapvalue ("NonNegative", vodeopt);
+ octave_value vnneg = vodeopt.contents ("NonNegative");
if (!vnneg.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NonNegative\" will be ignored by this solver");
// Implementation of the option OutputFcn has been finished, this
// option can be set by the user to another value than default value
- vradaupltfun = odepkg_auxiliary_getmapvalue ("OutputFcn", vodeopt);
+ vradaupltfun = vodeopt.contents ("OutputFcn");
if (vradaupltfun.is_empty () && nargout == 0) vradaupltfun = "odeplot";
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- vradauoutsel = odepkg_auxiliary_getmapvalue ("OutputSel", vodeopt);
+ vradauoutsel = vodeopt.contents ("OutputSel");
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- vradaurefine = odepkg_auxiliary_getmapvalue ("Refine", vodeopt);
+ vradaurefine = vodeopt.contents ("Refine");
// Implementation of the option Stats has been finished, this option
// can be set by the user to another value than default value
- octave_value vstats = odepkg_auxiliary_getmapvalue ("Stats", vodeopt);
+ octave_value vstats = vodeopt.contents ("Stats");
// Implementation of the option InitialStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vinitstep = odepkg_auxiliary_getmapvalue ("InitialStep", vodeopt);
+ octave_value vinitstep = vodeopt.contents ("InitialStep");
if (args(1).length () > 2) {
error_with_id ("OdePkg:InvalidOption",
"Fixed time stamps are not supported by this solver");
@@ -451,7 +451,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option MaxStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vmaxstep = odepkg_auxiliary_getmapvalue ("MaxStep", vodeopt);
+ octave_value vmaxstep = vodeopt.contents ("MaxStep");
if (vmaxstep.is_empty () && args(1).length () == 2) {
vmaxstep = (args(1).vector_value ()(1) - args(1).vector_value ()(0)) / 12.5;
warning_with_id ("OdePkg:InvalidOption",
@@ -462,24 +462,24 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option Events has been finished, this
// option can be set by the user to another value than default
// value, odepkg_structure_check already checks for a valid value
- vradauevefun = odepkg_auxiliary_getmapvalue ("Events", vodeopt);
+ vradauevefun = vodeopt.contents ("Events");
// Implementation of the option 'Jacobian' has been finished, these
// options can be set by the user to another value than default
- vradaujacfun = odepkg_auxiliary_getmapvalue ("Jacobian", vodeopt);
+ vradaujacfun = vodeopt.contents ("Jacobian");
octave_idx_type vradaujac = 0; // We need to set this if no Jac available
if (!vradaujacfun.is_empty ()) vradaujac = 1;
// The option JPattern will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vradaujacpat = odepkg_auxiliary_getmapvalue ("JPattern", vodeopt);
+ octave_value vradaujacpat = vodeopt.contents ("JPattern");
if (!vradaujacpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"JPattern\" will be ignored by this solver");
// The option Vectorized will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vradauvectorize = odepkg_auxiliary_getmapvalue ("Vectorized", vodeopt);
+ octave_value vradauvectorize = vodeopt.contents ("Vectorized");
if (!vradauvectorize.is_empty ())
if (vradauvectorize.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -487,7 +487,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option 'Mass' has been finished, these
// options can be set by the user to another value than default
- vradaumass = odepkg_auxiliary_getmapvalue ("Mass", vodeopt);
+ vradaumass = vodeopt.contents ("Mass");
octave_idx_type vradaumas = 0;
if (!vradaumass.is_empty ()) {
vradaumas = 1;
@@ -498,7 +498,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option MStateDependence will be ignored by this solver, the
// core Fortran solver doesn't support this option
- vradaumassstate = odepkg_auxiliary_getmapvalue ("MStateDependence", vodeopt);
+ vradaumassstate = vodeopt.contents ("MStateDependence");
if (!vradaumassstate.is_empty ())
if (vradaumassstate.string_value ().compare ("weak") != 0) // 'weak' is default
warning_with_id ("OdePkg:InvalidOption",
@@ -506,14 +506,14 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option MStateDependence will be ignored by this solver, the
// core Fortran solver doesn't support this option
- octave_value vmvpat = odepkg_auxiliary_getmapvalue ("MvPattern", vodeopt);
+ octave_value vmvpat = vodeopt.contents ("MvPattern");
if (!vmvpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MvPattern\" will be ignored by this solver");
// The option MassSingular will be ignored by this solver, the
// core Fortran solver doesn't support this option
- octave_value vmsing = odepkg_auxiliary_getmapvalue ("MassSingular", vodeopt);
+ octave_value vmsing = vodeopt.contents ("MassSingular");
if (!vmsing.is_empty ())
if (vmsing.string_value ().compare ("maybe") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -521,21 +521,21 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option InitialSlope will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vinitslope = odepkg_auxiliary_getmapvalue ("InitialSlope", vodeopt);
+ octave_value vinitslope = vodeopt.contents ("InitialSlope");
if (!vinitslope.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"InitialSlope\" will be ignored by this solver");
// The option MaxOrder will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vmaxder = odepkg_auxiliary_getmapvalue ("MaxOrder", vodeopt);
+ octave_value vmaxder = vodeopt.contents ("MaxOrder");
if (!vmaxder.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxOrder\" will be ignored by this solver");
// The option BDF will be ignored by this solver, the core Fortran
// solver doesn't support this option
- octave_value vbdf = odepkg_auxiliary_getmapvalue ("BDF", vodeopt);
+ octave_value vbdf = vodeopt.contents ("BDF");
if (!vbdf.is_empty ())
if (vbdf.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -544,12 +544,12 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NewtonTol and MaxNewtonIterations will be ignored by
// this solver, IT NEEDS TO BE CHECKED IF THE FORTRAN CORE SOLVER
// CAN HANDLE THESE OPTIONS
- octave_value vntol = odepkg_auxiliary_getmapvalue ("NewtonTol", vodeopt);
+ octave_value vntol = vodeopt.contents ("NewtonTol");
if (!vntol.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NewtonTol\" will be ignored by this solver");
octave_value vmaxnewton =
- odepkg_auxiliary_getmapvalue ("MaxNewtonIterations", vodeopt);
+ vodeopt.contents ("MaxNewtonIterations");
if (!vmaxnewton.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxNewtonIterations\" will be ignored by this solver");
@@ -641,7 +641,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
if (!vradauevefun.is_empty ()) odepkg_auxiliary_evaleventfun
(vradauevefun, vted, vfin, vradauextarg, 2);
- // Get the stats information as an Octave_map if the option 'Stats'
+ // Get the stats information as an octave_scalar_map if the option 'Stats'
// has been set with odeset
// "nsteps", "nfailed", "nfevals", "npds", "ndecomps", "nlinsols"
octave_value_list vstatinput;
@@ -660,7 +660,7 @@ ode2r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Set up output arguments that depend on how many output arguments
// are desired from the caller
if (nargout == 1) {
- Octave_map vretmap;
+ octave_scalar_map vretmap;
vretmap.assign ("x", vtres);
vretmap.assign ("y", vyres);
vretmap.assign ("solver", "ode2r");
diff --git a/src/odepkg_octsolver_radau5.cc b/src/odepkg_octsolver_radau5.cc
index ebdcfa3..76ec2ed 100644
--- a/src/odepkg_octsolver_radau5.cc
+++ b/src/odepkg_octsolver_radau5.cc
@@ -277,7 +277,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
octave_idx_type nargin = args.length (); // The number of input arguments
octave_value_list vretval; // The cell array of return args
- Octave_map vodeopt; // The OdePkg options structure
+ octave_scalar_map vodeopt; // The OdePkg options structure
// Check number and types of all input arguments
if (nargin < 3) {
@@ -319,7 +319,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Fourth input argument != OdePkg option, need a default structure
if (!args(3).is_map ()) {
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
for (octave_idx_type vcnt = 3; vcnt < nargin; vcnt++)
vradau5extarg(vcnt-3) = args(vcnt); // Save arguments in vradau5extarg
}
@@ -330,7 +330,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
varin(0) = args(3); varin(1) = "ode5r";
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create structure from args(4)
+ vodeopt = tmp(0).scalar_map_value (); // Create structure from args(4)
for (octave_idx_type vcnt = 4; vcnt < nargin; vcnt++)
vradau5extarg(vcnt-4) = args(vcnt); // Save extra arguments
}
@@ -341,14 +341,14 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
varin(0) = args(3); varin(1) = "ode5r"; // Check structure
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
} // if (nargin >= 4)
else { // if nargin == 3, everything else has been checked before
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
/* Start PREPROCESSING, ie. check which options have been set and
@@ -358,7 +358,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option RelTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vreltol = odepkg_auxiliary_getmapvalue ("RelTol", vodeopt);
+ octave_value vreltol = vodeopt.contents ("RelTol");
if (vreltol.is_empty ()) {
vreltol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -375,7 +375,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option AbsTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vabstol = odepkg_auxiliary_getmapvalue ("AbsTol", vodeopt);
+ octave_value vabstol = vodeopt.contents ("AbsTol");
if (vabstol.is_empty ()) {
vabstol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -405,7 +405,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NormControl will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnorm = odepkg_auxiliary_getmapvalue ("NormControl", vodeopt);
+ octave_value vnorm = vodeopt.contents ("NormControl");
if (!vnorm.is_empty ())
if (vnorm.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -413,31 +413,31 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NonNegative will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnneg = odepkg_auxiliary_getmapvalue ("NonNegative", vodeopt);
+ octave_value vnneg = vodeopt.contents ("NonNegative");
if (!vnneg.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NonNegative\" will be ignored by this solver");
// Implementation of the option OutputFcn has been finished, this
// option can be set by the user to another value than default value
- vradau5pltfun = odepkg_auxiliary_getmapvalue ("OutputFcn", vodeopt);
+ vradau5pltfun = vodeopt.contents ("OutputFcn");
if (vradau5pltfun.is_empty () && nargout == 0) vradau5pltfun = "odeplot";
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- vradau5outsel = odepkg_auxiliary_getmapvalue ("OutputSel", vodeopt);
+ vradau5outsel = vodeopt.contents ("OutputSel");
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- vradau5refine = odepkg_auxiliary_getmapvalue ("Refine", vodeopt);
+ vradau5refine = vodeopt.contents ("Refine");
// Implementation of the option Stats has been finished, this option
// can be set by the user to another value than default value
- octave_value vstats = odepkg_auxiliary_getmapvalue ("Stats", vodeopt);
+ octave_value vstats = vodeopt.contents ("Stats");
// Implementation of the option InitialStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vinitstep = odepkg_auxiliary_getmapvalue ("InitialStep", vodeopt);
+ octave_value vinitstep = vodeopt.contents ("InitialStep");
if (args(1).length () > 2) {
error_with_id ("OdePkg:InvalidOption",
"Fixed time stamps are not supported by this solver");
@@ -451,7 +451,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option MaxStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vmaxstep = odepkg_auxiliary_getmapvalue ("MaxStep", vodeopt);
+ octave_value vmaxstep = vodeopt.contents ("MaxStep");
if (vmaxstep.is_empty () && args(1).length () == 2) {
vmaxstep = (args(1).vector_value ()(1) - args(1).vector_value ()(0)) / 12.5;
warning_with_id ("OdePkg:InvalidOption",
@@ -462,24 +462,24 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option Events has been finished, this
// option can be set by the user to another value than default
// value, odepkg_structure_check already checks for a valid value
- vradau5evefun = odepkg_auxiliary_getmapvalue ("Events", vodeopt);
+ vradau5evefun = vodeopt.contents ("Events");
// Implementation of the option 'Jacobian' has been finished, these
// options can be set by the user to another value than default
- vradau5jacfun = odepkg_auxiliary_getmapvalue ("Jacobian", vodeopt);
+ vradau5jacfun = vodeopt.contents ("Jacobian");
octave_idx_type vradau5jac = 0; // We need to set this if no Jac available
if (!vradau5jacfun.is_empty ()) vradau5jac = 1;
// The option JPattern will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vradau5jacpat = odepkg_auxiliary_getmapvalue ("JPattern", vodeopt);
+ octave_value vradau5jacpat = vodeopt.contents ("JPattern");
if (!vradau5jacpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"JPattern\" will be ignored by this solver");
// The option Vectorized will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vradau5vectorize = odepkg_auxiliary_getmapvalue ("Vectorized", vodeopt);
+ octave_value vradau5vectorize = vodeopt.contents ("Vectorized");
if (!vradau5vectorize.is_empty ())
if (vradau5vectorize.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -487,7 +487,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option 'Mass' has been finished, these
// options can be set by the user to another value than default
- vradau5mass = odepkg_auxiliary_getmapvalue ("Mass", vodeopt);
+ vradau5mass = vodeopt.contents ("Mass");
octave_idx_type vradau5mas = 0;
if (!vradau5mass.is_empty ()) {
vradau5mas = 1;
@@ -498,7 +498,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option MStateDependence will be ignored by this solver, the
// core Fortran solver doesn't support this option
- vradau5massstate = odepkg_auxiliary_getmapvalue ("MStateDependence", vodeopt);
+ vradau5massstate = vodeopt.contents ("MStateDependence");
if (!vradau5massstate.is_empty ())
if (vradau5massstate.string_value ().compare ("weak") != 0) // 'weak' is default
warning_with_id ("OdePkg:InvalidOption",
@@ -506,14 +506,14 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option MStateDependence will be ignored by this solver, the
// core Fortran solver doesn't support this option
- octave_value vmvpat = odepkg_auxiliary_getmapvalue ("MvPattern", vodeopt);
+ octave_value vmvpat = vodeopt.contents ("MvPattern");
if (!vmvpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MvPattern\" will be ignored by this solver");
// The option MassSingular will be ignored by this solver, the
// core Fortran solver doesn't support this option
- octave_value vmsing = odepkg_auxiliary_getmapvalue ("MassSingular", vodeopt);
+ octave_value vmsing = vodeopt.contents ("MassSingular");
if (!vmsing.is_empty ())
if (vmsing.string_value ().compare ("maybe") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -521,21 +521,21 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option InitialSlope will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vinitslope = odepkg_auxiliary_getmapvalue ("InitialSlope", vodeopt);
+ octave_value vinitslope = vodeopt.contents ("InitialSlope");
if (!vinitslope.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"InitialSlope\" will be ignored by this solver");
// The option MaxOrder will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vmaxder = odepkg_auxiliary_getmapvalue ("MaxOrder", vodeopt);
+ octave_value vmaxder = vodeopt.contents ("MaxOrder");
if (!vmaxder.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxOrder\" will be ignored by this solver");
// The option BDF will be ignored by this solver, the core Fortran
// solver doesn't support this option
- octave_value vbdf = odepkg_auxiliary_getmapvalue ("BDF", vodeopt);
+ octave_value vbdf = vodeopt.contents ("BDF");
if (!vbdf.is_empty ())
if (vbdf.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -543,7 +543,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option NewtonTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vNTOL = odepkg_auxiliary_getmapvalue ("NewtonTol", vodeopt);
+ octave_value vNTOL = vodeopt.contents ("NewtonTol");
if (vNTOL.is_empty ()) {
vNTOL = 0;
warning_with_id ("OdePkg:InvalidOption",
@@ -553,7 +553,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option MaxNewtonIterations has been finished, this
// option can be set by the user to another value than default value
octave_value vmaxnit =
- odepkg_auxiliary_getmapvalue ("MaxNewtonIterations", vodeopt);
+ vodeopt.contents ("MaxNewtonIterations");
if (vmaxnit.is_empty ()) {
vmaxnit = 7; warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxNewtonIterations\" not set, default value 7 is used");
@@ -653,7 +653,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
if (!vradau5evefun.is_empty ()) odepkg_auxiliary_evaleventfun
(vradau5evefun, vted, vfin, vradau5extarg, 2);
- // Get the stats information as an Octave_map if the option 'Stats'
+ // Get the stats information as an octave_scalar_map if the option 'Stats'
// has been set with odeset
// "nsteps", "nfailed", "nfevals", "npds", "ndecomps", "nlinsols"
octave_value_list vstatinput;
@@ -672,7 +672,7 @@ ode5r (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Set up output arguments that depend on how many output arguments
// are desired from the caller
if (nargout == 1) {
- Octave_map vretmap;
+ octave_scalar_map vretmap;
vretmap.assign ("x", vtres);
vretmap.assign ("y", vyres);
vretmap.assign ("solver", "ode5r");
diff --git a/src/odepkg_octsolver_rodas.cc b/src/odepkg_octsolver_rodas.cc
index c550b55..9eed5b7 100644
--- a/src/odepkg_octsolver_rodas.cc
+++ b/src/odepkg_octsolver_rodas.cc
@@ -491,7 +491,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
octave_idx_type nargin = args.length (); // The number of input arguments
octave_value_list vretval; // The cell array of return args
- Octave_map vodeopt; // The OdePkg options structure
+ octave_scalar_map vodeopt; // The OdePkg options structure
// Check number and types of all input arguments
if (nargin < 3) {
@@ -533,7 +533,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Fourth input argument != OdePkg option, need a default structure
if (!args(3).is_map ()) {
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
for (octave_idx_type vcnt = 3; vcnt < nargin; vcnt++)
vrodasextarg(vcnt-3) = args(vcnt); // Save arguments in vrodasextarg
}
@@ -544,7 +544,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
varin(0) = args(3); varin(1) = "oders";
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create structure from args(4)
+ vodeopt = tmp(0).scalar_map_value (); // Create structure from args(4)
for (octave_idx_type vcnt = 4; vcnt < nargin; vcnt++)
vrodasextarg(vcnt-4) = args(vcnt); // Save extra arguments
}
@@ -555,14 +555,14 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
varin(0) = args(3); varin(1) = "oders"; // Check structure
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
} // if (nargin >= 4)
else { // if nargin == 3, everything else has been checked before
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
/* Start PREPROCESSING, ie. check which options have been set and
@@ -572,7 +572,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option RelTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vreltol = odepkg_auxiliary_getmapvalue ("RelTol", vodeopt);
+ octave_value vreltol = vodeopt.contents ("RelTol");
if (vreltol.is_empty ()) {
vreltol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -589,7 +589,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option AbsTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vabstol = odepkg_auxiliary_getmapvalue ("AbsTol", vodeopt);
+ octave_value vabstol = vodeopt.contents ("AbsTol");
if (vabstol.is_empty ()) {
vabstol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -619,7 +619,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NormControl will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnorm = odepkg_auxiliary_getmapvalue ("NormControl", vodeopt);
+ octave_value vnorm = vodeopt.contents ("NormControl");
if (!vnorm.is_empty ())
if (vnorm.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -627,31 +627,31 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NonNegative will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnneg = odepkg_auxiliary_getmapvalue ("NonNegative", vodeopt);
+ octave_value vnneg = vodeopt.contents ("NonNegative");
if (!vnneg.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NonNegative\" will be ignored by this solver");
// Implementation of the option OutputFcn has been finished, this
// option can be set by the user to another value than default value
- vrodaspltfun = odepkg_auxiliary_getmapvalue ("OutputFcn", vodeopt);
+ vrodaspltfun = vodeopt.contents ("OutputFcn");
if (vrodaspltfun.is_empty () && nargout == 0) vrodaspltfun = "odeplot";
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- vrodasoutsel = odepkg_auxiliary_getmapvalue ("OutputSel", vodeopt);
+ vrodasoutsel = vodeopt.contents ("OutputSel");
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- vrodasrefine = odepkg_auxiliary_getmapvalue ("Refine", vodeopt);
+ vrodasrefine = vodeopt.contents ("Refine");
// Implementation of the option Stats has been finished, this option
// can be set by the user to another value than default value
- octave_value vstats = odepkg_auxiliary_getmapvalue ("Stats", vodeopt);
+ octave_value vstats = vodeopt.contents ("Stats");
// Implementation of the option InitialStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vinitstep = odepkg_auxiliary_getmapvalue ("InitialStep", vodeopt);
+ octave_value vinitstep = vodeopt.contents ("InitialStep");
if (args(1).length () > 2) {
error_with_id ("OdePkg:InvalidOption",
"Fixed time stamps are not supported by this solver");
@@ -665,7 +665,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option MaxStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vmaxstep = odepkg_auxiliary_getmapvalue ("MaxStep", vodeopt);
+ octave_value vmaxstep = vodeopt.contents ("MaxStep");
if (vmaxstep.is_empty () && args(1).length () == 2) {
vmaxstep = (args(1).vector_value ()(1) - args(1).vector_value ()(0)) / 12.5;
warning_with_id ("OdePkg:InvalidOption",
@@ -676,24 +676,24 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option Events has been finished, this
// option can be set by the user to another value than default
// value, odepkg_structure_check already checks for a valid value
- vrodasevefun = odepkg_auxiliary_getmapvalue ("Events", vodeopt);
+ vrodasevefun = vodeopt.contents ("Events");
// Implementation of the option 'Jacobian' has been finished, these
// options can be set by the user to another value than default
- vrodasjacfun = odepkg_auxiliary_getmapvalue ("Jacobian", vodeopt);
+ vrodasjacfun = vodeopt.contents ("Jacobian");
octave_idx_type vrodasjac = 0; // We need to set this if no Jac available
if (!vrodasjacfun.is_empty ()) vrodasjac = 1;
// The option JPattern will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vrodasjacpat = odepkg_auxiliary_getmapvalue ("JPattern", vodeopt);
+ octave_value vrodasjacpat = vodeopt.contents ("JPattern");
if (!vrodasjacpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"JPattern\" will be ignored by this solver");
// The option Vectorized will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vrodasvectorize = odepkg_auxiliary_getmapvalue ("Vectorized", vodeopt);
+ octave_value vrodasvectorize = vodeopt.contents ("Vectorized");
if (!vrodasvectorize.is_empty ())
if (vrodasvectorize.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -701,7 +701,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option 'Mass' has been finished, these
// options can be set by the user to another value than default
- vrodasmass = odepkg_auxiliary_getmapvalue ("Mass", vodeopt);
+ vrodasmass = vodeopt.contents ("Mass");
octave_idx_type vrodasmas = 0;
if (!vrodasmass.is_empty ()) {
vrodasmas = 1;
@@ -712,7 +712,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option MStateDependence will be ignored by this solver, the
// core Fortran solver doesn't support this option
- vrodasmassstate = odepkg_auxiliary_getmapvalue ("MStateDependence", vodeopt);
+ vrodasmassstate = vodeopt.contents ("MStateDependence");
if (!vrodasmassstate.is_empty ())
if (vrodasmassstate.string_value ().compare ("weak") != 0) // 'weak' is default
warning_with_id ("OdePkg:InvalidOption",
@@ -720,14 +720,14 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option MStateDependence will be ignored by this solver, the
// core Fortran solver doesn't support this option
- octave_value vmvpat = odepkg_auxiliary_getmapvalue ("MvPattern", vodeopt);
+ octave_value vmvpat = vodeopt.contents ("MvPattern");
if (!vmvpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MvPattern\" will be ignored by this solver");
// The option MassSingular will be ignored by this solver, the
// core Fortran solver doesn't support this option
- octave_value vmsing = odepkg_auxiliary_getmapvalue ("MassSingular", vodeopt);
+ octave_value vmsing = vodeopt.contents ("MassSingular");
if (!vmsing.is_empty ())
if (vmsing.string_value ().compare ("maybe") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -735,21 +735,21 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option InitialSlope will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vinitslope = odepkg_auxiliary_getmapvalue ("InitialSlope", vodeopt);
+ octave_value vinitslope = vodeopt.contents ("InitialSlope");
if (!vinitslope.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"InitialSlope\" will be ignored by this solver");
// The option MaxOrder will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vmaxder = odepkg_auxiliary_getmapvalue ("MaxOrder", vodeopt);
+ octave_value vmaxder = vodeopt.contents ("MaxOrder");
if (!vmaxder.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxOrder\" will be ignored by this solver");
// The option BDF will be ignored by this solver, the core Fortran
// solver doesn't support this option
- octave_value vbdf = odepkg_auxiliary_getmapvalue ("BDF", vodeopt);
+ octave_value vbdf = vodeopt.contents ("BDF");
if (!vbdf.is_empty ())
if (vbdf.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -757,12 +757,12 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NewtonTol and MaxNewtonIterations will be ignored by
// this solver, IT NEEDS TO BE CHECKED IF THE FORTRAN CORE SOLVER
// CAN HANDLE THESE OPTIONS
- octave_value vntol = odepkg_auxiliary_getmapvalue ("NewtonTol", vodeopt);
+ octave_value vntol = vodeopt.contents ("NewtonTol");
if (!vntol.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NewtonTol\" will be ignored by this solver");
octave_value vmaxnewton =
- odepkg_auxiliary_getmapvalue ("MaxNewtonIterations", vodeopt);
+ vodeopt.contents ("MaxNewtonIterations");
if (!vmaxnewton.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxNewtonIterations\" will be ignored by this solver");
@@ -854,7 +854,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
if (!vrodasevefun.is_empty ()) odepkg_auxiliary_evaleventfun
(vrodasevefun, vted, vfin, vrodasextarg, 2);
- // Get the stats information as an Octave_map if the option 'Stats'
+ // Get the stats information as an octave_scalar_map if the option 'Stats'
// has been set with odeset
octave_value_list vstatinput;
vstatinput(0) = IWORK[16];
@@ -872,7 +872,7 @@ oders (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Set up output arguments that depend on how many output arguments
// are desired from the caller
if (nargout == 1) {
- Octave_map vretmap;
+ octave_scalar_map vretmap;
vretmap.assign ("x", vtres);
vretmap.assign ("y", vyres);
vretmap.assign ("solver", "oders");
diff --git a/src/odepkg_octsolver_seulex.cc b/src/odepkg_octsolver_seulex.cc
index 79ca2e4..d310c5a 100644
--- a/src/odepkg_octsolver_seulex.cc
+++ b/src/odepkg_octsolver_seulex.cc
@@ -285,7 +285,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
octave_idx_type nargin = args.length (); // The number of input arguments
octave_value_list vretval; // The cell array of return args
- Octave_map vodeopt; // The OdePkg options structure
+ octave_scalar_map vodeopt; // The OdePkg options structure
// Check number and types of all input arguments
if (nargin < 3) {
@@ -327,7 +327,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Fourth input argument != OdePkg option, need a default structure
if (!args(3).is_map ()) {
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
for (octave_idx_type vcnt = 3; vcnt < nargin; vcnt++)
vseulexextarg(vcnt-3) = args(vcnt); // Save arguments in vseulexextarg
}
@@ -338,7 +338,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
varin(0) = args(3); varin(1) = "odesx";
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create structure from args(4)
+ vodeopt = tmp(0).scalar_map_value (); // Create structure from args(4)
for (octave_idx_type vcnt = 4; vcnt < nargin; vcnt++)
vseulexextarg(vcnt-4) = args(vcnt); // Save extra arguments
}
@@ -349,14 +349,14 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
varin(0) = args(3); varin(1) = "odesx"; // Check structure
octave_value_list tmp = feval ("odepkg_structure_check", varin, 1);
if (error_state) return (vretval);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
} // if (nargin >= 4)
else { // if nargin == 3, everything else has been checked before
octave_value_list tmp = feval ("odeset", tmp, 1);
- vodeopt = tmp(0).map_value (); // Create a default structure
+ vodeopt = tmp(0).scalar_map_value (); // Create a default structure
}
/* Start PREPROCESSING, ie. check which options have been set and
@@ -366,7 +366,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option RelTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vreltol = odepkg_auxiliary_getmapvalue ("RelTol", vodeopt);
+ octave_value vreltol = vodeopt.contents ("RelTol");
if (vreltol.is_empty ()) {
vreltol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -383,7 +383,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option AbsTol has been finished, this
// option can be set by the user to another value than default value
- octave_value vabstol = odepkg_auxiliary_getmapvalue ("AbsTol", vodeopt);
+ octave_value vabstol = vodeopt.contents ("AbsTol");
if (vabstol.is_empty ()) {
vabstol = 1.0e-6;
warning_with_id ("OdePkg:InvalidOption",
@@ -413,7 +413,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NormControl will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnorm = odepkg_auxiliary_getmapvalue ("NormControl", vodeopt);
+ octave_value vnorm = vodeopt.contents ("NormControl");
if (!vnorm.is_empty ())
if (vnorm.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -421,31 +421,31 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NonNegative will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vnneg = odepkg_auxiliary_getmapvalue ("NonNegative", vodeopt);
+ octave_value vnneg = vodeopt.contents ("NonNegative");
if (!vnneg.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NonNegative\" will be ignored by this solver");
// Implementation of the option OutputFcn has been finished, this
// option can be set by the user to another value than default value
- vseulexpltfun = odepkg_auxiliary_getmapvalue ("OutputFcn", vodeopt);
+ vseulexpltfun = vodeopt.contents ("OutputFcn");
if (vseulexpltfun.is_empty () && nargout == 0) vseulexpltfun = "odeplot";
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- vseulexoutsel = odepkg_auxiliary_getmapvalue ("OutputSel", vodeopt);
+ vseulexoutsel = vodeopt.contents ("OutputSel");
// Implementation of the option OutputSel has been finished, this
// option can be set by the user to another value than default value
- vseulexrefine = odepkg_auxiliary_getmapvalue ("Refine", vodeopt);
+ vseulexrefine = vodeopt.contents ("Refine");
// Implementation of the option Stats has been finished, this option
// can be set by the user to another value than default value
- octave_value vstats = odepkg_auxiliary_getmapvalue ("Stats", vodeopt);
+ octave_value vstats = vodeopt.contents ("Stats");
// Implementation of the option InitialStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vinitstep = odepkg_auxiliary_getmapvalue ("InitialStep", vodeopt);
+ octave_value vinitstep = vodeopt.contents ("InitialStep");
if (args(1).length () > 2) {
error_with_id ("OdePkg:InvalidOption",
"Fixed time stamps are not supported by this solver");
@@ -459,7 +459,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option MaxStep has been finished, this
// option can be set by the user to another value than default value
- octave_value vmaxstep = odepkg_auxiliary_getmapvalue ("MaxStep", vodeopt);
+ octave_value vmaxstep = vodeopt.contents ("MaxStep");
if (vmaxstep.is_empty () && args(1).length () == 2) {
vmaxstep = (args(1).vector_value ()(1) - args(1).vector_value ()(0)) / 12.5;
warning_with_id ("OdePkg:InvalidOption",
@@ -470,24 +470,24 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option Events has been finished, this
// option can be set by the user to another value than default
// value, odepkg_structure_check already checks for a valid value
- vseulexevefun = odepkg_auxiliary_getmapvalue ("Events", vodeopt);
+ vseulexevefun = vodeopt.contents ("Events");
// Implementation of the option 'Jacobian' has been finished, these
// options can be set by the user to another value than default
- vseulexjacfun = odepkg_auxiliary_getmapvalue ("Jacobian", vodeopt);
+ vseulexjacfun = vodeopt.contents ("Jacobian");
octave_idx_type vseulexjac = 0; // We need to set this if no Jac available
if (!vseulexjacfun.is_empty ()) vseulexjac = 1;
// The option JPattern will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vseulexjacpat = odepkg_auxiliary_getmapvalue ("JPattern", vodeopt);
+ octave_value vseulexjacpat = vodeopt.contents ("JPattern");
if (!vseulexjacpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"JPattern\" will be ignored by this solver");
// The option Vectorized will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vseulexvectorize = odepkg_auxiliary_getmapvalue ("Vectorized", vodeopt);
+ octave_value vseulexvectorize = vodeopt.contents ("Vectorized");
if (!vseulexvectorize.is_empty ())
if (vseulexvectorize.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -495,7 +495,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Implementation of the option 'Mass' has been finished, these
// options can be set by the user to another value than default
- vseulexmass = odepkg_auxiliary_getmapvalue ("Mass", vodeopt);
+ vseulexmass = vodeopt.contents ("Mass");
octave_idx_type vseulexmas = 0;
if (!vseulexmass.is_empty ()) {
vseulexmas = 1;
@@ -506,7 +506,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option MStateDependence will be ignored by this solver, the
// core Fortran solver doesn't support this option
- vseulexmassstate = odepkg_auxiliary_getmapvalue ("MStateDependence", vodeopt);
+ vseulexmassstate = vodeopt.contents ("MStateDependence");
if (!vseulexmassstate.is_empty ())
if (vseulexmassstate.string_value ().compare ("weak") != 0) // 'weak' is default
warning_with_id ("OdePkg:InvalidOption",
@@ -514,14 +514,14 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option MStateDependence will be ignored by this solver, the
// core Fortran solver doesn't support this option
- octave_value vmvpat = odepkg_auxiliary_getmapvalue ("MvPattern", vodeopt);
+ octave_value vmvpat = vodeopt.contents ("MvPattern");
if (!vmvpat.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MvPattern\" will be ignored by this solver");
// The option MassSingular will be ignored by this solver, the
// core Fortran solver doesn't support this option
- octave_value vmsing = odepkg_auxiliary_getmapvalue ("MassSingular", vodeopt);
+ octave_value vmsing = vodeopt.contents ("MassSingular");
if (!vmsing.is_empty ())
if (vmsing.string_value ().compare ("maybe") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -529,21 +529,21 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option InitialSlope will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vinitslope = odepkg_auxiliary_getmapvalue ("InitialSlope", vodeopt);
+ octave_value vinitslope = vodeopt.contents ("InitialSlope");
if (!vinitslope.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"InitialSlope\" will be ignored by this solver");
// The option MaxOrder will be ignored by this solver, the core
// Fortran solver doesn't support this option
- octave_value vmaxder = odepkg_auxiliary_getmapvalue ("MaxOrder", vodeopt);
+ octave_value vmaxder = vodeopt.contents ("MaxOrder");
if (!vmaxder.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxOrder\" will be ignored by this solver");
// The option BDF will be ignored by this solver, the core Fortran
// solver doesn't support this option
- octave_value vbdf = odepkg_auxiliary_getmapvalue ("BDF", vodeopt);
+ octave_value vbdf = vodeopt.contents ("BDF");
if (!vbdf.is_empty ())
if (vbdf.string_value ().compare ("off") != 0)
warning_with_id ("OdePkg:InvalidOption",
@@ -551,12 +551,12 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// The option NewtonTol and MaxNewtonIterations will be ignored by
// this solver, IT NEEDS TO BE CHECKED IF THE FORTRAN CORE SOLVER
// CAN HANDLE THESE OPTIONS
- octave_value vntol = odepkg_auxiliary_getmapvalue ("NewtonTol", vodeopt);
+ octave_value vntol = vodeopt.contents ("NewtonTol");
if (!vntol.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"NewtonTol\" will be ignored by this solver");
octave_value vmaxnewton =
- odepkg_auxiliary_getmapvalue ("MaxNewtonIterations", vodeopt);
+ vodeopt.contents ("MaxNewtonIterations");
if (!vmaxnewton.is_empty ())
warning_with_id ("OdePkg:InvalidOption",
"Option \"MaxNewtonIterations\" will be ignored by this solver");
@@ -653,7 +653,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
if (!vseulexevefun.is_empty ()) odepkg_auxiliary_evaleventfun
(vseulexevefun, vted, vfin, vseulexextarg, 2);
- // Get the stats information as an Octave_map if the option 'Stats'
+ // Get the stats information as an octave_scalar_map if the option 'Stats'
// has been set with odeset
octave_value_list vstatinput;
vstatinput(0) = IWORK[16];
@@ -671,7 +671,7 @@ odesx (@@odepkg_equations_lorenz, [0, 25], [3 15 1], vopt);\n\
// Set up output arguments that depend on how many output arguments
// are desired from the caller
if (nargout == 1) {
- Octave_map vretmap;
+ octave_scalar_map vretmap;
vretmap.assign ("x", vtres);
vretmap.assign ("y", vyres);
vretmap.assign ("solver", "odesx");
--
Alioth's /home/groups/pkg-octave/bin/git-commit-notice on /srv/git.debian.org/git/pkg-octave/octave-odepkg.git
More information about the Pkg-octave-commit
mailing list