27 lines
557 B
Fortran
27 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
|