program test | |
use omp_lib | |
implicit none | |
integer(omp_event_handle_kind) :: oevent, ievent | |
integer :: i | |
integer, allocatable :: temp(:) | |
ALLOCATE(temp(5)) | |
!$omp parallel num_threads(3) | |
!$omp single | |
DO i=1,5 | |
!$omp task firstprivate(i) firstprivate(temp) detach(oevent) | |
temp(:) = 0; | |
temp(1) = -1; | |
!print *,temp | |
call omp_fulfill_event(oevent) | |
!$omp end task | |
ENDDO | |
!$omp taskwait | |
!$omp end single | |
!$omp end parallel | |
end program |