At run time, you can encounter a number of different types of errors that are specifically related to the use of the ESSL subroutines:
The program exceptions you can encounter in ESSL are described in ANSI/IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Standard 754-1985.
If you receive an error message in the form 2538-20nn or 2538-22nn, you have an input-argument error in the calling sequence for an ESSL subroutine. Your program terminated at this point unless you did one of the following:
The name of the ESSL subroutine detecting the error is listed as part of the message. The argument number(s) involved in the error appears in the message text. See Input-Argument Error Messages(2001-2099) for a complete description of the information contained in each message and for an indication of which messages correspond to optionally-recoverable errors. Regardless of whether the name in the message is a user-callable ESSL subroutine or an internal ESSL routine, the message-text and its unique parts apply to the user-callable ESSL subroutine. Return code values are described under "Error Conditions" for each ESSL subroutine in Part 2 of this book.
You may get more than one error message, because most of the arguments are checked by ESSL for possible errors during each call to the subroutine. The ESSL subroutine returns as many messages as there are errors detected. As a result, fewer runs are necessary to diagnose your program.
Fix the error(s), recompile, relink, and rerun your program.
If you receive an error message in the form 2538-21nn, you have a computational error in the ESSL subroutine. A computational error is any error occurring in the ESSL subroutine while using the computational data (that is, scalar and array data). The name of the ESSL subroutine detecting the error is listed as part of the message. Regardless of whether the name in the message is a user-callable ESSL subroutine or an internal ESSL routine, the message-text and its unique parts apply to the user-callable ESSL subroutine. A nonzero return code is returned when the ESSL subroutine encounters a computational error. See Computational Error Messages(2100-2199) for a complete description of the information in each message. Return code values are described under "Error Conditions" for each ESSL subroutine in Part 2 of this book.
Your program terminates for some computational errors unless you have called ERRSET to reset the number of allowable errors for that particular error, and the number has not been exceeded. A message is issued for each computational error. You should use the message to determine where the error occurred in your program.
If you called ERRSET and you have not reached the limit of errors you had set, you can check the return code. If it is not 0, you should call the EINFO subroutine to obtain information about the data involved in the error. EINFO provides the same information provided in the messages; however, it is provided to your program so your program can check the information during run time. Depending on what you want to do, you may choose to continue processing or terminate your program after the error occurs. For information on how to make these changes in your program to reset the number of allowable errors, how to diagnose the error, and how to decide whether to continue or terminate your program, see Chapter 4, Coding Your Program.
If you are unable to solve the problem, report it and provide the following information, if available and appropriate:
If you receive a message in the form 2538-24nn, it means that ESSL issued a resource error message.
A resource error occurs when a buffer storage allocation request fails in a ESSL subroutine. In general, the ESSL subroutines allocate internal auxiliary storage dynamically as needed. Without sufficient storage, the subroutine cannot complete the computation.
When a buffer storage allocation request fails, a resource error message is issued, and the application program is terminated. You need to reduce the memory constraint on the system or increase the amount of memory available before rerunning the application program.
The following ways may reduce memory constraints:
If you receive a message in the form 2538-26nn, it means that ESSL issued an informational or attention message.
When you receive an informational message, check your application to determine why the condition was detected.
An attention message is issued to describe a condition that occurred. ESSL is able to continue processing, but performance may be degraded.
One condition that may produce an attention message is when enough work
area was available to continue processing, but was not the amount initially
requested. ESSL does not terminate your application program, but
performance may be degraded. If you want to reduce the memory
constraint on the system or increase the amount of memory available to
eliminate the attention message, see the suggestions in ESSL Resource Error Messages. For a list of subroutines that may generate this
type of attention message, see Table 31.
Subroutine Names |
---|
Matrix-Vector Linear Algebra Subprograms: _GEMV, _GER, _SPMV, _SYMV, _SPR, _SYR, _SPR2, _SYR2 _GERC, _GERU, _HPMV, _HEMV, _HPR, _HER, _HPR2, _HER2 _SBMV, _TBMV, _GBMV _TPMV _TRMV |
Matrix Operations: _GEMM, _GEMUL _SYMM, _SYR2K, _TRMM _HEMM, _HER2K |
Dense Linear Algebraic Equations: _POF, _POICD, _PPF, _PPFCD, _PPICD, _POTRF, _POTRI _GEICD, _GETRI, _TPI, _TRI, _TRTRI, _TPTRI _TRSM, _TPSV, _TRSV |
Banded Linear Algebraic Equations: STBSV, DTBSV |
Linear Least Squares: _GESVS |
Fourier Transforms: _CFT, _CFT3 _RCFT, _RCFT3 _CRFT, _CRFT3 |
If you receive a message in the form 2538-27nn, it means that ESSL issued a miscellaneous error message.
A miscellaneous error is an error that does not fall under any other categories.
When ESSL detects a miscellaneous error, you receive an error message with information on how to proceed and your application program is terminated.