1! PR fortran/40878
2! { dg-do compile }
3! { dg-options "-fopenmp" }
4
5subroutine test1
6  integer :: j, k
7  integer :: m = 2
8!$omp parallel do collapse(m) schedule (static,1) ! { dg-error "Constant expression required" }
9  do k = 1, 2
10    do j = 1, 6
11    enddo
12  enddo
13!$omp end parallel do
14end
15subroutine test2
16  integer :: j, k
17  integer :: m
18  m = 2
19!$omp parallel do collapse(m) schedule (static,1) ! { dg-error "Constant expression required" }
20  do k = 1, 2
21    do j = 1, 6
22    enddo
23  enddo
24!$omp end parallel do
25end
26subroutine test3
27  integer :: j, k
28  integer, parameter :: m = 0
29!$omp parallel do collapse(m) schedule (static,1) ! { dg-error "not constant positive integer" }
30  do k = 1, 2
31    do j = 1, 6
32    enddo
33  enddo
34!$omp end parallel do
35end
36subroutine test4
37  integer :: j, k
38  integer, parameter :: m = -2
39!$omp parallel do collapse(m) schedule (static,1) ! { dg-error "not constant positive integer" }
40  do k = 1, 2
41    do j = 1, 6
42    enddo
43  enddo
44!$omp end parallel do
45end
46subroutine test5
47  integer :: j, k
48!$omp parallel do collapse(0) schedule (static,1) ! { dg-error "not constant positive integer" }
49  do k = 1, 2
50    do j = 1, 6
51    enddo
52  enddo
53!$omp end parallel do
54end
55subroutine test6
56  integer :: j, k
57!$omp parallel do collapse(-1) schedule (static,1) ! { dg-error "not constant positive integer" }
58  do k = 1, 2
59    do j = 1, 6
60    enddo
61  enddo
62!$omp end parallel do
63end
64