OpenMP-Examples/sources/Example_tasking.4f.f
2015-01-13 11:38:24 -08:00

21 lines
406 B
Fortran

! @@name: tasking.4f
! @@type: F-fixed
! @@compilable: yes
! @@linkable: no
! @@expect: success
RECURSIVE INTEGER FUNCTION fib(n) RESULT(res)
INTEGER n, i, j
IF ( n .LT. 2) THEN
res = n
ELSE
!$OMP TASK SHARED(i)
i = fib( n-1 )
!$OMP END TASK
!$OMP TASK SHARED(j)
j = fib( n-2 )
!$OMP END TASK
!$OMP TASKWAIT
res = i+j
END IF
END FUNCTION