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

ID 767251
Date 3/22/2024
Public
Document Table of Contents

EXECUTE_COMMAND_LINE

Intrinsic Subroutine: Executes a command line.

Syntax

CALL EXECUTE_COMMAND_LINE (command [,wait,exitstat,cmdstat,cmdmsg])

command

(Input) Must be a scalar of type default character. It is the command line to be executed. The interpretation is processor dependent.

wait

(Input; optional) Must be a scalar of type logical. If wait is present with the value FALSE and the processor supports asynchronous execution of the command, the command is executed asynchronously; otherwise it is executed synchronously.

exitstat

(Inout; optional) Must be a scalar of type integer. If the command is executed synchronously, exitstat is assigned the value of the processor-dependent exit status of the executed command. Otherwise, the value of exitstat is unchanged.

cmdstat

(Output; optional) Must be a scalar of type integer. It is assigned one of the following values:

  • -1 if the processor does not support command line execution

  • A processor-dependent positive value if an error condition occurs

  • -2 if no error condition occurs but wait is present with the value FALSE and the processor does not support asynchronous execution.

  • 0 otherwise

cmdmsg

(Inout; optional) Must be a scalar of type default character. If an error condition occurs, cmdmsg is assigned a processor-dependent explanatory message. Otherwise, cmdmsg is unchanged.

Description

When command is executed synchronously, EXECUTE_COMMAND_LINE returns after the command line has completed execution. Otherwise, EXECUTE_COMMAND_LINE returns without waiting.

If a condition occurs that would assign a nonzero value to cmdstat but cmdstat is not present, execution is terminated.

NOTE:

If the application has a standard console window, command output will appear in that window. On Windows* systems, if the application does not have a console window, including QuickWin applications, command output will not be shown.

Example

INTEGER :: CSTAT, ESTAT
CHARACTER(100) :: CMSG
CALL EXECUTE_COMMAND_LINE ("dir > dir.txt", EXITSTAT=ESTAT, &
           CMDSTAT=CSTAT, CMDMSG=CMSG)
IF (CSTAT > 0) THEN
  PRINT *, "Command execution failed with error ", TRIM(CMSG)
ELSE IF (CSTAT < 0) THEN
  PRINT *, "Command execution not supported"
ELSE
  PRINT *, "Command completed with status ", ESTAT
END IF
END

In the above example, EXECUTE_COMMAND_LINE is called to execute a "dir" command with output redirected to a file. Since the WAIT argument was omitted, the call waits for the command to complete and the command's exit status is returned in ESTAT. If the command cannot be executed, the error message returned in CMSG is displayed, but note that this is not based on the success or failure of the command itself.