### 8.238 `SYSTEM` — Execute a shell command

Description:
  Passes the command COMMAND to a shell (see `system(3)`). If argument STATUS is present, it contains the value returned by `system(3)`, which is presumably 0 if the shell command succeeded. Note that which shell is used to invoke the command is system-dependent and environment-dependent.

  This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit.

  Note that the `system` function need not be thread-safe. It is the responsibility of the user to ensure that `system` is not called concurrently.

Standard:
  GNU extension
Class:
  Subroutine, function
Syntax:

  `CALL SYSTEM(COMMAND [, STATUS])`
  `STATUS = SYSTEM(COMMAND)`

Arguments:

  COMMAND | Shall be of default `CHARACTER` type.
  STATUS | (Optional) Shall be of default `INTEGER` type.

See also:
  EXECUTE_COMMAND_LINE, which is part of the Fortran 2008 standard and should considered in new code for future portability.