Intel® Fortran Compiler 16.0 User and Reference Guide
The Guided Auto Parallelism (GAP) messages provide advice that should improve optimizations.
The messages provide suggestions for:
Automatic parallelization of loop nests
Automatic vectorization of inner loops
Data transformation
You must decide whether to follow a particular suggestion. For example, if the advice is to apply a particular directive, you must understand the semantics of the directive and carefully consider whether it can be safely applied to the loop (or loop nest) in question.
If you apply the directive improperly, the compiler may generate incorrect code, causing the application to execute incorrectly.
If you do not fully understand the suggested advice, please refer to the relevant topics in the compiler documentation before applying that advice.
Once you apply the suggested advice, the compiler assumes that it is correct and it does not perform any checks or issue any warnings.
In general, messages that relate to loops tend to target vectorization and/or parallelization of loops. If you are not familiar with loop optimizations, please refer to the compiler documentation on this kind of optimization.
Optimizations can be helped or hindered when data is fetched from or stored to memory. Sometimes these fetch and store operations are referred to as reads and writes, but do not confuse these with READ and WRITE input/output statements. A READ statement (input) is only one of many ways to cause a store to memory, and a WRITE statement (output) is only one of many ways to cause a fetch from memory. Values in an expression must be fetched from (read from) memory before the expression can be evaluated. Variables on the left-hand side of an assignment will be the target of a store to (write to) memory. Actual arguments passed to called procedures can be fetched from and stored to memory.