mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-11 19:49:32 +00:00
25 lines
495 B
Fortran
25 lines
495 B
Fortran
! { dg-do run }
|
|
|
|
program e_53_2
|
|
!$omp declare target (fib)
|
|
integer :: x, fib
|
|
!$omp target map(from: x)
|
|
! Reduced from 25 to 23, otherwise execution runs out of thread stack on
|
|
! Nvidia Titan V.
|
|
x = fib (23)
|
|
!$omp end target
|
|
if (x /= fib (23)) STOP 1
|
|
end program
|
|
|
|
integer recursive function fib (n) result (f)
|
|
!$omp declare target
|
|
integer :: n
|
|
if (n <= 0) then
|
|
f = 0
|
|
else if (n == 1) then
|
|
f = 1
|
|
else
|
|
f = fib (n - 1) + fib (n - 2)
|
|
end if
|
|
end function
|