The XL Fortran compiler provides a compiler option, -qsmp=auto, which instructs the compiler to automatically parallelize Fortran DO loops. This includes both DO loops coded explicitly by the user and DO loops generated by the compiler for array language constructs (for example, loops generated by WHERE, FORALL, and for array assignment). However, the compiler will only automatically parallelize loops that are independent; that is, loops whose iterations can be computed independently of any other iteration.
While automatic parallelization will be sufficient for some users, the SMP and thread-safing directives give you the option of providing additional information about the source code to the compiler. The compiler will use information given to it either during automatic parallelization, or to determine that certain parts of the program should be parallelized. For example, the PARALLEL DO directive specifies that the DO loop that is immediately following it should be run in parallel.
In XL Fortran these are the SMP and thread-safing directives that you can use: