HP MLIB User's Guide Vol. 2 7th Ed.

716 HP MLIB LAPACK User’s Guide
ScaLAPACK arguments
WORK(1), and the routine PXERBLA is called. The user is thus strongly
advised to always check the value of INFO on exit from the called routine.
Diagnostic argument INFO
All driver and computational routines have a diagnostic argument INFO that
indicates the success or failure of the computation. It is recommended that the
user always check the value of INFO on exit from calling a ScaLAPACK routine.
The value of INFO is defined as follows:
INFO=0 Successful exit.
INFO<0 Illegal value of one or more arguments; no computation
performed.
INFO>0 Failure in the course of computation.
The value of INFO<0 is calculated as follows: if the error is detected in the jth
entry of a descriptor array, which is the ith argument in the parameter list, the
number passed to the error-handling routine 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.
The standard version of PXERBLA( ) only issues an error message and does not
halt execution of the program. The main reason for this behavior is that some
errors are deemed recoverable and the user is allowed the flexibility to continue
program execution if certain values were corrected. If users wish to change this
behavior and additionally halt execution of the program, they can add a call to
BLACS_ABORT( ) to their version of PXERBLA( ).
If an input error INFO<0 is detected at a high-level routine (ScaLAPACK driver
or computational routine), it is possible for the user to recover from such an
error and proceed with the computation. An error message is printed by
PXERBLA( ), a RETURN is issued, and the program execution continues.
However, if an error is detected in a low-level ScaLAPACK routine, this error is
considered unrecoverable. A message is printed by PXERBLA( ) and program
execution is terminated by a call to BLACS_ABORT( ).
Likewise, if an error is detected at a low-level routine, such as a PBLAS or
BLACS routine, this error is deemed fatal. An error message is printed, and the
program execution is terminated by the specific error-handling routine.
All ScaLAPACK driver and computational routines perform global and local
input error checking. In general, no input error checking is performed on the
auxiliary routines. The exception to this rule is for the auxiliary routines which
are Level 2 versions of computational routines (e.g., PxGETF2, PxGEQR2,
PxORMR2, PxORM2R, etc.). For efficiency purposes, these specialized low-level
routines perform only a local validity check of their argument list. If an error is
detected in at least one process of the current context, the program execution is
stopped.