--- a/cblas/src/cblas_cgbmv.c
+++ b/cblas/src/cblas_cgbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_cgemm.c
+++ b/cblas/src/cblas_cgemm.c
@@ -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;
 }
--- a/cblas/src/cblas_cgemv.c
+++ b/cblas/src/cblas_cgemv.c
@@ -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;
 }
--- a/cblas/src/cblas_cgerc.c
+++ b/cblas/src/cblas_cgerc.c
@@ -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;
 }
--- a/cblas/src/cblas_cgeru.c
+++ b/cblas/src/cblas_cgeru.c
@@ -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;
 }
--- a/cblas/src/cblas_chbmv.c
+++ b/cblas/src/cblas_chbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_chemm.c
+++ b/cblas/src/cblas_chemm.c
@@ -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;
 }
--- a/cblas/src/cblas_chemv.c
+++ b/cblas/src/cblas_chemv.c
@@ -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;
 }
--- a/cblas/src/cblas_cher2.c
+++ b/cblas/src/cblas_cher2.c
@@ -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;
 }
--- a/cblas/src/cblas_cher2k.c
+++ b/cblas/src/cblas_cher2k.c
@@ -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;
 }
--- a/cblas/src/cblas_cher.c
+++ b/cblas/src/cblas_cher.c
@@ -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;
 }
--- a/cblas/src/cblas_cherk.c
+++ b/cblas/src/cblas_cherk.c
@@ -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;
 }
--- a/cblas/src/cblas_chpmv.c
+++ b/cblas/src/cblas_chpmv.c
@@ -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;
 }
--- a/cblas/src/cblas_chpr2.c
+++ b/cblas/src/cblas_chpr2.c
@@ -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;
 }
--- a/cblas/src/cblas_chpr.c
+++ b/cblas/src/cblas_chpr.c
@@ -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;
 }
--- a/cblas/src/cblas_csymm.c
+++ b/cblas/src/cblas_csymm.c
@@ -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;
 } 
--- a/cblas/src/cblas_csyr2k.c
+++ b/cblas/src/cblas_csyr2k.c
@@ -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;
 }
--- a/cblas/src/cblas_csyrk.c
+++ b/cblas/src/cblas_csyrk.c
@@ -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;
 }
--- a/cblas/src/cblas_ctbmv.c
+++ b/cblas/src/cblas_ctbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_ctbsv.c
+++ b/cblas/src/cblas_ctbsv.c
@@ -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;
 }
--- a/cblas/src/cblas_ctpmv.c
+++ b/cblas/src/cblas_ctpmv.c
@@ -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;
 }
--- a/cblas/src/cblas_ctpsv.c
+++ b/cblas/src/cblas_ctpsv.c
@@ -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;
 }
--- a/cblas/src/cblas_ctrmm.c
+++ b/cblas/src/cblas_ctrmm.c
@@ -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;
 }
--- a/cblas/src/cblas_ctrmv.c
+++ b/cblas/src/cblas_ctrmv.c
@@ -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;
 }
--- a/cblas/src/cblas_ctrsm.c
+++ b/cblas/src/cblas_ctrsm.c
@@ -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;
 }
--- a/cblas/src/cblas_ctrsv.c
+++ b/cblas/src/cblas_ctrsv.c
@@ -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;
 }
--- a/cblas/src/cblas_dgbmv.c
+++ b/cblas/src/cblas_dgbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_dgemm.c
+++ b/cblas/src/cblas_dgemm.c
@@ -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;
 }
--- a/cblas/src/cblas_dgemv.c
+++ b/cblas/src/cblas_dgemv.c
@@ -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;
 }
--- a/cblas/src/cblas_dger.c
+++ b/cblas/src/cblas_dger.c
@@ -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;
 }
--- a/cblas/src/cblas_dsbmv.c
+++ b/cblas/src/cblas_dsbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_dspmv.c
+++ b/cblas/src/cblas_dspmv.c
@@ -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;
 }
--- a/cblas/src/cblas_dspr2.c
+++ b/cblas/src/cblas_dspr2.c
@@ -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;
 }
--- a/cblas/src/cblas_dspr.c
+++ b/cblas/src/cblas_dspr.c
@@ -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;
 }
--- a/cblas/src/cblas_dsymm.c
+++ b/cblas/src/cblas_dsymm.c
@@ -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;
 } 
--- a/cblas/src/cblas_dsymv.c
+++ b/cblas/src/cblas_dsymv.c
@@ -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;
 }
--- a/cblas/src/cblas_dsyr2.c
+++ b/cblas/src/cblas_dsyr2.c
@@ -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;
 }
--- a/cblas/src/cblas_dsyr2k.c
+++ b/cblas/src/cblas_dsyr2k.c
@@ -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;
 }
--- a/cblas/src/cblas_dsyr.c
+++ b/cblas/src/cblas_dsyr.c
@@ -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;
 } 
--- a/cblas/src/cblas_dsyrk.c
+++ b/cblas/src/cblas_dsyrk.c
@@ -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;
 }
--- a/cblas/src/cblas_dtbmv.c
+++ b/cblas/src/cblas_dtbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_dtbsv.c
+++ b/cblas/src/cblas_dtbsv.c
@@ -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;
 }
--- a/cblas/src/cblas_dtpmv.c
+++ b/cblas/src/cblas_dtpmv.c
@@ -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;
 }
--- a/cblas/src/cblas_dtpsv.c
+++ b/cblas/src/cblas_dtpsv.c
@@ -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;
 }
--- a/cblas/src/cblas_dtrmm.c
+++ b/cblas/src/cblas_dtrmm.c
@@ -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;
 }
--- a/cblas/src/cblas_dtrmv.c
+++ b/cblas/src/cblas_dtrmv.c
@@ -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;
 }
--- a/cblas/src/cblas_dtrsm.c
+++ b/cblas/src/cblas_dtrsm.c
@@ -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;
 }
--- a/cblas/src/cblas_dtrsv.c
+++ b/cblas/src/cblas_dtrsv.c
@@ -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;
 }
--- a/cblas/src/cblas_f77.h
+++ b/cblas/src/cblas_f77.h
@@ -6,6 +6,9 @@
  * Merged cblas_f77.h and cblas_fortran_header.h
  */
 
+#include <string.h>
+#include <stdlib.h>
+
 #ifndef CBLAS_F77_H
 #define CBLAS_f77_H
 
@@ -39,6 +42,7 @@
 /*
  * Level 1 BLAS
  */
+#define F77_xerbli xerbli_
 #define F77_xerbla xerbla_
    #define F77_srotg      srotg_
    #define F77_srotmg     srotmg_
@@ -192,6 +196,7 @@
 /*
  * Level 1 BLAS
  */
+#define F77_xerbli  XERBLI
 #define F77_xerbla  XERBLA
    #define F77_srotg      SROTG
    #define F77_srotmg     SROTMG
@@ -345,6 +350,7 @@
 /*
  * Level 1 BLAS
  */
+#define F77_xerbli  xerbli
 #define F77_xerbla  xerbla
    #define F77_srotg      srotg
    #define F77_srotmg     srotmg
@@ -690,4 +696,69 @@
    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 */
--- a/cblas/src/cblas_globals.c
+++ b/cblas/src/cblas_globals.c
@@ -1,2 +1,2 @@
-int CBLAS_CallFromC=0;
-int RowMajorStrg=0;
+static int CBLAS_CallFromC;
+static int RowMajorStrg;
--- a/cblas/src/cblas_sgbmv.c
+++ b/cblas/src/cblas_sgbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_sgemm.c
+++ b/cblas/src/cblas_sgemm.c
@@ -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;
 }
--- a/cblas/src/cblas_sgemv.c
+++ b/cblas/src/cblas_sgemv.c
@@ -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;
 }
--- a/cblas/src/cblas_sger.c
+++ b/cblas/src/cblas_sger.c
@@ -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;
 }
--- a/cblas/src/cblas_ssbmv.c
+++ b/cblas/src/cblas_ssbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_sspmv.c
+++ b/cblas/src/cblas_sspmv.c
@@ -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;
 }
--- a/cblas/src/cblas_sspr2.c
+++ b/cblas/src/cblas_sspr2.c
@@ -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;
 }
--- a/cblas/src/cblas_sspr.c
+++ b/cblas/src/cblas_sspr.c
@@ -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;
 }
--- a/cblas/src/cblas_ssymm.c
+++ b/cblas/src/cblas_ssymm.c
@@ -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;
 } 
--- a/cblas/src/cblas_ssymv.c
+++ b/cblas/src/cblas_ssymv.c
@@ -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;
 }
--- a/cblas/src/cblas_ssyr2.c
+++ b/cblas/src/cblas_ssyr2.c
@@ -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;
 }
--- a/cblas/src/cblas_ssyr2k.c
+++ b/cblas/src/cblas_ssyr2k.c
@@ -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;
 }
--- a/cblas/src/cblas_ssyr.c
+++ b/cblas/src/cblas_ssyr.c
@@ -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;
 } 
--- a/cblas/src/cblas_ssyrk.c
+++ b/cblas/src/cblas_ssyrk.c
@@ -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;
 }
--- a/cblas/src/cblas_stbmv.c
+++ b/cblas/src/cblas_stbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_stbsv.c
+++ b/cblas/src/cblas_stbsv.c
@@ -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;
 }
--- a/cblas/src/cblas_stpmv.c
+++ b/cblas/src/cblas_stpmv.c
@@ -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;
 }
--- a/cblas/src/cblas_stpsv.c
+++ b/cblas/src/cblas_stpsv.c
@@ -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;
 }
--- a/cblas/src/cblas_strmm.c
+++ b/cblas/src/cblas_strmm.c
@@ -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;
 }
--- a/cblas/src/cblas_strmv.c
+++ b/cblas/src/cblas_strmv.c
@@ -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;
 }
--- a/cblas/src/cblas_strsm.c
+++ b/cblas/src/cblas_strsm.c
@@ -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;
 }
--- a/cblas/src/cblas_strsv.c
+++ b/cblas/src/cblas_strsv.c
@@ -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;
 }
--- a/cblas/src/cblas_xerbla.c
+++ b/cblas/src/cblas_xerbla.c
@@ -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);
--- a/cblas/src/cblas_zgbmv.c
+++ b/cblas/src/cblas_zgbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_zgemm.c
+++ b/cblas/src/cblas_zgemm.c
@@ -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;
 }
--- a/cblas/src/cblas_zgemv.c
+++ b/cblas/src/cblas_zgemv.c
@@ -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;
 }
--- a/cblas/src/cblas_zgerc.c
+++ b/cblas/src/cblas_zgerc.c
@@ -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;
 }
--- a/cblas/src/cblas_zgeru.c
+++ b/cblas/src/cblas_zgeru.c
@@ -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;
 }
--- a/cblas/src/cblas_zhbmv.c
+++ b/cblas/src/cblas_zhbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_zhemm.c
+++ b/cblas/src/cblas_zhemm.c
@@ -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;
 } 
--- a/cblas/src/cblas_zhemv.c
+++ b/cblas/src/cblas_zhemv.c
@@ -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;
 }
--- a/cblas/src/cblas_zher2.c
+++ b/cblas/src/cblas_zher2.c
@@ -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;
 }
--- a/cblas/src/cblas_zher2k.c
+++ b/cblas/src/cblas_zher2k.c
@@ -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;
 }
--- a/cblas/src/cblas_zher.c
+++ b/cblas/src/cblas_zher.c
@@ -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;
 }
--- a/cblas/src/cblas_zherk.c
+++ b/cblas/src/cblas_zherk.c
@@ -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;
 }
--- a/cblas/src/cblas_zhpmv.c
+++ b/cblas/src/cblas_zhpmv.c
@@ -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;
 }
--- a/cblas/src/cblas_zhpr2.c
+++ b/cblas/src/cblas_zhpr2.c
@@ -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;
 }
--- a/cblas/src/cblas_zhpr.c
+++ b/cblas/src/cblas_zhpr.c
@@ -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;
 }
--- a/cblas/src/cblas_zsymm.c
+++ b/cblas/src/cblas_zsymm.c
@@ -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;
 } 
--- a/cblas/src/cblas_zsyr2k.c
+++ b/cblas/src/cblas_zsyr2k.c
@@ -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;
 }
--- a/cblas/src/cblas_zsyrk.c
+++ b/cblas/src/cblas_zsyrk.c
@@ -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;
 }
--- a/cblas/src/cblas_ztbmv.c
+++ b/cblas/src/cblas_ztbmv.c
@@ -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;
 }
--- a/cblas/src/cblas_ztbsv.c
+++ b/cblas/src/cblas_ztbsv.c
@@ -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;
 }
--- a/cblas/src/cblas_ztpmv.c
+++ b/cblas/src/cblas_ztpmv.c
@@ -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;
 }
--- a/cblas/src/cblas_ztpsv.c
+++ b/cblas/src/cblas_ztpsv.c
@@ -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;
 }
--- a/cblas/src/cblas_ztrmm.c
+++ b/cblas/src/cblas_ztrmm.c
@@ -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;
 }
--- a/cblas/src/cblas_ztrmv.c
+++ b/cblas/src/cblas_ztrmv.c
@@ -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;
 }
--- a/cblas/src/cblas_ztrsm.c
+++ b/cblas/src/cblas_ztrsm.c
@@ -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;
 }
--- a/cblas/src/cblas_ztrsv.c
+++ b/cblas/src/cblas_ztrsv.c
@@ -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;
 }
--- a/cblas/src/Makefile
+++ b/cblas/src/Makefile
@@ -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) 
--- a/cblas/src/xerbla.c
+++ b/cblas/src/xerbla.c
@@ -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);
+
+}
--- a/src/cgbmv.f
+++ b/src/cgbmv.f
@@ -148,7 +148,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX,MIN
@@ -176,7 +176,7 @@
           INFO = 13
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CGBMV ',INFO)
+          CALL XERBLI('CGBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/cgemm.f
+++ b/src/cgemm.f
@@ -136,7 +136,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX
@@ -199,7 +199,7 @@
           INFO = 13
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CGEMM ',INFO)
+          CALL XERBLI('CGEMM ',INFO)
           RETURN
       END IF
 *
--- a/src/cgemv.f
+++ b/src/cgemv.f
@@ -121,7 +121,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX
@@ -145,7 +145,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CGEMV ',INFO)
+          CALL XERBLI('CGEMV ',INFO)
           RETURN
       END IF
 *
--- a/src/cgeru.f
+++ b/src/cgeru.f
@@ -89,7 +89,7 @@
       INTEGER I,INFO,IX,J,JY,KX
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -110,7 +110,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CGERU ',INFO)
+          CALL XERBLI('CGERU ',INFO)
           RETURN
       END IF
 *
--- a/src/chbmv.f
+++ b/src/chbmv.f
@@ -149,7 +149,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX,MIN,REAL
@@ -172,7 +172,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CHBMV ',INFO)
+          CALL XERBLI('CHBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/chemm.f
+++ b/src/chemm.f
@@ -142,7 +142,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX,REAL
@@ -187,7 +187,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CHEMM ',INFO)
+          CALL XERBLI('CHEMM ',INFO)
           RETURN
       END IF
 *
--- a/src/chemv.f
+++ b/src/chemv.f
@@ -118,7 +118,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX,REAL
@@ -139,7 +139,7 @@
           INFO = 10
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CHEMV ',INFO)
+          CALL XERBLI('CHEMV ',INFO)
           RETURN
       END IF
 *
--- a/src/cher2.f
+++ b/src/cher2.f
@@ -114,7 +114,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX,REAL
@@ -135,7 +135,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CHER2 ',INFO)
+          CALL XERBLI('CHER2 ',INFO)
           RETURN
       END IF
 *
--- a/src/cher2k.f
+++ b/src/cher2k.f
@@ -148,7 +148,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX,REAL
@@ -192,7 +192,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CHER2K',INFO)
+          CALL XERBLI('CHER2K',INFO)
           RETURN
       END IF
 *
--- a/src/cher.f
+++ b/src/cher.f
@@ -103,7 +103,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX,REAL
@@ -122,7 +122,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CHER  ',INFO)
+          CALL XERBLI('CHER  ',INFO)
           RETURN
       END IF
 *
--- a/src/cherk.f
+++ b/src/cherk.f
@@ -128,7 +128,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CMPLX,CONJG,MAX,REAL
@@ -169,7 +169,7 @@
           INFO = 10
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CHERK ',INFO)
+          CALL XERBLI('CHERK ',INFO)
           RETURN
       END IF
 *
--- a/src/chpmv.f
+++ b/src/chpmv.f
@@ -115,7 +115,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,REAL
@@ -134,7 +134,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CHPMV ',INFO)
+          CALL XERBLI('CHPMV ',INFO)
           RETURN
       END IF
 *
--- a/src/chpr2.f
+++ b/src/chpr2.f
@@ -111,7 +111,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,REAL
@@ -130,7 +130,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CHPR2 ',INFO)
+          CALL XERBLI('CHPR2 ',INFO)
           RETURN
       END IF
 *
--- a/src/chpr.f
+++ b/src/chpr.f
@@ -100,7 +100,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,REAL
@@ -117,7 +117,7 @@
           INFO = 5
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CHPR  ',INFO)
+          CALL XERBLI('CHPR  ',INFO)
           RETURN
       END IF
 *
--- a/src/csymm.f
+++ b/src/csymm.f
@@ -140,7 +140,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -185,7 +185,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CSYMM ',INFO)
+          CALL XERBLI('CSYMM ',INFO)
           RETURN
       END IF
 *
--- a/src/csyr2k.f
+++ b/src/csyr2k.f
@@ -139,7 +139,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -183,7 +183,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CSYR2K',INFO)
+          CALL XERBLI('CSYR2K',INFO)
           RETURN
       END IF
 *
--- a/src/csyrk.f
+++ b/src/csyrk.f
@@ -122,7 +122,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -164,7 +164,7 @@
           INFO = 10
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CSYRK ',INFO)
+          CALL XERBLI('CSYRK ',INFO)
           RETURN
       END IF
 *
--- a/src/ctbmv.f
+++ b/src/ctbmv.f
@@ -153,7 +153,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX,MIN
@@ -179,7 +179,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CTBMV ',INFO)
+          CALL XERBLI('CTBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/ctbsv.f
+++ b/src/ctbsv.f
@@ -156,7 +156,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX,MIN
@@ -182,7 +182,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CTBSV ',INFO)
+          CALL XERBLI('CTBSV ',INFO)
           RETURN
       END IF
 *
--- a/src/ctpmv.f
+++ b/src/ctpmv.f
@@ -113,7 +113,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG
@@ -135,7 +135,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CTPMV ',INFO)
+          CALL XERBLI('CTPMV ',INFO)
           RETURN
       END IF
 *
--- a/src/ctpsv.f
+++ b/src/ctpsv.f
@@ -115,7 +115,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG
@@ -137,7 +137,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CTPSV ',INFO)
+          CALL XERBLI('CTPSV ',INFO)
           RETURN
       END IF
 *
--- a/src/ctrmm.f
+++ b/src/ctrmm.f
@@ -132,7 +132,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX
@@ -182,7 +182,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CTRMM ',INFO)
+          CALL XERBLI('CTRMM ',INFO)
           RETURN
       END IF
 *
--- a/src/ctrmv.f
+++ b/src/ctrmv.f
@@ -116,7 +116,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX
@@ -140,7 +140,7 @@
           INFO = 8
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CTRMV ',INFO)
+          CALL XERBLI('CTRMV ',INFO)
           RETURN
       END IF
 *
--- a/src/ctrsm.f
+++ b/src/ctrsm.f
@@ -134,7 +134,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX
@@ -184,7 +184,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CTRSM ',INFO)
+          CALL XERBLI('CTRSM ',INFO)
           RETURN
       END IF
 *
--- a/src/ctrsv.f
+++ b/src/ctrsv.f
@@ -118,7 +118,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX
@@ -142,7 +142,7 @@
           INFO = 8
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CTRSV ',INFO)
+          CALL XERBLI('CTRSV ',INFO)
           RETURN
       END IF
 *
--- a/src/dgbmv.f
+++ b/src/dgbmv.f
@@ -142,7 +142,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX,MIN
@@ -170,7 +170,7 @@
           INFO = 13
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DGBMV ',INFO)
+          CALL XERBLI('DGBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/dgemm.f
+++ b/src/dgemm.f
@@ -136,7 +136,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -193,7 +193,7 @@
           INFO = 13
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DGEMM ',INFO)
+          CALL XERBLI('DGEMM ',INFO)
           RETURN
       END IF
 *
--- a/src/dgemv.f
+++ b/src/dgemv.f
@@ -116,7 +116,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -140,7 +140,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DGEMV ',INFO)
+          CALL XERBLI('DGEMV ',INFO)
           RETURN
       END IF
 *
--- a/src/dger.f
+++ b/src/dger.f
@@ -89,7 +89,7 @@
       INTEGER I,INFO,IX,J,JY,KX
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -110,7 +110,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DGER  ',INFO)
+          CALL XERBLI('DGER  ',INFO)
           RETURN
       END IF
 *
--- a/src/dsbmv.f
+++ b/src/dsbmv.f
@@ -145,7 +145,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX,MIN
@@ -168,7 +168,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DSBMV ',INFO)
+          CALL XERBLI('DSBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/dspmv.f
+++ b/src/dspmv.f
@@ -111,7 +111,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *
 *     Test the input parameters.
@@ -127,7 +127,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DSPMV ',INFO)
+          CALL XERBLI('DSPMV ',INFO)
           RETURN
       END IF
 *
--- a/src/dspr2.f
+++ b/src/dspr2.f
@@ -108,7 +108,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *
 *     Test the input parameters.
@@ -124,7 +124,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DSPR2 ',INFO)
+          CALL XERBLI('DSPR2 ',INFO)
           RETURN
       END IF
 *
--- a/src/dspr.f
+++ b/src/dspr.f
@@ -97,7 +97,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *
 *     Test the input parameters.
@@ -111,7 +111,7 @@
           INFO = 5
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DSPR  ',INFO)
+          CALL XERBLI('DSPR  ',INFO)
           RETURN
       END IF
 *
--- a/src/dsymm.f
+++ b/src/dsymm.f
@@ -140,7 +140,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -183,7 +183,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DSYMM ',INFO)
+          CALL XERBLI('DSYMM ',INFO)
           RETURN
       END IF
 *
--- a/src/dsymv.f
+++ b/src/dsymv.f
@@ -114,7 +114,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -135,7 +135,7 @@
           INFO = 10
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DSYMV ',INFO)
+          CALL XERBLI('DSYMV ',INFO)
           RETURN
       END IF
 *
--- a/src/dsyr2.f
+++ b/src/dsyr2.f
@@ -111,7 +111,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -132,7 +132,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DSYR2 ',INFO)
+          CALL XERBLI('DSYR2 ',INFO)
           RETURN
       END IF
 *
--- a/src/dsyr2k.f
+++ b/src/dsyr2k.f
@@ -143,7 +143,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -186,7 +186,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DSYR2K',INFO)
+          CALL XERBLI('DSYR2K',INFO)
           RETURN
       END IF
 *
--- a/src/dsyr.f
+++ b/src/dsyr.f
@@ -100,7 +100,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -119,7 +119,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DSYR  ',INFO)
+          CALL XERBLI('DSYR  ',INFO)
           RETURN
       END IF
 *
--- a/src/dsyrk.f
+++ b/src/dsyrk.f
@@ -124,7 +124,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -165,7 +165,7 @@
           INFO = 10
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DSYRK ',INFO)
+          CALL XERBLI('DSYRK ',INFO)
           RETURN
       END IF
 *
--- a/src/dtbmv.f
+++ b/src/dtbmv.f
@@ -153,7 +153,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX,MIN
@@ -179,7 +179,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DTBMV ',INFO)
+          CALL XERBLI('DTBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/dtbsv.f
+++ b/src/dtbsv.f
@@ -156,7 +156,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX,MIN
@@ -182,7 +182,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DTBSV ',INFO)
+          CALL XERBLI('DTBSV ',INFO)
           RETURN
       END IF
 *
--- a/src/dtpmv.f
+++ b/src/dtpmv.f
@@ -113,7 +113,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *
 *     Test the input parameters.
@@ -132,7 +132,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DTPMV ',INFO)
+          CALL XERBLI('DTPMV ',INFO)
           RETURN
       END IF
 *
--- a/src/dtpsv.f
+++ b/src/dtpsv.f
@@ -115,7 +115,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *
 *     Test the input parameters.
@@ -134,7 +134,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DTPSV ',INFO)
+          CALL XERBLI('DTPSV ',INFO)
           RETURN
       END IF
 *
--- a/src/dtrmm.f
+++ b/src/dtrmm.f
@@ -132,7 +132,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -179,7 +179,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DTRMM ',INFO)
+          CALL XERBLI('DTRMM ',INFO)
           RETURN
       END IF
 *
--- a/src/dtrmv.f
+++ b/src/dtrmv.f
@@ -116,7 +116,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -140,7 +140,7 @@
           INFO = 8
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DTRMV ',INFO)
+          CALL XERBLI('DTRMV ',INFO)
           RETURN
       END IF
 *
--- a/src/dtrsm.f
+++ b/src/dtrsm.f
@@ -135,7 +135,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -182,7 +182,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DTRSM ',INFO)
+          CALL XERBLI('DTRSM ',INFO)
           RETURN
       END IF
 *
--- a/src/dtrsv.f
+++ b/src/dtrsv.f
@@ -116,7 +116,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -140,7 +140,7 @@
           INFO = 8
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('DTRSV ',INFO)
+          CALL XERBLI('DTRSV ',INFO)
           RETURN
       END IF
 *
--- a/src/sgbmv.f
+++ b/src/sgbmv.f
@@ -142,7 +142,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX,MIN
@@ -170,7 +170,7 @@
           INFO = 13
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SGBMV ',INFO)
+          CALL XERBLI('SGBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/sgemm.f
+++ b/src/sgemm.f
@@ -136,7 +136,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -193,7 +193,7 @@
           INFO = 13
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SGEMM ',INFO)
+          CALL XERBLI('SGEMM ',INFO)
           RETURN
       END IF
 *
--- a/src/sgemv.f
+++ b/src/sgemv.f
@@ -116,7 +116,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -140,7 +140,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SGEMV ',INFO)
+          CALL XERBLI('SGEMV ',INFO)
           RETURN
       END IF
 *
--- a/src/sger.f
+++ b/src/sger.f
@@ -89,7 +89,7 @@
       INTEGER I,INFO,IX,J,JY,KX
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -110,7 +110,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SGER  ',INFO)
+          CALL XERBLI('SGER  ',INFO)
           RETURN
       END IF
 *
--- a/src/ssbmv.f
+++ b/src/ssbmv.f
@@ -145,7 +145,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX,MIN
@@ -168,7 +168,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SSBMV ',INFO)
+          CALL XERBLI('SSBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/sspmv.f
+++ b/src/sspmv.f
@@ -111,7 +111,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *
 *     Test the input parameters.
@@ -127,7 +127,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SSPMV ',INFO)
+          CALL XERBLI('SSPMV ',INFO)
           RETURN
       END IF
 *
--- a/src/sspr2.f
+++ b/src/sspr2.f
@@ -108,7 +108,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *
 *     Test the input parameters.
@@ -124,7 +124,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SSPR2 ',INFO)
+          CALL XERBLI('SSPR2 ',INFO)
           RETURN
       END IF
 *
--- a/src/sspr.f
+++ b/src/sspr.f
@@ -97,7 +97,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *
 *     Test the input parameters.
@@ -111,7 +111,7 @@
           INFO = 5
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SSPR  ',INFO)
+          CALL XERBLI('SSPR  ',INFO)
           RETURN
       END IF
 *
--- a/src/ssymm.f
+++ b/src/ssymm.f
@@ -140,7 +140,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -183,7 +183,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SSYMM ',INFO)
+          CALL XERBLI('SSYMM ',INFO)
           RETURN
       END IF
 *
--- a/src/ssymv.f
+++ b/src/ssymv.f
@@ -114,7 +114,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -135,7 +135,7 @@
           INFO = 10
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SSYMV ',INFO)
+          CALL XERBLI('SSYMV ',INFO)
           RETURN
       END IF
 *
--- a/src/ssyr2.f
+++ b/src/ssyr2.f
@@ -111,7 +111,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -132,7 +132,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SSYR2 ',INFO)
+          CALL XERBLI('SSYR2 ',INFO)
           RETURN
       END IF
 *
--- a/src/ssyr2k.f
+++ b/src/ssyr2k.f
@@ -143,7 +143,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -186,7 +186,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SSYR2K',INFO)
+          CALL XERBLI('SSYR2K',INFO)
           RETURN
       END IF
 *
--- a/src/ssyr.f
+++ b/src/ssyr.f
@@ -100,7 +100,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -119,7 +119,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SSYR  ',INFO)
+          CALL XERBLI('SSYR  ',INFO)
           RETURN
       END IF
 *
--- a/src/ssyrk.f
+++ b/src/ssyrk.f
@@ -124,7 +124,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -165,7 +165,7 @@
           INFO = 10
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('SSYRK ',INFO)
+          CALL XERBLI('SSYRK ',INFO)
           RETURN
       END IF
 *
--- a/src/stbmv.f
+++ b/src/stbmv.f
@@ -153,7 +153,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX,MIN
@@ -179,7 +179,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('STBMV ',INFO)
+          CALL XERBLI('STBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/stbsv.f
+++ b/src/stbsv.f
@@ -156,7 +156,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX,MIN
@@ -182,7 +182,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('STBSV ',INFO)
+          CALL XERBLI('STBSV ',INFO)
           RETURN
       END IF
 *
--- a/src/stpmv.f
+++ b/src/stpmv.f
@@ -113,7 +113,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *
 *     Test the input parameters.
@@ -132,7 +132,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('STPMV ',INFO)
+          CALL XERBLI('STPMV ',INFO)
           RETURN
       END IF
 *
--- a/src/stpsv.f
+++ b/src/stpsv.f
@@ -115,7 +115,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *
 *     Test the input parameters.
@@ -134,7 +134,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('STPSV ',INFO)
+          CALL XERBLI('STPSV ',INFO)
           RETURN
       END IF
 *
--- a/src/strmm.f
+++ b/src/strmm.f
@@ -132,7 +132,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -179,7 +179,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('STRMM ',INFO)
+          CALL XERBLI('STRMM ',INFO)
           RETURN
       END IF
 *
--- a/src/strmv.f
+++ b/src/strmv.f
@@ -116,7 +116,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -140,7 +140,7 @@
           INFO = 8
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('STRMV ',INFO)
+          CALL XERBLI('STRMV ',INFO)
           RETURN
       END IF
 *
--- a/src/strsm.f
+++ b/src/strsm.f
@@ -135,7 +135,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -182,7 +182,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('STRSM ',INFO)
+          CALL XERBLI('STRSM ',INFO)
           RETURN
       END IF
 *
--- a/src/strsv.f
+++ b/src/strsv.f
@@ -118,7 +118,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -142,7 +142,7 @@
           INFO = 8
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('STRSV ',INFO)
+          CALL XERBLI('STRSV ',INFO)
           RETURN
       END IF
 *
--- a/src/xerbla.f
+++ b/src/xerbla.f
@@ -1,4 +1,4 @@
-      SUBROUTINE XERBLA( SRNAME, INFO )
+      SUBROUTINE XERBLI(SRNAME,INFO)
 *
 *  -- LAPACK auxiliary routine (preliminary version) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
@@ -12,7 +12,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.
 *
@@ -23,7 +23,7 @@
 *  =========
 *
 *  SRNAME  (input) CHARACTER*(*)
-*          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
@@ -43,6 +43,6 @@
  9999 FORMAT( ' ** On entry to ', A, ' parameter number ', I2, ' had ',
      $      'an illegal value' )
 *
-*     End of XERBLA
+*     End of XERBLI
 *
       END
--- a/src/zgbmv.f
+++ b/src/zgbmv.f
@@ -148,7 +148,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG,MAX,MIN
@@ -176,7 +176,7 @@
           INFO = 13
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZGBMV ',INFO)
+          CALL XERBLI('ZGBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/zgemm.f
+++ b/src/zgemm.f
@@ -136,7 +136,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG,MAX
@@ -199,7 +199,7 @@
           INFO = 13
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZGEMM ',INFO)
+          CALL XERBLI('ZGEMM ',INFO)
           RETURN
       END IF
 *
--- a/src/zgemv.f
+++ b/src/zgemv.f
@@ -121,7 +121,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG,MAX
@@ -145,7 +145,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZGEMV ',INFO)
+          CALL XERBLI('ZGEMV ',INFO)
           RETURN
       END IF
 *
--- a/src/zgerc.f
+++ b/src/zgerc.f
@@ -89,7 +89,7 @@
       INTEGER I,INFO,IX,J,JY,KX
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG,MAX
@@ -110,7 +110,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZGERC ',INFO)
+          CALL XERBLI('ZGERC ',INFO)
           RETURN
       END IF
 *
--- a/src/zgeru.f
+++ b/src/zgeru.f
@@ -89,7 +89,7 @@
       INTEGER I,INFO,IX,J,JY,KX
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -110,7 +110,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZGERU ',INFO)
+          CALL XERBLI('ZGERU ',INFO)
           RETURN
       END IF
 *
--- a/src/zhbmv.f
+++ b/src/zhbmv.f
@@ -149,7 +149,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DBLE,DCONJG,MAX,MIN
@@ -172,7 +172,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZHBMV ',INFO)
+          CALL XERBLI('ZHBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/zhemm.f
+++ b/src/zhemm.f
@@ -142,7 +142,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DBLE,DCONJG,MAX
@@ -187,7 +187,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZHEMM ',INFO)
+          CALL XERBLI('ZHEMM ',INFO)
           RETURN
       END IF
 *
--- a/src/zhemv.f
+++ b/src/zhemv.f
@@ -118,7 +118,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DBLE,DCONJG,MAX
@@ -139,7 +139,7 @@
           INFO = 10
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZHEMV ',INFO)
+          CALL XERBLI('ZHEMV ',INFO)
           RETURN
       END IF
 *
--- a/src/zher2.f
+++ b/src/zher2.f
@@ -114,7 +114,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DBLE,DCONJG,MAX
@@ -135,7 +135,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZHER2 ',INFO)
+          CALL XERBLI('ZHER2 ',INFO)
           RETURN
       END IF
 *
--- a/src/zher2k.f
+++ b/src/zher2k.f
@@ -148,7 +148,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DBLE,DCONJG,MAX
@@ -192,7 +192,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZHER2K',INFO)
+          CALL XERBLI('ZHER2K',INFO)
           RETURN
       END IF
 *
--- a/src/zher.f
+++ b/src/zher.f
@@ -103,7 +103,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DBLE,DCONJG,MAX
@@ -122,7 +122,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZHER  ',INFO)
+          CALL XERBLI('ZHER  ',INFO)
           RETURN
       END IF
 *
--- a/src/zherk.f
+++ b/src/zherk.f
@@ -128,7 +128,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DBLE,DCMPLX,DCONJG,MAX
@@ -169,7 +169,7 @@
           INFO = 10
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZHERK ',INFO)
+          CALL XERBLI('ZHERK ',INFO)
           RETURN
       END IF
 *
--- a/src/zhpmv.f
+++ b/src/zhpmv.f
@@ -115,7 +115,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DBLE,DCONJG
@@ -134,7 +134,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZHPMV ',INFO)
+          CALL XERBLI('ZHPMV ',INFO)
           RETURN
       END IF
 *
--- a/src/zhpr2.f
+++ b/src/zhpr2.f
@@ -111,7 +111,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DBLE,DCONJG
@@ -130,7 +130,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZHPR2 ',INFO)
+          CALL XERBLI('ZHPR2 ',INFO)
           RETURN
       END IF
 *
--- a/src/zhpr.f
+++ b/src/zhpr.f
@@ -100,7 +100,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DBLE,DCONJG
@@ -117,7 +117,7 @@
           INFO = 5
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZHPR  ',INFO)
+          CALL XERBLI('ZHPR  ',INFO)
           RETURN
       END IF
 *
--- a/src/zsymm.f
+++ b/src/zsymm.f
@@ -140,7 +140,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -185,7 +185,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZSYMM ',INFO)
+          CALL XERBLI('ZSYMM ',INFO)
           RETURN
       END IF
 *
--- a/src/zsyr2k.f
+++ b/src/zsyr2k.f
@@ -139,7 +139,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -183,7 +183,7 @@
           INFO = 12
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZSYR2K',INFO)
+          CALL XERBLI('ZSYR2K',INFO)
           RETURN
       END IF
 *
--- a/src/zsyrk.f
+++ b/src/zsyrk.f
@@ -122,7 +122,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC MAX
@@ -164,7 +164,7 @@
           INFO = 10
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZSYRK ',INFO)
+          CALL XERBLI('ZSYRK ',INFO)
           RETURN
       END IF
 *
--- a/src/ztbmv.f
+++ b/src/ztbmv.f
@@ -153,7 +153,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG,MAX,MIN
@@ -179,7 +179,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZTBMV ',INFO)
+          CALL XERBLI('ZTBMV ',INFO)
           RETURN
       END IF
 *
--- a/src/ztbsv.f
+++ b/src/ztbsv.f
@@ -156,7 +156,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG,MAX,MIN
@@ -182,7 +182,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZTBSV ',INFO)
+          CALL XERBLI('ZTBSV ',INFO)
           RETURN
       END IF
 *
--- a/src/ztpmv.f
+++ b/src/ztpmv.f
@@ -113,7 +113,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG
@@ -135,7 +135,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZTPMV ',INFO)
+          CALL XERBLI('ZTPMV ',INFO)
           RETURN
       END IF
 *
--- a/src/ztpsv.f
+++ b/src/ztpsv.f
@@ -115,7 +115,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG
@@ -137,7 +137,7 @@
           INFO = 7
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZTPSV ',INFO)
+          CALL XERBLI('ZTPSV ',INFO)
           RETURN
       END IF
 *
--- a/src/ztrmm.f
+++ b/src/ztrmm.f
@@ -132,7 +132,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG,MAX
@@ -182,7 +182,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZTRMM ',INFO)
+          CALL XERBLI('ZTRMM ',INFO)
           RETURN
       END IF
 *
--- a/src/ztrmv.f
+++ b/src/ztrmv.f
@@ -116,7 +116,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG,MAX
@@ -140,7 +140,7 @@
           INFO = 8
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZTRMV ',INFO)
+          CALL XERBLI('ZTRMV ',INFO)
           RETURN
       END IF
 *
--- a/src/ztrsm.f
+++ b/src/ztrsm.f
@@ -134,7 +134,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG,MAX
@@ -184,7 +184,7 @@
           INFO = 11
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZTRSM ',INFO)
+          CALL XERBLI('ZTRSM ',INFO)
           RETURN
       END IF
 *
--- a/src/ztrsv.f
+++ b/src/ztrsv.f
@@ -118,7 +118,7 @@
       EXTERNAL LSAME
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC DCONJG,MAX
@@ -142,7 +142,7 @@
           INFO = 8
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('ZTRSV ',INFO)
+          CALL XERBLI('ZTRSV ',INFO)
           RETURN
       END IF
 *
--- a/cblas/src/cblas.h
+++ b/cblas/src/cblas.h
@@ -2,6 +2,12 @@
 #define CBLAS_H
 #include <stddef.h>
 
+/* Allow the use in C++ code.  */
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+
 /*
  * Enumerated and derived types
  */
@@ -564,4 +570,9 @@
                   void *C, const int ldc);
 
 void cblas_xerbla(int p, const char *rout, const char *form, ...);
+
+#ifdef __cplusplus
+}
+#endif 
+
 #endif
--- a/cblas/testing/c_cblat3.f
+++ b/cblas/testing/c_cblat3.f
@@ -1365,7 +1365,7 @@
 *
   150 CONTINUE
       WRITE( NOUT, FMT = 9996 )SNAME
-      CALL CPRCN3( NTRA, NC, SNAME, IORDER, SIDE, UPLO, TRANSA, DIAG,
+      CALL CPRCN3( NOUT, NC, SNAME, IORDER, SIDE, UPLO, TRANSA, DIAG,
      $      M, N, ALPHA, LDA, LDB)
 *
   160 CONTINUE
--- a/cblas/testing/c_dblat3.f
+++ b/cblas/testing/c_dblat3.f
@@ -1335,7 +1335,7 @@
 *
   150 CONTINUE
       WRITE( NOUT, FMT = 9996 )SNAME
-      CALL DPRCN3( NTRA, NC, SNAME, IORDER, SIDE, UPLO, TRANSA, DIAG,
+      CALL DPRCN3( NOUT, NC, SNAME, IORDER, SIDE, UPLO, TRANSA, DIAG,
      $      M, N, ALPHA, LDA, LDB)
 *
   160 CONTINUE
--- a/cblas/testing/c_sblas1.c
+++ b/cblas/testing/c_sblas1.c
@@ -20,12 +20,12 @@
    return;
 }
 
-float F77_scasum(const int *N, void *X, const int *incX)
+double F77_scasum(const int *N, void *X, const int *incX)
 {
    return cblas_scasum(*N, X, *incX);
 }
 
-float F77_scnrm2(const int *N, const void *X, const int *incX)
+double F77_scnrm2(const int *N, const void *X, const int *incX)
 {
    return cblas_scnrm2(*N, X, *incX);
 }
--- a/cblas/testing/c_sblat3.f
+++ b/cblas/testing/c_sblat3.f
@@ -1339,7 +1339,7 @@
 *
   150 CONTINUE
       WRITE( NOUT, FMT = 9996 )SNAME
-      CALL SPRCN3( NTRA, NC, SNAME, IORDER, SIDE, UPLO, TRANSA, DIAG,
+      CALL SPRCN3( NOUT, NC, SNAME, IORDER, SIDE, UPLO, TRANSA, DIAG,
      $      M, N, ALPHA, LDA, LDB)
 *
   160 CONTINUE
--- a/cblas/testing/c_zblat2.f
+++ b/cblas/testing/c_zblat2.f
@@ -1350,7 +1350,7 @@
 *
 *                       Call the subroutine.
 *
-                        IF( SNAME( 4: 5 ).EQ.'mv' )THEN
+                        IF( SNAME( 10: 11 ).EQ.'mv' )THEN
                            IF( FULL )THEN
                               IF( TRACE )
      $                           WRITE( NTRA, FMT = 9993 )NC, SNAME,
@@ -1376,7 +1376,7 @@
                               CALL CZTPMV( IORDER, UPLO, TRANS, DIAG,
      $                                    N, AA, XX, INCX )
                            END IF
-                        ELSE IF( SNAME( 4: 5 ).EQ.'sv' )THEN
+                        ELSE IF( SNAME( 10: 11 ).EQ.'sv' )THEN
                            IF( FULL )THEN
                               IF( TRACE )
      $                           WRITE( NTRA, FMT = 9993 )NC, SNAME,
@@ -1465,7 +1465,7 @@
                         END IF
 *
                         IF( .NOT.NULL )THEN
-                           IF( SNAME( 4: 5 ).EQ.'mv' )THEN
+                           IF( SNAME( 10: 11 ).EQ.'mv' )THEN
 *
 *                             Check the result.
 *
@@ -1473,7 +1473,7 @@
      $                                    INCX, ZERO, Z, INCX, XT, G,
      $                                    XX, EPS, ERR, FATAL, NOUT,
      $                                    .TRUE. )
-                           ELSE IF( SNAME( 4: 5 ).EQ.'sv' )THEN
+                           ELSE IF( SNAME( 10: 11 ).EQ.'sv' )THEN
 *
 *                             Compute approximation to original vector.
 *
@@ -1611,7 +1611,7 @@
 *     .. Common blocks ..
       COMMON             /INFOC/INFOT, NOUTC, OK
 *     .. Executable Statements ..
-      CONJ = SNAME( 5: 5 ).EQ.'c'
+      CONJ = SNAME( 11: 11 ).EQ.'c'
 *     Define the number of arguments.
       NARGS = 9
 *
--- a/cblas/testing/c_zblat3.f
+++ b/cblas/testing/c_zblat3.f
@@ -1366,7 +1366,7 @@
 *
   150 CONTINUE
       WRITE( NOUT, FMT = 9996 )SNAME
-      CALL ZPRCN3( NTRA, NC, SNAME, IORDER, SIDE, UPLO, TRANSA, DIAG,
+      CALL ZPRCN3( NOUT, NC, SNAME, IORDER, SIDE, UPLO, TRANSA, DIAG,
      $      M, N, ALPHA, LDA, LDB)
 *
   160 CONTINUE
--- a/doc/faq.html
+++ b/doc/faq.html
@@ -12,7 +12,7 @@
 </h2>
 </center>
 <p>
-<IMG SRC="http://www.netlib.org/scalapack/html/gif/blue.gif"></p>
+<IMG SRC="blue.png"></p>
 <p>
 <i>
 Many thanks to the <a href="http://www.netlib.org/utk/icl/maintainers.html">
@@ -22,7 +22,7 @@
 </p>
 
 <p>
-<IMG SRC="http://www.netlib.org/scalapack/html/gif/blue.gif"></p>
+<IMG SRC="blue.png"></p>
 
 <h2>
 Table of Contents
@@ -42,7 +42,7 @@
    </dl>
 
 <p>
-<IMG SRC="http://www.netlib.org/scalapack/html/gif/blue.gif"></p>
+<IMG SRC="blue.png"></p>
 <h2>
 1)  BLAS 
 </h2>
@@ -278,7 +278,7 @@
 for your machine using ATLAS, <a href="http://www.netlib.org/atlas/"><address>http://www.netlib.org/atlas/</address></a>.
 
 <p>
-<IMG SRC="http://www.netlib.org/scalapack/html/gif/blue.gif"></p>
+<IMG SRC="blue.png"></p>
 <a href="mailto:lapack@cs.utk.edu"><address>lapack@cs.utk.edu</address></a>
 
 </body>
--- a/man/manl/cscal.l
+++ b/man/manl/cscal.l
@@ -1,5 +1,6 @@
+.TH CSCAL l "16 October 1992" "BLAS routine" "BLAS routine"
 .SH NAME
-
+CSCAL - scales a vector by a constant.
 .SH SYNOPSIS
 .TP 31
 subroutine cscal(n,ca,cx,incx)
--- a/man/manl/zrotg.l
+++ b/man/manl/zrotg.l
@@ -1,5 +1,6 @@
+.TH ZROTG l "16 October 1992" "BLAS routine" "BLAS routine"
 .SH NAME
-
+ZROTG - construct givens plane rotation
 .SH SYNOPSIS
 .TP 28
 subroutine zrotg(ca,cb,c,s)
--- a/man/manl/zscal.l
+++ b/man/manl/zscal.l
@@ -1,5 +1,6 @@
+.TH ZSCAL l "16 October 1992" "BLAS routine" "BLAS routine"
 .SH NAME
-
+ZSCAL - scales a vector by a constant.
 .SH SYNOPSIS
 .TP 31
 subroutine zscal(n,za,zx,incx)
--- a/src/crotg.f
+++ b/src/crotg.f
@@ -12,21 +12,22 @@
 *  =====================================================================
 *
 *     .. Local Scalars ..
-      COMPLEX ALPHA
-      REAL NORM,SCALE
+      COMPLEX ALPHA,CDUM
+      REAL NORM,SCALE,CABS3
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CABS,CONJG,SQRT
 *     ..
+      CABS3(CDUM) = sqrt(real(CDUM)**2 + aimag(CDUM)**2)
       IF (CABS(CA).EQ.0.) THEN
          C = 0.
          S = (1.,0.)
          CA = CB
       ELSE
-         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
       END IF
--- a/cblas/testing/c_xerbla.c
+++ b/cblas/testing/c_xerbla.c
@@ -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 
@@ -77,6 +81,7 @@
       }
    }
 
+#endif
    if (info != cblas_info){
       printf("***** XERBLA WAS CALLED WITH INFO = %d INSTEAD OF %d in %s *******\n",info, cblas_info, rout);
       cblas_lerr = PASSED;
--- a/src/cgerc.f
+++ b/src/cgerc.f
@@ -89,7 +89,7 @@
       INTEGER I,INFO,IX,J,JY,KX
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL XERBLA
+      EXTERNAL XERBLI
 *     ..
 *     .. Intrinsic Functions ..
       INTRINSIC CONJG,MAX
@@ -110,7 +110,7 @@
           INFO = 9
       END IF
       IF (INFO.NE.0) THEN
-          CALL XERBLA('CGERC ',INFO)
+          CALL XERBLI('CGERC ',INFO)
           RETURN
       END IF
 *
