Intel® Fortran Compiler Classic and Intel® Fortran Compiler Developer Guide and Reference

ID 767251
Date 3/22/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Runtime Message Display and Format

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

The location where Fortran runtime messages are displayed depends on the project type:

Project Type

Where Messages Appear

Fortran Console application

Runtime error messages are displayed on the standard error device (unless redirected).

Fortran QuickWin and Fortran Standard Graphics application

Runtime error messages are displayed in a separate QuickWin message box.

Fortran Windows application

Runtime error messages are displayed in a separate message box.

For more information about project types, see Understanding Project Types.

Fortran runtime messages have the following format:

forrtl:  severity (number):   message-text

where:

  • forrtl: Identifies the source as the Intel® Fortran runtime system (Runtime Library or RTL).

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

  • number: The message number; see also the Methods of Handling Errors for I/O statements.

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

The following table explains the severity levels of runtime messages, in the order of greatest to least severity. The severity of the runtime 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 and/or the IOMSG specifier. (See Use the END EOR and ERR Branch Specifiers and Use the IOSTAT and IOMSG Specifiers, and Fortran Exit Codes and Methods of Handling Errors.)

Some Fortran intrinsics, the ALLOCATE and DEALLOCATE statements, and image control statements contain an optional STAT argument or specifier. If this is omitted and an error condition occurs during the operations, program execution terminates. If STAT is present and an error condition occurs, program execution continues and the STAT variable is assigned a non-zero value.

Some of these intrinsics and statements also have an optional ERRMSG argument or specifier. If specified and an error condition occurs during execution of the subroutine or statement, ERRMSG is assigned a descriptive message of what the error condition is that occurred. (See Use the STAT or STATUS argument, or STAT and ERRMSG Specifiers .)

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 runtime 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 runtime 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 many Intel® Fortran runtime error messages, see Runtime Default Error Processing and related topics.

Linux

In some cases, stack trace information is produced by the compiled code at runtime to provide details about the creation of temporary array items.

For example, the following program generates an error:

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 produces stack trace information for the program executable.

> ifx -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

Runtime Library Message Catalog File Location

The libifcore, libirc, and libm runtime 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*), or %PATH% (Windows*) environment variable. If the message catalog cannot be found, the message is displayed in English.

The following shows the file names of the message catalogs and their related text message files for each library:

Library

Linux

Windows

libifcore

Catalog file name: ifcore_msg.cat

Message file name: ifcore_msg.msg

Catalog file name: ifcore_msg.dll

Message file name: ifcore_msg.mc

libirc

Catalog file name: irc_msg.cat

Message file name: irc_msg.msg

Catalog file name: irc_msg.dll

Message file name: irc_msg.mc

libm

Catalog file name: libm.cat

Message file name: libm.msg

Catalog file name: libmUI.dll

Message file name: libmUI.mc