2021-08-17 09:11:55 -07:00

27 lines
698 B
Fortran

! @@name: tasking.1f
! @@type: F-free
! @@compilable: yes
! @@linkable: no
! @@expect: success
! @@version: omp_3.0
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