! Testing the Semantics of interchange !RUN: %python %S/../test_errors.py %s %flang -fopenmp -fopenmp-version=60 subroutine double_permutation implicit none integer i, j !ERROR: At most one PERMUTATION clause can appear on the INTERCHANGE directive !$omp interchange permutation(2,1) permutation(2,1) do i = 1, 5 do j = 1, 5 print *, i end do end do end subroutine subroutine zero_parameter implicit none integer i, j !ERROR: The parameter of the PERMUTATION clause must be a constant positive integer expression !$omp interchange permutation(0,1) do i = 1, 5 do j = 1, 5 print *, i end do end do end subroutine subroutine negative_parameter implicit none integer i, j !ERROR: The parameter of the PERMUTATION clause must be a constant positive integer expression !$omp interchange permutation(2,-1) do i = 1, 5 do j = 1, 5 print *, i end do end do end subroutine subroutine constant_parameter implicit none integer i, j, a !ERROR: Must be a constant value !$omp interchange permutation(2,a) do i = 1, 5 do j = 1, 5 print *, i end do end do end subroutine subroutine insufficient_loops implicit none integer i !ERROR: This construct requires a perfect nest of depth 2, but the associated nest is a perfect nest of depth 1 !ERROR: PERMUTATION clause was specified with 2 arguments !$omp interchange permutation(2, 1) do i = 1, 5 print *, i end do end subroutine subroutine minimum_parameters implicit none integer i, j !ERROR: The PERMUTATION clause must have a length of at least two !$omp interchange permutation(1) do i = 1, 5 do j = 1, 5 print *, i end do end do end subroutine subroutine parameter_number implicit none integer i, j !ERROR: Every integer from 1 must appear in the PERMUTATION clause !$omp interchange permutation(1,1) do i = 1, 5 do j = 1, 5 print *, i end do end do end subroutine subroutine parameter_number2 implicit none integer i, j !ERROR: Every integer from 1 must appear in the PERMUTATION clause !$omp interchange permutation(1,3) do i = 1, 5 do j = 1, 5 print *, i end do end do end subroutine