mirror of
https://github.com/OpenMP/Examples.git
synced 2025-04-22 22:01:23 +01:00
52 lines
1.1 KiB
Fortran
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
|