# O to P

This section describes language features that start with O or P.

Parent topic: A to Z Reference

- OBJCOMMENT
  General Compiler Directive: Specifies a library search path in an object file.
- OPEN
  Statement: Connects an external file to a unit, creates a new file and connects it to a unit, creates a preconnected file, or changes certain properties of a connection.
- OPTIONAL
  Statement and Attribute: Permits dummy arguments to be omitted in a procedure reference.
- OPTIMIZE and NOOPTIMIZE
  General Compiler Directive: Enables or disables optimizations for the program unit.
- OPTIONS Directive
  General Compiler Directive: Affects data alignment and warnings about data alignment. Also controls whether a target attribute is assigned to a section of program declarations.
- OPTIONS Statement
  Statement: Overrides or confirms the compiler options in effect for a program unit.
- OR
  Elemental Intrinsic Function (Generic): Performs a bitwise inclusive OR on its arguments.
- ORDERED
  OpenMP* Fortran Compiler Directive: Specifies a block of code that the threads in a team must execute in the natural order of the loop iterations, or, as a stand-alone directive, it specifies cross-iteration dependences in a doacross loop nest.
- OUT_OF_RANGE
  Elemental Intrinsic Function (Generic): Indicates if a value can be safely converted to a specified type.
- PACK Directive
  General Compiler Directive: Specifies the memory alignment of derived-type items (and record structure items).
- PACK Function
  Transformational Intrinsic Function (Generic): Takes elements from an array and packs them into a rank-one array under the control of a mask.
- PACKTIMEQQ
  Portability Subroutine: Packs time and date values.
- PARALLEL Directive (OpenMP*)
  OpenMP* Fortran Compiler Directive: Defines a parallel region.
- PARALLEL and NOPARALLEL General Directives
  General Compiler Directives: PARALLEL facilitates auto-parallelization by assisting the compiler's dependence analysis of the immediately following DO loop. NOPARALLEL prevents this auto-parallelization.
- PARALLEL DO
  OpenMP* Fortran Compiler Directive: Provides an abbreviated way to specify a parallel region containing a single DO directive.
- PARALLEL DO SIMD
  OpenMP* Fortran Compiler Directive: Specifies a PARALLEL construct that contains one DO SIMD construct and no other statement.
- PARALLEL LOOP
  OpenMP* Fortran Compiler Directive: Specifies a shortcut for indicating that a loop or loop nest can execute concurrently across multiple threads. This feature is only available for ifx.
- PARALLEL MASKED
  OpenMP* Fortran Compiler Directive: Creates a PARALLEL construct containing a MASKED construct, with no Fortran statements in the PARALLEL construct which are not also in the MASKED construct. This feature is only available for ifx.
- PARALLEL MASKED TASKLOOP
  OpenMP* Fortran Compiler Directive: Creates a PARALLEL construct containing a MASKED TASKLOOP construct, with no Fortran statements in the PARALLEL construct that are not also in the MASKED TASKLOOP construct. This feature is only available for ifx.
- PARALLEL MASKED TASKLOOP SIMD
  OpenMP* Fortran Compiler Directive: Creates a PARALLEL construct containing a MASKED TASKLOOP SIMD construct, with no Fortran statements in the PARALLEL construct that are not also in the MASKED TASKLOOP SIMD construct. This feature is only available for ifx.
- PARALLEL MASTER
  OpenMP* Fortran Compiler Directive: (Deprecated; see PARALLEL MASKED) Creates a PARALLEL construct containing a MASTER construct, with no Fortran statements in the PARALLEL construct that are not also in the MASTER construct. This feature is only available for ifx.
- PARALLEL MASTER TASKLOOP
  OpenMP* Fortran Compiler Directive: (Deprecated, replaced by PARALLEL MASKED TASKLOOP) Creates a PARALLEL construct containing a MASTER TASKLOOP construct, with no Fortran statements in the PARALLEL construct that are not also in the MASTER TASKLOOP construct. This feature is only available for ifx.
- PARALLEL MASTER TASKLOOP SIMD
  OpenMP* Fortran Compiler Directive: (Deprecated, replaced by PARALLEL MASKED TASKLOOP SIMD) Creates a PARALLEL construct containing a MASTER TASKLOOP SIMD construct, with no Fortran statements in the PARALLEL construct that are not also in the MASTER TASKLOOP SIMD construct. This feature is only available for ifx.
- PARALLEL SECTIONS
  OpenMP* Fortran Compiler Directive: Provides an abbreviated way to specify a parallel region containing a single SECTIONS directive. The semantics are identical to explicitly specifying a PARALLEL directive immediately followed by a SECTIONS directive.
- PARALLEL WORKSHARE
  OpenMP* Fortran Compiler Directive: Provides an abbreviated way to specify a parallel region containing a single WORKSHARE directive.
- PARAMETER
  Statement and Attribute: Defines a named constant.
- PARITY
  Transformational Intrinsic Function (Generic): Reduces an array by using an exclusive OR (.NEQV.) operation.
- PAUSE
  Statement: Temporarily suspends program execution and lets you execute operating system commands during the suspension. The PAUSE statement is a deleted feature in the Fortran Standard. Intel® Fortran fully supports features deleted in the Fortran Standard.
- PEEKCHARQQ
  Run-Time Function: Checks the keystroke buffer for a recent console keystroke and returns .TRUE. if there is a character in the buffer or .FALSE. if there is not.
- PERROR
  Run-Time Subroutine: Sends a message to the standard error stream, preceded by a specified string, for the last detected error.
- POINTER - Fortran
  Statement and Attribute: Specifies that an object or a procedure is a pointer (a dynamic variable). A pointer does not contain data, but points to a scalar or array variable where data is stored. A pointer has no initial storage set aside for it; memory storage is created for the pointer as a program runs.
- POINTER - Integer
  Statement: Establishes pairs of objects and pointers, in which each pointer contains the address of its paired object. This statement is different from the Fortran POINTER statement.
- POPCNT
  Elemental Intrinsic Function (Generic): Returns the number of 1 bits in the integer argument.
- POPPAR
  Elemental Intrinsic Function (Generic): Returns the parity of the integer argument.
- PRECISION
  Inquiry Intrinsic Function (Generic): Returns the decimal precision in the model representing real numbers with the same kind parameter as the argument.
- PREFETCH and NOPREFETCH
  General Compiler Directives: PREFETCH hints to the compiler to prefetch data into closer levels of cache. Prefetching data can minimize the effects of memory latency. NOPREFETCH disables data prefetching. These directives give fine-level control to the programmer to influence the prefetches generated by the compiler.
- PRESENT
  Inquiry Intrinsic Function (Generic): Returns whether or not an optional dummy argument is present, that is, whether it has an associated actual argument.
- PRINT
  Statement: Displays output on the screen. TYPE is a synonym for PRINT. All forms and rules for the PRINT statement also apply to the TYPE statement.
- PRIORITY
  Parallel Directive Clause: Specifies that the generated tasks have the indicated priority for execution.
- PRIVATE Clause
  Parallel Directive Clause: Declares one or more variables to be private to each thread in a team.
- PRIVATE Statement
  Statement and Attribute: Specifies that entities in a module can be accessed only within the module itself.
- PROCEDURE
  Statement: Declares procedure pointers, dummy procedures, and external procedures.
- PROCESSOR Clause
  Parallel Directive Clause: Tells the compiler to create a vector version of the routine for the specified processor. When running on a processor that does not match "cpuid", a scalar version will be invoked multiple times based on vector length.
- PRODUCT
  Transformational Intrinsic Function (Generic): Returns the product of all the elements in an entire array or in a specified dimension of an array.
- PROGRAM
  Statement: Identifies the program unit as a main program and gives it a name.
- PROTECTED
  Statement and Attribute: Specifies limitations on the use of module entities.
- PSECT
  General Compiler Directive: Modifies characteristics of a common block.
- PUBLIC
  Statement and Attribute: Specifies that entities in a module can be accessed from outside the module by specifying a USE statement.
- PURE
  Keyword: Asserts that a user-defined procedure has no side effects.
- PUTC
  Portability Function: Writes a character to Fortran external unit number 6.