--- blas-1.2.orig/cblas/Makefile.LINUX
+++ blas-1.2/cblas/Makefile.LINUX
@@ -40,7 +40,13 @@
#-----------------------------------------------------------------------------
CFLAGS = -O3 -DADD_
-FFLAGS = -O3
+FFLAGS = -O3
+
+DEB_ARCH := $(shell dpkg --print-architecture)
+ifneq (,$(filter $(ARCH),i386 lpia hurd-i386 kfreebsd-i386))
+ CFLAGS += -ffloat-store
+ FFLAGS += -ffloat-store
+endif
#-----------------------------------------------------------------------------
# Archive programs and flags
--- blas-1.2.orig/debian/libblas-dev.files
+++ blas-1.2/debian/libblas-dev.files
@@ -0,0 +1,2 @@
+usr/lib/*.{so,a}
+usr/include
--- blas-1.2.orig/debian/hppa/patch.old
+++ blas-1.2/debian/hppa/patch.old
@@ -0,0 +1,168 @@
+diff -ruN blas-1.1.ori/cblas/testing/cin2 blas-1.1/cblas/testing/cin2
+--- blas-1.1.ori/cblas/testing/cin2 Sat Mar 13 03:53:23 1999
++++ blas-1.1/cblas/testing/cin2 Thu Mar 28 04:46:43 2002
+@@ -2,7 +2,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 2 LOGICAL FLAG, T TO TEST ROW-MAJOR (IF FALSE COLUMN-MAJOR IS TESTED)
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+diff -ruN blas-1.1.ori/cblas/testing/cin3 blas-1.1/cblas/testing/cin3
+--- blas-1.1.ori/cblas/testing/cin3 Sat Mar 13 03:53:24 1999
++++ blas-1.1/cblas/testing/cin3 Thu Mar 28 04:47:03 2002
+@@ -2,7 +2,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 2 0 TO TEST COLUMN-MAJOR, 1 TO TEST ROW-MAJOR, 2 TO TEST BOTH
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+diff -ruN blas-1.1.ori/cblas/testing/din2 blas-1.1/cblas/testing/din2
+--- blas-1.1.ori/cblas/testing/din2 Sat Mar 13 03:53:29 1999
++++ blas-1.1/cblas/testing/din2 Thu Mar 28 04:46:05 2002
+@@ -2,7 +2,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 2 0 TO TEST COLUMN-MAJOR, 1 TO TEST ROW-MAJOR, 2 TO TEST BOTH
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+diff -ruN blas-1.1.ori/cblas/testing/din3 blas-1.1/cblas/testing/din3
+--- blas-1.1.ori/cblas/testing/din3 Sat Mar 13 03:53:30 1999
++++ blas-1.1/cblas/testing/din3 Thu Mar 28 04:46:25 2002
+@@ -2,7 +2,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 2 0 TO TEST COLUMN-MAJOR, 1 TO TEST ROW-MAJOR, 2 TO TEST BOTH
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+diff -ruN blas-1.1.ori/cblas/testing/sin2 blas-1.1/cblas/testing/sin2
+--- blas-1.1.ori/cblas/testing/sin2 Sat Mar 13 03:53:36 1999
++++ blas-1.1/cblas/testing/sin2 Thu Mar 28 04:44:06 2002
+@@ -2,7 +2,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 2 LOGICAL FLAG, T TO TEST ROW-MAJOR (IF FALSE COLUMN-MAJOR IS TESTED)
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+diff -ruN blas-1.1.ori/cblas/testing/sin3 blas-1.1/cblas/testing/sin3
+--- blas-1.1.ori/cblas/testing/sin3 Sat Mar 13 03:53:37 1999
++++ blas-1.1/cblas/testing/sin3 Thu Mar 28 04:45:27 2002
+@@ -2,7 +2,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 2 0 TO TEST COLUMN-MAJOR, 1 TO TEST ROW-MAJOR, 2 TO TEST BOTH
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+diff -ruN blas-1.1.ori/cblas/testing/zin2 blas-1.1/cblas/testing/zin2
+--- blas-1.1.ori/cblas/testing/zin2 Sat Mar 13 03:53:43 1999
++++ blas-1.1/cblas/testing/zin2 Thu Mar 28 04:47:24 2002
+@@ -2,7 +2,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 2 LOGICAL FLAG, T TO TEST ROW-MAJOR (IF FALSE COLUMN-MAJOR IS TESTED)
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+diff -ruN blas-1.1.ori/cblas/testing/zin3 blas-1.1/cblas/testing/zin3
+--- blas-1.1.ori/cblas/testing/zin3 Sat Mar 13 03:53:44 1999
++++ blas-1.1/cblas/testing/zin3 Thu Mar 28 04:51:25 2002
+@@ -2,7 +2,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 2 0 TO TEST COLUMN-MAJOR, 1 TO TEST ROW-MAJOR, 2 TO TEST BOTH
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+diff -ruN blas-1.1.ori/test/cblat2d blas-1.1/test/cblat2d
+--- blas-1.1.ori/test/cblat2d Thu Apr 26 05:00:00 1990
++++ blas-1.1/test/cblat2d Thu Mar 28 04:54:22 2002
+@@ -4,7 +4,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+ 0 1 2 3 5 9 VALUES OF N
+diff -ruN blas-1.1.ori/test/dblat2d blas-1.1/test/dblat2d
+--- blas-1.1.ori/test/dblat2d Thu Apr 26 05:00:00 1990
++++ blas-1.1/test/dblat2d Thu Mar 28 04:54:22 2002
+@@ -4,7 +4,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+ 0 1 2 3 5 9 VALUES OF N
+diff -ruN blas-1.1.ori/test/dblat3d blas-1.1/test/dblat3d
+--- blas-1.1.ori/test/dblat3d Thu Apr 26 05:00:00 1990
++++ blas-1.1/test/dblat3d Thu Mar 28 04:54:23 2002
+@@ -4,7 +4,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+ 0 1 2 3 5 9 VALUES OF N
+diff -ruN blas-1.1.ori/test/sblat2d blas-1.1/test/sblat2d
+--- blas-1.1.ori/test/sblat2d Thu Apr 26 05:00:00 1990
++++ blas-1.1/test/sblat2d Thu Mar 28 04:54:23 2002
+@@ -4,7 +4,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+ 0 1 2 3 5 9 VALUES OF N
+diff -ruN blas-1.1.ori/test/sblat3d blas-1.1/test/sblat3d
+--- blas-1.1.ori/test/sblat3d Thu Apr 26 05:00:00 1990
++++ blas-1.1/test/sblat3d Thu Mar 28 04:54:23 2002
+@@ -4,7 +4,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+ 0 1 2 3 5 9 VALUES OF N
+diff -ruN blas-1.1.ori/test/zblat2d blas-1.1/test/zblat2d
+--- blas-1.1.ori/test/zblat2d Thu Apr 26 05:00:00 1990
++++ blas-1.1/test/zblat2d Thu Mar 28 04:54:23 2002
+@@ -4,7 +4,7 @@
+ -1 UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
+ F LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
+ F LOGICAL FLAG, T TO STOP ON FAILURES.
+-T LOGICAL FLAG, T TO TEST ERROR EXITS.
++F LOGICAL FLAG, T TO TEST ERROR EXITS.
+ 16.0 THRESHOLD VALUE OF TEST RATIO
+ 6 NUMBER OF VALUES OF N
+ 0 1 2 3 5 9 VALUES OF N
--- blas-1.2.orig/debian/copyright
+++ blas-1.2/debian/copyright
@@ -0,0 +1,18 @@
+This package was debianized by James A. Treacy on
+Tue, 28 Sep 1999 15:48:36 -0400.
+
+It was downloaded from ftp://ftp.netlib.org/blas/blas.tgz
+
+Copyright:
+
+This software is in the public domain
+
+blas_1.2.orig.tar.gz was repackaked to remove the following files
+for which no sources were available:
+ blas2-paper.ps
+ blas3-paper.ps
+ blasqr.ps
+ cinterface.pdf
+
+Note that a new cinterface.pdf is generated from a patched
+cinterface.tex source file in the debian/patched-docs directory.
--- blas-1.2.orig/debian/blas.patch.old
+++ blas-1.2/debian/blas.patch.old
@@ -0,0 +1,8404 @@
+diff -ruN blas-1.1/cblas/src/Makefile refblas3-1.2/cblas/src/Makefile
+--- blas-1.1/cblas/src/Makefile Mon Mar 15 15:11:03 1999
++++ refblas3-1.2/cblas/src/Makefile Tue Jun 10 17:10:02 2003
+@@ -12,7 +12,8 @@
+
+ # Error handling routines for level 2 & 3
+
+-errhand = cblas_globals.o cblas_xerbla.o xerbla.o
++#errhand = cblas_globals.o cblas_xerbla.o xerbla.o
++errhand = cblas_xerbla.o xerbla.o
+
+ # Object files of all routines
+ alev = $(alev1) $(alev2) $(alev3) $(errhand)
+diff -ruN blas-1.1/cblas/src/cblas_cgbmv.c refblas3-1.2/cblas/src/cblas_cgbmv.c
+--- blas-1.1/cblas/src/cblas_cgbmv.c Mon Mar 15 15:11:04 1999
++++ refblas3-1.2/cblas/src/cblas_cgbmv.c Thu Jun 12 10:28:11 2003
+@@ -43,7 +43,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (TransA == CblasNoTrans) TA = 'N';
+@@ -52,7 +52,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cgbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -132,7 +132,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cgbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -160,6 +160,6 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_cgbmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_cgemm.c refblas3-1.2/cblas/src/cblas_cgemm.c
+--- blas-1.1/cblas/src/cblas_cgemm.c Mon Mar 15 15:11:05 1999
++++ refblas3-1.2/cblas/src/cblas_cgemm.c Thu Jun 12 10:28:15 2003
+@@ -38,7 +38,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -48,7 +48,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cgemm", "Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -59,7 +59,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_cgemm", "Illegal TransB setting, %d\n", TransB);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -80,7 +80,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cgemm", "Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -90,7 +90,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cgemm", "Illegal TransB setting, %d\n", TransB);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -103,7 +103,7 @@
+ &F77_ldb, A, &F77_lda, beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_cgemm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_cgemv.c refblas3-1.2/cblas/src/cblas_cgemv.c
+--- blas-1.1/cblas/src/cblas_cgemv.c Mon Mar 15 15:11:06 1999
++++ refblas3-1.2/cblas/src/cblas_cgemv.c Thu Jun 12 10:28:15 2003
+@@ -41,7 +41,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if (order == CblasColMajor)
+ {
+@@ -51,7 +51,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cgemv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -127,7 +127,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cgemv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -156,7 +156,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_cgemv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_cgerc.c refblas3-1.2/cblas/src/cblas_cgerc.c
+--- blas-1.1/cblas/src/cblas_cgerc.c Mon Mar 15 15:11:07 1999
++++ refblas3-1.2/cblas/src/cblas_cgerc.c Thu Jun 12 10:28:15 2003
+@@ -30,7 +30,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ F77_cgerc( &F77_M, &F77_N, alpha, X, &F77_incX, Y, &F77_incY, A,
+@@ -78,7 +78,7 @@
+ free(y);
+
+ } else cblas_xerbla(1, "cblas_cgerc", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_cgeru.c refblas3-1.2/cblas/src/cblas_cgeru.c
+--- blas-1.1/cblas/src/cblas_cgeru.c Mon Mar 15 15:11:08 1999
++++ refblas3-1.2/cblas/src/cblas_cgeru.c Thu Jun 12 10:28:15 2003
+@@ -25,7 +25,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if (order == CblasColMajor)
+ {
+@@ -39,7 +39,7 @@
+ &F77_lda);
+ }
+ else cblas_xerbla(1, "cblas_cgeru","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_chbmv.c refblas3-1.2/cblas/src/cblas_chbmv.c
+--- blas-1.1/cblas/src/cblas_chbmv.c Mon Mar 15 15:11:09 1999
++++ refblas3-1.2/cblas/src/cblas_chbmv.c Thu Jun 12 10:28:15 2003
+@@ -39,7 +39,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chbmv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -121,7 +121,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -134,7 +134,7 @@
+ else
+ {
+ cblas_xerbla(1, "cblas_chbmv","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -153,7 +153,7 @@
+ while (y != st);
+ }
+ }
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_chemm.c refblas3-1.2/cblas/src/cblas_chemm.c
+--- blas-1.1/cblas/src/cblas_chemm.c Mon Mar 15 15:11:10 1999
++++ refblas3-1.2/cblas/src/cblas_chemm.c Thu Jun 12 10:28:15 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -46,7 +46,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chemm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_chemm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -76,7 +76,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chemm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -86,7 +86,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_chemm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -100,7 +100,7 @@
+ &F77_lda, B, &F77_ldb, beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_chemm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_chemv.c refblas3-1.2/cblas/src/cblas_chemv.c
+--- blas-1.1/cblas/src/cblas_chemv.c Mon Mar 15 15:11:11 1999
++++ refblas3-1.2/cblas/src/cblas_chemv.c Thu Jun 12 10:28:15 2003
+@@ -39,7 +39,7 @@
+ RowMajorStrg = 0;
+
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chemv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -122,7 +122,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chemv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -135,7 +135,7 @@
+ else
+ {
+ cblas_xerbla(1, "cblas_chemv","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -154,7 +154,7 @@
+ while (y != st);
+ }
+ }
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_cher.c refblas3-1.2/cblas/src/cblas_cher.c
+--- blas-1.1/cblas/src/cblas_cher.c Mon Mar 15 15:11:12 1999
++++ refblas3-1.2/cblas/src/cblas_cher.c Thu Jun 12 10:28:15 2003
+@@ -34,7 +34,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cher","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cher","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -103,14 +103,14 @@
+ } else
+ {
+ cblas_xerbla(1, "cblas_cher","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+ if(X!=x)
+ free(x);
+
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_cher2.c refblas3-1.2/cblas/src/cblas_cher2.c
+--- blas-1.1/cblas/src/cblas_cher2.c Mon Mar 15 15:11:13 1999
++++ refblas3-1.2/cblas/src/cblas_cher2.c Thu Jun 12 10:28:15 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cher2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -63,7 +63,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cher2","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -137,7 +137,7 @@
+ } else
+ {
+ cblas_xerbla(1, "cblas_cher2","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -146,7 +146,7 @@
+ if(Y!=y)
+ free(y);
+
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_cher2k.c refblas3-1.2/cblas/src/cblas_cher2k.c
+--- blas-1.1/cblas/src/cblas_cher2k.c Mon Mar 15 15:11:14 1999
++++ refblas3-1.2/cblas/src/cblas_cher2k.c Thu Jun 12 10:28:15 2003
+@@ -39,7 +39,7 @@
+ float ALPHA[2];
+ const float *alp=(float *)alpha;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ RowMajorStrg = 0;
+
+ if( Order == CblasColMajor )
+@@ -50,7 +50,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cher2k", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -61,7 +61,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_cher2k", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -81,7 +81,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cher2k", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -91,7 +91,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_cher2k", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -105,7 +105,7 @@
+ F77_cher2k(F77_UL,F77_TR, &F77_N, &F77_K, ALPHA, A, &F77_lda, B, &F77_ldb, &beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_cher2k", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_cherk.c refblas3-1.2/cblas/src/cblas_cherk.c
+--- blas-1.1/cblas/src/cblas_cherk.c Mon Mar 15 15:11:15 1999
++++ refblas3-1.2/cblas/src/cblas_cherk.c Thu Jun 12 10:28:15 2003
+@@ -35,7 +35,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_cherk", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -55,7 +55,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_cherk", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -75,7 +75,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_cherk", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -85,7 +85,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_cherk", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -99,7 +99,7 @@
+ &beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_cherk", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_chpmv.c refblas3-1.2/cblas/src/cblas_chpmv.c
+--- blas-1.1/cblas/src/cblas_chpmv.c Mon Mar 15 15:11:16 1999
++++ refblas3-1.2/cblas/src/cblas_chpmv.c Thu Jun 12 10:28:15 2003
+@@ -37,7 +37,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -45,7 +45,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chpmv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -120,7 +120,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chpmv","Illegal Uplo setting, %d\n", Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -134,7 +134,7 @@
+ else
+ {
+ cblas_xerbla(1, "cblas_chpmv","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -154,7 +154,7 @@
+ }
+ }
+
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_chpr.c refblas3-1.2/cblas/src/cblas_chpr.c
+--- blas-1.1/cblas/src/cblas_chpr.c Mon Mar 15 15:11:17 1999
++++ refblas3-1.2/cblas/src/cblas_chpr.c Thu Jun 12 10:28:15 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chpr","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -59,7 +59,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chpr","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -103,13 +103,13 @@
+ } else
+ {
+ cblas_xerbla(1, "cblas_chpr","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+ if(X!=x)
+ free(x);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_chpr2.c refblas3-1.2/cblas/src/cblas_chpr2.c
+--- blas-1.1/cblas/src/cblas_chpr2.c Mon Mar 15 15:11:18 1999
++++ refblas3-1.2/cblas/src/cblas_chpr2.c Thu Jun 12 10:28:15 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chpr2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -62,7 +62,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_chpr2","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -135,7 +135,7 @@
+ } else
+ {
+ cblas_xerbla(1, "cblas_chpr2","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -143,7 +143,7 @@
+ free(x);
+ if(Y!=y)
+ free(y);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_csymm.c refblas3-1.2/cblas/src/cblas_csymm.c
+--- blas-1.1/cblas/src/cblas_csymm.c Mon Mar 15 15:11:19 1999
++++ refblas3-1.2/cblas/src/cblas_csymm.c Thu Jun 12 10:28:15 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -46,7 +46,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_csymm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_csymm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -76,7 +76,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_csymm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -86,7 +86,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_csymm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -100,7 +100,7 @@
+ B, &F77_ldb, beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_csymm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_csyr2k.c refblas3-1.2/cblas/src/cblas_csyr2k.c
+--- blas-1.1/cblas/src/cblas_csyr2k.c Mon Mar 15 15:11:20 1999
++++ refblas3-1.2/cblas/src/cblas_csyr2k.c Thu Jun 12 10:28:15 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_csyr2k", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -58,7 +58,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_csyr2k", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -79,7 +79,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_csyr2k", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -89,7 +89,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_csyr2k", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -102,7 +102,7 @@
+ F77_csyr2k(F77_UL, F77_TR, &F77_N, &F77_K, alpha, A, &F77_lda, B, &F77_ldb, beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_csyr2k", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_csyrk.c refblas3-1.2/cblas/src/cblas_csyrk.c
+--- blas-1.1/cblas/src/cblas_csyrk.c Mon Mar 15 15:11:21 1999
++++ refblas3-1.2/cblas/src/cblas_csyrk.c Thu Jun 12 10:28:15 2003
+@@ -35,7 +35,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -45,7 +45,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_csyrk", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_csyrk", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -77,7 +77,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_csyrk", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -87,7 +87,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_csyrk", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -101,7 +101,7 @@
+ beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_csyrk", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ctbmv.c refblas3-1.2/cblas/src/cblas_ctbmv.c
+--- blas-1.1/cblas/src/cblas_ctbmv.c Mon Mar 15 15:11:22 1999
++++ refblas3-1.2/cblas/src/cblas_ctbmv.c Thu Jun 12 10:28:15 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -54,7 +54,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -63,7 +63,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctbmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -83,7 +83,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -115,7 +115,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -125,7 +125,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -152,7 +152,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ctbmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ctbsv.c refblas3-1.2/cblas/src/cblas_ctbsv.c
+--- blas-1.1/cblas/src/cblas_ctbsv.c Mon Mar 15 15:11:23 1999
++++ refblas3-1.2/cblas/src/cblas_ctbsv.c Thu Jun 12 10:28:15 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctbsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -54,7 +54,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctbsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -63,7 +63,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctbsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -83,7 +83,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctbsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -119,7 +119,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctbsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -129,7 +129,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctbsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -156,7 +156,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ctbsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ctpmv.c refblas3-1.2/cblas/src/cblas_ctpmv.c
+--- blas-1.1/cblas/src/cblas_ctpmv.c Mon Mar 15 15:11:24 1999
++++ refblas3-1.2/cblas/src/cblas_ctpmv.c Thu Jun 12 10:28:15 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctpmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -51,7 +51,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctpmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctpmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -79,7 +79,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctpmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -111,7 +111,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctpmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -121,7 +121,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctpmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -146,7 +146,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ctpmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ctpsv.c refblas3-1.2/cblas/src/cblas_ctpsv.c
+--- blas-1.1/cblas/src/cblas_ctpsv.c Mon Mar 15 15:11:25 1999
++++ refblas3-1.2/cblas/src/cblas_ctpsv.c Thu Jun 12 10:28:15 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctpsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -51,7 +51,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctpsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctpsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -79,7 +79,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctpsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -115,7 +115,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctpsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -125,7 +125,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctpsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -151,7 +151,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ctpsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ctrmm.c refblas3-1.2/cblas/src/cblas_ctrmm.c
+--- blas-1.1/cblas/src/cblas_ctrmm.c Mon Mar 15 15:11:26 1999
++++ refblas3-1.2/cblas/src/cblas_ctrmm.c Thu Jun 12 10:28:21 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -46,7 +46,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctrmm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -55,7 +55,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctrmm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -66,7 +66,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctrmm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -92,7 +92,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctrmm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -102,7 +102,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctrmm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -113,7 +113,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctrmm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -123,7 +123,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_ctrmm", "Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -138,7 +138,7 @@
+ F77_ctrmm(F77_SD, F77_UL, F77_TA, F77_DI, &F77_N, &F77_M, alpha, A, &F77_lda, B, &F77_ldb);
+ }
+ else cblas_xerbla(1, "cblas_ctrmm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ctrmv.c refblas3-1.2/cblas/src/cblas_ctrmv.c
+--- blas-1.1/cblas/src/cblas_ctrmv.c Mon Mar 15 15:11:27 1999
++++ refblas3-1.2/cblas/src/cblas_ctrmv.c Thu Jun 12 10:28:21 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctrmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -54,7 +54,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctrmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -63,7 +63,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctrmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -83,7 +83,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctrmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -114,7 +114,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctrmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -124,7 +124,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctrmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -149,7 +149,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ctrmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ctrsm.c refblas3-1.2/cblas/src/cblas_ctrsm.c
+--- blas-1.1/cblas/src/cblas_ctrsm.c Mon Mar 15 15:11:28 1999
++++ refblas3-1.2/cblas/src/cblas_ctrsm.c Thu Jun 12 10:28:21 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctrsm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -57,7 +57,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctrsm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -68,7 +68,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctrsm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -78,7 +78,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_ctrsm", "Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -101,7 +101,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctrsm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -111,7 +111,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctrsm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -122,7 +122,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctrsm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -132,7 +132,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_ctrsm", "Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -149,7 +149,7 @@
+ &F77_lda, B, &F77_ldb);
+ }
+ else cblas_xerbla(1, "cblas_ctrsm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ctrsv.c refblas3-1.2/cblas/src/cblas_ctrsv.c
+--- blas-1.1/cblas/src/cblas_ctrsv.c Mon Mar 15 15:11:29 1999
++++ refblas3-1.2/cblas/src/cblas_ctrsv.c Thu Jun 12 10:28:21 2003
+@@ -35,7 +35,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -43,7 +43,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctrsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -53,7 +53,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctrsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -62,7 +62,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctrsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -82,7 +82,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ctrsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -115,7 +115,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ctrsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -125,7 +125,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ctrsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -150,7 +150,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ctrsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dgbmv.c refblas3-1.2/cblas/src/cblas_dgbmv.c
+--- blas-1.1/cblas/src/cblas_dgbmv.c Mon Mar 15 15:11:30 1999
++++ refblas3-1.2/cblas/src/cblas_dgbmv.c Thu Jun 12 10:28:21 2003
+@@ -37,7 +37,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (TransA == CblasNoTrans) TA = 'N';
+@@ -46,7 +46,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dgbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -65,7 +65,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dgbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -76,6 +76,6 @@
+ A ,&F77_lda, X,&F77_incX, &beta, Y, &F77_incY);
+ }
+ else cblas_xerbla(1, "cblas_dgbmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dgemm.c refblas3-1.2/cblas/src/cblas_dgemm.c
+--- blas-1.1/cblas/src/cblas_dgemm.c Mon Mar 15 15:11:31 1999
++++ refblas3-1.2/cblas/src/cblas_dgemm.c Thu Jun 12 10:28:21 2003
+@@ -38,7 +38,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -48,7 +48,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dgemm","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -59,7 +59,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dgemm","Illegal TransB setting, %d\n", TransB);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -80,7 +80,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dgemm","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -90,7 +90,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dgemm","Illegal TransB setting, %d\n", TransB);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -103,7 +103,7 @@
+ &F77_ldb, A, &F77_lda, &beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_dgemm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dgemv.c refblas3-1.2/cblas/src/cblas_dgemv.c
+--- blas-1.1/cblas/src/cblas_dgemv.c Mon Mar 15 15:11:32 1999
++++ refblas3-1.2/cblas/src/cblas_dgemv.c Thu Jun 12 10:28:21 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (TransA == CblasNoTrans) TA = 'N';
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dgemv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -61,7 +61,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dgemv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -72,7 +72,7 @@
+ &F77_incX, &beta, Y, &F77_incY);
+ }
+ else cblas_xerbla(1, "cblas_dgemv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dger.c refblas3-1.2/cblas/src/cblas_dger.c
+--- blas-1.1/cblas/src/cblas_dger.c Mon Mar 15 15:11:32 1999
++++ refblas3-1.2/cblas/src/cblas_dger.c Thu Jun 12 10:28:21 2003
+@@ -27,7 +27,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ F77_dger( &F77_M, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
+@@ -41,7 +41,7 @@
+
+ }
+ else cblas_xerbla(1, "cblas_dger", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dsbmv.c refblas3-1.2/cblas/src/cblas_dsbmv.c
+--- blas-1.1/cblas/src/cblas_dsbmv.c Mon Mar 15 15:11:33 1999
++++ refblas3-1.2/cblas/src/cblas_dsbmv.c Thu Jun 12 10:28:21 2003
+@@ -34,7 +34,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsbmv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -71,7 +71,7 @@
+ A ,&F77_lda, X,&F77_incX, &beta, Y, &F77_incY);
+ }
+ else cblas_xerbla(1, "cblas_dsbmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dspmv.c refblas3-1.2/cblas/src/cblas_dspmv.c
+--- blas-1.1/cblas/src/cblas_dspmv.c Mon Mar 15 15:11:34 1999
++++ refblas3-1.2/cblas/src/cblas_dspmv.c Thu Jun 12 10:28:21 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dspmv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -59,7 +59,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dspmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -70,7 +70,7 @@
+ AP, X,&F77_incX, &beta, Y, &F77_incY);
+ }
+ else cblas_xerbla(1, "cblas_dspmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dspr.c refblas3-1.2/cblas/src/cblas_dspr.c
+--- blas-1.1/cblas/src/cblas_dspr.c Mon Mar 15 15:11:36 1999
++++ refblas3-1.2/cblas/src/cblas_dspr.c Thu Jun 12 10:28:21 2003
+@@ -29,7 +29,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -37,7 +37,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dspr","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -55,7 +55,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dspr","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -64,7 +64,7 @@
+ #endif
+ F77_dspr(F77_UL, &F77_N, &alpha, X, &F77_incX, Ap);
+ } else cblas_xerbla(1, "cblas_dspr", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dspr2.c refblas3-1.2/cblas/src/cblas_dspr2.c
+--- blas-1.1/cblas/src/cblas_dspr2.c Mon Mar 15 15:11:37 1999
++++ refblas3-1.2/cblas/src/cblas_dspr2.c Thu Jun 12 10:28:21 2003
+@@ -29,7 +29,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -37,7 +37,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dspr2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -55,7 +55,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dspr2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -64,7 +64,7 @@
+ #endif
+ F77_dspr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A);
+ } else cblas_xerbla(1, "cblas_dspr2", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dsymm.c refblas3-1.2/cblas/src/cblas_dsymm.c
+--- blas-1.1/cblas/src/cblas_dsymm.c Mon Mar 15 15:11:38 1999
++++ refblas3-1.2/cblas/src/cblas_dsymm.c Thu Jun 12 10:28:21 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -46,7 +46,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsymm","Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dsymm","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -76,7 +76,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsymm","Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -86,7 +86,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dsymm","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -100,7 +100,7 @@
+ &F77_ldb, &beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_dsymm","Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dsymv.c refblas3-1.2/cblas/src/cblas_dsymv.c
+--- blas-1.1/cblas/src/cblas_dsymv.c Mon Mar 15 15:11:39 1999
++++ refblas3-1.2/cblas/src/cblas_dsymv.c Thu Jun 12 10:28:21 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsymv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -59,7 +59,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsymv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -70,7 +70,7 @@
+ A ,&F77_lda, X,&F77_incX, &beta, Y, &F77_incY);
+ }
+ else cblas_xerbla(1, "cblas_dsymv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dsyr.c refblas3-1.2/cblas/src/cblas_dsyr.c
+--- blas-1.1/cblas/src/cblas_dsyr.c Mon Mar 15 15:11:39 1999
++++ refblas3-1.2/cblas/src/cblas_dsyr.c Thu Jun 12 10:28:21 2003
+@@ -30,7 +30,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -38,7 +38,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsyr","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsyr","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -65,7 +65,7 @@
+ #endif
+ F77_dsyr(F77_UL, &F77_N, &alpha, X, &F77_incX, A, &F77_lda);
+ } else cblas_xerbla(1, "cblas_dsyr", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dsyr2.c refblas3-1.2/cblas/src/cblas_dsyr2.c
+--- blas-1.1/cblas/src/cblas_dsyr2.c Mon Mar 15 15:11:40 1999
++++ refblas3-1.2/cblas/src/cblas_dsyr2.c Thu Jun 12 10:28:21 2003
+@@ -33,7 +33,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsyr2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsyr2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -70,7 +70,7 @@
+ F77_dsyr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
+ &F77_lda);
+ } else cblas_xerbla(1, "cblas_dsyr2", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dsyr2k.c refblas3-1.2/cblas/src/cblas_dsyr2k.c
+--- blas-1.1/cblas/src/cblas_dsyr2k.c Mon Mar 15 15:11:41 1999
++++ refblas3-1.2/cblas/src/cblas_dsyr2k.c Thu Jun 12 10:28:22 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsyr2k","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -58,7 +58,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dsyr2k","Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -79,7 +79,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dsyr2k","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -89,7 +89,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dsyr2k","Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -103,7 +103,7 @@
+ &F77_ldb, &beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_dsyr2k","Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dsyrk.c refblas3-1.2/cblas/src/cblas_dsyrk.c
+--- blas-1.1/cblas/src/cblas_dsyrk.c Mon Mar 15 15:11:42 1999
++++ refblas3-1.2/cblas/src/cblas_dsyrk.c Thu Jun 12 10:28:22 2003
+@@ -35,7 +35,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -45,7 +45,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dsyrk","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dsyrk","Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -77,7 +77,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dsyrk","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -87,7 +87,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dsyrk","Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -101,7 +101,7 @@
+ &beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_dsyrk","Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dtbmv.c refblas3-1.2/cblas/src/cblas_dtbmv.c
+--- blas-1.1/cblas/src/cblas_dtbmv.c Mon Mar 15 15:11:43 1999
++++ refblas3-1.2/cblas/src/cblas_dtbmv.c Thu Jun 12 10:28:22 2003
+@@ -34,7 +34,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -52,7 +52,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -61,7 +61,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtbmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -81,7 +81,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -92,7 +92,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -102,7 +102,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -117,6 +117,6 @@
+
+ }
+ else cblas_xerbla(1, "cblas_dtbmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dtbsv.c refblas3-1.2/cblas/src/cblas_dtbsv.c
+--- blas-1.1/cblas/src/cblas_dtbsv.c Mon Mar 15 15:11:44 1999
++++ refblas3-1.2/cblas/src/cblas_dtbsv.c Thu Jun 12 10:28:22 2003
+@@ -34,7 +34,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtbsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -52,7 +52,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtbsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -61,7 +61,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtbsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -81,7 +81,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtbsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -92,7 +92,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtbsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -102,7 +102,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtbsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -116,7 +116,7 @@
+ &F77_incX);
+ }
+ else cblas_xerbla(1, "cblas_dtbsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dtpmv.c refblas3-1.2/cblas/src/cblas_dtpmv.c
+--- blas-1.1/cblas/src/cblas_dtpmv.c Mon Mar 15 15:11:45 1999
++++ refblas3-1.2/cblas/src/cblas_dtpmv.c Thu Jun 12 10:28:22 2003
+@@ -31,7 +31,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -39,7 +39,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtpmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -49,7 +49,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtpmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -58,7 +58,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtpmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -77,7 +77,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtpmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -88,7 +88,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtpmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -98,7 +98,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtpmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -111,7 +111,7 @@
+ F77_dtpmv( F77_UL, F77_TA, F77_DI, &F77_N, Ap, X,&F77_incX);
+ }
+ else cblas_xerbla(1, "cblas_dtpmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dtpsv.c refblas3-1.2/cblas/src/cblas_dtpsv.c
+--- blas-1.1/cblas/src/cblas_dtpsv.c Mon Mar 15 15:11:46 1999
++++ refblas3-1.2/cblas/src/cblas_dtpsv.c Thu Jun 12 10:28:22 2003
+@@ -31,7 +31,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -39,7 +39,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtpsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -49,7 +49,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtpsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -58,7 +58,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtpsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -77,7 +77,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtpsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -88,7 +88,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtpsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -98,7 +98,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtpsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -112,7 +112,7 @@
+
+ }
+ else cblas_xerbla(1, "cblas_dtpsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dtrmm.c refblas3-1.2/cblas/src/cblas_dtrmm.c
+--- blas-1.1/cblas/src/cblas_dtrmm.c Mon Mar 15 15:11:47 1999
++++ refblas3-1.2/cblas/src/cblas_dtrmm.c Thu Jun 12 10:28:22 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -46,7 +46,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtrmm","Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -55,7 +55,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtrmm","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -66,7 +66,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtrmm","Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -76,7 +76,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_dtrmm","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -97,7 +97,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtrmm","Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -107,7 +107,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtrmm","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -118,7 +118,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtrmm","Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -128,7 +128,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_dtrmm","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -142,7 +142,7 @@
+ F77_dtrmm(F77_SD, F77_UL, F77_TA, F77_DI, &F77_N, &F77_M, &alpha, A, &F77_lda, B, &F77_ldb);
+ }
+ else cblas_xerbla(1, "cblas_dtrmm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dtrmv.c refblas3-1.2/cblas/src/cblas_dtrmv.c
+--- blas-1.1/cblas/src/cblas_dtrmv.c Mon Mar 15 15:11:48 1999
++++ refblas3-1.2/cblas/src/cblas_dtrmv.c Thu Jun 12 10:28:22 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtrmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -54,7 +54,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtrmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -63,7 +63,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtrmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -83,7 +83,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtrmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -94,7 +94,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtrmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -104,7 +104,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtrmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -116,7 +116,7 @@
+ F77_dtrmv( F77_UL, F77_TA, F77_DI, &F77_N, A, &F77_lda, X,
+ &F77_incX);
+ } else cblas_xerbla(1, "cblas_dtrmv", "Illegal order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dtrsm.c refblas3-1.2/cblas/src/cblas_dtrsm.c
+--- blas-1.1/cblas/src/cblas_dtrsm.c Mon Mar 15 15:11:49 1999
++++ refblas3-1.2/cblas/src/cblas_dtrsm.c Thu Jun 12 10:28:22 2003
+@@ -38,7 +38,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtrsm","Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtrsm","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -67,7 +67,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtrsm","Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -77,7 +77,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_dtrsm","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -100,7 +100,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtrsm","Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -110,7 +110,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtrsm","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -121,7 +121,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtrsm","Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -131,7 +131,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_dtrsm","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -147,7 +147,7 @@
+ &F77_lda, B, &F77_ldb);
+ }
+ else cblas_xerbla(1, "cblas_dtrsm","Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_dtrsv.c refblas3-1.2/cblas/src/cblas_dtrsv.c
+--- blas-1.1/cblas/src/cblas_dtrsv.c Mon Mar 15 15:11:50 1999
++++ refblas3-1.2/cblas/src/cblas_dtrsv.c Thu Jun 12 10:28:22 2003
+@@ -34,7 +34,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtrsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -52,7 +52,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtrsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -61,7 +61,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtrsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -81,7 +81,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_dtrsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -92,7 +92,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_dtrsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -102,7 +102,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_dtrsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -115,7 +115,7 @@
+ &F77_incX);
+ }
+ else cblas_xerbla(1, "cblas_dtrsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_f77.h refblas3-1.2/cblas/src/cblas_f77.h
+--- blas-1.1/cblas/src/cblas_f77.h Sat Mar 13 01:08:55 1999
++++ refblas3-1.2/cblas/src/cblas_f77.h Thu Jun 12 10:29:04 2003
+@@ -6,6 +6,9 @@
+ * Merged cblas_f77.h and cblas_fortran_header.h
+ */
+
++#include
++#include
++
+ #ifndef CBLAS_F77_H
+ #define CBLAS_f77_H
+
+@@ -29,14 +32,17 @@
+
+ #ifdef F77_INT
+ #define FINT const F77_INT *
++ #define FINT2 F77_INT *
+ #else
+ #define FINT const int *
++ #define FINT2 int *
+ #endif
+
+ #if defined(ADD_)
+ /*
+ * Level 1 BLAS
+ */
++#define F77_xerbli xerbli_
+ #define F77_xerbla xerbla_
+ #define F77_srotg srotg_
+ #define F77_srotmg srotmg_
+@@ -190,6 +196,7 @@
+ /*
+ * Level 1 BLAS
+ */
++#define F77_xerbli XERBLI
+ #define F77_xerbla XERBLA
+ #define F77_srotg SROTG
+ #define F77_srotmg SROTMG
+@@ -343,6 +350,7 @@
+ /*
+ * Level 1 BLAS
+ */
++#define F77_xerbli xerbli
+ #define F77_xerbla xerbla
+ #define F77_srotg srotg
+ #define F77_srotmg srotmg
+@@ -494,7 +502,8 @@
+ #define F77_ztrsm ztrsm
+ #endif
+
+- void F77_xerbla(FCHAR, void *);
++void F77_xerbla(FCHAR, void *);
++
+ /*
+ * Level 1 Fortran Prototypes
+ */
+@@ -513,7 +522,7 @@
+ void F77_sscal( FINT, const float *, float *, FINT);
+ void F77_snrm2_sub( FINT, const float *, FINT, float *);
+ void F77_sasum_sub( FINT, const float *, FINT, float *);
+- void F77_isamax_sub( FINT, const float * , FINT, FINT);
++ void F77_isamax_sub( FINT, const float * , FINT, FINT2);
+
+ /* Double Precision */
+
+@@ -530,7 +539,7 @@
+ void F77_dscal( FINT, const double *, double *, FINT);
+ void F77_dnrm2_sub( FINT, const double *, FINT, double *);
+ void F77_dasum_sub( FINT, const double *, FINT, double *);
+- void F77_idamax_sub( FINT, const double * , FINT, FINT);
++ void F77_idamax_sub( FINT, const double * , FINT, FINT2);
+
+ /* Single Complex Precision */
+
+@@ -541,7 +550,7 @@
+ void F77_cdotc_sub( FINT, const void *, FINT, const void *, FINT, void *);
+ void F77_cdotu_sub( FINT, const void *, FINT, const void *, FINT, void *);
+ void F77_cscal( FINT, const void *, void *, FINT);
+- void F77_icamax_sub( FINT, const void *, FINT, FINT);
++ void F77_icamax_sub( FINT, const void *, FINT, FINT2);
+ void F77_csscal( FINT, const float *, void *, FINT);
+ void F77_scnrm2_sub( FINT, const void *, FINT, float *);
+ void F77_scasum_sub( FINT, const void *, FINT, float *);
+@@ -558,7 +567,7 @@
+ void F77_zscal( FINT, const void *, void *, FINT);
+ void F77_dznrm2_sub( FINT, const void *, FINT, double *);
+ void F77_dzasum_sub( FINT, const void *, FINT, double *);
+- void F77_izamax_sub( FINT, const void *, FINT, FINT);
++ void F77_izamax_sub( FINT, const void *, FINT, FINT2);
+
+ /*
+ * Level 2 Fortran Prototypes
+@@ -687,5 +696,69 @@
+ void F77_zher2k(FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT);
+ void F77_ztrmm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, double *, FINT);
+ void F77_ztrsm(FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, const double *, FINT, double *, FINT);
++
++static int RowMajorStrgi;
++
++static void
++cblas_fix_info(int *info,const char *rout) {
++
++ if (RowMajorStrgi)
++ {
++ if (strstr(rout,"gemm") != 0)
++ {
++ if (*info == 5 ) *info = 4;
++ else if (*info == 4 ) *info = 5;
++ else if (*info == 11) *info = 9;
++ else if (*info == 9 ) *info = 11;
++ }
++ else if (strstr(rout,"symm") != 0 || strstr(rout,"hemm") != 0)
++ {
++ if (*info == 5 ) *info = 4;
++ else if (*info == 4 ) *info = 5;
++ }
++ else if (strstr(rout,"trmm") != 0 || strstr(rout,"trsm") != 0)
++ {
++ if (*info == 7 ) *info = 6;
++ else if (*info == 6 ) *info = 7;
++ }
++ else if (strstr(rout,"gemv") != 0)
++ {
++ if (*info == 4) *info = 3;
++ else if (*info == 3) *info = 4;
++ }
++ else if (strstr(rout,"gbmv") != 0)
++ {
++ if (*info == 4) *info = 3;
++ else if (*info == 3) *info = 4;
++ else if (*info == 6) *info = 5;
++ else if (*info == 5) *info = 6;
++ }
++ else if (strstr(rout,"ger") != 0)
++ {
++ if (*info == 3) *info = 2;
++ else if (*info == 2) *info = 3;
++ else if (*info == 8) *info = 6;
++ else if (*info == 6) *info = 8;
++ }
++ else if ( (strstr(rout,"her2") != 0 || strstr(rout,"hpr2") != 0)
++ && strstr(rout,"her2k") == 0 )
++ {
++ if (*info == 8) *info = 6;
++ else if (*info == 6) *info = 8;
++ }
++ }
++}
++
++extern void (*mcblas_fix_info)(int *,const char *);
++
++#undef cblas_xerbla
++#define cblas_xerbla(a_,b_,c_...) {\
++ int aa_=(a_);\
++ if (mcblas_fix_info) (*mcblas_fix_info)(&(aa_),(b_));\
++ cblas_xerbla((aa_),(b_),##c_);\
++}
++
++#undef RowMajorStrg
++#define RowMajorStrg RowMajorStrgi
+
+ #endif /* CBLAS_F77_H */
+diff -ruN blas-1.1/cblas/src/cblas_globals.c refblas3-1.2/cblas/src/cblas_globals.c
+--- blas-1.1/cblas/src/cblas_globals.c Mon Mar 15 15:11:51 1999
++++ refblas3-1.2/cblas/src/cblas_globals.c Tue Jun 10 17:09:15 2003
+@@ -1,2 +1,2 @@
+-int CBLAS_CallFromC=0;
+-int RowMajorStrg=0;
++static int CBLAS_CallFromC;
++static int RowMajorStrg;
+diff -ruN blas-1.1/cblas/src/cblas_icamax.c refblas3-1.2/cblas/src/cblas_icamax.c
+--- blas-1.1/cblas/src/cblas_icamax.c Fri Mar 12 22:44:54 1999
++++ refblas3-1.2/cblas/src/cblas_icamax.c Mon Jun 9 14:56:34 2003
+@@ -19,5 +19,5 @@
+ #define F77_incX incX
+ #endif
+ F77_icamax_sub( &F77_N, X, &F77_incX, &iamax);
+- return iamax;
++ return iamax ? iamax-1 : 0;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_idamax.c refblas3-1.2/cblas/src/cblas_idamax.c
+--- blas-1.1/cblas/src/cblas_idamax.c Fri Mar 12 22:44:55 1999
++++ refblas3-1.2/cblas/src/cblas_idamax.c Mon Jun 9 14:56:53 2003
+@@ -19,5 +19,5 @@
+ #define F77_incX incX
+ #endif
+ F77_idamax_sub( &F77_N, X, &F77_incX, &iamax);
+- return iamax;
++ return iamax ? iamax-1 : 0;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_isamax.c refblas3-1.2/cblas/src/cblas_isamax.c
+--- blas-1.1/cblas/src/cblas_isamax.c Fri Mar 12 22:44:56 1999
++++ refblas3-1.2/cblas/src/cblas_isamax.c Mon Jun 9 14:57:03 2003
+@@ -19,5 +19,5 @@
+ #define F77_incX incX
+ #endif
+ F77_isamax_sub( &F77_N, X, &F77_incX, &iamax);
+- return iamax;
++ return iamax ? iamax-1 : 0;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_izamax.c refblas3-1.2/cblas/src/cblas_izamax.c
+--- blas-1.1/cblas/src/cblas_izamax.c Fri Mar 12 22:44:57 1999
++++ refblas3-1.2/cblas/src/cblas_izamax.c Mon Jun 9 14:57:20 2003
+@@ -19,5 +19,5 @@
+ #define F77_incX incX
+ #endif
+ F77_izamax_sub( &F77_N, X, &F77_incX, &iamax);
+- return iamax;
++ return iamax ? iamax-1 : 0;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_sgbmv.c refblas3-1.2/cblas/src/cblas_sgbmv.c
+--- blas-1.1/cblas/src/cblas_sgbmv.c Mon Mar 15 15:11:52 1999
++++ refblas3-1.2/cblas/src/cblas_sgbmv.c Thu Jun 12 10:28:22 2003
+@@ -38,7 +38,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (TransA == CblasNoTrans) TA = 'N';
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_sgbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -66,7 +66,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_sgbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -77,7 +77,7 @@
+ A ,&F77_lda, X, &F77_incX, &beta, Y, &F77_incY);
+ }
+ else cblas_xerbla(1, "cblas_sgbmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_sgemm.c refblas3-1.2/cblas/src/cblas_sgemm.c
+--- blas-1.1/cblas/src/cblas_sgemm.c Mon Mar 15 15:11:53 1999
++++ refblas3-1.2/cblas/src/cblas_sgemm.c Thu Jun 12 10:28:22 2003
+@@ -38,7 +38,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if( Order == CblasColMajor )
+ {
+ if(TransA == CblasTrans) TA='T';
+@@ -48,7 +48,7 @@
+ {
+ cblas_xerbla(2, "cblas_sgemm",
+ "Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ {
+ cblas_xerbla(3, "cblas_sgemm",
+ "Illegal TransB setting, %d\n", TransB);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -81,7 +81,7 @@
+ {
+ cblas_xerbla(2, "cblas_sgemm",
+ "Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -92,7 +92,7 @@
+ {
+ cblas_xerbla(2, "cblas_sgemm",
+ "Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -105,6 +105,6 @@
+ } else
+ cblas_xerbla(1, "cblas_sgemm",
+ "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_sgemv.c refblas3-1.2/cblas/src/cblas_sgemv.c
+--- blas-1.1/cblas/src/cblas_sgemv.c Mon Mar 15 15:11:54 1999
++++ refblas3-1.2/cblas/src/cblas_sgemv.c Thu Jun 12 10:28:22 2003
+@@ -34,7 +34,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (TransA == CblasNoTrans) TA = 'N';
+@@ -43,7 +43,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_sgemv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ }
+ #ifdef F77_CHAR
+@@ -61,7 +61,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_sgemv", "Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -72,7 +72,7 @@
+ &F77_incX, &beta, Y, &F77_incY);
+ }
+ else cblas_xerbla(1, "cblas_sgemv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_sger.c refblas3-1.2/cblas/src/cblas_sger.c
+--- blas-1.1/cblas/src/cblas_sger.c Mon Mar 15 15:11:55 1999
++++ refblas3-1.2/cblas/src/cblas_sger.c Thu Jun 12 10:28:22 2003
+@@ -27,7 +27,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ F77_sger( &F77_M, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
+@@ -40,7 +40,7 @@
+ &F77_lda);
+ }
+ else cblas_xerbla(1, "cblas_sger", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ssbmv.c refblas3-1.2/cblas/src/cblas_ssbmv.c
+--- blas-1.1/cblas/src/cblas_ssbmv.c Mon Mar 15 15:11:56 1999
++++ refblas3-1.2/cblas/src/cblas_ssbmv.c Thu Jun 12 10:28:22 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ssbmv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -59,7 +59,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ssbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -70,7 +70,7 @@
+ &F77_incX, &beta, Y, &F77_incY);
+ }
+ else cblas_xerbla(1, "cblas_ssbmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_sspmv.c refblas3-1.2/cblas/src/cblas_sspmv.c
+--- blas-1.1/cblas/src/cblas_sspmv.c Mon Mar 15 15:11:57 1999
++++ refblas3-1.2/cblas/src/cblas_sspmv.c Thu Jun 12 10:28:22 2003
+@@ -31,7 +31,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -39,7 +39,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_sspmv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -57,7 +57,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_sspmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -68,6 +68,6 @@
+ AP, X,&F77_incX, &beta, Y, &F77_incY);
+ }
+ else cblas_xerbla(1, "cblas_sspmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_sspr.c refblas3-1.2/cblas/src/cblas_sspr.c
+--- blas-1.1/cblas/src/cblas_sspr.c Mon Mar 15 15:11:58 1999
++++ refblas3-1.2/cblas/src/cblas_sspr.c Thu Jun 12 10:28:22 2003
+@@ -31,7 +31,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -39,7 +39,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_sspr","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -57,7 +57,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_sspr","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -66,7 +66,7 @@
+ #endif
+ F77_sspr(F77_UL, &F77_N, &alpha, X, &F77_incX, Ap);
+ } else cblas_xerbla(1, "cblas_sspr", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_sspr2.c refblas3-1.2/cblas/src/cblas_sspr2.c
+--- blas-1.1/cblas/src/cblas_sspr2.c Mon Mar 15 15:11:59 1999
++++ refblas3-1.2/cblas/src/cblas_sspr2.c Thu Jun 12 10:28:22 2003
+@@ -31,7 +31,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -39,7 +39,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_sspr2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -57,7 +57,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_sspr2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -66,6 +66,6 @@
+ #endif
+ F77_sspr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A);
+ } else cblas_xerbla(1, "cblas_sspr2", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ssymm.c refblas3-1.2/cblas/src/cblas_ssymm.c
+--- blas-1.1/cblas/src/cblas_ssymm.c Mon Mar 15 15:12:00 1999
++++ refblas3-1.2/cblas/src/cblas_ssymm.c Thu Jun 12 10:28:22 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -47,7 +47,7 @@
+ {
+ cblas_xerbla(2, "cblas_ssymm",
+ "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -58,7 +58,7 @@
+ {
+ cblas_xerbla(3, "cblas_ssymm",
+ "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -78,7 +78,7 @@
+ {
+ cblas_xerbla(2, "cblas_ssymm",
+ "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -89,7 +89,7 @@
+ {
+ cblas_xerbla(3, "cblas_ssymm",
+ "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -102,7 +102,7 @@
+ F77_ssymm(F77_SD, F77_UL, &F77_N, &F77_M, &alpha, A, &F77_lda, B, &F77_ldb, &beta, C, &F77_ldc);
+ } else cblas_xerbla(1, "cblas_ssymm",
+ "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ssymv.c refblas3-1.2/cblas/src/cblas_ssymv.c
+--- blas-1.1/cblas/src/cblas_ssymv.c Mon Mar 15 15:12:00 1999
++++ refblas3-1.2/cblas/src/cblas_ssymv.c Thu Jun 12 10:28:22 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ssymv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -59,7 +59,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ssymv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -70,7 +70,7 @@
+ A ,&F77_lda, X,&F77_incX, &beta, Y, &F77_incY);
+ }
+ else cblas_xerbla(1, "cblas_ssymv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ssyr.c refblas3-1.2/cblas/src/cblas_ssyr.c
+--- blas-1.1/cblas/src/cblas_ssyr.c Mon Mar 15 15:12:01 1999
++++ refblas3-1.2/cblas/src/cblas_ssyr.c Thu Jun 12 10:28:22 2003
+@@ -29,7 +29,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -37,7 +37,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ssyr","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -55,7 +55,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ssyr","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -64,7 +64,7 @@
+ #endif
+ F77_ssyr(F77_UL, &F77_N, &alpha, X, &F77_incX, A, &F77_lda);
+ } else cblas_xerbla(1, "cblas_ssyr", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ssyr2.c refblas3-1.2/cblas/src/cblas_ssyr2.c
+--- blas-1.1/cblas/src/cblas_ssyr2.c Mon Mar 15 15:12:02 1999
++++ refblas3-1.2/cblas/src/cblas_ssyr2.c Thu Jun 12 10:28:22 2003
+@@ -33,7 +33,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ssyr2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ssyr2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -70,7 +70,7 @@
+ F77_ssyr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
+ &F77_lda);
+ } else cblas_xerbla(1, "cblas_ssyr2", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ssyr2k.c refblas3-1.2/cblas/src/cblas_ssyr2k.c
+--- blas-1.1/cblas/src/cblas_ssyr2k.c Mon Mar 15 15:12:03 1999
++++ refblas3-1.2/cblas/src/cblas_ssyr2k.c Thu Jun 12 10:28:22 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -48,7 +48,7 @@
+ {
+ cblas_xerbla(2, "cblas_ssyr2k",
+ "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ {
+ cblas_xerbla(3, "cblas_ssyr2k",
+ "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -81,7 +81,7 @@
+ {
+ cblas_xerbla(3, "cblas_ssyr2k",
+ "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -92,7 +92,7 @@
+ {
+ cblas_xerbla(3, "cblas_ssyr2k",
+ "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -105,7 +105,7 @@
+ F77_ssyr2k(F77_UL, F77_TR, &F77_N, &F77_K, &alpha, A, &F77_lda, B, &F77_ldb, &beta, C, &F77_ldc);
+ } else cblas_xerbla(1, "cblas_ssyr2k",
+ "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ssyrk.c refblas3-1.2/cblas/src/cblas_ssyrk.c
+--- blas-1.1/cblas/src/cblas_ssyrk.c Mon Mar 15 15:12:04 1999
++++ refblas3-1.2/cblas/src/cblas_ssyrk.c Thu Jun 12 10:28:22 2003
+@@ -35,7 +35,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -46,7 +46,7 @@
+ {
+ cblas_xerbla(2, "cblas_ssyrk",
+ "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -58,7 +58,7 @@
+ {
+ cblas_xerbla(3, "cblas_ssyrk",
+ "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -79,7 +79,7 @@
+ {
+ cblas_xerbla(3, "cblas_ssyrk",
+ "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -90,7 +90,7 @@
+ {
+ cblas_xerbla(3, "cblas_ssyrk",
+ "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -103,7 +103,7 @@
+ F77_ssyrk(F77_UL, F77_TR, &F77_N, &F77_K, &alpha, A, &F77_lda, &beta, C, &F77_ldc);
+ } else cblas_xerbla(1, "cblas_ssyrk",
+ "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_stbmv.c refblas3-1.2/cblas/src/cblas_stbmv.c
+--- blas-1.1/cblas/src/cblas_stbmv.c Mon Mar 15 15:12:05 1999
++++ refblas3-1.2/cblas/src/cblas_stbmv.c Thu Jun 12 10:28:23 2003
+@@ -34,7 +34,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_stbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -52,7 +52,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_stbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -61,7 +61,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_stbmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -81,7 +81,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_stbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -92,7 +92,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_stbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -102,7 +102,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_stbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -116,7 +116,7 @@
+ &F77_incX);
+ }
+ else cblas_xerbla(1, "cblas_stbmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_stbsv.c refblas3-1.2/cblas/src/cblas_stbsv.c
+--- blas-1.1/cblas/src/cblas_stbsv.c Mon Mar 15 15:12:06 1999
++++ refblas3-1.2/cblas/src/cblas_stbsv.c Thu Jun 12 10:28:23 2003
+@@ -34,7 +34,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_stbsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -52,7 +52,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_stbsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -61,7 +61,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_stbsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -81,7 +81,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_stbsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -92,7 +92,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_stbsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -102,7 +102,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_stbsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -116,7 +116,7 @@
+ &F77_incX);
+ }
+ else cblas_xerbla(1, "cblas_stbsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_stpmv.c refblas3-1.2/cblas/src/cblas_stpmv.c
+--- blas-1.1/cblas/src/cblas_stpmv.c Mon Mar 15 15:12:08 1999
++++ refblas3-1.2/cblas/src/cblas_stpmv.c Thu Jun 12 10:28:23 2003
+@@ -32,7 +32,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -40,7 +40,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_stpmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -50,7 +50,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_stpmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -59,7 +59,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_stpmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -78,7 +78,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_stpmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -89,7 +89,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_stpmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -99,7 +99,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_stpmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -112,7 +112,7 @@
+ F77_stpmv( F77_UL, F77_TA, F77_DI, &F77_N, Ap, X,&F77_incX);
+ }
+ else cblas_xerbla(1, "cblas_stpmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_stpsv.c refblas3-1.2/cblas/src/cblas_stpsv.c
+--- blas-1.1/cblas/src/cblas_stpsv.c Mon Mar 15 15:12:09 1999
++++ refblas3-1.2/cblas/src/cblas_stpsv.c Thu Jun 12 10:28:23 2003
+@@ -31,7 +31,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -39,7 +39,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_stpsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -49,7 +49,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_stpsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -58,7 +58,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_stpsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -77,7 +77,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_stpsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -88,7 +88,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_stpsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -98,7 +98,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_stpsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -112,7 +112,7 @@
+
+ }
+ else cblas_xerbla(1, "cblas_stpsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_strmm.c refblas3-1.2/cblas/src/cblas_strmm.c
+--- blas-1.1/cblas/src/cblas_strmm.c Mon Mar 15 15:12:10 1999
++++ refblas3-1.2/cblas/src/cblas_strmm.c Thu Jun 12 10:28:23 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -46,7 +46,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_strmm","Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -55,7 +55,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_strmm","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -66,7 +66,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_strmm","Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -76,7 +76,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_strmm", "Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -97,7 +97,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_strmm","Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -107,7 +107,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_strmm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -118,7 +118,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_strmm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -128,7 +128,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_strmm","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -142,7 +142,7 @@
+ &F77_lda, B, &F77_ldb);
+ }
+ else cblas_xerbla(1, "cblas_strmm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_strmv.c refblas3-1.2/cblas/src/cblas_strmv.c
+--- blas-1.1/cblas/src/cblas_strmv.c Mon Mar 15 15:12:11 1999
++++ refblas3-1.2/cblas/src/cblas_strmv.c Thu Jun 12 10:28:23 2003
+@@ -35,7 +35,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -43,7 +43,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_strmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -53,7 +53,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_strmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -62,7 +62,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_strmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -82,7 +82,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_strmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -93,7 +93,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_strmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -103,7 +103,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_strmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -116,7 +116,7 @@
+ &F77_incX);
+ }
+ else cblas_xerbla(1, "cblas_strmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_strsm.c refblas3-1.2/cblas/src/cblas_strsm.c
+--- blas-1.1/cblas/src/cblas_strsm.c Mon Mar 15 15:12:12 1999
++++ refblas3-1.2/cblas/src/cblas_strsm.c Thu Jun 12 10:28:23 2003
+@@ -38,7 +38,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_strsm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_strsm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -66,7 +66,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_strsm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -75,7 +75,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_strsm", "Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -95,7 +95,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_strsm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -104,7 +104,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_strsm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -114,7 +114,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_strsm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -123,7 +123,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_strsm", "Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -137,7 +137,7 @@
+ F77_strsm(F77_SD, F77_UL, F77_TA, F77_DI, &F77_N, &F77_M, &alpha, A, &F77_lda, B, &F77_ldb);
+ }
+ else cblas_xerbla(1, "cblas_strsm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_strsv.c refblas3-1.2/cblas/src/cblas_strsv.c
+--- blas-1.1/cblas/src/cblas_strsv.c Mon Mar 15 15:12:13 1999
++++ refblas3-1.2/cblas/src/cblas_strsv.c Thu Jun 12 10:28:23 2003
+@@ -34,7 +34,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_strsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -52,7 +52,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_strsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -61,7 +61,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_strsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -81,7 +81,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_strsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -92,7 +92,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_strsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -102,7 +102,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_strsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -115,7 +115,7 @@
+ &F77_incX);
+ }
+ else cblas_xerbla(1, "cblas_strsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_xerbla.c refblas3-1.2/cblas/src/cblas_xerbla.c
+--- blas-1.1/cblas/src/cblas_xerbla.c Mon Mar 15 15:12:14 1999
++++ refblas3-1.2/cblas/src/cblas_xerbla.c Wed Jun 11 15:27:17 2003
+@@ -5,58 +5,13 @@
+ #include "cblas.h"
+ #include "cblas_f77.h"
+
++#undef cblas_xerbla
+ void cblas_xerbla(int info, const char *rout, const char *form, ...)
+ {
+- extern RowMajorStrg;
+ va_list argptr;
+
+ va_start(argptr, form);
+
+- if (RowMajorStrg)
+- {
+- if (strstr(rout,"gemm") != 0)
+- {
+- if (info == 5 ) info = 4;
+- else if (info == 4 ) info = 5;
+- else if (info == 11) info = 9;
+- else if (info == 9 ) info = 11;
+- }
+- else if (strstr(rout,"symm") != 0 || strstr(rout,"hemm") != 0)
+- {
+- if (info == 5 ) info = 4;
+- else if (info == 4 ) info = 5;
+- }
+- else if (strstr(rout,"trmm") != 0 || strstr(rout,"trsm") != 0)
+- {
+- if (info == 7 ) info = 6;
+- else if (info == 6 ) info = 7;
+- }
+- else if (strstr(rout,"gemv") != 0)
+- {
+- if (info == 4) info = 3;
+- else if (info == 3) info = 4;
+- }
+- else if (strstr(rout,"gbmv") != 0)
+- {
+- if (info == 4) info = 3;
+- else if (info == 3) info = 4;
+- else if (info == 6) info = 5;
+- else if (info == 5) info = 6;
+- }
+- else if (strstr(rout,"ger") != 0)
+- {
+- if (info == 3) info = 2;
+- else if (info == 2) info = 3;
+- else if (info == 8) info = 6;
+- else if (info == 6) info = 8;
+- }
+- else if ( (strstr(rout,"her2") != 0 || strstr(rout,"hpr2") != 0)
+- && strstr(rout,"her2k") == 0 )
+- {
+- if (info == 8) info = 6;
+- else if (info == 6) info = 8;
+- }
+- }
+ if (info)
+ fprintf(stderr, "Parameter %d to routine %s was incorrect\n", info, rout);
+ vfprintf(stderr, form, argptr);
+diff -ruN blas-1.1/cblas/src/cblas_zgbmv.c refblas3-1.2/cblas/src/cblas_zgbmv.c
+--- blas-1.1/cblas/src/cblas_zgbmv.c Mon Mar 15 15:12:15 1999
++++ refblas3-1.2/cblas/src/cblas_zgbmv.c Thu Jun 12 10:28:23 2003
+@@ -43,7 +43,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (TransA == CblasNoTrans) TA = 'N';
+@@ -52,7 +52,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zgbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -132,7 +132,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zgbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -160,7 +160,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_zgbmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zgemm.c refblas3-1.2/cblas/src/cblas_zgemm.c
+--- blas-1.1/cblas/src/cblas_zgemm.c Mon Mar 15 15:12:16 1999
++++ refblas3-1.2/cblas/src/cblas_zgemm.c Thu Jun 12 10:28:23 2003
+@@ -38,7 +38,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -48,7 +48,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zgemm","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -59,7 +59,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zgemm","Illegal TransB setting, %d\n", TransB);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -80,7 +80,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zgemm","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -90,7 +90,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zgemm","Illegal TransB setting, %d\n", TransB);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -103,7 +103,7 @@
+ &F77_ldb, A, &F77_lda, beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_zgemm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zgemv.c refblas3-1.2/cblas/src/cblas_zgemv.c
+--- blas-1.1/cblas/src/cblas_zgemv.c Mon Mar 15 15:12:16 1999
++++ refblas3-1.2/cblas/src/cblas_zgemv.c Thu Jun 12 10:28:23 2003
+@@ -40,7 +40,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if (order == CblasColMajor)
+ {
+@@ -50,7 +50,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zgemv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -129,7 +129,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zgemv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -158,7 +158,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_zgemv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zgerc.c refblas3-1.2/cblas/src/cblas_zgerc.c
+--- blas-1.1/cblas/src/cblas_zgerc.c Mon Mar 15 15:12:17 1999
++++ refblas3-1.2/cblas/src/cblas_zgerc.c Thu Jun 12 10:28:23 2003
+@@ -30,7 +30,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ F77_zgerc( &F77_M, &F77_N, alpha, X, &F77_incX, Y, &F77_incY, A,
+@@ -78,7 +78,7 @@
+ free(y);
+
+ } else cblas_xerbla(1, "cblas_zgerc", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zgeru.c refblas3-1.2/cblas/src/cblas_zgeru.c
+--- blas-1.1/cblas/src/cblas_zgeru.c Mon Mar 15 15:12:18 1999
++++ refblas3-1.2/cblas/src/cblas_zgeru.c Thu Jun 12 10:28:23 2003
+@@ -24,7 +24,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if (order == CblasColMajor)
+ {
+@@ -38,7 +38,7 @@
+ &F77_lda);
+ }
+ else cblas_xerbla(1, "cblas_zgeru", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zhbmv.c refblas3-1.2/cblas/src/cblas_zhbmv.c
+--- blas-1.1/cblas/src/cblas_zhbmv.c Mon Mar 15 15:12:19 1999
++++ refblas3-1.2/cblas/src/cblas_zhbmv.c Thu Jun 12 10:28:23 2003
+@@ -39,7 +39,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhbmv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -121,7 +121,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -134,7 +134,7 @@
+ else
+ {
+ cblas_xerbla(1, "cblas_zhbmv","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -153,7 +153,7 @@
+ while (y != st);
+ }
+ }
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zhemm.c refblas3-1.2/cblas/src/cblas_zhemm.c
+--- blas-1.1/cblas/src/cblas_zhemm.c Mon Mar 15 15:12:20 1999
++++ refblas3-1.2/cblas/src/cblas_zhemm.c Thu Jun 12 10:28:23 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -46,7 +46,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhemm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zhemm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -76,7 +76,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhemm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -86,7 +86,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zhemm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -100,7 +100,7 @@
+ &F77_lda, B, &F77_ldb, beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_zhemm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zhemv.c refblas3-1.2/cblas/src/cblas_zhemv.c
+--- blas-1.1/cblas/src/cblas_zhemv.c Mon Mar 15 15:12:21 1999
++++ refblas3-1.2/cblas/src/cblas_zhemv.c Thu Jun 12 10:28:23 2003
+@@ -39,7 +39,7 @@
+ RowMajorStrg = 0;
+
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhemv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -122,7 +122,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhemv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -135,7 +135,7 @@
+ else
+ {
+ cblas_xerbla(1, "cblas_zhemv","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -154,7 +154,7 @@
+ while (y != st);
+ }
+ }
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zher.c refblas3-1.2/cblas/src/cblas_zher.c
+--- blas-1.1/cblas/src/cblas_zher.c Mon Mar 15 15:12:22 1999
++++ refblas3-1.2/cblas/src/cblas_zher.c Thu Jun 12 10:28:23 2003
+@@ -34,7 +34,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -42,7 +42,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zher","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zher","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -104,7 +104,7 @@
+ if(X!=x)
+ free(x);
+
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zher2.c refblas3-1.2/cblas/src/cblas_zher2.c
+--- blas-1.1/cblas/src/cblas_zher2.c Mon Mar 15 15:12:23 1999
++++ refblas3-1.2/cblas/src/cblas_zher2.c Thu Jun 12 10:28:23 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zher2", "Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -63,7 +63,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zher2", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -138,7 +138,7 @@
+ else
+ {
+ cblas_xerbla(1, "cblas_zher2", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -147,7 +147,7 @@
+ if(Y!=y)
+ free(y);
+
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zher2k.c refblas3-1.2/cblas/src/cblas_zher2k.c
+--- blas-1.1/cblas/src/cblas_zher2k.c Mon Mar 15 15:12:24 1999
++++ refblas3-1.2/cblas/src/cblas_zher2k.c Thu Jun 12 10:28:23 2003
+@@ -39,7 +39,7 @@
+ double ALPHA[2];
+ const double *alp=(double *)alpha;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ RowMajorStrg = 0;
+
+ if( Order == CblasColMajor )
+@@ -50,7 +50,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zher2k", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -61,7 +61,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zher2k", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -81,7 +81,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zher2k", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -91,7 +91,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zher2k", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -104,7 +104,7 @@
+ ALPHA[1]= -alp[1];
+ F77_zher2k(F77_UL,F77_TR, &F77_N, &F77_K, ALPHA, A, &F77_lda, B, &F77_ldb, &beta, C, &F77_ldc);
+ } else cblas_xerbla(1, "cblas_zher2k", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zherk.c refblas3-1.2/cblas/src/cblas_zherk.c
+--- blas-1.1/cblas/src/cblas_zherk.c Mon Mar 15 15:12:25 1999
++++ refblas3-1.2/cblas/src/cblas_zherk.c Thu Jun 12 10:28:23 2003
+@@ -35,7 +35,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zherk", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -55,7 +55,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zherk", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -75,7 +75,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zherk", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -85,7 +85,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zherk", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -99,7 +99,7 @@
+ &beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_zherk", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zhpmv.c refblas3-1.2/cblas/src/cblas_zhpmv.c
+--- blas-1.1/cblas/src/cblas_zhpmv.c Mon Mar 15 15:12:26 1999
++++ refblas3-1.2/cblas/src/cblas_zhpmv.c Thu Jun 12 10:28:23 2003
+@@ -37,7 +37,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -45,7 +45,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhpmv","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -120,7 +120,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhpmv","Illegal Uplo setting, %d\n", Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -134,7 +134,7 @@
+ else
+ {
+ cblas_xerbla(1, "cblas_zhpmv","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -154,7 +154,7 @@
+ }
+ }
+
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zhpr.c refblas3-1.2/cblas/src/cblas_zhpr.c
+--- blas-1.1/cblas/src/cblas_zhpr.c Mon Mar 15 15:12:27 1999
++++ refblas3-1.2/cblas/src/cblas_zhpr.c Thu Jun 12 10:28:23 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhpr","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -59,7 +59,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhpr","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -103,13 +103,13 @@
+ } else
+ {
+ cblas_xerbla(1, "cblas_zhpr","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+ if(X!=x)
+ free(x);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zhpr2.c refblas3-1.2/cblas/src/cblas_zhpr2.c
+--- blas-1.1/cblas/src/cblas_zhpr2.c Mon Mar 15 15:12:28 1999
++++ refblas3-1.2/cblas/src/cblas_zhpr2.c Thu Jun 12 10:28:23 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasLower) UL = 'L';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhpr2","Illegal Uplo setting, %d\n",Uplo );
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -62,7 +62,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zhpr2","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -136,7 +136,7 @@
+ else
+ {
+ cblas_xerbla(1, "cblas_zhpr2","Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -144,7 +144,7 @@
+ free(x);
+ if(Y!=y)
+ free(y);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zsymm.c refblas3-1.2/cblas/src/cblas_zsymm.c
+--- blas-1.1/cblas/src/cblas_zsymm.c Mon Mar 15 15:12:29 1999
++++ refblas3-1.2/cblas/src/cblas_zsymm.c Thu Jun 12 10:28:23 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -46,7 +46,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zsymm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zsymm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -76,7 +76,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zsymm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -86,7 +86,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zsymm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -100,7 +100,7 @@
+ B, &F77_ldb, beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_zsymm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zsyr2k.c refblas3-1.2/cblas/src/cblas_zsyr2k.c
+--- blas-1.1/cblas/src/cblas_zsyr2k.c Mon Mar 15 15:12:30 1999
++++ refblas3-1.2/cblas/src/cblas_zsyr2k.c Thu Jun 12 10:28:24 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zsyr2k", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -58,7 +58,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zsyr2k", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -79,7 +79,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zsyr2k", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -89,7 +89,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zsyr2k", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -102,7 +102,7 @@
+ F77_zsyr2k(F77_UL, F77_TR, &F77_N, &F77_K, alpha, A, &F77_lda, B, &F77_ldb, beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_zsyr2k", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_zsyrk.c refblas3-1.2/cblas/src/cblas_zsyrk.c
+--- blas-1.1/cblas/src/cblas_zsyrk.c Mon Mar 15 15:12:31 1999
++++ refblas3-1.2/cblas/src/cblas_zsyrk.c Thu Jun 12 10:28:24 2003
+@@ -35,7 +35,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -45,7 +45,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_zsyrk", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -56,7 +56,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zsyrk", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -77,7 +77,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zsyrk", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -87,7 +87,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_zsyrk", "Illegal Trans setting, %d\n", Trans);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -101,7 +101,7 @@
+ beta, C, &F77_ldc);
+ }
+ else cblas_xerbla(1, "cblas_zsyrk", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ztbmv.c refblas3-1.2/cblas/src/cblas_ztbmv.c
+--- blas-1.1/cblas/src/cblas_ztbmv.c Mon Mar 15 15:12:32 1999
++++ refblas3-1.2/cblas/src/cblas_ztbmv.c Thu Jun 12 10:28:24 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -54,7 +54,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -63,7 +63,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztbmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -83,7 +83,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -115,7 +115,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztbmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -125,7 +125,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztbmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -152,7 +152,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ztbmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ztbsv.c refblas3-1.2/cblas/src/cblas_ztbsv.c
+--- blas-1.1/cblas/src/cblas_ztbsv.c Mon Mar 15 15:12:33 1999
++++ refblas3-1.2/cblas/src/cblas_ztbsv.c Thu Jun 12 10:28:24 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztbsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -54,7 +54,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztbsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -63,7 +63,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztbsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -83,7 +83,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztbsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -119,7 +119,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztbsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -129,7 +129,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztbsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -156,7 +156,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ztbsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ztpmv.c refblas3-1.2/cblas/src/cblas_ztpmv.c
+--- blas-1.1/cblas/src/cblas_ztpmv.c Mon Mar 15 15:12:34 1999
++++ refblas3-1.2/cblas/src/cblas_ztpmv.c Thu Jun 12 10:28:24 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztpmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -51,7 +51,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztpmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztpmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -79,7 +79,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztpmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -111,7 +111,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztpmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -121,7 +121,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztpmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -146,7 +146,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ztpmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ztpsv.c refblas3-1.2/cblas/src/cblas_ztpsv.c
+--- blas-1.1/cblas/src/cblas_ztpsv.c Mon Mar 15 15:12:35 1999
++++ refblas3-1.2/cblas/src/cblas_ztpsv.c Thu Jun 12 10:28:24 2003
+@@ -33,7 +33,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -41,7 +41,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztpsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -51,7 +51,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztpsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -60,7 +60,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztpsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -79,7 +79,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztpsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -115,7 +115,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztpsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -125,7 +125,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztpsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -151,7 +151,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ztpsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ztrmm.c refblas3-1.2/cblas/src/cblas_ztrmm.c
+--- blas-1.1/cblas/src/cblas_ztrmm.c Mon Mar 15 15:12:36 1999
++++ refblas3-1.2/cblas/src/cblas_ztrmm.c Thu Jun 12 10:28:24 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -46,7 +46,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztrmm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -55,7 +55,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztrmm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -66,7 +66,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztrmm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -76,7 +76,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_ztrmm", "Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -97,7 +97,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztrmm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -107,7 +107,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztrmm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -118,7 +118,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztrmm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -128,7 +128,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_ztrmm", "Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -143,7 +143,7 @@
+ F77_ztrmm(F77_SD, F77_UL, F77_TA, F77_DI, &F77_N, &F77_M, alpha, A, &F77_lda, B, &F77_ldb);
+ }
+ else cblas_xerbla(1, "cblas_ztrmm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ztrmv.c refblas3-1.2/cblas/src/cblas_ztrmv.c
+--- blas-1.1/cblas/src/cblas_ztrmv.c Mon Mar 15 15:12:37 1999
++++ refblas3-1.2/cblas/src/cblas_ztrmv.c Thu Jun 12 10:28:24 2003
+@@ -36,7 +36,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -44,7 +44,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztrmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -54,7 +54,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztrmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -63,7 +63,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztrmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -83,7 +83,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztrmv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -115,7 +115,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztrmv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -125,7 +125,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztrmv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -150,7 +150,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ztrmv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ztrsm.c refblas3-1.2/cblas/src/cblas_ztrsm.c
+--- blas-1.1/cblas/src/cblas_ztrsm.c Mon Mar 15 15:12:38 1999
++++ refblas3-1.2/cblas/src/cblas_ztrsm.c Thu Jun 12 10:28:24 2003
+@@ -37,7 +37,7 @@
+ extern int CBLAS_CallFromC;
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+
+ if( Order == CblasColMajor )
+ {
+@@ -47,7 +47,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztrsm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -57,7 +57,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztrsm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -68,7 +68,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztrsm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -78,7 +78,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_ztrsm", "Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -101,7 +101,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztrsm", "Illegal Side setting, %d\n", Side);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -111,7 +111,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztrsm", "Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -122,7 +122,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztrsm", "Illegal Trans setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -132,7 +132,7 @@
+ else
+ {
+ cblas_xerbla(5, "cblas_ztrsm", "Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -149,7 +149,7 @@
+ &F77_lda, B, &F77_ldb);
+ }
+ else cblas_xerbla(1, "cblas_ztrsm", "Illegal Order setting, %d\n", Order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/cblas_ztrsv.c refblas3-1.2/cblas/src/cblas_ztrsv.c
+--- blas-1.1/cblas/src/cblas_ztrsv.c Mon Mar 15 15:12:39 1999
++++ refblas3-1.2/cblas/src/cblas_ztrsv.c Thu Jun 12 10:28:24 2003
+@@ -35,7 +35,7 @@
+ extern int RowMajorStrg;
+ RowMajorStrg = 0;
+
+- CBLAS_CallFromC = 1;
++ mcblas_fix_info=cblas_fix_info;
+ if (order == CblasColMajor)
+ {
+ if (Uplo == CblasUpper) UL = 'U';
+@@ -43,7 +43,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztrsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -53,7 +53,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztrsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -62,7 +62,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztrsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -82,7 +82,7 @@
+ else
+ {
+ cblas_xerbla(2, "cblas_ztrsv","Illegal Uplo setting, %d\n", Uplo);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -115,7 +115,7 @@
+ else
+ {
+ cblas_xerbla(3, "cblas_ztrsv","Illegal TransA setting, %d\n", TransA);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -125,7 +125,7 @@
+ else
+ {
+ cblas_xerbla(4, "cblas_ztrsv","Illegal Diag setting, %d\n", Diag);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+@@ -150,7 +150,7 @@
+ }
+ }
+ else cblas_xerbla(1, "cblas_ztrsv", "Illegal Order setting, %d\n", order);
+- CBLAS_CallFromC = 0;
++ mcblas_fix_info = NULL;
+ RowMajorStrg = 0;
+ return;
+ }
+diff -ruN blas-1.1/cblas/src/xerbla.c refblas3-1.2/cblas/src/xerbla.c
+--- blas-1.1/cblas/src/xerbla.c Mon Mar 15 15:12:40 1999
++++ refblas3-1.2/cblas/src/xerbla.c Thu Jun 12 11:10:37 2003
+@@ -3,16 +3,24 @@
+ #include "cblas.h"
+ #include "cblas_f77.h"
+
++/* int RowMajorStrg; */
++int CBLAS_CallFromC;
++
+ #define XerblaStrLen 6
+ #define XerblaStrLen1 7
+
++void (*mcblas_fix_info)(int *,const char *)=NULL;
++
+ #ifdef F77_CHAR
+-void F77_xerbla(F77_CHAR F77_srname, void *vinfo)
++void F77_xerbli(F77_CHAR F77_srname, void *vinfo)
+ #else
+-void F77_xerbla(char *srname, void *vinfo)
++void F77_xerbli(char *srname, void *vinfo)
+ #endif
+
+ {
++#define XerblaStrLen 6
++#define XerblaStrLen1 7
++
+ #ifdef F77_CHAR
+ char *srname;
+ #endif
+@@ -27,21 +35,52 @@
+ int i;
+ #endif
+
+- extern int CBLAS_CallFromC;
++ if (!mcblas_fix_info) {
+
+ #ifdef F77_CHAR
+- srname = F2C_STR(F77_srname, XerblaStrLen);
++ F77_xerbla(F77_sname,vinfo);
++#else
++ F77_xerbla(srname,vinfo);
++#endif
++ } else {
++#ifdef F77_CHAR
++ srname = F2C_STR(F77_srname, XerblaStrLen);
+ #endif
+
+- if (CBLAS_CallFromC)
+- {
+- for(i=0; i != XerblaStrLen; i++) rout[i+6] = tolower(srname[i]);
+- rout[XerblaStrLen+6] = '\0';
+- cblas_xerbla(*info+1,rout,"");
+- }
+- else
+- {
+- fprintf(stderr, "Parameter %d to routine %s was incorrect\n",
+- *info, srname);
++ for(i=0; i != XerblaStrLen; i++) rout[i+6] = tolower(srname[i]);
++ rout[XerblaStrLen+6] = '\0';
++ (*info)++;
++ cblas_xerbla(*info,rout,"");
++
+ }
++}
++
++#ifdef F77_CHAR
++void F77_xerbla(F77_CHAR F77_srname, void *vinfo)
++#else
++void F77_xerbla(char *srname, void *vinfo)
++#endif
++
++{
++#ifdef F77_CHAR
++ char *srname;
++#endif
++
++#ifdef F77_INT
++ F77_INT *info=vinfo;
++ F77_INT i;
++#else
++ int *info=vinfo;
++ int i;
++#endif
++
++#ifdef F77_CHAR
++ srname = F2C_STR(F77_srname, XerblaStrLen);
++#endif
++
++ fprintf(stderr, "Parameter %d to routine %s was incorrect\n",
++ *info, srname);
++
++ exit(-1);
++
+ }
+diff -ruN blas-1.1/cblas/testing/c_dblas1.c refblas3-1.2/cblas/testing/c_dblas1.c
+--- blas-1.1/cblas/testing/c_dblas1.c Fri Feb 26 00:06:07 1999
++++ refblas3-1.2/cblas/testing/c_dblas1.c Mon Jun 9 15:57:03 2003
+@@ -78,5 +78,6 @@
+
+ int F77_idamax(const int *N, const double *X, const int *incX)
+ {
+- return cblas_idamax(*N, X, *incX);
++ if (*N < 1 || *incX < 1) return(0);
++ return cblas_idamax(*N, X, *incX)+1;
+ }
+diff -ruN blas-1.1/cblas/testing/c_sblas1.c refblas3-1.2/cblas/testing/c_sblas1.c
+--- blas-1.1/cblas/testing/c_sblas1.c Sat Dec 20 11:54:50 2003
++++ refblas3-1.2/cblas/testing/c_sblas1.c Mon Jun 9 15:56:49 2003
+@@ -77,5 +77,6 @@
+
+ int F77_isamax(const int *N, const float *X, const int *incX)
+ {
+- return cblas_isamax(*N, X, *incX);
++ if (*N < 1 || *incX < 1) return(0);
++ return cblas_isamax(*N, X, *incX)+1;
+ }
+diff -ruN blas-1.1/cblas/testing/c_xerbla.c refblas3-1.2/cblas/testing/c_xerbla.c
+--- blas-1.1/cblas/testing/c_xerbla.c Mon Mar 15 15:13:14 1999
++++ refblas3-1.2/cblas/testing/c_xerbla.c Wed Jun 11 21:50:18 2003
+@@ -5,12 +5,14 @@
+ #include "cblas.h"
+ #include "cblas_test.h"
+
++int RowMajorStrg=0;
++
+ void cblas_xerbla(int info, const char *rout, const char *form, ...)
+ {
+ extern int cblas_lerr, cblas_info, cblas_ok;
+ extern int link_xerbla;
+- extern int RowMajorStrg;
+ extern char *cblas_rout;
++ int i;
+
+ /* Initially, c__3chke will call this routine with
+ * global variable link_xerbla=1, and F77_xerbla will set link_xerbla=0.
+@@ -19,11 +21,13 @@
+ */
+ if (link_xerbla) return;
+
++ for(i=11; i >= 9; i--) if (rout[i] == ' ') ((char *)rout)[i] = '\0';
+ if (cblas_rout != NULL && strcmp(cblas_rout, rout) != 0){
+ printf("***** XERBLA WAS CALLED WITH SRNAME = <%s> INSTEAD OF <%s> *******\n", rout, cblas_rout);
+ cblas_ok = FALSE;
+ }
+
++#if 0
+ if (RowMajorStrg)
+ {
+ /* To properly check leading dimension problems in cblas__gemm, we
+@@ -35,47 +39,48 @@
+ */
+ if (strstr(rout,"gemm") != 0)
+ {
+- if (info == 5 ) info = 4;
+- else if (info == 4 ) info = 5;
+- else if (info == 11) info = 9;
+- else if (info == 9 ) info = 11;
++ if (cblas_info == 5 ) cblas_info = 4;
++ else if (cblas_info == 4 ) cblas_info = 5;
++ else if (cblas_info == 11) cblas_info = 9;
++ else if (cblas_info == 9 ) cblas_info = 11;
+ }
+ else if (strstr(rout,"symm") != 0 || strstr(rout,"hemm") != 0)
+ {
+- if (info == 5 ) info = 4;
+- else if (info == 4 ) info = 5;
++ if (cblas_info == 5 ) cblas_info = 4;
++ else if (cblas_info == 4 ) cblas_info = 5;
+ }
+ else if (strstr(rout,"trmm") != 0 || strstr(rout,"trsm") != 0)
+ {
+- if (info == 7 ) info = 6;
+- else if (info == 6 ) info = 7;
++ if (cblas_info == 7 ) cblas_info = 6;
++ else if (cblas_info == 6 ) cblas_info = 7;
+ }
+ else if (strstr(rout,"gemv") != 0)
+ {
+- if (info == 4) info = 3;
+- else if (info == 3) info = 4;
++ if (cblas_info == 4) cblas_info = 3;
++ else if (cblas_info == 3) cblas_info = 4;
+ }
+ else if (strstr(rout,"gbmv") != 0)
+ {
+- if (info == 4) info = 3;
+- else if (info == 3) info = 4;
+- else if (info == 6) info = 5;
+- else if (info == 5) info = 6;
++ if (cblas_info == 4) cblas_info = 3;
++ else if (cblas_info == 3) cblas_info = 4;
++ else if (cblas_info == 6) cblas_info = 5;
++ else if (cblas_info == 5) cblas_info = 6;
+ }
+ else if (strstr(rout,"ger") != 0)
+ {
+- if (info == 3) info = 2;
+- else if (info == 2) info = 3;
+- else if (info == 8) info = 6;
+- else if (info == 6) info = 8;
++ if (cblas_info == 3) cblas_info = 2;
++ else if (cblas_info == 2) cblas_info = 3;
++ else if (cblas_info == 8) cblas_info = 6;
++ else if (cblas_info == 6) cblas_info = 8;
+ }
+ else if ( ( strstr(rout,"her2") != 0 || strstr(rout,"hpr2") != 0 )
+ && strstr(rout,"her2k") == 0 )
+ {
+- if (info == 8) info = 6;
+- else if (info == 6) info = 8;
++ if (cblas_info == 8) cblas_info = 6;
++ else if (cblas_info == 6) cblas_info = 8;
+ }
+ }
++#endif
+
+ if (info != cblas_info){
+ printf("***** XERBLA WAS CALLED WITH INFO = %d INSTEAD OF %d in %s *******\n",info, cblas_info, rout);
+diff -ruN blas-1.1/cblas/testing/c_zblas1.c refblas3-1.2/cblas/testing/c_zblas1.c
+--- blas-1.1/cblas/testing/c_zblas1.c Fri Feb 26 00:06:07 1999
++++ refblas3-1.2/cblas/testing/c_zblas1.c Mon Jun 9 15:57:24 2003
+@@ -59,7 +59,8 @@
+
+ int F77_izamax(const int *N, const void *X, const int *incX)
+ {
+- return cblas_izamax(*N, X, *incX);
++ if (*N < 1 || *incX < 1) return(0);
++ return cblas_izamax(*N, X, *incX)+1;
+ }
+
+ double F77_dznrm2(const int *N, const void *X, const int *incX)
+diff -ruN blas-1.1/src/cgbmv.f refblas3-1.2/src/cgbmv.f
+--- blas-1.1/src/cgbmv.f Thu Jul 2 17:17:19 1998
++++ refblas3-1.2/src/cgbmv.f Wed Jun 11 14:17:40 2003
+@@ -142,7 +142,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX, MIN
+ * ..
+@@ -171,7 +171,7 @@
+ INFO = 13
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CGBMV ', INFO )
++ CALL XERBLI( 'CGBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/cgemm.f refblas3-1.2/src/cgemm.f
+--- blas-1.1/src/cgemm.f Thu Jul 2 17:17:19 1998
++++ refblas3-1.2/src/cgemm.f Wed Jun 11 14:17:44 2003
+@@ -132,7 +132,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX
+ * .. Local Scalars ..
+@@ -195,7 +195,7 @@
+ INFO = 13
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CGEMM ', INFO )
++ CALL XERBLI( 'CGEMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/cgemv.f refblas3-1.2/src/cgemv.f
+--- blas-1.1/src/cgemv.f Thu Jul 2 17:17:19 1998
++++ refblas3-1.2/src/cgemv.f Wed Jun 11 14:17:46 2003
+@@ -114,7 +114,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX
+ * ..
+@@ -139,7 +139,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CGEMV ', INFO )
++ CALL XERBLI( 'CGEMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/cgerc.f refblas3-1.2/src/cgerc.f
+--- blas-1.1/src/cgerc.f Thu Jul 2 17:17:20 1998
++++ refblas3-1.2/src/cgerc.f Wed Jun 11 14:17:47 2003
+@@ -83,7 +83,7 @@
+ COMPLEX TEMP
+ INTEGER I, INFO, IX, J, JY, KX
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX
+ * ..
+@@ -104,7 +104,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CGERC ', INFO )
++ CALL XERBLI( 'CGERC ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/cgeru.f refblas3-1.2/src/cgeru.f
+--- blas-1.1/src/cgeru.f Thu Jul 2 17:17:20 1998
++++ refblas3-1.2/src/cgeru.f Wed Jun 11 14:17:49 2003
+@@ -83,7 +83,7 @@
+ COMPLEX TEMP
+ INTEGER I, INFO, IX, J, JY, KX
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -104,7 +104,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CGERU ', INFO )
++ CALL XERBLI( 'CGERU ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/chbmv.f refblas3-1.2/src/chbmv.f
+--- blas-1.1/src/chbmv.f Thu Jul 2 17:17:20 1998
++++ refblas3-1.2/src/chbmv.f Wed Jun 11 14:17:52 2003
+@@ -142,7 +142,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX, MIN, REAL
+ * ..
+@@ -166,7 +166,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CHBMV ', INFO )
++ CALL XERBLI( 'CHBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/chemm.f refblas3-1.2/src/chemm.f
+--- blas-1.1/src/chemm.f Thu Jul 2 17:17:20 1998
++++ refblas3-1.2/src/chemm.f Wed Jun 11 14:17:53 2003
+@@ -138,7 +138,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX, REAL
+ * .. Local Scalars ..
+@@ -183,7 +183,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CHEMM ', INFO )
++ CALL XERBLI( 'CHEMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/chemv.f refblas3-1.2/src/chemv.f
+--- blas-1.1/src/chemv.f Thu Jul 2 17:17:21 1998
++++ refblas3-1.2/src/chemv.f Wed Jun 11 14:17:53 2003
+@@ -111,7 +111,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX, REAL
+ * ..
+@@ -133,7 +133,7 @@
+ INFO = 10
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CHEMV ', INFO )
++ CALL XERBLI( 'CHEMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/cher.f refblas3-1.2/src/cher.f
+--- blas-1.1/src/cher.f Thu Jul 2 17:17:21 1998
++++ refblas3-1.2/src/cher.f Wed Jun 11 14:17:53 2003
+@@ -96,7 +96,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX, REAL
+ * ..
+@@ -116,7 +116,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CHER ', INFO )
++ CALL XERBLI( 'CHER ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/cher2.f refblas3-1.2/src/cher2.f
+--- blas-1.1/src/cher2.f Thu Jul 2 17:17:21 1998
++++ refblas3-1.2/src/cher2.f Wed Jun 11 14:17:54 2003
+@@ -107,7 +107,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX, REAL
+ * ..
+@@ -129,7 +129,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CHER2 ', INFO )
++ CALL XERBLI( 'CHER2 ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/cher2k.f refblas3-1.2/src/cher2k.f
+--- blas-1.1/src/cher2k.f Thu Jul 2 17:17:22 1998
++++ refblas3-1.2/src/cher2k.f Wed Jun 11 14:17:54 2003
+@@ -144,7 +144,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX, REAL
+ * .. Local Scalars ..
+@@ -187,7 +187,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CHER2K', INFO )
++ CALL XERBLI( 'CHER2K', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/cherk.f refblas3-1.2/src/cherk.f
+--- blas-1.1/src/cherk.f Thu Jul 2 17:17:22 1998
++++ refblas3-1.2/src/cherk.f Wed Jun 11 14:17:54 2003
+@@ -124,7 +124,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CMPLX, CONJG, MAX, REAL
+ * .. Local Scalars ..
+@@ -164,7 +164,7 @@
+ INFO = 10
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CHERK ', INFO )
++ CALL XERBLI( 'CHERK ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/chpmv.f refblas3-1.2/src/chpmv.f
+--- blas-1.1/src/chpmv.f Thu Jul 2 17:17:22 1998
++++ refblas3-1.2/src/chpmv.f Wed Jun 11 14:17:55 2003
+@@ -107,7 +107,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, REAL
+ * ..
+@@ -127,7 +127,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CHPMV ', INFO )
++ CALL XERBLI( 'CHPMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/chpr.f refblas3-1.2/src/chpr.f
+--- blas-1.1/src/chpr.f Thu Jul 2 17:17:22 1998
++++ refblas3-1.2/src/chpr.f Wed Jun 11 14:17:55 2003
+@@ -93,7 +93,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, REAL
+ * ..
+@@ -111,7 +111,7 @@
+ INFO = 5
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CHPR ', INFO )
++ CALL XERBLI( 'CHPR ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/chpr2.f refblas3-1.2/src/chpr2.f
+--- blas-1.1/src/chpr2.f Thu Jul 2 17:17:23 1998
++++ refblas3-1.2/src/chpr2.f Wed Jun 11 14:17:55 2003
+@@ -104,7 +104,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, REAL
+ * ..
+@@ -124,7 +124,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CHPR2 ', INFO )
++ CALL XERBLI( 'CHPR2 ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/csymm.f refblas3-1.2/src/csymm.f
+--- blas-1.1/src/csymm.f Thu Jul 2 17:17:24 1998
++++ refblas3-1.2/src/csymm.f Wed Jun 11 14:17:56 2003
+@@ -136,7 +136,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -181,7 +181,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CSYMM ', INFO )
++ CALL XERBLI( 'CSYMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/csyr2k.f refblas3-1.2/src/csyr2k.f
+--- blas-1.1/src/csyr2k.f Thu Jul 2 17:17:24 1998
++++ refblas3-1.2/src/csyr2k.f Wed Jun 11 14:17:56 2003
+@@ -135,7 +135,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -178,7 +178,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CSYR2K', INFO )
++ CALL XERBLI( 'CSYR2K', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/csyrk.f refblas3-1.2/src/csyrk.f
+--- blas-1.1/src/csyrk.f Thu Jul 2 17:17:25 1998
++++ refblas3-1.2/src/csyrk.f Wed Jun 11 14:17:56 2003
+@@ -118,7 +118,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -159,7 +159,7 @@
+ INFO = 10
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CSYRK ', INFO )
++ CALL XERBLI( 'CSYRK ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ctbmv.f refblas3-1.2/src/ctbmv.f
+--- blas-1.1/src/ctbmv.f Thu Jul 2 17:17:25 1998
++++ refblas3-1.2/src/ctbmv.f Wed Jun 11 14:17:56 2003
+@@ -145,7 +145,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX, MIN
+ * ..
+@@ -174,7 +174,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CTBMV ', INFO )
++ CALL XERBLI( 'CTBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ctbsv.f refblas3-1.2/src/ctbsv.f
+--- blas-1.1/src/ctbsv.f Thu Jul 2 17:17:25 1998
++++ refblas3-1.2/src/ctbsv.f Wed Jun 11 14:17:57 2003
+@@ -149,7 +149,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX, MIN
+ * ..
+@@ -178,7 +178,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CTBSV ', INFO )
++ CALL XERBLI( 'CTBSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ctpmv.f refblas3-1.2/src/ctpmv.f
+--- blas-1.1/src/ctpmv.f Thu Jul 2 17:17:25 1998
++++ refblas3-1.2/src/ctpmv.f Wed Jun 11 14:17:57 2003
+@@ -105,7 +105,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG
+ * ..
+@@ -130,7 +130,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CTPMV ', INFO )
++ CALL XERBLI( 'CTPMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ctpsv.f refblas3-1.2/src/ctpsv.f
+--- blas-1.1/src/ctpsv.f Thu Jul 2 17:17:26 1998
++++ refblas3-1.2/src/ctpsv.f Wed Jun 11 14:17:57 2003
+@@ -108,7 +108,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG
+ * ..
+@@ -133,7 +133,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CTPSV ', INFO )
++ CALL XERBLI( 'CTPSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ctrmm.f refblas3-1.2/src/ctrmm.f
+--- blas-1.1/src/ctrmm.f Thu Jul 2 17:17:26 1998
++++ refblas3-1.2/src/ctrmm.f Wed Jun 11 14:17:57 2003
+@@ -128,7 +128,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX
+ * .. Local Scalars ..
+@@ -179,7 +179,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CTRMM ', INFO )
++ CALL XERBLI( 'CTRMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ctrmv.f refblas3-1.2/src/ctrmv.f
+--- blas-1.1/src/ctrmv.f Thu Jul 2 17:17:26 1998
++++ refblas3-1.2/src/ctrmv.f Wed Jun 11 14:17:58 2003
+@@ -108,7 +108,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX
+ * ..
+@@ -135,7 +135,7 @@
+ INFO = 8
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CTRMV ', INFO )
++ CALL XERBLI( 'CTRMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ctrsm.f refblas3-1.2/src/ctrsm.f
+--- blas-1.1/src/ctrsm.f Thu Jul 2 17:17:27 1998
++++ refblas3-1.2/src/ctrsm.f Wed Jun 11 14:17:58 2003
+@@ -130,7 +130,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX
+ * .. Local Scalars ..
+@@ -181,7 +181,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CTRSM ', INFO )
++ CALL XERBLI( 'CTRSM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ctrsv.f refblas3-1.2/src/ctrsv.f
+--- blas-1.1/src/ctrsv.f Thu Jul 2 17:17:27 1998
++++ refblas3-1.2/src/ctrsv.f Wed Jun 11 14:17:58 2003
+@@ -111,7 +111,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC CONJG, MAX
+ * ..
+@@ -138,7 +138,7 @@
+ INFO = 8
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'CTRSV ', INFO )
++ CALL XERBLI( 'CTRSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dgbmv.f refblas3-1.2/src/dgbmv.f
+--- blas-1.1/src/dgbmv.f Thu Jul 2 17:17:28 1998
++++ refblas3-1.2/src/dgbmv.f Wed Jun 11 14:17:59 2003
+@@ -135,7 +135,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX, MIN
+ * ..
+@@ -164,7 +164,7 @@
+ INFO = 13
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DGBMV ', INFO )
++ CALL XERBLI( 'DGBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dgemm.f refblas3-1.2/src/dgemm.f
+--- blas-1.1/src/dgemm.f Thu Jul 2 17:17:29 1998
++++ refblas3-1.2/src/dgemm.f Wed Jun 11 14:17:59 2003
+@@ -132,7 +132,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -189,7 +189,7 @@
+ INFO = 13
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DGEMM ', INFO )
++ CALL XERBLI( 'DGEMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dgemv.f refblas3-1.2/src/dgemv.f
+--- blas-1.1/src/dgemv.f Thu Jul 2 17:17:29 1998
++++ refblas3-1.2/src/dgemv.f Wed Jun 11 14:17:59 2003
+@@ -109,7 +109,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -134,7 +134,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DGEMV ', INFO )
++ CALL XERBLI( 'DGEMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dger.f refblas3-1.2/src/dger.f
+--- blas-1.1/src/dger.f Thu Jul 2 17:17:29 1998
++++ refblas3-1.2/src/dger.f Wed Jun 11 14:18:00 2003
+@@ -83,7 +83,7 @@
+ DOUBLE PRECISION TEMP
+ INTEGER I, INFO, IX, J, JY, KX
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -104,7 +104,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DGER ', INFO )
++ CALL XERBLI( 'DGER ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dsbmv.f refblas3-1.2/src/dsbmv.f
+--- blas-1.1/src/dsbmv.f Thu Jul 2 17:17:30 1998
++++ refblas3-1.2/src/dsbmv.f Wed Jun 11 14:18:00 2003
+@@ -138,7 +138,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX, MIN
+ * ..
+@@ -162,7 +162,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DSBMV ', INFO )
++ CALL XERBLI( 'DSBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dspmv.f refblas3-1.2/src/dspmv.f
+--- blas-1.1/src/dspmv.f Thu Jul 2 17:17:31 1998
++++ refblas3-1.2/src/dspmv.f Wed Jun 11 14:18:01 2003
+@@ -103,7 +103,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Executable Statements ..
+ *
+@@ -121,7 +121,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DSPMV ', INFO )
++ CALL XERBLI( 'DSPMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dspr.f refblas3-1.2/src/dspr.f
+--- blas-1.1/src/dspr.f Thu Jul 2 17:17:31 1998
++++ refblas3-1.2/src/dspr.f Wed Jun 11 14:18:01 2003
+@@ -90,7 +90,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Executable Statements ..
+ *
+@@ -106,7 +106,7 @@
+ INFO = 5
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DSPR ', INFO )
++ CALL XERBLI( 'DSPR ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dspr2.f refblas3-1.2/src/dspr2.f
+--- blas-1.1/src/dspr2.f Thu Jul 2 17:17:32 1998
++++ refblas3-1.2/src/dspr2.f Wed Jun 11 14:18:01 2003
+@@ -101,7 +101,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Executable Statements ..
+ *
+@@ -119,7 +119,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DSPR2 ', INFO )
++ CALL XERBLI( 'DSPR2 ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dsymm.f refblas3-1.2/src/dsymm.f
+--- blas-1.1/src/dsymm.f Thu Jul 2 17:17:32 1998
++++ refblas3-1.2/src/dsymm.f Wed Jun 11 14:18:02 2003
+@@ -136,7 +136,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -179,7 +179,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DSYMM ', INFO )
++ CALL XERBLI( 'DSYMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dsymv.f refblas3-1.2/src/dsymv.f
+--- blas-1.1/src/dsymv.f Thu Jul 2 17:17:32 1998
++++ refblas3-1.2/src/dsymv.f Wed Jun 11 14:18:02 2003
+@@ -107,7 +107,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -129,7 +129,7 @@
+ INFO = 10
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DSYMV ', INFO )
++ CALL XERBLI( 'DSYMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dsyr.f refblas3-1.2/src/dsyr.f
+--- blas-1.1/src/dsyr.f Thu Jul 2 17:17:33 1998
++++ refblas3-1.2/src/dsyr.f Wed Jun 11 14:18:02 2003
+@@ -93,7 +93,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -113,7 +113,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DSYR ', INFO )
++ CALL XERBLI( 'DSYR ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dsyr2.f refblas3-1.2/src/dsyr2.f
+--- blas-1.1/src/dsyr2.f Thu Jul 2 17:17:33 1998
++++ refblas3-1.2/src/dsyr2.f Wed Jun 11 14:18:03 2003
+@@ -104,7 +104,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -126,7 +126,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DSYR2 ', INFO )
++ CALL XERBLI( 'DSYR2 ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dsyr2k.f refblas3-1.2/src/dsyr2k.f
+--- blas-1.1/src/dsyr2k.f Thu Jul 2 17:17:33 1998
++++ refblas3-1.2/src/dsyr2k.f Wed Jun 11 14:18:03 2003
+@@ -139,7 +139,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -181,7 +181,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DSYR2K', INFO )
++ CALL XERBLI( 'DSYR2K', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dsyrk.f refblas3-1.2/src/dsyrk.f
+--- blas-1.1/src/dsyrk.f Thu Jul 2 17:17:33 1998
++++ refblas3-1.2/src/dsyrk.f Wed Jun 11 14:18:03 2003
+@@ -120,7 +120,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -160,7 +160,7 @@
+ INFO = 10
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DSYRK ', INFO )
++ CALL XERBLI( 'DSYRK ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dtbmv.f refblas3-1.2/src/dtbmv.f
+--- blas-1.1/src/dtbmv.f Thu Jul 2 17:17:34 1998
++++ refblas3-1.2/src/dtbmv.f Wed Jun 11 14:18:04 2003
+@@ -145,7 +145,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX, MIN
+ * ..
+@@ -174,7 +174,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DTBMV ', INFO )
++ CALL XERBLI( 'DTBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dtbsv.f refblas3-1.2/src/dtbsv.f
+--- blas-1.1/src/dtbsv.f Thu Jul 2 17:17:34 1998
++++ refblas3-1.2/src/dtbsv.f Wed Jun 11 14:18:04 2003
+@@ -149,7 +149,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX, MIN
+ * ..
+@@ -178,7 +178,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DTBSV ', INFO )
++ CALL XERBLI( 'DTBSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dtpmv.f refblas3-1.2/src/dtpmv.f
+--- blas-1.1/src/dtpmv.f Thu Jul 2 17:17:34 1998
++++ refblas3-1.2/src/dtpmv.f Wed Jun 11 14:18:04 2003
+@@ -105,7 +105,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Executable Statements ..
+ *
+@@ -128,7 +128,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DTPMV ', INFO )
++ CALL XERBLI( 'DTPMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dtpsv.f refblas3-1.2/src/dtpsv.f
+--- blas-1.1/src/dtpsv.f Thu Jul 2 17:17:35 1998
++++ refblas3-1.2/src/dtpsv.f Wed Jun 11 14:18:05 2003
+@@ -108,7 +108,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Executable Statements ..
+ *
+@@ -131,7 +131,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DTPSV ', INFO )
++ CALL XERBLI( 'DTPSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dtrmm.f refblas3-1.2/src/dtrmm.f
+--- blas-1.1/src/dtrmm.f Thu Jul 2 17:17:35 1998
++++ refblas3-1.2/src/dtrmm.f Wed Jun 11 14:18:05 2003
+@@ -128,7 +128,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -176,7 +176,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DTRMM ', INFO )
++ CALL XERBLI( 'DTRMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dtrmv.f refblas3-1.2/src/dtrmv.f
+--- blas-1.1/src/dtrmv.f Thu Jul 2 17:17:35 1998
++++ refblas3-1.2/src/dtrmv.f Wed Jun 11 14:18:06 2003
+@@ -108,7 +108,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -135,7 +135,7 @@
+ INFO = 8
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DTRMV ', INFO )
++ CALL XERBLI( 'DTRMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dtrsm.f refblas3-1.2/src/dtrsm.f
+--- blas-1.1/src/dtrsm.f Thu Jul 2 17:17:35 1998
++++ refblas3-1.2/src/dtrsm.f Wed Jun 11 14:18:06 2003
+@@ -131,7 +131,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -179,7 +179,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DTRSM ', INFO )
++ CALL XERBLI( 'DTRSM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/dtrsv.f refblas3-1.2/src/dtrsv.f
+--- blas-1.1/src/dtrsv.f Thu Jul 2 17:17:36 1998
++++ refblas3-1.2/src/dtrsv.f Wed Jun 11 14:18:06 2003
+@@ -111,7 +111,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -138,7 +138,7 @@
+ INFO = 8
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'DTRSV ', INFO )
++ CALL XERBLI( 'DTRSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/sgbmv.f refblas3-1.2/src/sgbmv.f
+--- blas-1.1/src/sgbmv.f Thu Jul 2 17:17:39 1998
++++ refblas3-1.2/src/sgbmv.f Wed Jun 11 14:18:07 2003
+@@ -135,7 +135,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX, MIN
+ * ..
+@@ -164,7 +164,7 @@
+ INFO = 13
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SGBMV ', INFO )
++ CALL XERBLI( 'SGBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/sgemm.f refblas3-1.2/src/sgemm.f
+--- blas-1.1/src/sgemm.f Thu Jul 2 17:17:39 1998
++++ refblas3-1.2/src/sgemm.f Wed Jun 11 14:18:07 2003
+@@ -132,7 +132,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -189,7 +189,7 @@
+ INFO = 13
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SGEMM ', INFO )
++ CALL XERBLI( 'SGEMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/sgemv.f refblas3-1.2/src/sgemv.f
+--- blas-1.1/src/sgemv.f Thu Jul 2 17:17:40 1998
++++ refblas3-1.2/src/sgemv.f Wed Jun 11 14:18:07 2003
+@@ -109,7 +109,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -134,7 +134,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SGEMV ', INFO )
++ CALL XERBLI( 'SGEMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/sger.f refblas3-1.2/src/sger.f
+--- blas-1.1/src/sger.f Thu Jul 2 17:17:40 1998
++++ refblas3-1.2/src/sger.f Wed Jun 11 14:18:08 2003
+@@ -83,7 +83,7 @@
+ REAL TEMP
+ INTEGER I, INFO, IX, J, JY, KX
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -104,7 +104,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SGER ', INFO )
++ CALL XERBLI( 'SGER ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ssbmv.f refblas3-1.2/src/ssbmv.f
+--- blas-1.1/src/ssbmv.f Thu Jul 2 17:17:41 1998
++++ refblas3-1.2/src/ssbmv.f Wed Jun 11 14:18:08 2003
+@@ -138,7 +138,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX, MIN
+ * ..
+@@ -162,7 +162,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SSBMV ', INFO )
++ CALL XERBLI( 'SSBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/sspmv.f refblas3-1.2/src/sspmv.f
+--- blas-1.1/src/sspmv.f Thu Jul 2 17:17:42 1998
++++ refblas3-1.2/src/sspmv.f Wed Jun 11 14:18:09 2003
+@@ -103,7 +103,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Executable Statements ..
+ *
+@@ -121,7 +121,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SSPMV ', INFO )
++ CALL XERBLI( 'SSPMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/sspr.f refblas3-1.2/src/sspr.f
+--- blas-1.1/src/sspr.f Thu Jul 2 17:17:42 1998
++++ refblas3-1.2/src/sspr.f Wed Jun 11 14:18:09 2003
+@@ -90,7 +90,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Executable Statements ..
+ *
+@@ -106,7 +106,7 @@
+ INFO = 5
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SSPR ', INFO )
++ CALL XERBLI( 'SSPR ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/sspr2.f refblas3-1.2/src/sspr2.f
+--- blas-1.1/src/sspr2.f Thu Jul 2 17:17:42 1998
++++ refblas3-1.2/src/sspr2.f Wed Jun 11 14:18:13 2003
+@@ -101,7 +101,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Executable Statements ..
+ *
+@@ -119,7 +119,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SSPR2 ', INFO )
++ CALL XERBLI( 'SSPR2 ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ssymm.f refblas3-1.2/src/ssymm.f
+--- blas-1.1/src/ssymm.f Thu Jul 2 17:17:43 1998
++++ refblas3-1.2/src/ssymm.f Wed Jun 11 14:18:14 2003
+@@ -136,7 +136,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -179,7 +179,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SSYMM ', INFO )
++ CALL XERBLI( 'SSYMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ssymv.f refblas3-1.2/src/ssymv.f
+--- blas-1.1/src/ssymv.f Thu Jul 2 17:17:43 1998
++++ refblas3-1.2/src/ssymv.f Wed Jun 11 14:18:14 2003
+@@ -107,7 +107,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -129,7 +129,7 @@
+ INFO = 10
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SSYMV ', INFO )
++ CALL XERBLI( 'SSYMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ssyr.f refblas3-1.2/src/ssyr.f
+--- blas-1.1/src/ssyr.f Thu Jul 2 17:17:43 1998
++++ refblas3-1.2/src/ssyr.f Wed Jun 11 14:18:14 2003
+@@ -93,7 +93,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -113,7 +113,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SSYR ', INFO )
++ CALL XERBLI( 'SSYR ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ssyr2.f refblas3-1.2/src/ssyr2.f
+--- blas-1.1/src/ssyr2.f Thu Jul 2 17:17:43 1998
++++ refblas3-1.2/src/ssyr2.f Wed Jun 11 14:18:15 2003
+@@ -104,7 +104,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -126,7 +126,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SSYR2 ', INFO )
++ CALL XERBLI( 'SSYR2 ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ssyr2k.f refblas3-1.2/src/ssyr2k.f
+--- blas-1.1/src/ssyr2k.f Thu Jul 2 17:17:44 1998
++++ refblas3-1.2/src/ssyr2k.f Wed Jun 11 14:18:15 2003
+@@ -139,7 +139,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -181,7 +181,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SSYR2K', INFO )
++ CALL XERBLI( 'SSYR2K', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ssyrk.f refblas3-1.2/src/ssyrk.f
+--- blas-1.1/src/ssyrk.f Thu Jul 2 17:17:44 1998
++++ refblas3-1.2/src/ssyrk.f Wed Jun 11 14:18:15 2003
+@@ -120,7 +120,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -160,7 +160,7 @@
+ INFO = 10
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'SSYRK ', INFO )
++ CALL XERBLI( 'SSYRK ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/stbmv.f refblas3-1.2/src/stbmv.f
+--- blas-1.1/src/stbmv.f Thu Jul 2 17:17:44 1998
++++ refblas3-1.2/src/stbmv.f Wed Jun 11 14:18:16 2003
+@@ -145,7 +145,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX, MIN
+ * ..
+@@ -174,7 +174,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'STBMV ', INFO )
++ CALL XERBLI( 'STBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/stbsv.f refblas3-1.2/src/stbsv.f
+--- blas-1.1/src/stbsv.f Thu Jul 2 17:17:44 1998
++++ refblas3-1.2/src/stbsv.f Wed Jun 11 14:18:16 2003
+@@ -149,7 +149,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX, MIN
+ * ..
+@@ -178,7 +178,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'STBSV ', INFO )
++ CALL XERBLI( 'STBSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/stpmv.f refblas3-1.2/src/stpmv.f
+--- blas-1.1/src/stpmv.f Thu Jul 2 17:17:45 1998
++++ refblas3-1.2/src/stpmv.f Wed Jun 11 14:18:17 2003
+@@ -105,7 +105,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Executable Statements ..
+ *
+@@ -128,7 +128,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'STPMV ', INFO )
++ CALL XERBLI( 'STPMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/stpsv.f refblas3-1.2/src/stpsv.f
+--- blas-1.1/src/stpsv.f Thu Jul 2 17:17:45 1998
++++ refblas3-1.2/src/stpsv.f Wed Jun 11 14:18:17 2003
+@@ -108,7 +108,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Executable Statements ..
+ *
+@@ -131,7 +131,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'STPSV ', INFO )
++ CALL XERBLI( 'STPSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/strmm.f refblas3-1.2/src/strmm.f
+--- blas-1.1/src/strmm.f Thu Jul 2 17:17:45 1998
++++ refblas3-1.2/src/strmm.f Wed Jun 11 14:18:17 2003
+@@ -128,7 +128,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -176,7 +176,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'STRMM ', INFO )
++ CALL XERBLI( 'STRMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/strmv.f refblas3-1.2/src/strmv.f
+--- blas-1.1/src/strmv.f Thu Jul 2 17:17:46 1998
++++ refblas3-1.2/src/strmv.f Wed Jun 11 14:18:18 2003
+@@ -108,7 +108,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -135,7 +135,7 @@
+ INFO = 8
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'STRMV ', INFO )
++ CALL XERBLI( 'STRMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/strsm.f refblas3-1.2/src/strsm.f
+--- blas-1.1/src/strsm.f Thu Jul 2 17:17:46 1998
++++ refblas3-1.2/src/strsm.f Wed Jun 11 14:18:18 2003
+@@ -131,7 +131,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -179,7 +179,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'STRSM ', INFO )
++ CALL XERBLI( 'STRSM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/strsv.f refblas3-1.2/src/strsv.f
+--- blas-1.1/src/strsv.f Thu Jul 2 17:17:46 1998
++++ refblas3-1.2/src/strsv.f Wed Jun 11 14:18:18 2003
+@@ -111,7 +111,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -138,7 +138,7 @@
+ INFO = 8
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'STRSV ', INFO )
++ CALL XERBLI( 'STRSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/xerbla.f refblas3-1.2/src/xerbla.f
+--- blas-1.1/src/xerbla.f Thu Jul 2 17:17:46 1998
++++ refblas3-1.2/src/xerbla.f Wed Jun 11 14:18:19 2003
+@@ -1,4 +1,4 @@
+- SUBROUTINE XERBLA( SRNAME, INFO )
++ SUBROUTINE XERBLI( SRNAME, INFO )
+ *
+ * -- LAPACK auxiliary routine (preliminary version) --
+ * Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+@@ -13,7 +13,7 @@
+ * Purpose
+ * =======
+ *
+-* XERBLA is an error handler for the LAPACK routines.
++* XERBLI is an error handler for the LAPACK routines.
+ * It is called by an LAPACK routine if an input parameter has an
+ * invalid value. A message is printed and execution stops.
+ *
+@@ -24,7 +24,7 @@
+ * =========
+ *
+ * SRNAME (input) CHARACTER*6
+-* The name of the routine which called XERBLA.
++* The name of the routine which called XERBLI.
+ *
+ * INFO (input) INTEGER
+ * The position of the invalid parameter in the parameter list
+@@ -38,6 +38,6 @@
+ 9999 FORMAT( ' ** On entry to ', A6, ' parameter number ', I2, ' had ',
+ $ 'an illegal value' )
+ *
+-* End of XERBLA
++* End of XERBLI
+ *
+ END
+diff -ruN blas-1.1/src/zgbmv.f refblas3-1.2/src/zgbmv.f
+--- blas-1.1/src/zgbmv.f Thu Jul 2 17:17:48 1998
++++ refblas3-1.2/src/zgbmv.f Wed Jun 11 14:18:19 2003
+@@ -142,7 +142,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX, MIN
+ * ..
+@@ -171,7 +171,7 @@
+ INFO = 13
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZGBMV ', INFO )
++ CALL XERBLI( 'ZGBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zgemm.f refblas3-1.2/src/zgemm.f
+--- blas-1.1/src/zgemm.f Thu Jul 2 17:17:48 1998
++++ refblas3-1.2/src/zgemm.f Wed Jun 11 14:18:20 2003
+@@ -132,7 +132,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX
+ * .. Local Scalars ..
+@@ -195,7 +195,7 @@
+ INFO = 13
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZGEMM ', INFO )
++ CALL XERBLI( 'ZGEMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zgemv.f refblas3-1.2/src/zgemv.f
+--- blas-1.1/src/zgemv.f Thu Jul 2 17:17:48 1998
++++ refblas3-1.2/src/zgemv.f Wed Jun 11 14:18:20 2003
+@@ -114,7 +114,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX
+ * ..
+@@ -139,7 +139,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZGEMV ', INFO )
++ CALL XERBLI( 'ZGEMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zgerc.f refblas3-1.2/src/zgerc.f
+--- blas-1.1/src/zgerc.f Thu Jul 2 17:17:49 1998
++++ refblas3-1.2/src/zgerc.f Wed Jun 11 14:18:20 2003
+@@ -83,7 +83,7 @@
+ COMPLEX*16 TEMP
+ INTEGER I, INFO, IX, J, JY, KX
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX
+ * ..
+@@ -104,7 +104,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZGERC ', INFO )
++ CALL XERBLI( 'ZGERC ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zgeru.f refblas3-1.2/src/zgeru.f
+--- blas-1.1/src/zgeru.f Thu Jul 2 17:17:49 1998
++++ refblas3-1.2/src/zgeru.f Wed Jun 11 14:18:21 2003
+@@ -83,7 +83,7 @@
+ COMPLEX*16 TEMP
+ INTEGER I, INFO, IX, J, JY, KX
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * ..
+@@ -104,7 +104,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZGERU ', INFO )
++ CALL XERBLI( 'ZGERU ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zhbmv.f refblas3-1.2/src/zhbmv.f
+--- blas-1.1/src/zhbmv.f Thu Jul 2 17:17:49 1998
++++ refblas3-1.2/src/zhbmv.f Wed Jun 11 14:18:21 2003
+@@ -142,7 +142,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX, MIN, DBLE
+ * ..
+@@ -166,7 +166,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZHBMV ', INFO )
++ CALL XERBLI( 'ZHBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zhemm.f refblas3-1.2/src/zhemm.f
+--- blas-1.1/src/zhemm.f Thu Jul 2 17:17:49 1998
++++ refblas3-1.2/src/zhemm.f Wed Jun 11 14:18:21 2003
+@@ -138,7 +138,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX, DBLE
+ * .. Local Scalars ..
+@@ -183,7 +183,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZHEMM ', INFO )
++ CALL XERBLI( 'ZHEMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zhemv.f refblas3-1.2/src/zhemv.f
+--- blas-1.1/src/zhemv.f Thu Jul 2 17:17:50 1998
++++ refblas3-1.2/src/zhemv.f Wed Jun 11 14:18:22 2003
+@@ -111,7 +111,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX, DBLE
+ * ..
+@@ -133,7 +133,7 @@
+ INFO = 10
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZHEMV ', INFO )
++ CALL XERBLI( 'ZHEMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zher.f refblas3-1.2/src/zher.f
+--- blas-1.1/src/zher.f Thu Jul 2 17:17:50 1998
++++ refblas3-1.2/src/zher.f Wed Jun 11 14:18:22 2003
+@@ -96,7 +96,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX, DBLE
+ * ..
+@@ -116,7 +116,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZHER ', INFO )
++ CALL XERBLI( 'ZHER ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zher2.f refblas3-1.2/src/zher2.f
+--- blas-1.1/src/zher2.f Thu Jul 2 17:17:50 1998
++++ refblas3-1.2/src/zher2.f Wed Jun 11 14:18:23 2003
+@@ -107,7 +107,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX, DBLE
+ * ..
+@@ -129,7 +129,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZHER2 ', INFO )
++ CALL XERBLI( 'ZHER2 ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zher2k.f refblas3-1.2/src/zher2k.f
+--- blas-1.1/src/zher2k.f Thu Jul 2 17:17:51 1998
++++ refblas3-1.2/src/zher2k.f Wed Jun 11 14:18:23 2003
+@@ -146,7 +146,7 @@
+ EXTERNAL LSAME
+ * ..
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Intrinsic Functions ..
+ INTRINSIC DBLE, DCONJG, MAX
+@@ -191,7 +191,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 ) THEN
+- CALL XERBLA( 'ZHER2K', INFO )
++ CALL XERBLI( 'ZHER2K', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zherk.f refblas3-1.2/src/zherk.f
+--- blas-1.1/src/zherk.f Thu Jul 2 17:17:51 1998
++++ refblas3-1.2/src/zherk.f Wed Jun 11 14:18:23 2003
+@@ -125,7 +125,7 @@
+ EXTERNAL LSAME
+ * ..
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * ..
+ * .. Intrinsic Functions ..
+ INTRINSIC DBLE, DCMPLX, DCONJG, MAX
+@@ -167,7 +167,7 @@
+ INFO = 10
+ END IF
+ IF( INFO.NE.0 ) THEN
+- CALL XERBLA( 'ZHERK ', INFO )
++ CALL XERBLI( 'ZHERK ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zhpmv.f refblas3-1.2/src/zhpmv.f
+--- blas-1.1/src/zhpmv.f Thu Jul 2 17:17:51 1998
++++ refblas3-1.2/src/zhpmv.f Wed Jun 11 14:18:24 2003
+@@ -107,7 +107,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, DBLE
+ * ..
+@@ -127,7 +127,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZHPMV ', INFO )
++ CALL XERBLI( 'ZHPMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zhpr.f refblas3-1.2/src/zhpr.f
+--- blas-1.1/src/zhpr.f Thu Jul 2 17:17:51 1998
++++ refblas3-1.2/src/zhpr.f Wed Jun 11 14:18:24 2003
+@@ -93,7 +93,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, DBLE
+ * ..
+@@ -111,7 +111,7 @@
+ INFO = 5
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZHPR ', INFO )
++ CALL XERBLI( 'ZHPR ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zhpr2.f refblas3-1.2/src/zhpr2.f
+--- blas-1.1/src/zhpr2.f Thu Jul 2 17:17:52 1998
++++ refblas3-1.2/src/zhpr2.f Wed Jun 11 14:18:24 2003
+@@ -104,7 +104,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, DBLE
+ * ..
+@@ -124,7 +124,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZHPR2 ', INFO )
++ CALL XERBLI( 'ZHPR2 ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zsymm.f refblas3-1.2/src/zsymm.f
+--- blas-1.1/src/zsymm.f Thu Jul 2 17:17:52 1998
++++ refblas3-1.2/src/zsymm.f Wed Jun 11 14:18:25 2003
+@@ -136,7 +136,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -181,7 +181,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZSYMM ', INFO )
++ CALL XERBLI( 'ZSYMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zsyr2k.f refblas3-1.2/src/zsyr2k.f
+--- blas-1.1/src/zsyr2k.f Thu Jul 2 17:17:53 1998
++++ refblas3-1.2/src/zsyr2k.f Wed Jun 11 14:18:25 2003
+@@ -135,7 +135,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -178,7 +178,7 @@
+ INFO = 12
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZSYR2K', INFO )
++ CALL XERBLI( 'ZSYR2K', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/zsyrk.f refblas3-1.2/src/zsyrk.f
+--- blas-1.1/src/zsyrk.f Thu Jul 2 17:17:53 1998
++++ refblas3-1.2/src/zsyrk.f Wed Jun 11 14:18:26 2003
+@@ -118,7 +118,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX
+ * .. Local Scalars ..
+@@ -159,7 +159,7 @@
+ INFO = 10
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZSYRK ', INFO )
++ CALL XERBLI( 'ZSYRK ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ztbmv.f refblas3-1.2/src/ztbmv.f
+--- blas-1.1/src/ztbmv.f Thu Jul 2 17:17:53 1998
++++ refblas3-1.2/src/ztbmv.f Wed Jun 11 14:18:26 2003
+@@ -145,7 +145,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX, MIN
+ * ..
+@@ -174,7 +174,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZTBMV ', INFO )
++ CALL XERBLI( 'ZTBMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ztbsv.f refblas3-1.2/src/ztbsv.f
+--- blas-1.1/src/ztbsv.f Thu Jul 2 17:17:54 1998
++++ refblas3-1.2/src/ztbsv.f Wed Jun 11 14:18:26 2003
+@@ -149,7 +149,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX, MIN
+ * ..
+@@ -178,7 +178,7 @@
+ INFO = 9
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZTBSV ', INFO )
++ CALL XERBLI( 'ZTBSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ztpmv.f refblas3-1.2/src/ztpmv.f
+--- blas-1.1/src/ztpmv.f Thu Jul 2 17:17:54 1998
++++ refblas3-1.2/src/ztpmv.f Wed Jun 11 14:18:27 2003
+@@ -105,7 +105,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG
+ * ..
+@@ -130,7 +130,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZTPMV ', INFO )
++ CALL XERBLI( 'ZTPMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ztpsv.f refblas3-1.2/src/ztpsv.f
+--- blas-1.1/src/ztpsv.f Thu Jul 2 17:17:54 1998
++++ refblas3-1.2/src/ztpsv.f Wed Jun 11 14:18:27 2003
+@@ -108,7 +108,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG
+ * ..
+@@ -133,7 +133,7 @@
+ INFO = 7
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZTPSV ', INFO )
++ CALL XERBLI( 'ZTPSV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ztrmm.f refblas3-1.2/src/ztrmm.f
+--- blas-1.1/src/ztrmm.f Thu Jul 2 17:17:54 1998
++++ refblas3-1.2/src/ztrmm.f Wed Jun 11 14:18:27 2003
+@@ -128,7 +128,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX
+ * .. Local Scalars ..
+@@ -179,7 +179,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZTRMM ', INFO )
++ CALL XERBLI( 'ZTRMM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ztrmv.f refblas3-1.2/src/ztrmv.f
+--- blas-1.1/src/ztrmv.f Thu Jul 2 17:17:55 1998
++++ refblas3-1.2/src/ztrmv.f Wed Jun 11 14:18:28 2003
+@@ -108,7 +108,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX
+ * ..
+@@ -135,7 +135,7 @@
+ INFO = 8
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZTRMV ', INFO )
++ CALL XERBLI( 'ZTRMV ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ztrsm.f refblas3-1.2/src/ztrsm.f
+--- blas-1.1/src/ztrsm.f Thu Jul 2 17:17:55 1998
++++ refblas3-1.2/src/ztrsm.f Wed Jun 11 14:18:28 2003
+@@ -130,7 +130,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX
+ * .. Local Scalars ..
+@@ -181,7 +181,7 @@
+ INFO = 11
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZTRSM ', INFO )
++ CALL XERBLI( 'ZTRSM ', INFO )
+ RETURN
+ END IF
+ *
+diff -ruN blas-1.1/src/ztrsv.f refblas3-1.2/src/ztrsv.f
+--- blas-1.1/src/ztrsv.f Thu Jul 2 17:17:55 1998
++++ refblas3-1.2/src/ztrsv.f Wed Jun 11 14:18:29 2003
+@@ -111,7 +111,7 @@
+ LOGICAL LSAME
+ EXTERNAL LSAME
+ * .. External Subroutines ..
+- EXTERNAL XERBLA
++ EXTERNAL XERBLI
+ * .. Intrinsic Functions ..
+ INTRINSIC DCONJG, MAX
+ * ..
+@@ -138,7 +138,7 @@
+ INFO = 8
+ END IF
+ IF( INFO.NE.0 )THEN
+- CALL XERBLA( 'ZTRSV ', INFO )
++ CALL XERBLI( 'ZTRSV ', INFO )
+ RETURN
+ END IF
+ *
+--- blas-1.2.orig/src/crotg.f
++++ blas-1.2/src/crotg.f
+@@ -2,17 +2,19 @@
+ complex ca,cb,s
+ real c
+ real norm,scale
+- complex alpha
+- if (cabs(ca) .ne. 0.) go to 10
++ complex alpha,cdum
++ real cabs3
++ cabs3(cdum) = sqrt(real(cdum)**2 + aimag(cdum)**2)
++ if (cabs3(ca) .ne. 0.) go to 10
+ c = 0.
+ s = (1.,0.)
+ ca = cb
+ go to 20
+ 10 continue
+- scale = cabs(ca) + cabs(cb)
+- norm = scale * sqrt((cabs(ca/scale))**2 + (cabs(cb/scale))**2)
+- alpha = ca /cabs(ca)
+- c = cabs(ca) / norm
++ scale = cabs3(ca) + cabs3(cb)
++ norm = scale*sqrt((cabs3(ca/scale))**2 + (cabs3(cb/scale))**2)
++ alpha = ca /cabs3(ca)
++ c = cabs3(ca) / norm
+ s = alpha * conjg(cb) / norm
+ ca = alpha * norm
+ 20 continue
+--- blas-1.2.orig/src/dzasum.f
++++ blas-1.2/src/dzasum.f
+@@ -6,7 +6,10 @@
+ c modified 12/3/93, array(1) declarations changed to array(*)
+ c
+ double complex zx(*)
+- double precision stemp,dcabs1
++ double precision stemp
++ double complex zdum
++ double precision dcabs2
++ dcabs2(zdum) = abs(real(zdum)) + abs(aimag(zdum))
+ integer i,incx,ix,n
+ c
+ dzasum = 0.0d0
+@@ -18,7 +21,7 @@
+ c
+ ix = 1
+ do 10 i = 1,n
+- stemp = stemp + dcabs1(zx(ix))
++ stemp = stemp + dcabs2(zx(ix))
+ ix = ix + incx
+ 10 continue
+ dzasum = stemp
+@@ -27,7 +30,7 @@
+ c code for increment equal to 1
+ c
+ 20 do 30 i = 1,n
+- stemp = stemp + dcabs1(zx(i))
++ stemp = stemp + dcabs2(zx(i))
+ 30 continue
+ dzasum = stemp
+ return
+--- blas-1.2.orig/src/icamax.f
++++ blas-1.2/src/icamax.f
+@@ -9,7 +9,7 @@
+ real smax
+ integer i,incx,ix,n
+ complex zdum
+- real cabs1
++ real volatile cabs1
+ cabs1(zdum) = abs(real(zdum)) + abs(aimag(zdum))
+ c
+ icamax = 0
+--- blas-1.2.orig/src/izamax.f
++++ blas-1.2/src/izamax.f
+@@ -8,7 +8,9 @@
+ double complex zx(*)
+ double precision smax
+ integer i,incx,ix,n
+- double precision dcabs1
++ double complex zdum
++ double precision dcabs2
++ dcabs2(zdum) = abs(real(zdum)) + abs(aimag(zdum))
+ c
+ izamax = 0
+ if( n.lt.1 .or. incx.le.0 )return
+@@ -19,23 +21,23 @@
+ c code for increment not equal to 1
+ c
+ ix = 1
+- smax = dcabs1(zx(1))
++ smax = dcabs2(zx(1))
+ ix = ix + incx
+ do 10 i = 2,n
+- if(dcabs1(zx(ix)).le.smax) go to 5
++ if(dcabs2(zx(ix)).le.smax) go to 5
+ izamax = i
+- smax = dcabs1(zx(ix))
++ smax = dcabs2(zx(ix))
+ 5 ix = ix + incx
+ 10 continue
+ return
+ c
+ c code for increment equal to 1
+ c
+- 20 smax = dcabs1(zx(1))
++ 20 smax = dcabs2(zx(1))
+ do 30 i = 2,n
+- if(dcabs1(zx(i)).le.smax) go to 30
++ if(dcabs2(zx(i)).le.smax) go to 30
+ izamax = i
+- smax = dcabs1(zx(i))
++ smax = dcabs2(zx(i))
+ 30 continue
+ return
+ end
+--- blas-1.2.orig/src/zaxpy.f
++++ blas-1.2/src/zaxpy.f
+@@ -6,9 +6,11 @@
+ c
+ double complex zx(*),zy(*),za
+ integer i,incx,incy,ix,iy,n
+- double precision dcabs1
++ double complex zdum
++ double precision dcabs2
++ dcabs2(zdum) = abs(real(zdum)) + abs(aimag(zdum))
+ if(n.le.0)return
+- if (dcabs1(za) .eq. 0.0d0) return
++ if (dcabs2(za) .eq. 0.0d0) return
+ if (incx.eq.1.and.incy.eq.1)go to 20
+ c
+ c code for unequal increments or equal increments
+--- blas-1.2.orig/src/zrotg.f
++++ blas-1.2/src/zrotg.f
+@@ -2,18 +2,20 @@
+ double complex ca,cb,s
+ double precision c
+ double precision norm,scale
+- double complex alpha
+- if (cdabs(ca) .ne. 0.0d0) go to 10
++ double complex alpha,zdum
++ double precision zabs3
++ zabs3(zdum) = sqrt(real(zdum)**2 + aimag(zdum)**2)
++ if (zabs3(ca) .ne. 0.0d0) go to 10
+ c = 0.0d0
+ s = (1.0d0,0.0d0)
+ ca = cb
+ go to 20
+ 10 continue
+- scale = cdabs(ca) + cdabs(cb)
+- norm = scale*dsqrt((cdabs(ca/dcmplx(scale,0.0d0)))**2 +
+- * (cdabs(cb/dcmplx(scale,0.0d0)))**2)
+- alpha = ca /cdabs(ca)
+- c = cdabs(ca) / norm
++ scale = zabs3(ca) + zabs3(cb)
++ norm = scale*dsqrt((zabs3(ca/dcmplx(scale,0.0d0)))**2 +
++ * (zabs3(cb/dcmplx(scale,0.0d0)))**2)
++ alpha = ca /zabs3(ca)
++ c = zabs3(ca) / norm
+ s = alpha * dconjg(cb) / norm
+ ca = alpha * norm
+ 20 continue
+--- blas-1.2.orig/doc/faq.html
++++ blas-1.2/doc/faq.html
+@@ -12,7 +12,7 @@
+
+
+
+-
++
+
+
+ Many thanks to the
+@@ -22,7 +22,7 @@
+
+
+
+-
++
+
+
+ Table of Contents
+@@ -42,7 +42,7 @@
+
+
+
+-
++
+
+ 1) BLAS
+
+@@ -278,7 +278,7 @@
+ for your machine using ATLAS, http://www.netlib.org/atlas/.
+
+
+-
++
+ lapack@cs.utk.edu
+
+