1 #include <stdio.h> 2 #include <ctype.h> 3 #include "cblas.h" 4 #include "cblas_f77.h" 5 6 #define XerblaStrLen 6 7 #define XerblaStrLen1 7 8 9 #ifdef F77_CHAR 10 void F77_xerbla(F77_CHAR F77_srname, void *vinfo) 11 #else 12 void F77_xerbla(char *srname, void *vinfo) 13 #endif 14 15 { 16 #ifdef F77_CHAR 17 char *srname; 18 #endif 19 20 char rout[] = {'c','b','l','a','s','_','\0','\0','\0','\0','\0','\0','\0'}; 21 22 #ifdef F77_INT 23 F77_INT *info=vinfo; 24 F77_INT i; 25 #else 26 int *info=vinfo; 27 int i; 28 #endif 29 30 extern int CBLAS_CallFromC; 31 32 #ifdef F77_CHAR 33 srname = F2C_STR(F77_srname, XerblaStrLen); 34 #endif 35 36 if (CBLAS_CallFromC) 37 { 38 for(i=0; i != XerblaStrLen; i++) rout[i+6] = tolower(srname[i]); 39 rout[XerblaStrLen+6] = '\0'; 40 cblas_xerbla(*info+1,rout,""); 41 } 42 else 43 { 44 fprintf(stderr, "Parameter %d to routine %s was incorrect\n", 45 *info, srname); 46 } 47 } 48