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