1! { dg-do run }
2
3program main
4  integer, parameter :: n = 100
5  integer i, a(n), b(n)
6  integer x
7
8  do i = 1, n
9     b(i) = i
10  end do
11
12  !$acc parallel loop gang (static:*) num_gangs (10)
13  do i = 1, n
14     a(i) = b(i) + 0
15  end do
16  !$acc end parallel loop
17
18  call test (a, b, 0, n)
19
20  !$acc parallel loop gang (static:1) num_gangs (10)
21  do i = 1, n
22     a(i) = b(i) + 1
23  end do
24  !$acc end parallel loop
25
26  call test (a, b, 1, n)
27
28  !$acc parallel loop gang (static:2) num_gangs (10)
29  do i = 1, n
30     a(i) = b(i) + 2
31  end do
32  !$acc end parallel loop
33
34  call test (a, b, 2, n)
35
36  !$acc parallel loop gang (static:5) num_gangs (10)
37  do i = 1, n
38     a(i) = b(i) + 5
39  end do
40  !$acc end parallel loop
41
42  call test (a, b, 5, n)
43
44  !$acc parallel loop gang (static:20) num_gangs (10)
45  do i = 1, n
46     a(i) = b(i) + 20
47  end do
48  !$acc end parallel loop
49
50  call test (a, b, 20, n)
51
52  x = 5
53  !$acc parallel loop gang (static:0+x) num_gangs (10)
54  do i = 1, n
55     a(i) = b(i) + 5
56  end do
57  !$acc end parallel loop
58
59  call test (a, b, 5, n)
60
61  x = 10
62  !$acc parallel loop gang (static:x) num_gangs (10)
63  do i = 1, n
64     a(i) = b(i) + 10
65  end do
66  !$acc end parallel loop
67
68  call test (a, b, 10, n)
69end program main
70
71subroutine test (a, b, sarg, n)
72  integer n
73  integer a (n), b(n), sarg
74  integer i
75
76  do i = 1, n
77     if (a(i) .ne. b(i) + sarg) STOP 1
78  end do
79end subroutine test
80