Troubleshooting

ier > 0: Failure during the computation

Some VECLIB subprograms do not have a success/error code in their argument lists, but instead call another VECLIB subprogram to process the error condition. MLIB provides the following error handlers:

XERBLA

XERVEC

F_BLASERROR

Refer to the documentation for individual VECLIB subprogram to determine if one of these error handlers is used. For example, all BLAS Standard subprograms (those subprograms whose names begin with F_) use

F_BLASERROR.

The standard versions of XERBLA, XERVEC, and F_BLASERROR write an error message onto the standard error file. Execution is then terminated with a nonzero exit status. You can supply a version of the error handler that alters this action. Refer to “XERBLA” on page 337, “XERVEC” on page 623, and “F_BLASERROR” on page 605 for more information about these routines.

Routine-specific error conditions are listed in the respective subprogram documentation.

Troubleshooting

The following are suggestions to help you find the cause of a problem:

1.Verify that the subprogram usage in the program matches the subprogram specifications in the documentation. Pay attention to the number of arguments in the CALL statement and to the declarations of arrays and integer constants or variables that describe them. Write out all the arguments immediately before and after the CALL statement.

2.Make sure there really is a problem. For example, if you get an apparently incorrect answer, check if the answer satisfies the problem as defined in the program. For problems with more than one answer, VECLIB may produce a different answer or give the answers in a different order than expected. If the problem is ill-conditioned, VECLIB may not be able to compute a reliable answer. Error messages often suggest the cause of the problem.

3.Isolate the problem. If possible, write a small test program that encounters the same difficulty. For example, write the data causing the problem from

Chapter 1 Introduction to VECLIB 29