Under automatic parallelization, the compilers do not parallelize a loop if:
The DO loop is nested inside another DO loop that is parallelized
Flow control allows jumping out of the DO loop
A user-level subprogram is invoked inside the loop
An I/O statement is in the loop
Calculations within the loop change an aliased scalar variable