1! { dg-do compile } 2! { dg-options "-fopenmp" } 3 4program main 5 integer :: x, i, n 6 7 x = 0 8 n = 10 9 10 !$omp parallel 11 block 12 call do_work 13 end block 14 15 !$omp parallel 16 block 17 call do_work 18 end block 19 !$omp end parallel 20 21 !$omp teams 22 block 23 call do_work 24 end block 25 26 !$omp teams 27 block 28 call do_work 29 end block 30 !$omp end teams 31 32 !$omp masked 33 block 34 x = x + 1 35 end block 36 37 !$omp masked 38 block 39 x = x + 1 40 end block 41 !$omp end masked 42 43 !$omp scope 44 block 45 call do_work 46 end block 47 48 !$omp scope 49 block 50 call do_work 51 end block 52 !$omp end scope 53 54 !$omp single 55 block 56 x = x + 1 57 end block 58 59 !$omp single 60 block 61 x = x + 1 62 end block 63 !$omp end single 64 65 !$omp workshare 66 block 67 x = x + 1 68 end block 69 70 !$omp workshare 71 block 72 x = x + 1 73 end block 74 !$omp end workshare 75 76 !$omp task 77 block 78 call do_work 79 end block 80 81 !$omp task 82 block 83 call do_work 84 end block 85 !$omp end task 86 87 !$omp target data map(x) 88 block 89 x = x + 1 90 end block 91 92 !$omp target data map(x) 93 block 94 x = x + 1 95 end block 96 !$omp end target data 97 98 !$omp target 99 block 100 x = x + 1 101 end block 102 103 !$omp target 104 block 105 x = x + 1 106 end block 107 !$omp end target 108 109 !$omp parallel workshare 110 block 111 x = x + 1 112 end block 113 114 !$omp parallel workshare 115 block 116 x = x + 1 117 end block 118 !$omp end parallel workshare 119 120 !$omp parallel masked 121 block 122 x = x + 1 123 end block 124 125 !$omp parallel masked 126 block 127 x = x + 1 128 end block 129 !$omp end parallel masked 130 131 !$omp target parallel 132 block 133 call do_work 134 end block 135 136 !$omp target parallel 137 block 138 call do_work 139 end block 140 !$omp end target parallel 141 142 !$omp target teams 143 block 144 call do_work 145 end block 146 147 !$omp target teams 148 block 149 call do_work 150 end block 151 !$omp end target teams 152 153 !$omp critical 154 block 155 x = x + 1 156 end block 157 158 !$omp critical 159 block 160 x = x + 1 161 end block 162 !$omp end critical 163 164 !$omp taskgroup 165 block 166 x = x + 1 167 end block 168 169 !$omp taskgroup 170 block 171 x = x + 1 172 end block 173 !$omp end taskgroup 174 175 !$omp do ordered 176 do i = 1, n 177 !$omp ordered 178 block 179 call do_work 180 end block 181 end do 182 183 !$omp do ordered 184 do i = 1, n 185 !$omp ordered 186 block 187 call do_work 188 end block 189 !$omp end ordered 190 end do 191 192 !$omp master 193 block 194 x = x + 1 195 end block 196 197 !$omp master 198 block 199 x = x + 1 200 end block 201 !$omp end master 202 203 !$omp parallel master 204 block 205 x = x + 1 206 end block 207 208 !$omp parallel master 209 block 210 x = x + 1 211 end block 212 !$omp end parallel master 213 214end program 215