The values of the loop control parameters of the DO loop associated with a DO directive must be the same for all the threads in the team. You cannot branch out of a DO loop associated with a DO directive. If used, the END DO directive must appear immediately after the end of the loop. If you do not specify an END DO directive, an END DO directive is assumed at the end of the DO loop. Threads that finish early proceed straight to the instruction following the loop without waiting for the other members of the team to finish the DO directive.
Parallel DO loop control variables are block-level entities within the DO loop.
DO directives must be encountered by all threads in a team or by none at all. It must also be encountered in the same order by all threads in a team. In the following example, the loop iteration variable is private by default, and it is not necessary to explicitly declare it. Ordered sections are useful for sequentially ordering the output from work that is done in parallel.