| !RUN: %python %S/../test_errors.py %s %flang -fopenmp | |
| ! OpenMP Version 4.5 | |
| ! 2.7.1 Ordered Clause | |
| program omp_doOrdered | |
| integer:: i,j | |
| !ERROR: This construct requires a perfect nest of depth 3, but the associated nest is a perfect nest of depth 2 | |
| !BECAUSE: ORDERED clause was specified with argument 3 | |
| !$omp do ordered(3) | |
| do i = 1,10 | |
| do j = 1, 10 | |
| print *, "hello" | |
| end do | |
| end do | |
| !$omp end do | |
| do i = 1,10 | |
| do j = 1, 10 | |
| !ERROR: This construct requires a perfect nest of depth 2, but the associated nest is a perfect nest of depth 1 | |
| !BECAUSE: ORDERED clause was specified with argument 2 | |
| !$omp do ordered(2) | |
| do k = 1, 10 | |
| print *, "hello" | |
| end do | |
| !$omp end do | |
| end do | |
| end do | |
| !ERROR: This construct requires a perfect nest of depth 2, but the associated nest is a perfect nest of depth 1 | |
| !BECAUSE: ORDERED clause was specified with argument 2 | |
| !$omp do ordered(2) | |
| do i = 1,10 | |
| !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter | |
| !$omp ordered | |
| do j = 1, 10 | |
| print *, "hello" | |
| end do | |
| !$omp end ordered | |
| end do | |
| !$omp end do | |
| !ERROR: This construct requires a perfect nest of depth 3, but the associated nest is a perfect nest of depth 2 | |
| !BECAUSE: ORDERED clause was specified with argument 3 | |
| !$omp do collapse(1) ordered(3) | |
| do i = 1,10 | |
| do j = 1, 10 | |
| print *, "hello" | |
| end do | |
| end do | |
| !$omp end do | |
| !$omp parallel num_threads(4) | |
| !ERROR: This construct requires a perfect nest of depth 2, but the associated nest is a perfect nest of depth 1 | |
| !BECAUSE: ORDERED clause was specified with argument 2 | |
| !$omp do ordered(2) collapse(1) | |
| do i = 1,10 | |
| !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter | |
| !$omp ordered | |
| do j = 1, 10 | |
| print *, "hello" | |
| end do | |
| !$omp end ordered | |
| end do | |
| !$omp end parallel | |
| end program omp_doOrdered |