| !RUN: %python %S/../test_errors.py %s %flang -fopenmp | |
| ! None of the below tests should fail. | |
| subroutine none_shared() | |
| implicit none | |
| integer var(*) | |
| pointer(ivar,var) | |
| integer pointee(8) | |
| pointee(1) = 42 | |
| ivar = loc(pointee) | |
| !$omp parallel num_threads(1) default(none) shared(ivar) | |
| var(1) = var(1) / 2 | |
| print '(A24,I6)', 'none_shared', var(1) | |
| !$omp end parallel | |
| end subroutine | |
| subroutine none_private() | |
| implicit none | |
| integer var(*) | |
| pointer(ivar,var) | |
| integer pointee(8) | |
| pointee(1) = 42 | |
| ivar = loc(pointee) | |
| !$omp parallel num_threads(1) default(none) private(ivar) shared(pointee) | |
| ivar = loc(pointee) | |
| var(1) = var(1) / 2 | |
| print '(A24,I6)', 'none_private', var(1) | |
| !$omp end parallel | |
| end subroutine | |
| subroutine none_firstprivate() | |
| implicit none | |
| integer var(*) | |
| pointer(ivar,var) | |
| integer pointee(8) | |
| pointee(1) = 42 | |
| ivar = loc(pointee) | |
| !$omp parallel num_threads(1) default(none) firstprivate(ivar) | |
| var(1) = var(1) / 2 | |
| print '(A24,I6)', 'none_firstprivate', var(1) | |
| !$omp end parallel | |
| end subroutine | |
| subroutine private_shared() | |
| implicit none | |
| integer var(*) | |
| pointer(ivar,var) | |
| integer pointee(8) | |
| pointee(1) = 42 | |
| ivar = loc(pointee) | |
| !$omp parallel num_threads(1) default(private) shared(ivar) | |
| var(1) = var(1) / 2 | |
| print '(A24,I6)', 'private_shared', var(1) | |
| !$omp end parallel | |
| end subroutine | |
| subroutine private_firstprivate() | |
| implicit none | |
| integer var(*) | |
| pointer(ivar,var) | |
| integer pointee(8) | |
| pointee(1) = 42 | |
| ivar = loc(pointee) | |
| !$omp parallel num_threads(1) default(private) firstprivate(ivar) | |
| var(1) = var(1) / 2 | |
| print '(A24,I6)', 'private_firstprivate', var(1) | |
| !$omp end parallel | |
| end subroutine | |
| subroutine firstprivate_shared() | |
| implicit none | |
| integer var(*) | |
| pointer(ivar,var) | |
| integer pointee(8) | |
| pointee(1) = 42 | |
| ivar = loc(pointee) | |
| !$omp parallel num_threads(1) default(firstprivate) shared(ivar) | |
| var(1) = var(1) / 2 | |
| print '(A24,I6)', 'firstprivate_shared', var(1) | |
| !$omp end parallel | |
| end subroutine | |
| subroutine firstprivate_private() | |
| implicit none | |
| integer var(*) | |
| pointer(ivar,var) | |
| integer pointee(8) | |
| pointee(1) = 42 | |
| ivar = loc(pointee) | |
| !$omp parallel num_threads(1) default(firstprivate) private(ivar) shared(pointee) | |
| ivar = loc(pointee) | |
| var(1) = var(1) / 2 | |
| print '(A24,I6)', 'firstprivate_private', var(1) | |
| !$omp end parallel | |
| end subroutine | |
| subroutine loop_common_none_shared() | |
| implicit none | |
| common /cmn/ mp | |
| real a(1) | |
| pointer(mp,a) | |
| integer i | |
| !$omp parallel num_threads(1) default(none) shared(mp) | |
| !$omp do | |
| do i = 1,10 | |
| a(1) = a(1) / 2 | |
| end do | |
| print '(A24,I6)', 'none_shared', a(1) | |
| !$omp end parallel | |
| end subroutine | |
| subroutine loop_common_firstprivate() | |
| implicit none | |
| common /cmn/ ptr | |
| real a(1) | |
| pointer(ptr,a) | |
| integer i | |
| !$omp parallel num_threads(1) default(firstprivate) shared(ptr) | |
| !$omp do | |
| do i = 1,10 | |
| a(1) = a(1) / 2 | |
| end do | |
| print '(A24,I6)', 'none_shared', a(1) | |
| !$omp end parallel | |
| end subroutine | |
| subroutine loop_common_private() | |
| implicit none | |
| common /cmn/ ptr | |
| real a(1) | |
| pointer(ptr,a) | |
| integer i | |
| !$omp parallel num_threads(1) default(firstprivate) private(ptr) | |
| !$omp do | |
| do i = 1,10 | |
| a(1) = a(1) / 2 | |
| end do | |
| print '(A24,I6)', 'none_shared', a(1) | |
| !$omp end parallel | |
| end subroutine |