The compiler detects some restrictions noted in the OpenMP* API Versions 2.0 and 2.5. When static verification is enabled, the compiler performs additional checks against restrictions in the OpenMP API, including checks for the correct use of the following:
Example: Incorrect usage of OpenMP directives
File gafort.f90 contains the following lines:
310 !$OMP PARALLEL DO ORDERED
311 ! create an array of locks
312 !$ DO i = 1,indmax
313 !$ CALL omp_init_lock(lck(i))
314 !$ ENDDO
315 !$OMP END PARALLEL DO
The parallel region has the clause ORDERED but has no corresponding ORDERED OpenMP directive. Static verification issues the following message:
gafort.f90(310): error #12204: [SV] ORDERED clause is used in the dynamic extent of non-ORDERED DO construct