module m | |
integer x, w | |
end module m | |
subroutine foo | |
use m | |
interface | |
logical function bar(i) | |
integer i | |
end function | |
end interface | |
integer y, i, z | |
logical tmp | |
y = 5 | |
!$omp teams num_teams(1) firstprivate (x) shared (y) shared (w) | |
!$omp parallel do firstprivate (x, y, z, w) lastprivate (conditional: x, y, z, w) | |
do i = 1, 64 | |
if (bar (i)) then | |
x = i; | |
y = i + 1; | |
z = i + 2; | |
w = i + 3; | |
end if | |
tmp = bar (y); | |
tmp = bar (z); | |
end do | |
!$omp end teams | |
end |