28 lines
557 B
Fortran
28 lines
557 B
Fortran
|
! { dg-do run }
|
||
|
|
||
|
program tasktest
|
||
|
use omp_lib
|
||
|
integer :: i, j
|
||
|
common /tasktest_j/ j
|
||
|
j = 0
|
||
|
!$omp parallel private (i)
|
||
|
i = omp_get_thread_num ()
|
||
|
if (i.lt.2) then
|
||
|
!$omp task if (.false.) default(firstprivate)
|
||
|
call subr (i + 1)
|
||
|
!$omp end task
|
||
|
end if
|
||
|
!$omp end parallel
|
||
|
if (j.gt.0) stop 1
|
||
|
contains
|
||
|
subroutine subr (i)
|
||
|
use omp_lib
|
||
|
integer :: i, j
|
||
|
common /tasktest_j/ j
|
||
|
if (omp_get_thread_num ().ne.(i - 1)) then
|
||
|
!$omp atomic
|
||
|
j = j + 1
|
||
|
end if
|
||
|
end subroutine subr
|
||
|
end program tasktest
|