HP Fortran Programmer's Guide (B3908-90031; September 2011)

Using Fortran directives
Compatibility directives
Chapter 9 217
Other conditions may limit the compiler's efforts to parallelize, such as the presence of the VD$ NOCONCUR
directive. Such conditions may prevent parallelization even if you use a directive to disable dependence
checking.
Controlling checks for side effects
The compiler will not parallelize a loop with an embedded call to a routine if the compiler finds that the
routine has side effects. However, if you know that a routine that is called inside of a loop does not have side
effects, you can insert the DIR$ NO SIDE EFFECTS directive in front of the loop to force the compiler to
ignore any side effects in the referenced routine when it determines whether to parallelize the loop.
This directive affects only the immediately following loop.
NOTE Using this directive to incorrectly assert that a routine has no side effects can result in
wrong answers when a call to the routine is embedded in a loop.
Cray's implementation of this directive requires that it precede any executable statement or statement
function. HP Fortran does not enforce this requirement.