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

23 lines
672 B
Fortran

! @@name: tasking.1f
! @@type: F-fixed
! @@compilable: yes
! @@linkable: no
! @@expect: success
RECURSIVE SUBROUTINE traverse ( P )
TYPE Node
TYPE(Node), POINTER :: left, right
END TYPE Node
TYPE(Node) :: P
IF (associated(P%left)) THEN
!$OMP TASK ! P is firstprivate by default
call traverse(P%left)
!$OMP END TASK
ENDIF
IF (associated(P%right)) THEN
!$OMP TASK ! P is firstprivate by default
call traverse(P%right)
!$OMP END TASK
ENDIF
CALL process ( P )
END SUBROUTINE