OpenMP-Examples/tasking/sources/task_dep.13.f90
2022-11-04 09:35:42 -07:00

52 lines
1.1 KiB
Fortran

! @@name: task_dep.13
! @@type: F-free
! @@operation: run
! @@expect: success
! @@version: omp_5.1
program main
integer :: a=1, d=1
!$omp parallel masked num_threads(5)
!$omp task !! Task 1
write(*,'("T1")')
!$omp end task
!$omp task depend(out: a) !! Task 2
a=a+1
write(*,'("T2 a=",i1)') a
!$omp end task
!$omp task depend(out: d) !! Task 3
d=d+1
write(*,'("T3 d=",i1)') d
!$omp end task
!$omp task depend(inout: omp_all_memory) !! Task 4
a=a+1; d=d+1
write(*,'("T4 a=",i1," d=",i1)') a, d
!$omp end task
!$omp task !! Task 5
write(*,'("T5")')
!$omp end task
!$omp task depend(in: a,d) !! Task 6
a=a+1; d=d+1
write(*,'("T6 a=",i1," d=",i1)') a, d
!$omp end task
!$omp end parallel masked
end program
! OUTPUT: ordered {T2,T3 any order}, {T4}, {T6}
! T2 a=2
! T3 d=2
! T4 a=3 d=3
! T6 a=4 d=4
! OUTPUT: unordered (can appear interspersed in ordered output)
! T1
! T5