Next: Computational Failures and INFO Up: Failures Detected by ScaLAPACK Previous: Failures Detected by ScaLAPACK

## Invalid Arguments and PXERBLA

If an illegal value is supplied for one of the input arguments to a ScaLAPACK routine, it will call the error handler PXERBLA to write a message to the standard output unit of the form:

     ** On entry to PSGESV  parameter number  4 had an illegal value

This particular message could be caused by passing to PSGESV a value of NRHS that was less than zero, for example. The arguments are checked in order, beginning with the first. As mentioned in Chapter 4, if an error is detected in the entry of a descriptor array, which is the argument in the parameter list, the number passed to `PXERBLA` has been arbitrarily chosen to be 100*i+j. This allows the user to distinguish an error on a descriptor entry from an error on a scalar argument. Invalid arguments are often caused by the kind of error listed in section 7.3.

In the model implementation of PXERBLA that is supplied with ScaLAPACK, the only action that is performed is the printing of an error message to standard output. Program execution is not terminated. For the ScaLAPACK driver and computational routines, a RETURN statement is issued following the call to PXERBLA. Control returns to the higher-level calling routine, and it is left to the user to determine how the program should proceed. However, in the specialized low-level ScaLAPACK routines (auxiliary routines that are Level 2 equivalents of computational routines), the call to `PXERBLA()` is immediately followed by a call to `BLACS_ABORT()` to terminate program execution since recovery from an error at this level in the computation is not possible.

It is always good practice to check for a nonzero value of INFO on return from a ScaLAPACK routine.