1! { dg-do compile }
2
3integer :: i, j, k
4integer :: x(5), y(2,5)
5
6!$omp parallel do private(i)
7do i = 1, 5
8  x(i) = 42
9end do
10
11!$omp parallel do lastprivate(i)
12do i = 1, 5
13  x(i) = 42
14end do
15
16
17!$omp simd private(i)
18do i = 1, 5
19  x(i) = 42
20end do
21
22!$omp simd linear(i)
23do i = 1, 5
24  x(i) = 42
25end do
26
27!$omp simd lastprivate(i)
28do i = 1, 5
29  x(i) = 42
30end do
31
32
33!$omp simd private(i) lastprivate(j) collapse(2)
34do i = 1, 5
35  do j = 1, 2
36    y(j, i) = 52
37  end do
38end do
39
40!$omp simd lastprivate(i) private(j) collapse(2)
41do i = 1, 5
42  do j = 1, 2
43    y(j, i) = 52
44  end do
45end do
46
47!$omp parallel do firstprivate(i)
48do i = 1, 5  ! { dg-error "PARALLEL DO iteration variable present on clause other than PRIVATE or LASTPRIVATE" }
49  x(i) = 42
50end do
51
52!$omp parallel do simd firstprivate(i)
53do i = 1, 5  ! { dg-error "PARALLEL DO SIMD iteration variable present on clause other than PRIVATE, LASTPRIVATE or LINEAR" }
54  x(i) = 42
55end do
56
57!$omp simd linear(i) collapse(2)
58do i = 1, 5  ! { dg-error "SIMD iteration variable present on clause other than PRIVATE or LASTPRIVATE" }
59  do j = 1, 2
60    y(j, i) = 52
61  end do
62end do
63
64
65end
66