! RUN: %python %S/../test_errors.py %s %flang -fopenmp
! 2.15.3 Although variables in common blocks can be accessed by use association
! or host association, common block names cannot. As a result, a common block
! name specified in a data-sharing attribute clause must be declared to be a
! common block in the same scoping unit in which the data-sharing attribute
! clause appears.
common /c/ a, b
integer a(3), b
common /tc/ x
integer x
!$omp threadprivate(/tc/)
A = 1
B = 2
block
!ERROR: COMMON block must be declared in the same scoping unit in which the OpenMP directive or clause appears
!$omp parallel shared(/c/)
a(1:2) = 3
B = 4
!$omp end parallel
end block
print *, a, b
!$omp parallel
block
!$omp single
x = 18
!ERROR: COMMON block must be declared in the same scoping unit in which the OpenMP directive or clause appears
!$omp end single copyprivate(/tc/)
end block
!$omp end parallel
! Common block names may be used inside nested OpenMP directives.
!$omp parallel
!$omp parallel copyin(/tc/)
x = x + 10
!$omp end parallel
!$omp end parallel
!$omp parallel
!$omp single
x = 18
!$omp end single copyprivate(/tc/)
!$omp end parallel
end