Error handling routine called by BLAS, LAPACK, VML, VSL routines.
FORTRAN:
call xerbla( srname, info )
C:
xerbla( srname, info, len );
Name |
Type |
Description |
---|---|---|
srname |
FORTRAN: CHARACTER*(*) C: char* |
The name of the routine that called xerbla |
info |
FORTRAN: INTEGER C: int* |
The position of the invalid parameter in the parameter list of the calling routine |
len |
C: int |
Length of the source string |
The routine xerbla is an error handler for the BLAS, LAPACK, VSL, and VML routines. It is called by a BLAS, LAPACK, VSL or VML routine if an input parameter has an invalid value. If an issue is found with an input parameter, xerbla prints a message similar to the following:MKL ERROR: Parameter 6 was incorrect on entry to DGEMM
and then returns to your application. Comments in the LAPACK reference code (http://www.netlib.org/lapack/explore-html/xerbla.f.html) suggest this behavior though the LAPACK User's Guide recommends that the execution should stop when an error is found.
Note that xerbla is an internal function. You can change or disable printing of an error message by providing your own xerbla function. See the FORTRAN and C examples below.
subroutine xerbla (srname, info)
character*(*) srname !Name of subprogram that called xerbla
integer*4 info !Position of the invalid parameter in the parameter list
return !Return to the calling subprogram
end
void xerbla(char* srname, int* info, int len){
// srname - name of the function that called xerbla
// info - position of the invalid parameter in the parameter list
// len - length of the name in bytes
printf("\nXERBLA is called :%s: %d\n",srname,*info);
}