module m
implicit none
integer i
contains
subroutine f_omp_parallel
!$omp parallel
!$omp parallel
!$omp end parallel
!$omp target
!$omp end target
!$omp target data map(i)
!$omp end target data
!$omp target update to(i)
!$omp target data map(i)
!$omp parallel
!$omp end parallel
!$omp target
!$omp end target
!$omp target data map(i)
!$omp end target data
!$omp target update to(i)
!$omp end target data
!$omp end parallel
end
subroutine f_omp_target
!$omp target
!$omp parallel
!$omp end parallel
!$omp end target
end
subroutine f_omp_target_data
!$omp target data map(i)
!$omp parallel
!$omp end parallel
!$omp target
!$omp end target
!$omp target data map(i)
!$omp end target data
!$omp target update to(i)
!$omp target data map(i)
!$omp parallel
!$omp end parallel
!$omp target
!$omp end target
!$omp target data map(i)
!$omp end target data
!$omp target update to(i)
!$omp end target data
!$omp end target data
end
end module m