#include #include #include "cblas.h" #include "cblas_f77.h" #define XerblaStrLen 6 #define XerblaStrLen1 7 #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 char rout[] = {'c','b','l','a','s','_','\0','\0','\0','\0','\0','\0','\0'}; #ifdef F77_INT F77_INT *info=vinfo; F77_INT i; #else int *info=vinfo; int i; #endif extern int CBLAS_CallFromC; #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); } }