# Run-Time Message Display and Format

When errors occur during execution (run time) of a program, the Intel® Visual Fortran run-time system issues diagnostic messages.

The location where Fortran run-time messages are displayed depends on the Understanding Project Types:

Project Type | Where Messages Appear
--- | ---
Fortran Console applications | Run-time error messages are displayed on the standard error device (unless redirected).
Fortran QuickWin and Fortran Standard Graphics applications | Run-time error messages are displayed in a separate QuickWin message box.
Fortran Windows applications | Run-time error messages are displayed in a separate message box.

Fortran run-time messages have the following format:

    forrtl:  severity (number):   message-text

where:

- forrtl: Identifies the source as the Intel® Fortran run-time system (Run-Time Library or RTL).

- severity: The severity levels are: severe , error, warning, or info

- number: This is the message number; see also the Using the IOSTAT Specifier and Fortran Exit Codes for I/O statements.

- message-text: Explains the event that caused the message.

The following table explains the severity levels of run-time messages, in the order of greatest to least severity. The severity of the run-time error message determines whether program execution continues:

Severity | Description
--- | ---
severe | Must be corrected. The program's execution is terminated when the error is encountered unless the program's I/O statements use the END, EOR, or ERR branch specifiers to transfer control, perhaps to a routine that uses the IOSTAT specifier. (See Using the END EOR and ERR Branch Specifiers and Using the IOSTAT Specifier and Fortran Exit Codes and Methods of Handling Errors.) For severe errors, stack trace information is produced by default, unless environment variable `FOR_DISABLE_STACK_TRACE` is set. When that environment variable is set, no stack trace information is produced. If compiler option traceback is specified on the command line, the stack trace information contains program counters set to symbolic information. Otherwise, the information only contains hexadecimal program counter information. In some cases stack trace information is also produced by the compiled code at run-time to provide details about the creation of array temporaries.
error | Should be corrected. The program might continue execution, but the output from this execution might be incorrect. For errors of severity type error, stack trace information is produced by default, unless the environment variable `FOR_DISABLE_STACK_TRACE` is set. When that environment variable is set, no stack trace information is produced. If the command line option traceback is specified, the stack trace information contains program counters set to symbolic information. Otherwise, the information only contains hexadecimal program counter information. In some cases stack trace information is also produced by the compiled code at run-time to provide details about the creation of array temporaries.
warning | Should be investigated. The program continues execution, but output from this execution might be incorrect.
info | For informational purposes only; the program continues.

For a description of each Intel® Fortran run-time error message, see Run-Time Default Error Processing and related topics.

The following example applies to Linux* and to macOS:

In some cases, stack trace information is produced by the compiled code at run time to provide details about the creation of array temporaries.

The following program generates an error at line 12:

    program ovf
    real*4 x(5),y(5)
    integer*4 i

     x(1) = -1e32
     x(2) = 1e38
     x(3) = 1e38
     x(4) = 1e38
     x(5) = -36.0

    do i=1,5
    y(i) = 100.0*(x(i))
    print *, 'x = ', x(i), ' x*100.0 = ',y(i)
    end do
    end

The following command line produces stack trace information for the program executable.

    > ifort -O0 -fpe0 -traceback ovf.f90 -o ovf.exe
    > ovf.exe

    x =  -1.0000000E+32  x*100.0
     =  -1.0000000E+34
    forrtl: error (72): floating overflow
    Image        PC         Routine       Line      Source
    ovf.exe      08049E4A   MAIN__            14    ovf.f90
    ovf.exe      08049F08   Unknown       Unknown   Unknown
    ovf.exe      400B3507   Unknown       Unknown   Unknown
    ovf.exe      08049C51   Unknown       Unknown   Unknown
    Abort

The following suppresses stack trace information because the `FOR_DISABLE_STACK_TRACE` environment variable is set.

    > setenv FOR_DISABLE_STACK_TRACE true
    > ovf.exe

    x =  -1.0000000E+32  x*100.0 =  -1.0000000E+34
    forrtl: error (72): floating overflow
    Abort

## Run-Time Library Message Catalog File Location

The libifcore, libirc, and libm run-time libraries ship message catalogs. When a message by one of these libraries is to be displayed, the library searches for its message catalog in a directory specified by either the NLSPATH (Linux* and macOS), or %PATH% (Windows*) environment variable. If the message catalog cannot be found, the message is displayed in English.

The names of the three message catalogs are as follows:

libifcore message catalogs and related text message files | Linux* and macOS | ifcore_msg.cat ifcore_msg.msg
Windows* | ifcore_msg.dll ifcore_msg.mc
libirc message catalogs and related text message files | Linux* and macOS | irc_msg.cat irc_msg.msg
Windows* | irc_msg.dll irc_msg.mc
libm message catalogs and related text message files | Linux* and macOS | libm.cat libm.msg
Windows* | libmUI.dll libmUI.mc

Parent topic: Run-Time Errors

## See Also

Understanding Project Types
Using the IOSTAT Specifier and Fortran Exit Codes
Using the END EOR and ERR Branch Specifiers
Methods of Handling Errors
Run-Time Default Error Processing