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