1! { dg-do run } 2! { dg-options "-fno-inline" } 3 4program main 5 implicit none 6 integer, parameter :: n = 10 7 integer :: a(n), i 8 integer, external :: fact 9 !$acc routine (fact) 10 !$acc parallel 11 !$acc loop 12 do i = 1, n 13 a(i) = fact (i) 14 end do 15 !$acc end parallel 16 do i = 1, n 17 if (a(i) .ne. fact(i)) STOP 1 18 end do 19end program main 20 21recursive function fact (x) result (res) 22 implicit none 23 !$acc routine (fact) 24 integer, intent(in) :: x 25 integer :: res 26 if (x < 1) then 27 res = 1 28 else 29 res = x * fact(x - 1) 30 end if 31end function fact 32