Intel® Fortran Compiler 17.0 Developer Guide and Reference

Rules for Loop Directives that Affect Array Assignment Statements

When certain loop directives precede an array assignment statement, they affect the implicit loops that are generated by the compiler.

The following loop directives can affect array assignment statements:

BLOCK_LOOP

NOPARALLEL

CODE_ALIGN

NOUNROLL

DISTRIBUTE POINT

NOUNROLL_AND_JAM

FORCEINLINE

NOVECTOR

INLINE

PARALLEL

IVDEP

SIMD

LOOP COUNT

UNROLL

NOBLOCK_LOOP

UNROLL_AND_JAM

NOFUSION

VECTOR

NOINLINE

 

The PREFETCH and NOPREFETCH directives also affect array assignment statements, but they are only available on Intel® MIC Architecture.

Usually only one of the general directives can precede the array assignment statement (one-dimensional-array = expression) to affect it. The BLOCK_LOOP and NOBLOCK_LOOP directives may precede array assignment statements with any rank variable on the left-hand-side of the assignment.

Other rules may apply to the general directives. For more information, see the description of each directive.

Examples

Consider the following:

             REAL A(10), B(10)
             ...
        !DIR$ IVDEP
             A = B + 3

This has the same effect as writing the following explicit loop:

       !DIR$ IVDEP
             DO I = 1, 10
                A (I) = B (I) + 3
             END DO

See Also