File: ordered02.f90

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (146 lines) | stat: -rw-r--r-- 4,217 bytes parent folder | download | duplicates (15)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
! RUN: %python %S/../test_errors.py %s %flang -fopenmp
! OpenMP Version 5.1
! Check OpenMP construct validity for the following directives:
! 2.19.9 Ordered Construct

subroutine sub1()
  integer :: i, j, N = 10
  real :: arrayA(10), arrayB(10)
  real, external :: foo, bar

  !$omp ordered
  arrayA(i) = foo(i)
  !$omp end ordered

  !$omp ordered threads
  arrayA(i) = foo(i)
  !$omp end ordered

  !$omp ordered simd
  arrayA(i) = foo(i)
  !$omp end ordered

  !$omp sections
  do i = 1, N
    !$omp ordered
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end sections

  !$omp do ordered
  do i = 1, N
    arrayB(i) = bar(i)
    !$omp ordered
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end do

  !$omp sections
  do i = 1, N
    !ERROR: An ORDERED directive with SIMD clause must be closely nested in a SIMD or worksharing-loop SIMD region
    !$omp ordered simd
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end sections

  !$omp do ordered
  do i = 1, N
    !$omp parallel
    do j = 1, N
      !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a SIMD, worksharing-loop, or worksharing-loop SIMD region
      !$omp ordered
      arrayA(i) = foo(i)
      !$omp end ordered
    end do
    !$omp end parallel
  end do
  !$omp end do

  !$omp do ordered
  do i = 1, N
    !$omp target parallel
    do j = 1, N
      !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a SIMD, worksharing-loop, or worksharing-loop SIMD region
      !$omp ordered
      arrayA(i) = foo(i)
      !$omp end ordered
    end do
    !$omp end target parallel
  end do
  !$omp end do

  !$omp do
  do i = 1, N
    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
    !$omp ordered
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end do

  !$omp do
  do i = 1, N
    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
    !$omp ordered threads
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end do

  !$omp do ordered(1)
  do i = 1, N
    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
    !$omp ordered
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end do

  !$omp do ordered(1)
  do i = 1, N
    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
    !$omp ordered threads
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end do

  !$omp parallel do ordered(1)
  do i = 1, N
    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
    !$omp ordered
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end parallel do

  !$omp parallel do ordered(1)
  do i = 1, N
    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
    !$omp ordered threads
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end parallel do

  !$omp target parallel do ordered(1)
  do i = 1, N
    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
    !$omp ordered
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end target parallel do

  !$omp target parallel do ordered(1)
  do i = 1, N
    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter
    !$omp ordered threads
    arrayA(i) = foo(i)
    !$omp end ordered
  end do
  !$omp end target parallel do
end