ERRSET (ESSL ERRSET Subroutine)

Purpose

The ERRSET subroutine allows you to control execution when error conditions occur. It modifies the information in the ESSL error option table for the error number indicated. For a range of error messages, you can specify the following:
  • How many times a particular error is allowed to occur before the program is terminated
  • How many times a particular error message is printed before printing is suppressed
  • Whether the ESSL error exit routine is to be invoked

For multithreaded application programs, if you want the error handling capabilities that this subroutine provides to be implemented on each thread created by your program, this subroutine must be called from each thread. If your application creates multiple threads, the action performed by a call to this subroutine applies to the thread that this subroutine was invoked from. For an example, see Example of Handling Errors in a Multithreaded Application Program.

Syntax

Language Syntax
Fortran CALL ERRSET (ierno, inoal, inomes, itrace, iusadr, irange)
C and C++ errset (ierno, inoal, inomes, itrace, iusadr, irange);
On Entry
ierno
is the error number in the option table. The entry for ierno in the ESSL error option table is updated as indicated by the other arguments. Specified as: an integer; ierno must be one of the error numbers in the option table. For a list of these numbers, see Table 1.
inoal
indicates the number of errors allowed before each execution is terminated, where:

If inoal 0, the specification is ignored, and the number-of-errors option is not changed.

If inoal = 1, execution is terminated after one error.

If 2 inoal 255, then inoal specifies the number of errors allowed before each execution is terminated.

If inoal > 255, an unlimited number of errors is allowed.

Specified as: an integer, where:

If iusadr = ENOTRM, then 2 inoal 255.

inomes
indicates the number of messages to be printed, where:

If inomes < 0, all messages are suppressed.

If inomes = 0, the number-of-messages option is not changed.

If 0 < inomes 255, then inomes specifies the number of messages to be printed.

If inomes > 255, an unlimited number of error messages is allowed.

Specified as: an integer.

itrace
this argument is ignored, but must be specified.

Specified as: an integer where, itrace = 0, 1, or 2 (for migration purposes).

iusadr
indicates whether or not the ESSL error exit routine is to be invoked, where:

If iusadr is zero, the option table is not altered.

If iusadr is one, the option table is set to show no exit routine. Therefore, standard corrective action is to be used when continuing execution.

If iusadr = ENOTRM, the option table entry is set to the ESSL error exit routine ENOTRM. Therefore, the ENOTRM subroutine is to be invoked after the occurrence of the indicated errors. (ENOTRM must appear in an EXTERNAL statement in your program.)

Specified: as a 32-bit integer in a 32-bit integer, 32-bit pointer environment, or as the name of a subroutine; iusadr = 0, 1, or ENOTRM.

Specified: as a 64-bit integer in either a 32-bit integer, 64-bit pointer environment or a 64-bit integer, 64-bit pointer environment, or as the name of a subroutine; iusadr = 0_8, 1_8, or ENOTRM.

irange
indicates the range of errors to be updated in the ESSL error option table, where:

If irange < ierno, the parameter is ignored.

If irange ierno, the options specified for the other parameters are to be applied to the entire range of error conditions encompassed by ierno and irange.

Specified as: an integer.

Notes

  1. Examples of how to use ERRSET are provided in Coding programs.
  2. If you specify ENOTRM for iusadr, then inoal must be in the following range: 2 inoal 255.