Visible to Intel only — GUID: GUID-83ED81FA-E72B-4AD4-8243-D5FCB84F732A
Visible to Intel only — GUID: GUID-83ED81FA-E72B-4AD4-8243-D5FCB84F732A
SETERRORMODEQQ
Portability Subroutine: Sets the prompt mode for critical errors that by default generate system prompts.
Module
USE IFPORT
CALL SETERRORMODEQQ (pmode)
pmode |
(Input) LOGICAL(4). Flag that determines whether a prompt is displayed when a critical error occurs. |
Certain I/O errors cause the system to display an error prompt. For example, attempting to write to a disk drive with the drive door open generates an "Abort, Retry, Ignore" message. When the system starts up, system error prompting is enabled by default (pmode= .TRUE.). You can also enable system error prompts by calling SETERRORMODEQQ with pmode set to ERR$HARDPROMPT (defined in IFPORT.F90).
If prompt mode is turned off, critical errors that normally cause a system prompt are silent. Errors in I/O statements such as OPEN, READ, and WRITE fail immediately instead of being interrupted with prompts. This gives you more direct control over what happens when an error occurs. For example, you can use the ERR= specifier to designate an executable statement to branch to for error handling. You can also take a different action than that requested by the system prompt, such as opening a temporary file, giving a more informative error message, or exiting.
You can turn off prompt mode by setting pmode to .FALSE. or to the constant ERR$HARDFAIL (defined in IFPORT.F90).
Note that SETERRORMODEQQ affects only errors that generate a system prompt. It does not affect other I/O errors, such as writing to a nonexistent file or attempting to open a nonexistent file with STATUS='OLD'.
Example
!PROGRAM 1
! DRIVE B door open
OPEN (10, FILE = 'B:\NOFILE.DAT', ERR = 100)
! Generates a system prompt error here and waits for the user
! to respond to the prompt before continuing
100 WRITE(*,*) ' Continuing'
END
! PROGRAM 2
! DRIVE B door open
USE IFPORT
CALL SETERRORMODEQQ(.FALSE.)
OPEN (10, FILE = 'B:\NOFILE.DAT', ERR = 100)
! Causes the statement at label 100 to execute
! without system prompt
100 WRITE(*,*) ' Drive B: not available, opening &
&alternative drive.'
OPEN (10, FILE = 'C:\NOFILE.DAT')
END