changeset 1253:bb67a902760b

[project @ 1995-04-11 16:35:23 by jwe]
author jwe
date Tue, 11 Apr 1995 16:35:23 +0000
parents ccb22498f289
children ecf3dc595ecb
files liboctave/CColVector.cc liboctave/CMatrix.cc liboctave/CRowVector.cc liboctave/CmplxAEPBAL.cc liboctave/CmplxCHOL.cc liboctave/CmplxHESS.cc liboctave/CmplxLU.cc liboctave/CmplxQR.cc liboctave/CmplxQRP.cc liboctave/CmplxSCHUR.cc liboctave/CmplxSVD.cc liboctave/CollocWt.cc liboctave/DASSL.cc liboctave/EIG.cc liboctave/LSODE.cc liboctave/NLEqn.cc liboctave/NPSOL.cc liboctave/QLD.cc liboctave/QPSOL.cc liboctave/Quad.cc liboctave/dColVector.cc liboctave/dMatrix.cc liboctave/dRowVector.cc liboctave/dbleAEPBAL.cc liboctave/dbleCHOL.cc liboctave/dbleGEPBAL.cc liboctave/dbleHESS.cc liboctave/dbleLU.cc liboctave/dbleQR.cc liboctave/dbleQRP.cc liboctave/dbleSCHUR.cc liboctave/dbleSVD.cc
diffstat 32 files changed, 473 insertions(+), 391 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/CColVector.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CColVector.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -38,10 +38,11 @@
 
 extern "C"
 {
-  int F77_FCN (zgemv) (const char*, const int&, const int&,
-		       const Complex&, const Complex*, const int&,
-		       const Complex*, const int&, const Complex&,
-		       Complex*, const int&, long);
+  int F77_FCN (zgemv, ZGEMV) (const char*, const int&, const int&,
+			      const Complex&, const Complex*,
+			      const int&, const Complex*, const int&,
+			      const Complex&, Complex*, const int&,
+			      long);
 }
 
 /*
@@ -450,8 +451,8 @@
 
   Complex *y = new Complex [nr];
 
-  F77_FCN (zgemv) ("N", nr, nc, 1.0, m.data (), ld, a.data (), 1, 0.0,
-		   y, 1, 1L);
+  F77_FCN (zgemv, ZGEMV) ("N", nr, nc, 1.0, m.data (), ld, a.data (),
+			  1, 0.0, y, 1, 1L);
 
   return ComplexColumnVector (y, nr);
 }
--- a/liboctave/CMatrix.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CMatrix.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -42,36 +42,37 @@
 
 extern "C"
 {
-  int F77_FCN (zgemm) (const char*, const char*, const int&,
-		       const int&, const int&, const Complex&,
-		       const Complex*, const int&, const Complex*,
-		       const int&, const Complex&, Complex*, const int&,
-		       long, long);
-
-  int F77_FCN (zgeco) (Complex*, const int&, const int&, int*,
-		       double&, Complex*);
-
-  int F77_FCN (zgedi) (Complex*, const int&, const int&, int*,
-		       Complex*, Complex*, const int&);
-
-  int F77_FCN (zgesl) (Complex*, const int&, const int&, int*,
-		       Complex*, const int&);
-
-  int F77_FCN (zgelss) (const int&, const int&, const int&, Complex*,
-			const int&, Complex*, const int&, double*,
-			double&, int&, Complex*, const int&,
-			double*, int&);
+  int F77_FCN (zgemm, ZGEMM) (const char*, const char*, const int&,
+			      const int&, const int&, const Complex&,
+			      const Complex*, const int&,
+			      const Complex*, const int&,
+			      const Complex&, Complex*, const int&, 
+			      long, long);
+
+  int F77_FCN (zgeco, ZGECO) (Complex*, const int&, const int&, int*,
+			      double&, Complex*);
+
+  int F77_FCN (zgedi, ZGEDI) (Complex*, const int&, const int&, int*,
+			      Complex*, Complex*, const int&);
+
+  int F77_FCN (zgesl, ZGESL) (Complex*, const int&, const int&, int*,
+			      Complex*, const int&);
+
+  int F77_FCN (zgelss, ZGELSS) (const int&, const int&, const int&,
+				Complex*, const int&, Complex*,
+				const int&, double*, double&, int&,
+				Complex*, const int&, double*, int&);
 
 // Note that the original complex fft routines were not written for
 // double complex arguments.  They have been modified by adding an
 // implicit double precision (a-h,o-z) statement at the beginning of
 // each subroutine.
 
-  int F77_FCN (cffti) (const int&, Complex*);
-
-  int F77_FCN (cfftf) (const int&, Complex*, Complex*);
-
-  int F77_FCN (cfftb) (const int&, Complex*, Complex*);
+  int F77_FCN (cffti, CFFTI) (const int&, Complex*);
+
+  int F77_FCN (cfftf, CFFTF) (const int&, Complex*, Complex*);
+
+  int F77_FCN (cfftb, CFFTB) (const int&, Complex*, Complex*);
 }
 
 /*
@@ -788,7 +789,7 @@
   Complex *z = new Complex [nr];
   Complex *tmp_data = dup (data (), len);
 
-  F77_FCN (zgeco) (tmp_data, nr, nc, ipvt, rcond, z);
+  F77_FCN (zgeco, ZGECO) (tmp_data, nr, nc, ipvt, rcond, z);
 
   volatile double rcond_plus_one = rcond + 1.0;
   if (rcond_plus_one == 1.0)
@@ -800,7 +801,7 @@
     {
       Complex *dummy;
 
-      F77_FCN (zgedi) (tmp_data, nr, nc, ipvt, dummy, z, 1);
+      F77_FCN (zgedi, ZGEDI) (tmp_data, nr, nc, ipvt, dummy, z, 1);
     }
 
   delete [] ipvt;
@@ -867,10 +868,10 @@
   Complex *wsave = new Complex [nn];
   Complex *tmp_data = dup (data (), length ());
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (int j = 0; j < nsamples; j++)
-    F77_FCN (cfftf) (npts, &tmp_data[npts*j], wsave);
+    F77_FCN (cfftf, CFFTF) (npts, &tmp_data[npts*j], wsave);
 
   delete [] wsave;
 
@@ -898,10 +899,10 @@
   Complex *wsave = new Complex [nn];
   Complex *tmp_data = dup (data (), length ());
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (int j = 0; j < nsamples; j++)
-    F77_FCN (cfftb) (npts, &tmp_data[npts*j], wsave);
+    F77_FCN (cfftb, CFFTB) (npts, &tmp_data[npts*j], wsave);
 
   for (j = 0; j < npts*nsamples; j++)
     tmp_data[j] = tmp_data[j] / (double) npts;
@@ -932,10 +933,10 @@
   Complex *wsave = new Complex [nn];
   Complex *tmp_data = dup (data (), length ());
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (int j = 0; j < nsamples; j++)
-    F77_FCN (cfftf) (npts, &tmp_data[npts*j], wsave);
+    F77_FCN (cfftf, CFFTF) (npts, &tmp_data[npts*j], wsave);
 
   delete [] wsave;
 
@@ -945,14 +946,14 @@
   wsave = new Complex [nn];
   Complex *row = new Complex[npts];
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (j = 0; j < nsamples; j++)
     {
       for (int i = 0; i < npts; i++)
 	row[i] = tmp_data[i*nr + j];
 
-      F77_FCN (cfftf) (npts, row, wsave);
+      F77_FCN (cfftf, CFFTF) (npts, row, wsave);
 
       for (i = 0; i < npts; i++)
 	tmp_data[i*nr + j] = row[i];
@@ -985,10 +986,10 @@
   Complex *wsave = new Complex [nn];
   Complex *tmp_data = dup (data (), length ());
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (int j = 0; j < nsamples; j++)
-    F77_FCN (cfftb) (npts, &tmp_data[npts*j], wsave);
+    F77_FCN (cfftb, CFFTB) (npts, &tmp_data[npts*j], wsave);
 
   delete [] wsave;
 
@@ -1001,14 +1002,14 @@
   wsave = new Complex [nn];
   Complex *row = new Complex[npts];
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (j = 0; j < nsamples; j++)
     {
       for (int i = 0; i < npts; i++)
 	row[i] = tmp_data[i*nr + j];
 
-      F77_FCN (cfftb) (npts, row, wsave);
+      F77_FCN (cfftb, CFFTB) (npts, row, wsave);
 
       for (i = 0; i < npts; i++)
 	tmp_data[i*nr + j] = row[i] / (double) npts;
@@ -1058,7 +1059,7 @@
       Complex *z = new Complex [nr];
       Complex *tmp_data = dup (data (), length ());
 
-      F77_FCN (zgeco) (tmp_data, nr, nr, ipvt, rcond, z);
+      F77_FCN (zgeco, ZGECO) (tmp_data, nr, nr, ipvt, rcond, z);
 
       volatile double rcond_plus_one = rcond + 1.0;
       if (rcond_plus_one == 1.0)
@@ -1069,7 +1070,7 @@
       else
 	{
 	  Complex d[2];
-	  F77_FCN (zgedi) (tmp_data, nr, nr, ipvt, d, z, 10);
+	  F77_FCN (zgedi, ZGEDI) (tmp_data, nr, nr, ipvt, d, z, 10);
 	  retval = ComplexDET (d);
 	}
 
@@ -1139,7 +1140,7 @@
   Complex *z = new Complex [nr];
   Complex *tmp_data = dup (data (), length ());
 
-  F77_FCN (zgeco) (tmp_data, nr, nr, ipvt, rcond, z);
+  F77_FCN (zgeco, ZGECO) (tmp_data, nr, nr, ipvt, rcond, z);
 
   volatile double rcond_plus_one = rcond + 1.0;
   if (rcond_plus_one == 1.0)
@@ -1151,7 +1152,7 @@
       Complex *result = dup (b.data (), b.length ());
 
       for (int j = 0; j < b_nc; j++)
-	F77_FCN (zgesl) (tmp_data, nr, nr, ipvt, &result[nr*j], 0);
+	F77_FCN (zgesl, ZGESL) (tmp_data, nr, nr, ipvt, &result[nr*j], 0);
 
       retval = ComplexMatrix (result, b_nr, b_nc);
     }
@@ -1200,7 +1201,7 @@
   Complex *z = new Complex [nr];
   Complex *tmp_data = dup (data (), length ());
 
-  F77_FCN (zgeco) (tmp_data, nr, nr, ipvt, rcond, z);
+  F77_FCN (zgeco, ZGECO) (tmp_data, nr, nr, ipvt, rcond, z);
 
   volatile double rcond_plus_one = rcond + 1.0;
   if (rcond_plus_one == 1.0)
@@ -1211,7 +1212,7 @@
     {
       Complex *result = dup (b.data (), b_len);
 
-      F77_FCN (zgesl) (tmp_data, nr, nr, ipvt, result, 0);
+      F77_FCN (zgesl, ZGESL) (tmp_data, nr, nr, ipvt, result, 0);
 
       retval = ComplexColumnVector (result, b_len);
     }
@@ -1280,8 +1281,8 @@
   lrwork = lrwork > 1 ? lrwork : 1;
   double *rwork = new double [lrwork];
 
-  F77_FCN (zgelss) (m, n, nrhs, tmp_data, m, presult, nrr, s,
-		    rcond, rank, work, lwork, rwork, info);
+  F77_FCN (zgelss, ZGELSS) (m, n, nrhs, tmp_data, m, presult, nrr, s,
+			    rcond, rank, work, lwork, rwork, info);
 
   ComplexMatrix retval (n, nrhs);
   for (j = 0; j < nrhs; j++)
@@ -1353,8 +1354,8 @@
   lrwork = lrwork > 1 ? lrwork : 1;
   double *rwork = new double [lrwork];
 
-  F77_FCN (zgelss) (m, n, nrhs, tmp_data, m, presult, nrr, s,
-		    rcond, rank, work, lwork, rwork, info);
+  F77_FCN (zgelss, ZGELSS) (m, n, nrhs, tmp_data, m, presult, nrr, s,
+			    rcond, rank, work, lwork, rwork, info);
 
   ComplexColumnVector retval (n);
   for (i = 0; i < n; i++)
@@ -1401,8 +1402,8 @@
 
   Complex *c = new Complex [len * a_len];
 
-  F77_FCN (zgemm) ("N", "N", len, a_len, 1, 1.0, v.data (), len,
-		   a.data (), 1, 0.0, c, len, 1L, 1L);
+  F77_FCN (zgemm, ZGEMM) ("N", "N", len, a_len, 1, 1.0, v.data (),
+			  len, a.data (), 1, 0.0, c, len, 1L, 1L);
 
   return ComplexMatrix (c, len, a_len);
 }
@@ -2445,8 +2446,8 @@
 
   Complex *c = new Complex [nr*a_nc];
 
-  F77_FCN (zgemm) ("N", "N", nr, a_nc, nc, 1.0, m.data (),
-		   ld, a.data (), lda, 0.0, c, nr, 1L, 1L);
+  F77_FCN (zgemm, ZGEMM) ("N", "N", nr, a_nc, nc, 1.0, m.data (), ld,
+			  a.data (), lda, 0.0, c, nr, 1L, 1L);
 
   return ComplexMatrix (c, nr, a_nc);
 }
--- a/liboctave/CRowVector.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CRowVector.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -38,10 +38,11 @@
 
 extern "C"
 {
-  int F77_FCN (zgemv) (const char*, const int&, const int&,
-		       const Complex&, const Complex*, const int&,
-		       const Complex*, const int&, const Complex&,
-		       Complex*, const int&, long);
+  int F77_FCN (zgemv, ZGEMV) (const char*, const int&, const int&,
+			      const Complex&, const Complex*,
+			      const int&, const Complex*, const int&,
+			      const Complex&, Complex*, const int&,
+			      long);
 }
 
 /*
@@ -442,8 +443,8 @@
 
   Complex *y = new Complex [len];
 
-  F77_FCN (zgemv) ("T", a_nc, a_nr, 1.0, a.data (), ld, v.data (), 1,
-		   0.0, y, 1, 1L); 
+  F77_FCN (zgemv, ZGEMV) ("T", a_nc, a_nr, 1.0, a.data (), ld,
+			  v.data (), 1, 0.0, y, 1, 1L); 
 
   return ComplexRowVector (y, len);
 }
--- a/liboctave/CmplxAEPBAL.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CmplxAEPBAL.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -31,12 +31,14 @@
 
 extern "C"
 {
-  int F77_FCN (zgebal) (const char*, const int&, Complex*, const int&,
-                        int&, int&, double*, int&, long, long);
+  int F77_FCN (zgebal, ZGEBAL) (const char*, const int&, Complex*,
+				const int&, int&, int&, double*, int&,
+				long, long);
  
-  int F77_FCN (zgebak) (const char*, const char*, const int&, const int&,
-			const int&, double*, const int&, Complex*, 
-			const int&, int&, long, long);
+  int F77_FCN (zgebak, ZGEBAK) (const char*, const char*, const int&,
+				const int&, const int&, double*, const
+				int&, Complex*, const int&, int&,
+				long, long);
 }
 
 int
@@ -56,8 +58,9 @@
 
   balanced_mat = a;
 
-  F77_FCN (zgebal) (balance_job, n, balanced_mat.fortran_vec (),
-		    n, ilo, ihi, scale, info, 1L, 1L);
+  F77_FCN (zgebal, ZGEBAL) (balance_job, n,
+			    balanced_mat.fortran_vec (), n, ilo, ihi,
+			    scale, info, 1L, 1L);
 
 // Initialize balancing matrix to identity.
 
@@ -65,8 +68,9 @@
   for (int i = 0; i < n; i++)
     balancing_mat (i, i) = 1.0;
 
-  F77_FCN (zgebak) (balance_job, "R", n, ilo, ihi, scale, n, 
-		    balancing_mat.fortran_vec (), n, info, 1L, 1L);
+  F77_FCN (zgebak, ZGEBAK) (balance_job, "R", n, ilo, ihi, scale, n, 
+			    balancing_mat.fortran_vec (), n, info, 1L,
+			    1L);
 
   delete [] scale;
 
--- a/liboctave/CmplxCHOL.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CmplxCHOL.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,8 +32,8 @@
 
 extern "C"
 {
-  int F77_FCN (zpotrf) (const char*, const int&, Complex*, const int&,
-			int&, long);
+  int F77_FCN (zpotrf, ZPOTRF) (const char*, const int&, Complex*,
+				const int&, int&, long);
 }
 
 int
@@ -53,7 +53,7 @@
 
    Complex *h = dup (a.data (), a.length ());
 
-   F77_FCN (zpotrf) ("U", n, h, n, info, 1L);
+   F77_FCN (zpotrf, ZPOTRF) ("U", n, h, n, info, 1L);
 
    chol_mat = ComplexMatrix (h, n, n);
 
--- a/liboctave/CmplxHESS.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CmplxHESS.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,20 +32,23 @@
 
 extern "C"
 {
-  int F77_FCN (zgebal) (const char*, const int&, Complex*, const int&,
-                        int&, int&, double*, int&, long, long);
+  int F77_FCN (zgebal, ZGEBAL) (const char*, const int&, Complex*,
+				const int&, int&, int&, double*, int&,
+				long, long);
  
-  int F77_FCN (zgehrd) (const int&, const int&, const int&, Complex*,
-                        const int&, Complex*, Complex*, const int&,
-                        int&, long, long);
+  int F77_FCN (zgehrd, ZGEHRD) (const int&, const int&, const int&,
+				Complex*, const int&, Complex*,
+				Complex*, const int&, int&, long,
+				long);
  
-  int F77_FCN (zunghr) (const int&, const int&, const int&, Complex*,
-                        const int&, Complex*, Complex*, const int&,
-                        int&, long, long);
+  int F77_FCN (zunghr, ZUNGHR) (const int&, const int&, const int&,
+				Complex*, const int&, Complex*,
+				Complex*, const int&, int&, long, long);
 
-  int F77_FCN (zgebak) (const char*, const char*, const int&, const int&,
-			const int&, double*, const int&, Complex*,
-			const int&, int&, long, long);
+  int F77_FCN (zgebak, ZGEBAK) (const char*, const char*, const int&,
+				const int&, const int&, double*,
+				const int&, Complex*, const int&,
+				int&, long, long);
 }
 
 int
@@ -76,15 +79,19 @@
    Complex *work = new Complex [lwork];
    Complex *z = new Complex [n*n];
 
-   F77_FCN (zgebal) (job, n, h, n, ilo, ihi, scale, info, 1L, 1L);
+   F77_FCN (zgebal, ZGEBAL) (job, n, h, n, ilo, ihi, scale, info, 1L,
+			     1L);
 
-   F77_FCN (zgehrd) (n, ilo, ihi, h, n, tau, work, lwork, info, 1L, 1L);
+   F77_FCN (zgehrd, ZGEHRD) (n, ilo, ihi, h, n, tau, work, lwork,
+			     info, 1L, 1L);
 
    copy (z, h, n*n);
 
-   F77_FCN (zunghr) (n, ilo, ihi, z, n, tau, work, lwork, info, 1L, 1L);
+   F77_FCN (zunghr, ZUNGHR) (n, ilo, ihi, z, n, tau, work, lwork,
+			     info, 1L, 1L);
 
-   F77_FCN (zgebak) (job, side, n, ilo, ihi, scale, n, z, n, info, 1L, 1L); 
+   F77_FCN (zgebak, ZGEBAK) (job, side, n, ilo, ihi, scale, n, z, n,
+			     info, 1L, 1L);
 
    hess_mat = ComplexMatrix (h, n, n);
    unitary_hess_mat = ComplexMatrix (z, n, n);
--- a/liboctave/CmplxLU.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CmplxLU.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,8 +32,9 @@
 
 extern "C"
 {
-  int F77_FCN (zgesv) (const int&, const int&, Complex*, const int&,
-		       int*, Complex*, const int&, int&);
+  int F77_FCN (zgesv, ZGESV) (const int&, const int&, Complex*,
+			      const int&, int*, Complex*, const int&,
+			      int&);
 }
 
 ComplexLU::ComplexLU (const ComplexMatrix& a)
@@ -54,7 +55,7 @@
   int info = 0;
   Complex *b;
 
-  F77_FCN (zgesv) (n, 0, tmp_data, n, ipvt, b, n, info);
+  F77_FCN (zgesv, ZGESV) (n, 0, tmp_data, n, ipvt, b, n, info);
 
   ComplexMatrix A_fact (tmp_data, n, n);
 
--- a/liboctave/CmplxQR.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CmplxQR.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,11 +32,13 @@
 
 extern "C"
 {
-  int F77_FCN (zgeqrf) (const int&, const int&, Complex*, const int&,
-			Complex*, Complex*, const int&, int&);
+  int F77_FCN (zgeqrf, ZGEQRF) (const int&, const int&, Complex*,
+				const int&, Complex*, Complex*,
+				const int&, int&); 
 
-  int F77_FCN (zungqr) (const int&, const int&, const int&, Complex*,
-			const int&, Complex*, Complex*, const int&, int&);
+  int F77_FCN (zungqr, ZUNGQR) (const int&, const int&, const int&,
+				Complex*, const int&, Complex*,
+				Complex*, const int&, int&);
 }
 
 ComplexQR::ComplexQR (const ComplexMatrix& a, QR::type qr_type)
@@ -66,7 +68,8 @@
   else
     tmp_data = dup (a.data (), a.length ());
 
-  F77_FCN (zgeqrf) (m, n, tmp_data, m, tau, work, lwork, info);
+  F77_FCN (zgeqrf, ZGEQRF) (m, n, tmp_data, m, tau, work, lwork,
+			    info);
 
   delete [] work;
 
@@ -103,7 +106,8 @@
       lwork = 32*m;
       work = new Complex[lwork];
 
-      F77_FCN (zungqr) (m, m, min_mn, tmp_data, m, tau, work, lwork, info);
+      F77_FCN (zungqr, ZUNGQR) (m, m, min_mn, tmp_data, m, tau, work,
+				lwork, info);
 
       q = ComplexMatrix (tmp_data, m, m);
       q.resize (m, n2);
--- a/liboctave/CmplxQRP.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CmplxQRP.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -34,11 +34,13 @@
 
 extern "C"
 {
-  int F77_FCN (zgeqpf) (const int&, const int&, Complex*, const int&,
-			int*, Complex*, Complex*, double*, int&);
+  int F77_FCN (zgeqpf, ZGEQPF) (const int&, const int&, Complex*,
+				const int&, int*, Complex*, Complex*,
+				double*, int&);
 
-  int F77_FCN (zungqr) (const int&, const int&, const int&, Complex*,
-			const int&, Complex*, Complex*, const int&, int&);
+  int F77_FCN (zungqr, ZUNGQR) (const int&, const int&, const int&,
+				Complex*, const int&, Complex*,
+				Complex*, const int&, int&);
 }
 
 // It would be best to share some of this code with ComplexQR class...
@@ -83,7 +85,8 @@
   for (int i = 0; i < n; i++)
     jpvt[i] = 0;      
 
-  F77_FCN (zgeqpf) (m, n, tmp_data, m, jpvt, tau, work, rwork, info);
+  F77_FCN (zgeqpf, ZGEQPF) (m, n, tmp_data, m, jpvt, tau, work, rwork,
+			    info);
 
 // Form Permutation matrix (if economy is requested, return the
 // indices only!)
@@ -126,7 +129,8 @@
   lwork = 32*m;
   work = new Complex[lwork];
 
-  F77_FCN (zungqr) (m, m, min_mn, tmp_data, m, tau, work, lwork, info);
+  F77_FCN (zungqr, ZUNGQR) (m, m, min_mn, tmp_data, m, tau, work,
+			    lwork, info);
 
   q = ComplexMatrix (tmp_data, m, m);
   q.resize (m, n2);
--- a/liboctave/CmplxSCHUR.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CmplxSCHUR.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,11 +32,13 @@
 
 extern "C"
 {
-  int F77_FCN (zgeesx) (const char*, const char*, int (*)(const Complex&),
-			const char*, const int&, Complex*, const int&,
-			int&, Complex*, Complex*, const int&, double&,
-			double&, Complex*, const int&, double*, int*,
-			int&, long, long);
+  int F77_FCN (zgeesx, ZGEESX) (const char*, const char*,
+				int (*)(const Complex&), 
+				const char*, const int&, Complex*,
+				const int&, int&, Complex*, Complex*,
+				const int&, double&, double&,
+				Complex*, const int&, double*, int*,
+				int&, long, long);
 }
 
 static int
@@ -95,21 +97,24 @@
 
   if (*ord == 'A' || *ord == 'a')
     {
-      F77_FCN (zgeesx) (jobvs, sort, complex_select_ana, sense,
-			n, s, n, sdim, w, q, n, rconde, rcondv,
-			work, lwork, rwork, bwork, info, 1L, 1L);
+      F77_FCN (zgeesx, ZGEESX) (jobvs, sort, complex_select_ana,
+				sense, n, s, n, sdim, w, q, n, rconde,
+				rcondv, work, lwork, rwork, bwork,
+				info, 1L, 1L);
     }
   else if (*ord == 'D' || *ord == 'd')
     {
-      F77_FCN (zgeesx) (jobvs, sort, complex_select_dig, sense,
-			n, s, n, sdim, w, q, n, rconde, rcondv,
-			work, lwork, rwork, bwork, info, 1L, 1L);
+      F77_FCN (zgeesx, ZGEESX) (jobvs, sort, complex_select_dig,
+				sense, n, s, n, sdim, w, q, n, rconde,
+				rcondv, work, lwork, rwork, bwork,
+				info, 1L, 1L);
     }
   else
     {
-      F77_FCN (zgeesx) (jobvs, sort, (void *) 0, sense, n, s,
-			n, sdim, w, q, n, rconde, rcondv, work,
-			lwork, rwork, bwork, info, 1L, 1L);
+      F77_FCN (zgeesx, ZGEESX) (jobvs, sort, (void *) 0, sense, n, s,
+				n, sdim, w, q, n, rconde, rcondv,
+				work, lwork, rwork, bwork, info, 1L,
+				1L);
     }
 
   schur_mat = ComplexMatrix (s, n, n);
--- a/liboctave/CmplxSVD.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CmplxSVD.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -31,10 +31,12 @@
 
 extern "C"
 {
-  int F77_FCN (zgesvd) (const char*, const char*, const int&,
-			const int&, Complex*, const int&, double*,
-			Complex*, const int&, Complex*, const int&,
-			Complex*, const int&, double*, int&, long, long);
+  int F77_FCN (zgesvd, ZGESVD) (const char*, const char*, const int&,
+				const int&, Complex*, const int&,
+				double*, Complex*, const int&,
+				Complex*, const int&, Complex*,
+				const int&, double*, int&, long,
+				long);
 }
 
 int
@@ -74,8 +76,9 @@
   int lrwork = 5*max_mn;
   double *rwork = new double[lrwork];
 
-  F77_FCN (zgesvd) (jobu, jobv, m, n, tmp_data, m, s_vec, u, m,
-		    vt, nrow_vt, work, lwork, rwork, info, 1L, 1L);
+  F77_FCN (zgesvd, ZGESVD) (jobu, jobv, m, n, tmp_data, m, s_vec, u,
+			    m, vt, nrow_vt, work, lwork, rwork, info,
+			    1L, 1L);
 
   left_sm = ComplexMatrix (u, m, ncol_u);
   sigma = DiagMatrix (s_vec, nrow_s, ncol_s);
--- a/liboctave/CollocWt.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/CollocWt.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -33,11 +33,13 @@
 
 extern "C"
 {
-  int F77_FCN (jcobi) (int&, int&, int&, int&, double&, double&,
-		       double*, double*, double*, double*); 
+  int F77_FCN (jcobi, JCOBI) (int&, int&, int&, int&, double&,
+			      double&, double*, double*, double*,
+			      double*);
 
-  int F77_FCN (dfopr) (int&, int&, int&, int&, int&, int&,
-		       double*, double*, double*, double*, double*);
+  int F77_FCN (dfopr, DFOPR) (int&, int&, int&, int&, int&, int&,
+			      double*, double*, double*, double*,
+			      double*);
 }
 
 // Error handling.
@@ -275,8 +277,8 @@
 
 // Compute roots.
 
-  F77_FCN (jcobi) (nt, n, inc_left, inc_right, Alpha, Beta,
-		   dif1, dif2, dif3, pr);
+  F77_FCN (jcobi, JCOBI) (nt, n, inc_left, inc_right, Alpha, Beta,
+			  dif1, dif2, dif3, pr);
 
   int id;
   int i, j;
@@ -286,8 +288,8 @@
   id = 1;
   for (i = 1; i <= nt; i++)
     {
-      F77_FCN (dfopr) (nt, n, inc_left, inc_right, i, id, dif1,
-		       dif2, dif3, pr, vect); 
+      F77_FCN (dfopr, DFOPR) (nt, n, inc_left, inc_right, i, id, dif1,
+			      dif2, dif3, pr, vect); 
 
       for (j = 0; j < nt; j++)
 	A (i-1, j) = vect[j];
@@ -298,8 +300,8 @@
   id = 2;
   for (i = 1; i <= nt; i++)
     {
-      F77_FCN (dfopr) (nt, n, inc_left, inc_right, i, id, dif1,
-		       dif2, dif3, pr, vect); 
+      F77_FCN (dfopr, DFOPR) (nt, n, inc_left, inc_right, i, id, dif1,
+			      dif2, dif3, pr, vect); 
 
       for (j = 0; j < nt; j++)
 	B (i-1, j) = vect[j];
@@ -309,8 +311,8 @@
 
   id = 3;
   double *pq = q.fortran_vec ();
-  F77_FCN (dfopr) (nt, n, inc_left, inc_right, i, id, dif1,
-		   dif2, dif3, pr, pq);
+  F77_FCN (dfopr, DFOPR) (nt, n, inc_left, inc_right, i, id, dif1,
+			  dif2, dif3, pr, pq);
 
   delete [] dif1;
   delete [] dif2;
--- a/liboctave/DASSL.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/DASSL.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -31,14 +31,17 @@
 
 extern "C"
 {
-  int F77_FCN (ddassl) (int (*)(const double&, double*, double*,
-				double*, int&, double*, int*),
-			const int&, double&, double*, double*,
-			double&, const int*, const double&,
-			const double&, int&, double*, const int&, 
-			int*, const int&, const double*, const int*,
-			int (*)(const double&, double*, double*,
-				double*, const double&, double*, int*));
+  int F77_FCN (ddassl, DDASSL) (int (*)(const double&, double*,
+					double*, double*, int&,
+					double*, int*),
+				const int&, double&, double*, double*,
+				double&, const int*, const double&,
+				const double&, int&, double*,
+				const int&, int*, const int&,
+				const double*, const int*, 
+				int (*)(const double&, double*,
+					double*, double*, const
+					double&, double*, int*));
 }
 
 static DAEFunc::DAERHSFunc user_fun;
@@ -300,9 +303,9 @@
 
 // again:
 
-  F77_FCN (ddassl) (ddassl_f, n, t, px, pxdot, tout, info,
-		    rel_tol, abs_tol, idid, rwork, lrw, iwork,
-		    liw, dummy, idummy, ddassl_j);
+  F77_FCN (ddassl, DDASSL) (ddassl_f, n, t, px, pxdot, tout, info,
+			    rel_tol, abs_tol, idid, rwork, lrw, iwork,
+			    liw, dummy, idummy, ddassl_j);
 
   switch (idid)
     {
--- a/liboctave/EIG.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/EIG.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,15 +32,17 @@
 
 extern "C"
 {
-  int F77_FCN (dgeev) (const char*, const char*, const int&, double*,
-		       const int&, double*, double*, double*,
-		       const int&, double*, const int&, double*,
-		       const int&, int&, long, long);
+  int F77_FCN (dgeev, DGEEV) (const char*, const char*, const int&,
+			      double*, const int&, double*, double*,
+			      double*, const int&, double*,
+			      const int&, double*, const int&, int&,
+			      long, long);
 
-  int F77_FCN (zgeev) (const char*, const char*, const int&, Complex*,
-		       const int&, Complex*, Complex*, const int&,
-		       Complex*, const int&, Complex*, const int&,
-		       double*, int&, long, long);
+  int F77_FCN (zgeev, ZGEEV) (const char*, const char*, const int&,
+			      Complex*, const int&, Complex*,
+			      Complex*, const int&, Complex*,
+			      const int&, Complex*, const int&,
+			      double*, int&, long, long);
 }
 
 int
@@ -68,8 +70,8 @@
   double *dummy;
   int idummy = 1;
 
-  F77_FCN (dgeev) ("N", "V", n, tmp_data, n, wr, wi, dummy,
-		   idummy, pvr, n, work, lwork, info, 1L, 1L);
+  F77_FCN (dgeev, DGEEV) ("N", "V", n, tmp_data, n, wr, wi, dummy,
+			  idummy, pvr, n, work, lwork, info, 1L, 1L);
 
   lambda.resize (n);
   v.resize (n, n);
@@ -140,8 +142,8 @@
   Complex *dummy;
   int idummy = 1;
 
-  F77_FCN (zgeev) ("N", "V", n, tmp_data, n, pw, dummy, idummy, pvr,
-		   n, work, lwork, rwork, info, 1L, 1L);
+  F77_FCN (zgeev, ZGEEV) ("N", "V", n, tmp_data, n, pw, dummy, idummy,
+			  pvr, n, work, lwork, rwork, info, 1L, 1L);
 
   delete [] tmp_data;
   delete [] work;
--- a/liboctave/LSODE.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/LSODE.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -35,14 +35,15 @@
 
 extern "C"
 {
-  int F77_FCN (lsode) (int (*)(const int&, const double&, double*,
-			       double*, int&),
-		       int&, double*, double&, double&, int&,
-		       double&, double&, int&, int&, int&,
-		       double*, int&, int*, int&,
-		       int (*)(const int&, const double&, double*,
-			       const int&, const int&, double*,
-			       const int&), int&);
+  int F77_FCN (lsode, LSODE) (int (*)(const int&, const double&,
+				      double*, double*, int&),
+			      int&, double*, double&, double&, int&,
+			      double&, double&, int&, int&, int&,
+			      double*, int&, int*, int&,
+			      int (*)(const int&, const double&,
+				      double*, const int&, const int&,
+				      double*, const int&),
+			      int&);
 }
 
 static ODEFunc::ODERHSFunc user_fun;
@@ -243,7 +244,7 @@
 
  again:
 
-  (void) F77_FCN (lsode) (lsode_f, n, xp, t, tout, itol, rel_tol,
+  F77_FCN (lsode, LSODE) (lsode_f, n, xp, t, tout, itol, rel_tol,
 			  abs_tol, itask, istate, iopt, rwork, lrw,
 			  iwork, liw, lsode_j, method_flag);
 
--- a/liboctave/NLEqn.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/NLEqn.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -35,13 +35,16 @@
 
 extern "C"
 {
-  int F77_FCN (hybrd1) (int (*)(int*, double*, double*, int*),
-			const int&, double*, double*, const double&,
-			int&, double*, const int&);
+  int F77_FCN (hybrd1, HYBRD1) (int (*)(int*, double*, double*, int*),
+				const int&, double*, double*,
+				const double&, int&, double*,
+				const int&);
 
-  int F77_FCN (hybrj1) (int (*)(int*, double*, double*, double*, int*, int*),
-			const int&, double*, double*, double*, const int&,
-			const double&, int&, double*, const int&);
+  int F77_FCN (hybrj1) (int (*)(int*, double*, double*, double*, int*,
+				int*),
+			const int&, double*, double*, double*,
+			const int&, const double&, int&, double*,
+			const int&);
 }
 
 static nonlinear_fcn user_fun;
@@ -227,8 +230,8 @@
       double *wa = new double [lwa];
       double *fjac = new double [n*n];
 
-      F77_FCN (hybrj1) (hybrj1_fcn, n, px, fvec, fjac, n, tol, info,
-			wa, lwa);
+      F77_FCN (hybrj1, HYBRJ1) (hybrj1_fcn, n, px, fvec, fjac, n, tol,
+				info, wa, lwa);
 
       delete [] wa;
       delete [] fjac;
@@ -238,7 +241,8 @@
       int lwa = (n*(3*n+13))/2;
       double *wa = new double [lwa];
 
-      F77_FCN (hybrd1) (hybrd1_fcn, n, px, fvec, tol, info, wa, lwa);
+      F77_FCN (hybrd1, HYBRD1) (hybrd1_fcn, n, px, fvec, tol, info,
+				wa, lwa);
 
       delete [] wa;
     }
--- a/liboctave/NPSOL.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/NPSOL.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -40,18 +40,18 @@
 
 extern "C"
 {
-  int F77_FCN (npoptn) (const char*, long);
+  int F77_FCN (npoptn, NPOPTN) (const char*, long);
 
-  int F77_FCN (npsol) (int&, int&, int&, int&, int&, int&, double*,
-		       double*, double*,
-		       int (*)(int&, const int&, const int&, const
-			       int&, int*, double*, double*, double*,
-			       int*),
-		       int (*)(int&, const int&, double*, double*,
-			       double*, int*),
-		       int&, int&, int*, double*, double*, double*,
-		       double&, double*, double*, double*, int*, int&,
-		       double*, int&);
+  int F77_FCN (npsol, NPSOL) (int&, int&, int&, int&, int&, int&,
+			      double*, double*, double*,
+			      int (*)(int&, const int&, const int&,
+				      const int&, int*, double*,
+				      double*, double*, int*),
+			      int (*)(int&, const int&, double*,
+				      double*, double*, int*),
+			      int&, int&, int*, double*, double*,
+			      double*, double&, double*, double*,
+			      double*, int*, int&, double*, int&);
 }
 
 // XXX FIXME XXX -- would be nice to not have to have this global
@@ -288,22 +288,23 @@
   pass_options_to_npsol ();
 
   if (! user_jac && ! user_grad)
-    F77_FCN (npoptn) ("Derivative Level 0", 18L);
+    F77_FCN (npoptn, NPOPTN) ("Derivative Level 0", 18L);
   else if (! user_jac && user_grad)
-    F77_FCN (npoptn) ("Derivative Level 1", 18L);
+    F77_FCN (npoptn, NPOPTN) ("Derivative Level 1", 18L);
   else if (user_jac && ! user_grad)
-    F77_FCN (npoptn) ("Derivative Level 2", 18L);
+    F77_FCN (npoptn, NPOPTN) ("Derivative Level 2", 18L);
   else if (user_jac && user_grad)
-    F77_FCN (npoptn) ("Derivative Level 3", 18L);
+    F77_FCN (npoptn, NPOPTN) ("Derivative Level 3", 18L);
 
   int attempt = 0;
   while (attempt++ < 5)
     {
 
-      F77_FCN (npsol) (n, nclin, ncnln, nrowa, nrowj, nrowr, pclin,
-		       clow, cup, npsol_confun, npsol_objfun, inform,
-		       iter, istate, c, cjac, pclambda, objf, objgrd, r,
-		       px, iw, leniw, w, lenw);
+      F77_FCN (npsol, NPSOL) (n, nclin, ncnln, nrowa, nrowj, nrowr,
+			      pclin, clow, cup, npsol_confun,
+			      npsol_objfun, inform, iter, istate, c,
+			      cjac, pclambda, objf, objgrd, r, px, iw,
+			      leniw, w, lenw);
 
       if (inform == 6 || inform == 1)
 	continue;
@@ -692,8 +693,8 @@
 void
 NPSOL_options::pass_options_to_npsol (void)
 {
-  F77_FCN (npoptn) ("Nolist", 6L);
-  F77_FCN (npoptn) ("Defaults", 8L);
+  F77_FCN (npoptn, NPOPTN) ("Nolist", 6L);
+  F77_FCN (npoptn, NPOPTN) ("Defaults", 8L);
 
   if (x_central_difference_interval > 0.0)
     set_option ("Central Difference", x_central_difference_interval);
@@ -749,7 +750,7 @@
   buf << key << " " << opt << ends;
   char *command = buf.str ();
   size_t len = strlen (command);
-  F77_FCN (npoptn) (command, (long) len);
+  F77_FCN (npoptn, NPOPTN) (command, (long) len);
   delete [] command;
 }
 
@@ -760,7 +761,7 @@
   buf << key << " " << opt << ends;
   char *command = buf.str ();
   size_t len = strlen (command);
-  F77_FCN (npoptn) (command, (long) len);
+  F77_FCN (npoptn, NPOPTN) (command, (long) len);
   delete [] command;
 }
 
--- a/liboctave/QLD.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/QLD.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -36,10 +36,10 @@
 
 extern "C"
 {
-  int F77_FCN (qld) (int&, int&, int&, int&, int&, double*, double*,
-		     double*, double*, double*, double*, double*,
-		     double*, int&, int&, int&, double*, int&, int*,
-		     int&);
+  int F77_FCN (qld, QLD) (int&, int&, int&, int&, int&, double*,
+			  double*, double*, double*, double*, double*,
+			  double*, double*, int&, int&, int&, double*,
+			  int&, int*, int&);
 }
 
 Vector
@@ -107,8 +107,9 @@
   int mmax = m > 0 ? m : 1;
 
   iprint = 1;
-  F77_FCN (qld) (m, me, mmax, n, n, ph, pc, pa, pb, pxl, pxu, px,
-		 u, iout, inform, iprint, war, lwar, iwar, liwar);
+  F77_FCN (qld, QLD) (m, me, mmax, n, n, ph, pc, pa, pb, pxl, pxu, px,
+		      u, iout, inform, iprint, war, lwar, iwar,
+		      liwar);
 
   delete [] war;
   delete [] iwar;
--- a/liboctave/QPSOL.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/QPSOL.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -35,18 +35,21 @@
 
 extern "C"
 {
-  int F77_FCN (qpsol) (int&, int&, int&, int&, int&, int&, int&, int&,
-		       double&, double*, double*, double*, double*,
-		       double*, double*,
-		       int (*)(const int&, const int&, const int&,
-			       const int&, double*, double*, double*),
-		       int&, int&, int&, int*, double*, int&, int&,
-		       double&, double*, int*, int&, double*, int&);
+  int F77_FCN (qpsol, QPSOL) (int&, int&, int&, int&, int&, int&,
+			      int&, int&, double&, double*, double*,
+			      double*, double*, double*, double*,
+			      int (*)(const int&, const int&,
+				      const int&, const int&, double*,
+				      double*, double*),
+			      int&, int&, int&, int*, double*, int&,
+			      int&, double&, double*, int*, int&,
+			      double*, int&);
 
-  int F77_FCN (dgemv) (const char*, const int&, const int&,
-		       const double&, const double*, const int&,
-		       const double*, const int&, const double&,
-		       double*, const int&, long);
+  int F77_FCN (dgemv, DGEMV) (const char*, const int&, const int&,
+			      const double&, const double*,
+			      const int&, const double*, const int&,
+			      const double&, double*, const int&,
+			      long);
 }
 
 int
@@ -61,7 +64,8 @@
     }
   else
     {
-      F77_FCN (dgemv) ("N", n, n, 1.0, hess, n, x, 1, 0.0, hx, 1, 1L);
+      F77_FCN (dgemv, DGEMV) ("N", n, n, 1.0, hess, n, x, 1, 0.0, hx,
+			      1, 1L);
     }
 
   return 0;
@@ -149,10 +153,11 @@
   int *iw = new int [leniw];
   double *w = new double [lenw];
 
-  F77_FCN (qpsol) (itmax, msglvl, n, nclin, nctotl, ncon, n,
-		   n, bigbnd, pa, pbl, pbu, pc, featol, ph, qphess,
-		   cold, lp, orthog, istate, px, inform, iter,
-		   objf, pclambda, iw, leniw, w, lenw);
+  F77_FCN (qpsol, QPSOL) (itmax, msglvl, n, nclin, nctotl, ncon, n,
+			  n, bigbnd, pa, pbl, pbu, pc, featol, ph,
+			  qphess, cold, lp, orthog, istate, px,
+			  inform, iter, objf, pclambda, iw, leniw, w,
+			  lenw);
 
   delete [] pbl;
   delete [] pbu;
--- a/liboctave/Quad.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/Quad.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -42,16 +42,18 @@
 
 extern "C"
 {
-  int F77_FCN (dqagp) (const double (*)(double*, int&),
-		       const double&, const double&, const int&,
-		       const double*, const double&, const double&,
-		       double&, double&, int&, int&, const int&,
-		       const int&, int&, int*, double*);
+  int F77_FCN (dqagp, DQAGP) (const double (*)(double*, int&),
+			      const double&, const double&,
+			      const int&, const double*,
+			      const double&, const double&, double&,
+			      double&, int&, int&, const int&,
+			      const int&, int&, int*, double*);
 
-  int F77_FCN (dqagi) (const double (*)(double*, int&), const double&,
-		       const int&, const double&, const double&,
-		       double&, double&, int&, int&, const int&,
-		       const int&, int&, int*, double*); 
+  int F77_FCN (dqagi, DQAGI) (const double (*)(double*, int&),
+			      const double&, const int&,
+			      const double&, const double&, double&,
+			      double&, int&, int&, const int&,
+			      const int&, int&, int*, double*); 
 }
 
 Quad::Quad (integrand_fcn fcn)
@@ -175,9 +177,10 @@
   double abs_tol = absolute_tolerance ();
   double rel_tol = relative_tolerance ();
 
-  F77_FCN (dqagp) (user_function, lower_limit, upper_limit, npts,
-		   points, abs_tol, rel_tol, result, abserr,
-		   neval, ier, leniw, lenw, last, iwork, work);
+  F77_FCN (dqagp, DQAGP) (user_function, lower_limit, upper_limit,
+			  npts, points, abs_tol, rel_tol, result,
+			  abserr, neval, ier, leniw, lenw, last,
+			  iwork, work);
 
   delete [] iwork;
   delete [] work;
@@ -243,9 +246,9 @@
   double abs_tol = absolute_tolerance ();
   double rel_tol = relative_tolerance ();
 
-  F77_FCN (dqagi) (user_function, bound, inf, abs_tol, rel_tol,
-		   result, abserr, neval, ier, leniw, lenw,
-		   last, iwork, work);
+  F77_FCN (dqagi, DQAGI) (user_function, bound, inf, abs_tol, rel_tol,
+			  result, abserr, neval, ier, leniw, lenw,
+			  last, iwork, work);
 
   delete [] iwork;
   delete [] work;
--- a/liboctave/dColVector.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dColVector.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -38,10 +38,11 @@
 
 extern "C"
 {
-  int F77_FCN (dgemv) (const char*, const int&, const int&,
-		       const double&, const double*, const int&,
-		       const double*, const int&, const double&,
-		       double*, const int&, long);
+  int F77_FCN (dgemv, DGEMV) (const char*, const int&, const int&,
+			      const double&, const double*,
+			      const int&, const double*, const int&,
+			      const double&, double*, const int&,
+			      long);
 }
 
 /*
@@ -225,8 +226,8 @@
 
   double *y = new double [nr];
 
-  F77_FCN (dgemv) ("N", nr, nc, 1.0, m.data (), ld, a.data (), 1, 0.0,
-		   y, 1, 1L);
+  F77_FCN (dgemv, DGEMV) ("N", nr, nc, 1.0, m.data (), ld, a.data (),
+			  1, 0.0, y, 1, 1L);
 
   return ColumnVector (y, nr);
 }
--- a/liboctave/dMatrix.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dMatrix.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -43,35 +43,38 @@
 
 extern "C"
 {
-  int F77_FCN (dgemm) (const char*, const char*, const int&,
-		       const int&, const int&, const double&,
-		       const double*, const int&, const double*,
-		       const int&, const double&, double*, const int&,
-		       long, long);
+  int F77_FCN (dgemm, DGEMM) (const char*, const char*, const int&,
+			      const int&, const int&, const double&,
+			      const double*, const int&,
+			      const double*, const int&,
+			      const double&, double*, const int&,
+			      long, long);
 
-  int F77_FCN (dgeco) (double*, const int&, const int&, int*, double&,
-		       double*);
+  int F77_FCN (dgeco, DGECO) (double*, const int&, const int&, int*,
+			      double&, double*);
 
-  int F77_FCN (dgesl) (const double*, const int&, const int&,
-		       const int*, double*, const int&); 
+  int F77_FCN (dgesl, DGESL) (const double*, const int&, const int&,
+			      const int*, double*, const int&);
 
-  int F77_FCN (dgedi) (double*, const int&, const int&, const int*,
-		       double*, double*, const int&);
+  int F77_FCN (dgedi, DGEDI) (double*, const int&, const int&,
+			      const int*, double*, double*,
+			      const int&);
 
-  int F77_FCN (dgelss) (const int&, const int&, const int&, double*,
-			const int&, double*, const int&, double*,
-			double&, int&, double*, const int&, int&);
+  int F77_FCN (dgelss, DGELSS) (const int&, const int&, const int&,
+				double*, const int&, double*,
+				const int&, double*, double&, int&,
+				double*, const int&, int&);
 
 // Note that the original complex fft routines were not written for
 // double complex arguments.  They have been modified by adding an
 // implicit double precision (a-h,o-z) statement at the beginning of
 // each subroutine.
 
-  int F77_FCN (cffti) (const int&, Complex*);
+  int F77_FCN (cffti, CFFTI) (const int&, Complex*);
 
-  int F77_FCN (cfftf) (const int&, Complex*, Complex*);
+  int F77_FCN (cfftf, CFFTF) (const int&, Complex*, Complex*);
 
-  int F77_FCN (cfftb) (const int&, Complex*, Complex*);
+  int F77_FCN (cfftb, CFFTB) (const int&, Complex*, Complex*);
 }
 
 /*
@@ -514,7 +517,7 @@
   double *z = new double [nr];
   double *tmp_data = dup (data (), len);
 
-  F77_FCN (dgeco) (tmp_data, nr, nc, ipvt, rcond, z);
+  F77_FCN (dgeco, DGECO) (tmp_data, nr, nc, ipvt, rcond, z);
 
   volatile double rcond_plus_one = rcond + 1.0;
   if (rcond_plus_one == 1.0)
@@ -526,7 +529,7 @@
     {
       double *dummy;
 
-      F77_FCN (dgedi) (tmp_data, nr, nc, ipvt, dummy, z, 1);
+      F77_FCN (dgedi, DGEDI) (tmp_data, nr, nc, ipvt, dummy, z, 1);
     }
 
   delete [] ipvt;
@@ -593,10 +596,10 @@
   Complex *wsave = new Complex [nn];
   Complex *tmp_data = make_complex (data (), length ());
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (int j = 0; j < nsamples; j++)
-    F77_FCN (cfftf) (npts, &tmp_data[npts*j], wsave);
+    F77_FCN (cfftf, CFFTF) (npts, &tmp_data[npts*j], wsave);
 
   delete [] wsave;
 
@@ -624,10 +627,10 @@
   Complex *wsave = new Complex [nn];
   Complex *tmp_data = make_complex (data (), length ());
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (int j = 0; j < nsamples; j++)
-    F77_FCN (cfftb) (npts, &tmp_data[npts*j], wsave);
+    F77_FCN (cfftb, CFFTB) (npts, &tmp_data[npts*j], wsave);
 
   for (j = 0; j < npts*nsamples; j++)
     tmp_data[j] = tmp_data[j] / (double) npts;
@@ -658,10 +661,10 @@
   Complex *wsave = new Complex [nn];
   Complex *tmp_data = make_complex (data (), length ());
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (int j = 0; j < nsamples; j++)
-    F77_FCN (cfftf) (npts, &tmp_data[npts*j], wsave);
+    F77_FCN (cfftf, CFFTF) (npts, &tmp_data[npts*j], wsave);
 
   delete [] wsave;
 
@@ -671,14 +674,14 @@
   wsave = new Complex [nn];
   Complex *row = new Complex[npts];
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (j = 0; j < nsamples; j++)
     {
       for (int i = 0; i < npts; i++)
 	row[i] = tmp_data[i*nr + j];
 
-      F77_FCN (cfftf) (npts, row, wsave);
+      F77_FCN (cfftf, CFFTF) (npts, row, wsave);
 
       for (i = 0; i < npts; i++)
 	tmp_data[i*nr + j] = row[i];
@@ -711,10 +714,10 @@
   Complex *wsave = new Complex [nn];
   Complex *tmp_data = make_complex (data (), length ());
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (int j = 0; j < nsamples; j++)
-    F77_FCN (cfftb) (npts, &tmp_data[npts*j], wsave);
+    F77_FCN (cfftb, CFFTB) (npts, &tmp_data[npts*j], wsave);
 
   delete [] wsave;
 
@@ -727,14 +730,14 @@
   wsave = new Complex [nn];
   Complex *row = new Complex[npts];
 
-  F77_FCN (cffti) (npts, wsave);
+  F77_FCN (cffti, CFFTI) (npts, wsave);
 
   for (j = 0; j < nsamples; j++)
     {
       for (int i = 0; i < npts; i++)
 	row[i] = tmp_data[i*nr + j];
 
-      F77_FCN (cfftb) (npts, row, wsave);
+      F77_FCN (cfftb, CFFTB) (npts, row, wsave);
 
       for (i = 0; i < npts; i++)
 	tmp_data[i*nr + j] = row[i] / (double) npts;
@@ -784,7 +787,7 @@
       double *z = new double [nr];
       double *tmp_data = dup (data (), length ());
 
-      F77_FCN (dgeco) (tmp_data, nr, nr, ipvt, rcond, z);
+      F77_FCN (dgeco, DGECO) (tmp_data, nr, nr, ipvt, rcond, z);
 
       volatile double rcond_plus_one = rcond + 1.0;
       if (rcond_plus_one == 1.0)
@@ -795,7 +798,7 @@
       else
 	{
 	  double d[2];
-	  F77_FCN (dgedi) (tmp_data, nr, nr, ipvt, d, z, 10);
+	  F77_FCN (dgedi, DGEDI) (tmp_data, nr, nr, ipvt, d, z, 10);
 	  retval = DET (d);
 	}
 
@@ -842,7 +845,7 @@
   double *z = new double [nr];
   double *tmp_data = dup (data (), length ());
 
-  F77_FCN (dgeco) (tmp_data, nr, nr, ipvt, rcond, z);
+  F77_FCN (dgeco, DGECO) (tmp_data, nr, nr, ipvt, rcond, z);
 
   volatile double rcond_plus_one = rcond + 1.0;
   if (rcond_plus_one == 1.0)
@@ -855,7 +858,7 @@
 
       int b_nc = b.cols ();
       for (int j = 0; j < b_nc; j++)
-	F77_FCN (dgesl) (tmp_data, nr, nr, ipvt, &result[nr*j], 0);
+	F77_FCN (dgesl, DGESL) (tmp_data, nr, nr, ipvt, &result[nr*j], 0);
 
       retval = Matrix (result, b.rows (), b_nc);
     }
@@ -922,7 +925,7 @@
   double *z = new double [nr];
   double *tmp_data = dup (data (), length ());
 
-  F77_FCN (dgeco) (tmp_data, nr, nr, ipvt, rcond, z);
+  F77_FCN (dgeco, DGECO) (tmp_data, nr, nr, ipvt, rcond, z);
 
   volatile double rcond_plus_one = rcond + 1.0;
   if (rcond_plus_one == 1.0)
@@ -935,7 +938,7 @@
 
       double *result = dup (b.data (), b_len);
 
-      F77_FCN (dgesl) (tmp_data, nr, nr, ipvt, result, 0);
+      F77_FCN (dgesl, DGESL) (tmp_data, nr, nr, ipvt, result, 0);
 
       retval = ColumnVector (result, b_len);
     }
@@ -1021,8 +1024,8 @@
 
   double *work = new double [lwork];
 
-  F77_FCN (dgelss) (m, n, nrhs, tmp_data, m, presult, nrr, s, rcond,
-		    rank, work, lwork, info);
+  F77_FCN (dgelss, DGELSS) (m, n, nrhs, tmp_data, m, presult, nrr, s,
+			    rcond, rank, work, lwork, info);
 
   Matrix retval (n, nrhs);
   for (j = 0; j < nrhs; j++)
@@ -1108,8 +1111,8 @@
 
   double *work = new double [lwork];
 
-  F77_FCN (dgelss) (m, n, nrhs, tmp_data, m, presult, nrr, s, rcond,
-		    rank, work, lwork, info);
+  F77_FCN (dgelss, DGELSS) (m, n, nrhs, tmp_data, m, presult, nrr, s,
+			    rcond, rank, work, lwork, info);
 
   ColumnVector retval (n);
   for (i = 0; i < n; i++)
@@ -1255,8 +1258,8 @@
 
   double *c = new double [len * a_len];
 
-  F77_FCN (dgemm) ("N", "N", len, a_len, 1, 1.0, v.data (),
-		   len, a.data (), 1, 0.0, c, len, 1L, 1L);
+  F77_FCN (dgemm, DGEMM) ("N", "N", len, a_len, 1, 1.0, v.data (),
+			  len, a.data (), 1, 0.0, c, len, 1L, 1L);
 
   return Matrix (c, len, a_len);
 }
@@ -1510,8 +1513,8 @@
 
   double *c = new double [nr*a_nc];
 
-  F77_FCN (dgemm) ("N", "N", nr, a_nc, nc, 1.0, m.data (),
-		   ld, a.data (), lda, 0.0, c, nr, 1L, 1L);
+  F77_FCN (dgemm, DGEMM) ("N", "N", nr, a_nc, nc, 1.0, m.data (),
+			  ld, a.data (), lda, 0.0, c, nr, 1L, 1L);
 
   return Matrix (c, nr, a_nc);
 }
--- a/liboctave/dRowVector.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dRowVector.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -38,13 +38,14 @@
 
 extern "C"
 {
-  int F77_FCN (dgemv) (const char*, const int&, const int&,
-		       const double&, const double*, const int&,
-		       const double*, const int&, const double&,
-		       double*, const int&, long);
+  int F77_FCN (dgemv, DGEMV) (const char*, const int&, const int&,
+			      const double&, const double*,
+			      const int&, const double*, const int&,
+			      const double&, double*, const int&,
+			      long);
 
-  double F77_FCN (ddot) (const int&, const double*, const int&,
-			 const double*, const int&);
+  double F77_FCN (ddot, DDOT) (const int&, const double*, const int&,
+			       const double*, const int&);
 }
 
 /*
@@ -230,8 +231,8 @@
 
   double *y = new double [len];
 
-  F77_FCN (dgemv) ("T", a_nc, a_nr, 1.0, a.data (), ld, v.data (),
-		   1, 0.0, y, 1, 1L);
+  F77_FCN (dgemv, DGEMV) ("T", a_nc, a_nr, 1.0, a.data (), ld,
+			  v.data (), 1, 0.0, y, 1, 1L);
 
   return RowVector (y, len);
 }
@@ -359,7 +360,7 @@
       return 0.0;
     }
 
-  return F77_FCN (ddot) (len, v.data (), 1, a.data (), 1);
+  return F77_FCN (ddot, DDOT) (len, v.data (), 1, a.data (), 1);
 }
 
 Complex
--- a/liboctave/dbleAEPBAL.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dbleAEPBAL.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -30,13 +30,14 @@
 
 extern "C"
 {
-  int F77_FCN (dgebal) (const char*, const int&, double*,
-                        const int&, int&, int&, double*,
-                        int&, long, long);
+  int F77_FCN (dgebal, DGEBAL) (const char*, const int&, double*,
+				const int&, int&, int&, double*,
+				int&, long, long);
 
-  int F77_FCN (dgebak) (const char*, const char*, const int&, const int&,
-			const int&, double*, const int&, double*, const int&,
-			int&, long, long);
+  int F77_FCN (dgebak, DGEBAK) (const char*, const char*, const int&,
+				const int&, const int&, double*,
+				const int&, double*, const int&,
+				int&, long, long);
 }
 
 int
@@ -62,8 +63,9 @@
 
   balanced_mat = a;
 
-  F77_FCN (dgebal) (balance_job, n, balanced_mat.fortran_vec (), 
-		    n, ilo, ihi, scale, info, 1L, 1L);
+  F77_FCN (dgebal, DGEBAL) (balance_job, n,
+			    balanced_mat.fortran_vec (), n, ilo, ihi,
+			    scale, info, 1L, 1L);
 
 // Initialize balancing matrix to identity.
 
@@ -71,8 +73,9 @@
   for (int i = 0; i < n; i++)
     balancing_mat.elem (i ,i) = 1.0;
 
-  F77_FCN (dgebak) (balance_job, "R", n, ilo, ihi, scale, n, 
-		    balancing_mat.fortran_vec (), n, info, 1L, 1L);
+  F77_FCN (dgebak, DGEBAK) (balance_job, "R", n, ilo, ihi, scale, n,
+			    balancing_mat.fortran_vec (), n, info, 1L,
+			    1L);
 
   delete [] scale;
 
--- a/liboctave/dbleCHOL.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dbleCHOL.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,8 +32,8 @@
 
 extern "C"
 {
-  int F77_FCN (dpotrf) (const char*, const int&, double*, const int&,
-			int&, long);
+  int F77_FCN (dpotrf, DPOTRF) (const char*, const int&, double*,
+				const int&, int&, long);
 }
 
 int
@@ -52,7 +52,7 @@
 
   double *h = dup (a.data (), a.length ());
 
-  F77_FCN (dpotrf) ("U", n, h, n, info, 1L);
+  F77_FCN (dpotrf, DPOTRF) ("U", n, h, n, info, 1L);
 
   chol_mat = Matrix (h, n, n);
 
--- a/liboctave/dbleGEPBAL.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dbleGEPBAL.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,21 +32,23 @@
 
 extern "C"
 {
-  int F77_FCN (dgebak) (const char*, const char*, const int&, const int&,
-			const int&, double*, const int&, double*, const int&,
-			int&, long, long);
+  int F77_FCN (dgebak, DGEBAK) (const char*, const char*, const int&,
+				const int&, const int&, double*,
+				const int&, double*, const int&, int&,
+				long, long);
 
-  int F77_FCN (reduce) (const int&, const int&, double*,
-	   	        const int&, double*,
-			int&, int&, double*, double*);
+  int F77_FCN (reduce, REDUCE) (const int&, const int&, double*,
+				const int&, double*, int&, int&,
+				double*, double*);
 
-  int F77_FCN (scaleg) (const int&, const int&, double*,
-	   	        const int&, double*,
-			const int&, const int&, double*, double*, double*);
+  int F77_FCN (scaleg, SCALEG) (const int&, const int&, double*,
+				const int&, double*, const int&,
+				const int&, double*, double*,
+				double*);
 
-  int F77_FCN (gradeq) (const int&, const int&, double*,
-	   	        const int&, double*,
-			int&, int&, double*, double*);
+  int F77_FCN (gradeq, GRADEQ) (const int&, const int&, double*,
+				const int&, double*, int&, int&,
+				double*, double*);
 }
 
 int
@@ -105,9 +107,9 @@
 
   if (*balance_job == 'P' || *balance_job == 'B')
     {
-      F77_FCN (reduce) (n, n, balanced_a_mat.fortran_vec (),
-			n, balanced_b_mat.fortran_vec (), ilo, ihi,
-			cscale, wk.fortran_vec ());
+      F77_FCN (reduce, REDUCE) (n, n, balanced_a_mat.fortran_vec (),
+				n, balanced_b_mat.fortran_vec (), ilo,
+				ihi, cscale, wk.fortran_vec ());
     }
   else
     {
@@ -122,9 +124,9 @@
 
   if ((*balance_job == 'S' || *balance_job == 'B') && ilo != ihi)
     {
-      F77_FCN (scaleg) (n, n, balanced_a_mat.fortran_vec (), 
-			n, balanced_b_mat.fortran_vec (), ilo, ihi,
-			cscale, cperm, wk.fortran_vec ());
+      F77_FCN (scaleg, SCALEG) (n, n, balanced_a_mat.fortran_vec (), 
+				n, balanced_b_mat.fortran_vec (), ilo,
+				ihi, cscale, cperm, wk.fortran_vec ());
     }
   else
     {
@@ -148,14 +150,16 @@
 
 // Column permutations/scaling.
 
-  F77_FCN (dgebak) (balance_job, "R", n, ilo, ihi, cscale, n, 
-		    right_balancing_mat.fortran_vec (), n, info,
-		    1L, 1L);
+  F77_FCN (dgebak, DGEBAK) (balance_job, "R", n, ilo, ihi, cscale, n, 
+			    right_balancing_mat.fortran_vec (), n,
+			    info, 1L, 1L);
     
 // Row permutations/scaling.
 
-  F77_FCN (dgebak) (balance_job, "L", n, ilo, ihi, wk.fortran_vec (), n,
-		    left_balancing_mat.fortran_vec (), n, info, 1L, 1L);
+  F77_FCN (dgebak, DGEBAK) (balance_job, "L", n, ilo, ihi,
+			    wk.fortran_vec (), n,
+			    left_balancing_mat.fortran_vec (), n,
+			    info, 1L, 1L);
 
 // XXX FIXME XXX --- these four lines need to be added and debugged.
 // GEPBALANCE::init will work without them, though, so here they are.
@@ -163,9 +167,9 @@
 #if 0
   if ((*balance_job == 'P' || *balance_job == 'B') && ilo != ihi)
     {
-      F77_FCN (gradeq) (n, n, balanced_a_mat.fortran_vec (),
-			n, balanced_b_mat.fortran_vec (), ilo, ihi,
-			cperm, wk.fortran_vec ());
+      F77_FCN (gradeq, GRADEQ) (n, n, balanced_a_mat.fortran_vec (),
+				n, balanced_b_mat.fortran_vec (), ilo,
+				ihi, cperm, wk.fortran_vec ());
     }
 #endif
 
--- a/liboctave/dbleHESS.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dbleHESS.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,21 +32,22 @@
 
 extern "C"
 {
-  int F77_FCN (dgebal) (const char*, const int&, double*,
-                        const int&, int&, int&, double*,
-                        int&, long, long);
+  int F77_FCN (dgebal, DGEBAL) (const char*, const int&, double*,
+				const int&, int&, int&, double*,
+				int&, long, long);
 
-  int F77_FCN (dgehrd) (const int&, const int&, const int&,
-                        double*, const int&, double*, double*,
-                        const int&, int&, long, long);
+  int F77_FCN (dgehrd, DGEHRD) (const int&, const int&, const int&,
+				double*, const int&, double*, double*,
+				const int&, int&, long, long);
 
-  int F77_FCN (dorghr) (const int&, const int&, const int&,
-                        double*, const int&, double*, double*,
-                        const int&, int&, long, long);
+  int F77_FCN (dorghr, DORGHR) (const int&, const int&, const int&,
+				double*, const int&, double*, double*,
+				const int&, int&, long, long);
 
-  int F77_FCN (dgebak) (const char*, const char*, const int&, const int&,
-			const int&, double*, const int&, double*, const int&,
-			int&, long, long);
+  int F77_FCN (dgebak, DGEBAK) (const char*, const char*, const int&,
+				const int&, const int&, double*,
+				const int&, double*, const int&, int&,
+				long, long);
 }
 
 int
@@ -76,15 +77,19 @@
   double *z = new double [n*n];
   double *work = new double [lwork];
 
-  F77_FCN (dgebal) (jobbal, n, h, n, ilo, ihi, scale, info, 1L, 1L);
+  F77_FCN (dgebal, DGEBAL) (jobbal, n, h, n, ilo, ihi, scale, info,
+			    1L, 1L);
 
-  F77_FCN (dgehrd) (n, ilo, ihi, h, n, tau, work, lwork, info, 1L, 1L);
+  F77_FCN (dgehrd, DGEHRD) (n, ilo, ihi, h, n, tau, work, lwork, info,
+			    1L, 1L);
 
   copy (z, h, n*n);
 
-  F77_FCN (dorghr) (n, ilo, ihi, z, n, tau, work, lwork, info, 1L, 1L);
+  F77_FCN (dorghr, DORGHR) (n, ilo, ihi, z, n, tau, work, lwork, info,
+			    1L, 1L);
 
-  F77_FCN (dgebak) (jobbal, side, n, ilo, ihi, scale, n, z, n, info, 1L, 1L);
+  F77_FCN (dgebak, DGEBAK) (jobbal, side, n, ilo, ihi, scale, n, z, n,
+			    info, 1L, 1L);
 
 // We need to clear out all of the area below the sub-diagonal which was used
 // to store the unitary matrix.
--- a/liboctave/dbleLU.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dbleLU.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,8 +32,9 @@
 
 extern "C"
 {
-  int F77_FCN (dgesv) (const int&, const int&, double*, const int&,
-		       int*, double&, const int&, int&);
+  int F77_FCN (dgesv, DGESV) (const int&, const int&, double*,
+			      const int&, int*, double&, const int&,
+			      int&);
 }
 
 LU::LU (const Matrix& a)
@@ -54,7 +55,7 @@
   int info = 0;
   double b;
 
-  F77_FCN (dgesv) (n, 0, tmp_data, n, ipvt, b, n, info);
+  F77_FCN (dgesv, DGESV) (n, 0, tmp_data, n, ipvt, b, n, info);
 
   Matrix A_fact (tmp_data, n, n);
 
--- a/liboctave/dbleQR.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dbleQR.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,11 +32,13 @@
 
 extern "C"
 {
-  int F77_FCN (dgeqrf) (const int&, const int&, double*, const int&,
-			double*, double*, const int&, int&);
+  int F77_FCN (dgeqrf, DGEQRF) (const int&, const int&, double*,
+				const int&, double*, double*,
+				const int&, int&); 
 
-  int F77_FCN (dorgqr) (const int&, const int&, const int&, double*,
-			const int&, double*, double*, const int&, int&);
+  int F77_FCN (dorgqr, DORGQR) (const int&, const int&, const int&,
+				double*, const int&, double*, double*,
+				const int&, int&);
 }
 
 QR::QR (const Matrix& a, QR::type qr_type)
@@ -65,7 +67,7 @@
   else
     tmp_data = dup (a.data (), a.length ());
 
-  F77_FCN (dgeqrf) (m, n, tmp_data, m, tau, work, lwork, info);
+  F77_FCN (dgeqrf, DGEQRF) (m, n, tmp_data, m, tau, work, lwork, info);
 
   delete [] work;
 
@@ -102,7 +104,8 @@
       lwork = 32*m;
       work = new double[lwork];
 
-      F77_FCN (dorgqr) (m, m, min_mn, tmp_data, m, tau, work, lwork, info);
+      F77_FCN (dorgqr, DORGQR) (m, m, min_mn, tmp_data, m, tau, work,
+				lwork, info);
 
       q = Matrix (tmp_data, m, m);
       q.resize (m, n2);
--- a/liboctave/dbleQRP.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dbleQRP.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -34,11 +34,13 @@
 
 extern "C"
 {
-  int F77_FCN (dgeqpf) (const int&, const int&, double*, const int&,
-			int*, double*, double*, int&);
+  int F77_FCN (dgeqpf, DGEQPF) (const int&, const int&, double*,
+				const int&, int*, double*, double*,
+				int&);
 
-  int F77_FCN (dorgqr) (const int&, const int&, const int&, double*,
-			const int&, double*, double*, const int&, int&);
+  int F77_FCN (dorgqr, DORGQR) (const int&, const int&, const int&,
+				double*, const int&, double*, double*,
+				const int&, int&); 
 }
 
 // It would be best to share some of this code with QR class...
@@ -79,7 +81,7 @@
   for (int i = 0; i < n; i++)
     jpvt[i] = 0;
 
-  F77_FCN (dgeqpf) (m, n, tmp_data, m, jpvt, tau, work, info);
+  F77_FCN (dgeqpf, DGEQPF) (m, n, tmp_data, m, jpvt, tau, work, info);
 
 // Form Permutation matrix (if economy is requested, return the
 // indices only!)
@@ -122,7 +124,8 @@
   lwork = 32*m;
   work = new double[lwork];
 
-  F77_FCN (dorgqr) (m, m, min_mn, tmp_data, m, tau, work, lwork, info);
+  F77_FCN (dorgqr, DORGQR) (m, m, min_mn, tmp_data, m, tau, work,
+			    lwork, info);
 
   q = Matrix (tmp_data, m, m);
   q.resize (m, n2);
--- a/liboctave/dbleSCHUR.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dbleSCHUR.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -32,12 +32,13 @@
 
 extern "C"
 {
-  int F77_FCN (dgeesx) (const char*, const char*,
-			int (*)(const double&, const double&),
-			const char*, const int&, double*, const int&,
-			int&, double*, double*, double*, const int&,
-			double&, double&, double*, const int&, int*,
-			const int&, int*, int&, long, long);
+  int F77_FCN (dgeesx, DGEESX) (const char*, const char*,
+				int (*)(const double&, const double&),
+				const char*, const int&, double*,
+				const int&, int&, double*, double*,
+				double*, const int&, double&, double&,
+				double*, const int&, int*, const int&,
+				int*, int&, long, long);
 }
 
 static int
@@ -100,23 +101,25 @@
 
   if (*ord == 'A' || *ord == 'a')
     {
-      F77_FCN (dgeesx) (jobvs, sort, select_ana, sense, n, s, n,
-			sdim, wr, wi, q, n, rconde, rcondv, work,
-			lwork, iwork, liwork, bwork, info, 1L, 1L);
+      F77_FCN (dgeesx, DGEESX) (jobvs, sort, select_ana, sense, n, s,
+				n, sdim, wr, wi, q, n, rconde, rcondv,
+				work, lwork, iwork, liwork, bwork,
+				info, 1L, 1L);
     }
   else if (*ord == 'D' || *ord == 'd')
     {
-      F77_FCN (dgeesx) (jobvs, sort, select_dig, sense, n, s, n,
-			sdim, wr, wi, q, n, rconde, rcondv, work,
-			lwork, iwork, liwork, bwork, info, 1L, 1L);
+      F77_FCN (dgeesx, DGEESX) (jobvs, sort, select_dig, sense, n, s,
+				n, sdim, wr, wi, q, n, rconde, rcondv,
+				work, lwork, iwork, liwork, bwork,
+				info, 1L, 1L);
       
     }
   else
     {
-      F77_FCN (dgeesx) (jobvs, sort, (void *) 0, sense, n, s,
-			n, sdim, wr, wi, q, n, rconde, rcondv,
-			work, lwork, iwork, liwork, bwork, info,
-			1L, 1L);
+      F77_FCN (dgeesx, DGEESX) (jobvs, sort, (void *) 0, sense, n, s,
+				n, sdim, wr, wi, q, n, rconde, rcondv,
+				work, lwork, iwork, liwork, bwork,
+				info, 1L, 1L);
     }
 
   schur_mat = Matrix (s, n, n);
--- a/liboctave/dbleSVD.cc	Tue Apr 11 16:04:14 1995 +0000
+++ b/liboctave/dbleSVD.cc	Tue Apr 11 16:35:23 1995 +0000
@@ -31,10 +31,11 @@
 
 extern "C"
 {
-  int F77_FCN (dgesvd) (const char*, const char*, const int&,
-			const int&, double*, const int&, double*,
-			double*, const int&, double*, const int&,
-			double*, const int&, int&, long, long);
+  int F77_FCN (dgesvd, DGESVD) (const char*, const char*, const int&,
+				const int&, double*, const int&,
+				double*, double*, const int&, double*,
+				const int&, double*, const int&, int&,
+				long, long);
 }
 
 int
@@ -73,8 +74,9 @@
   int lwork = tmp1 > tmp2 ? tmp1 : tmp2;
   double *work = new double[lwork];
 
-  F77_FCN (dgesvd) (jobu, jobv, m, n, tmp_data, m, s_vec, u, m,
-		    vt, nrow_vt, work, lwork, info, 1L, 1L);
+  F77_FCN (dgesvd, DGESVD) (jobu, jobv, m, n, tmp_data, m, s_vec, u,
+			    m, vt, nrow_vt, work, lwork, info, 1L,
+			    1L);
 
   left_sm = Matrix (u, m, ncol_u);
   sigma = DiagMatrix (s_vec, nrow_s, ncol_s);