File: resolve03.f90

package info (click to toggle)
llvm-toolchain-20 1%3A20.1.8-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 2,111,388 kB
  • sloc: cpp: 7,438,767; ansic: 1,393,871; asm: 1,012,926; python: 241,728; f90: 86,635; objc: 75,411; lisp: 42,144; pascal: 17,286; sh: 10,027; ml: 5,082; perl: 4,730; awk: 3,523; makefile: 3,349; javascript: 2,251; xml: 892; fortran: 672
file content (47 lines) | stat: -rw-r--r-- 1,271 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
! 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