1! { dg-do run } 2! Don't cycle by default through all options, just test -O0 and -O2, 3! as this is quite large test. 4! { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O0" "-O2" } } 5 6module m 7 type dl 8 integer :: a, b 9 integer, allocatable :: c(:,:) 10 integer :: d, e 11 integer, allocatable :: f 12 end type 13 type dt 14 integer :: g 15 type (dl), allocatable :: h(:) 16 integer :: i 17 type (dl) :: j(2, 2) 18 type (dl), allocatable :: k 19 end type 20contains 21 subroutine ver_dl (obj, val, c, cl1, cu1, cl2, cu2, f) 22 type (dl), intent (in) :: obj 23 integer, intent (in) :: val, cl1, cu1, cl2, cu2 24 logical, intent (in) :: c, f 25 if ((c .neqv. allocated (obj%c)) .or. (f .neqv. allocated (obj%f))) call abort 26 if (c) then 27 if (lbound (obj%c, 1) /= cl1 .or. ubound (obj%c, 1) /= cu1) call abort 28 if (lbound (obj%c, 2) /= cl2 .or. ubound (obj%c, 2) /= cu2) call abort 29 end if 30 if (val /= 0) then 31 if (obj%a /= val .or. obj%b /= val) call abort 32 if (obj%d /= val .or. obj%e /= val) call abort 33 if (c) then 34 if (any (obj%c /= val)) call abort 35 end if 36 if (f) then 37 if (obj%f /= val) call abort 38 end if 39 end if 40 end subroutine ver_dl 41 subroutine ver_dt (obj, val, h, hl, hu, k, c, cl1, cu1, cl2, cu2, f) 42 type (dt), intent (in) :: obj 43 integer, intent (in) :: val, hl, hu, cl1, cu1, cl2, cu2 44 logical, intent (in) :: h, k, c, f 45 integer :: i, j 46 if ((h .neqv. allocated (obj%h)) .or. (k .neqv. allocated (obj%k))) call abort 47 if (h) then 48 if (lbound (obj%h, 1) /= hl .or. ubound (obj%h, 1) /= hu) call abort 49 do i = hl, hu 50 call ver_dl (obj%h(i), val, c, cl1, cu1, cl2, cu2, f) 51 end do 52 end if 53 do i = 1, 2 54 do j = 1, 2 55 call ver_dl (obj%j(i, j), val, c, cl1, cu1, cl2, cu2, f) 56 end do 57 end do 58 if (k) call ver_dl (obj%k, val, c, cl1, cu1, cl2, cu2, f) 59 if (val /= 0) then 60 if (obj%g /= val .or. obj%i /= val) call abort 61 end if 62 end subroutine ver_dt 63 subroutine alloc_dl (obj, val, c, cl1, cu1, cl2, cu2, f) 64 type (dl), intent (inout) :: obj 65 integer, intent (in) :: val, cl1, cu1, cl2, cu2 66 logical, intent (in) :: c, f 67 if (val /= 0) then 68 obj%a = val 69 obj%b = val 70 obj%d = val 71 obj%e = val 72 end if 73 if (allocated (obj%c)) deallocate (obj%c) 74 if (c) then 75 allocate (obj%c(cl1:cu1, cl2:cu2)) 76 if (val /= 0) obj%c = val 77 end if 78 if (f) then 79 if (.not.allocated (obj%f)) allocate (obj%f) 80 if (val /= 0) obj%f = val 81 else 82 if (allocated (obj%f)) deallocate (obj%f) 83 end if 84 end subroutine alloc_dl 85 subroutine alloc_dt (obj, val, h, hl, hu, k, c, cl1, cu1, cl2, cu2, f) 86 type (dt), intent (inout) :: obj 87 integer, intent (in) :: val, hl, hu, cl1, cu1, cl2, cu2 88 logical, intent (in) :: h, k, c, f 89 integer :: i, j 90 if (val /= 0) then 91 obj%g = val 92 obj%i = val 93 end if 94 if (allocated (obj%h)) deallocate (obj%h) 95 if (h) then 96 allocate (obj%h(hl:hu)) 97 do i = hl, hu 98 call alloc_dl (obj%h(i), val, c, cl1, cu1, cl2, cu2, f) 99 end do 100 end if 101 do i = 1, 2 102 do j = 1, 2 103 call alloc_dl (obj%j(i, j), val, c, cl1, cu1, cl2, cu2, f) 104 end do 105 end do 106 if (k) then 107 if (.not.allocated (obj%k)) allocate (obj%k) 108 call alloc_dl (obj%k, val, c, cl1, cu1, cl2, cu2, f) 109 else 110 if (allocated (obj%k)) deallocate (obj%k) 111 end if 112 end subroutine alloc_dt 113end module m 114 use m 115 type (dt), allocatable :: y 116 call foo (y) 117contains 118 subroutine foo (y) 119 use m 120 type (dt), allocatable :: x, y, z(:,:) 121 logical, parameter :: F = .false. 122 logical, parameter :: T = .true. 123 logical :: l 124!$omp parallel private (x, y, z) 125 if (allocated (x) .or. allocated (y) .or. allocated (z)) call abort 126!$omp end parallel 127!$omp parallel firstprivate (x, y, z) 128 if (allocated (x) .or. allocated (y) .or. allocated (z)) call abort 129!$omp end parallel 130 l = F 131!$omp parallel sections lastprivate (x, y, z) firstprivate (l) 132!$omp section 133 if (.not. l) then 134 if (allocated (x) .or. allocated (y) .or. allocated (z)) call abort 135 end if 136!$omp section 137 if (.not. l) then 138 if (allocated (x) .or. allocated (y) .or. allocated (z)) call abort 139 end if 140 allocate (x, y, z(-3:-3,2:3)) 141 call alloc_dt (x, 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 142 call ver_dt (x, 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 143 call alloc_dt (y, 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 144 call ver_dt (y, 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 145 call alloc_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 146 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 147 call alloc_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 148 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 149!$omp section 150!$omp end parallel sections 151 if (.not.allocated (x) .or. .not.allocated (y)) call abort 152 if (.not.allocated (z)) call abort 153 if (lbound (z, 1) /= -3 .or. ubound (z, 1) /= -3) call abort 154 if (lbound (z, 2) /= 2 .or. ubound (z, 2) /= 3) call abort 155 call ver_dt (x, 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 156 call ver_dt (y, 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 157 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 158 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 159 call alloc_dt (x, 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 160 call ver_dt (x, 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 161 call alloc_dt (y, 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 162 call ver_dt (y, 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 163 call alloc_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 164 call ver_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 165 call alloc_dt (z(-3,3), 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 166 call ver_dt (z(-3,3), 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 167!$omp parallel private (x, y, z) 168 call ver_dt (x, 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 169 call alloc_dt (x, 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 170 call ver_dt (x, 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 171 call ver_dt (y, 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 172 call alloc_dt (y, 14, T, 3, 4, F, T, 1, 1, 2, 4, T) 173 call ver_dt (y, 14, T, 3, 4, F, T, 1, 1, 2, 4, T) 174 call ver_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 175 call alloc_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 176 call ver_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 177 call ver_dt (z(-3,3), 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 178 call alloc_dt (z(-3,3), 14, T, 3, 4, F, T, 1, 1, 2, 4, T) 179 call ver_dt (z(-3,3), 14, T, 3, 4, F, T, 1, 1, 2, 4, T) 180!$omp end parallel 181 call ver_dt (x, 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 182 call alloc_dt (x, 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 183 call ver_dt (y, 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 184 call alloc_dt (y, 14, T, 3, 4, F, T, 1, 1, 2, 4, T) 185 call ver_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 186 call alloc_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 187 call ver_dt (z(-3,3), 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 188 call alloc_dt (z(-3,3), 14, T, 3, 4, F, T, 1, 1, 2, 4, T) 189!$omp parallel private (x, y, z) 190 call ver_dt (x, 0, T, -3, -1, T, T, -1, -1, 2, 3, T) 191 call ver_dt (y, 0, T, 3, 4, F, T, 1, 1, 2, 4, T) 192 deallocate (x%h, x%k) 193 deallocate (y%h) 194 allocate (y%k) 195 call ver_dt (z(-3,2), 0, T, -3, -1, T, T, -1, -1, 2, 3, T) 196 call ver_dt (z(-3,3), 0, T, 3, 4, F, T, 1, 1, 2, 4, T) 197 deallocate (z(-3,2)%h, z(-3,2)%k) 198 deallocate (z(-3,3)%h) 199 allocate (z(-3,3)%k) 200!$omp end parallel 201 call alloc_dt (x, 5, T, 1, 2, F, T, 2, 3, -2, -2, F) 202 call alloc_dt (y, 15, F, 0, 0, T, T, 2, 2, 2, 2, T) 203 call alloc_dt (z(-3,2), 5, T, 1, 2, F, T, 2, 3, -2, -2, F) 204 call alloc_dt (z(-3,3), 15, F, 0, 0, T, T, 2, 2, 2, 2, T) 205!$omp parallel firstprivate (x, y, z) 206 call ver_dt (x, 5, T, 1, 2, F, T, 2, 3, -2, -2, F) 207 call alloc_dt (x, 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 208 call ver_dt (x, 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 209 call ver_dt (y, 15, F, 0, 0, T, T, 2, 2, 2, 2, T) 210 call alloc_dt (y, 4, T, 3, 4, T, T, 1, 1, 2, 4, T) 211 call ver_dt (y, 4, T, 3, 4, T, T, 1, 1, 2, 4, T) 212 call ver_dt (z(-3,2), 5, T, 1, 2, F, T, 2, 3, -2, -2, F) 213 call alloc_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 214 call ver_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 215 call ver_dt (z(-3,3), 15, F, 0, 0, T, T, 2, 2, 2, 2, T) 216 call alloc_dt (z(-3,3), 4, T, 3, 4, T, T, 1, 1, 2, 4, T) 217 call ver_dt (z(-3,3), 4, T, 3, 4, T, T, 1, 1, 2, 4, T) 218!$omp end parallel 219 call ver_dt (x, 5, T, 1, 2, F, T, 2, 3, -2, -2, F) 220 call alloc_dt (x, 4, F, 0, 0, F, F, 0, 0, 0, 0, F) 221 call ver_dt (y, 15, F, 0, 0, T, T, 2, 2, 2, 2, T) 222 call alloc_dt (y, 16, F, 0, 0, F, F, 0, 0, 0, 0, F) 223 call ver_dt (z(-3,2), 5, T, 1, 2, F, T, 2, 3, -2, -2, F) 224 call alloc_dt (z(-3,2), 4, F, 0, 0, F, F, 0, 0, 0, 0, F) 225 call ver_dt (z(-3,3), 15, F, 0, 0, T, T, 2, 2, 2, 2, T) 226 call alloc_dt (z(-3,3), 16, F, 0, 0, F, F, 0, 0, 0, 0, F) 227!$omp parallel firstprivate (x, y, z) 228 call ver_dt (x, 4, F, 0, 0, F, F, 0, 0, 0, 0, F) 229 call alloc_dt (x, 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 230 call ver_dt (x, 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 231 call ver_dt (y, 16, F, 0, 0, F, F, 0, 0, 0, 0, F) 232 call alloc_dt (y, 17, T, 1, 2, F, T, 2, 2, 3, 3, F) 233 call ver_dt (y, 17, T, 1, 2, F, T, 2, 2, 3, 3, F) 234 call ver_dt (z(-3,2), 4, F, 0, 0, F, F, 0, 0, 0, 0, F) 235 call alloc_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 236 call ver_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T) 237 call ver_dt (z(-3,3), 16, F, 0, 0, F, F, 0, 0, 0, 0, F) 238 call alloc_dt (z(-3,3), 17, T, 1, 2, F, T, 2, 2, 3, 3, F) 239 call ver_dt (z(-3,3), 17, T, 1, 2, F, T, 2, 2, 3, 3, F) 240!$omp end parallel 241 call ver_dt (x, 4, F, 0, 0, F, F, 0, 0, 0, 0, F) 242 call ver_dt (y, 16, F, 0, 0, F, F, 0, 0, 0, 0, F) 243 call alloc_dt (y, 18, T, 0, 1, T, T, 0, 1, 0, 1, T) 244 call ver_dt (z(-3,2), 4, F, 0, 0, F, F, 0, 0, 0, 0, F) 245 call ver_dt (z(-3,3), 16, F, 0, 0, F, F, 0, 0, 0, 0, F) 246 call alloc_dt (z(-3,3), 18, T, 0, 1, T, T, 0, 1, 0, 1, T) 247 l = F 248!$omp parallel sections lastprivate (x, y, z) firstprivate (l) 249!$omp section 250 if (l) then 251 call ver_dt (x, 9, T, 1, 1, F, F, 0, 0, 0, 0, T) 252 call ver_dt (y, 21, F, 0, 0, T, T, 1, 2, 3, 4, T) 253 call ver_dt (z(-3,2), 9, T, 1, 1, F, F, 0, 0, 0, 0, T) 254 call ver_dt (z(-3,3), 21, F, 0, 0, T, T, 1, 2, 3, 4, T) 255 else 256 call ver_dt (x, 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 257 call ver_dt (y, 0, T, 0, 1, T, T, 0, 1, 0, 1, T) 258 call ver_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 259 call ver_dt (z(-3,3), 0, T, 0, 1, T, T, 0, 1, 0, 1, T) 260 end if 261 l = T 262 call alloc_dt (x, 7, T, 1, 1, T, T, 1, 2, 3, 3, T) 263 call ver_dt (x, 7, T, 1, 1, T, T, 1, 2, 3, 3, T) 264 call alloc_dt (y, 20, T, 0, 0, F, T, 2, 2, 3, 4, F) 265 call ver_dt (y, 20, T, 0, 0, F, T, 2, 2, 3, 4, F) 266 call alloc_dt (z(-3,2), 7, T, 1, 1, T, T, 1, 2, 3, 3, T) 267 call ver_dt (z(-3,2), 7, T, 1, 1, T, T, 1, 2, 3, 3, T) 268 call alloc_dt (z(-3,3), 20, T, 0, 0, F, T, 2, 2, 3, 4, F) 269 call ver_dt (z(-3,3), 20, T, 0, 0, F, T, 2, 2, 3, 4, F) 270!$omp section 271 if (l) then 272 call ver_dt (x, 7, T, 1, 1, T, T, 1, 2, 3, 3, T) 273 call ver_dt (y, 20, T, 0, 0, F, T, 2, 2, 3, 4, F) 274 call ver_dt (z(-3,2), 7, T, 1, 1, T, T, 1, 2, 3, 3, T) 275 call ver_dt (z(-3,3), 20, T, 0, 0, F, T, 2, 2, 3, 4, F) 276 else 277 call ver_dt (x, 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 278 call ver_dt (y, 0, T, 0, 1, T, T, 0, 1, 0, 1, T) 279 call ver_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F) 280 call ver_dt (z(-3,3), 0, T, 0, 1, T, T, 0, 1, 0, 1, T) 281 end if 282 l = T 283 call alloc_dt (x, 9, T, 1, 1, F, F, 0, 0, 0, 0, T) 284 call ver_dt (x, 9, T, 1, 1, F, F, 0, 0, 0, 0, T) 285 call alloc_dt (y, 21, F, 0, 0, T, T, 1, 2, 3, 4, T) 286 call ver_dt (y, 21, F, 0, 0, T, T, 1, 2, 3, 4, T) 287 call alloc_dt (z(-3,2), 9, T, 1, 1, F, F, 0, 0, 0, 0, T) 288 call ver_dt (z(-3,2), 9, T, 1, 1, F, F, 0, 0, 0, 0, T) 289 call alloc_dt (z(-3,3), 21, F, 0, 0, T, T, 1, 2, 3, 4, T) 290 call ver_dt (z(-3,3), 21, F, 0, 0, T, T, 1, 2, 3, 4, T) 291!$omp section 292!$omp end parallel sections 293 call ver_dt (x, 9, T, 1, 1, F, F, 0, 0, 0, 0, T) 294 call ver_dt (y, 21, F, 0, 0, T, T, 1, 2, 3, 4, T) 295 call ver_dt (z(-3,2), 9, T, 1, 1, F, F, 0, 0, 0, 0, T) 296 call ver_dt (z(-3,3), 21, F, 0, 0, T, T, 1, 2, 3, 4, T) 297!$omp parallel sections lastprivate (x, y, z) firstprivate (l) 298!$omp section 299 if (l) then 300 call ver_dt (x, 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 301 call ver_dt (y, 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 302 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 303 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 304 else 305 call ver_dt (x, 0, T, 1, 1, F, F, 0, 0, 0, 0, T) 306 call ver_dt (y, 0, F, 0, 0, T, T, 1, 2, 3, 4, T) 307 call ver_dt (z(-3,2), 0, T, 1, 1, F, F, 0, 0, 0, 0, T) 308 call ver_dt (z(-3,3), 0, F, 0, 0, T, T, 1, 2, 3, 4, T) 309 end if 310 l = T 311 call alloc_dt (x, 3, F, 0, 0, T, T, 0, 1, 0, 1, F) 312 call ver_dt (x, 3, F, 0, 0, T, T, 0, 1, 0, 1, F) 313 call alloc_dt (y, 22, T, 5, 5, F, T, 2, 3, 2, 2, T) 314 call ver_dt (y, 22, T, 5, 5, F, T, 2, 3, 2, 2, T) 315 call alloc_dt (z(-3,2), 3, F, 0, 0, T, T, 0, 1, 0, 1, F) 316 call ver_dt (z(-3,2), 3, F, 0, 0, T, T, 0, 1, 0, 1, F) 317 call alloc_dt (z(-3,3), 22, T, 5, 5, F, T, 2, 3, 2, 2, T) 318 call ver_dt (z(-3,3), 22, T, 5, 5, F, T, 2, 3, 2, 2, T) 319!$omp section 320 if (l) then 321 call ver_dt (x, 3, F, 0, 0, T, T, 0, 1, 0, 1, F) 322 call ver_dt (y, 22, T, 5, 5, F, T, 2, 3, 2, 2, T) 323 call ver_dt (z(-3,2), 3, F, 0, 0, T, T, 0, 1, 0, 1, F) 324 call ver_dt (z(-3,3), 22, T, 5, 5, F, T, 2, 3, 2, 2, T) 325 else 326 call ver_dt (x, 0, T, 1, 1, F, F, 0, 0, 0, 0, T) 327 call ver_dt (y, 0, F, 0, 0, T, T, 1, 2, 3, 4, T) 328 call ver_dt (z(-3,2), 0, T, 1, 1, F, F, 0, 0, 0, 0, T) 329 call ver_dt (z(-3,3), 0, F, 0, 0, T, T, 1, 2, 3, 4, T) 330 end if 331 l = T 332 call alloc_dt (x, 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 333 call ver_dt (x, 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 334 call alloc_dt (y, 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 335 call ver_dt (y, 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 336 call alloc_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 337 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 338 call alloc_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 339 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 340!$omp section 341!$omp end parallel sections 342 call ver_dt (x, 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 343 call ver_dt (y, 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 344 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 345 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 346!$omp parallel private (x, y, z) 347 call ver_dt (x, 0, F, 0, 0, T, T, -1, -1, -1, -1, T) 348 call ver_dt (y, 0, T, 0, 1, T, T, 2, 2, 2, 2, F) 349 call ver_dt (z(-3,2), 0, F, 0, 0, T, T, -1, -1, -1, -1, T) 350 call ver_dt (z(-3,3), 0, T, 0, 1, T, T, 2, 2, 2, 2, F) 351!$omp single 352 call alloc_dt (x, 3, F, 0, 0, T, T, 0, 1, 0, 1, F) 353 call alloc_dt (y, 22, T, 5, 5, F, T, 2, 3, 2, 2, T) 354 call alloc_dt (z(-3,2), 3, F, 0, 0, T, T, 0, 1, 0, 1, F) 355 call alloc_dt (z(-3,3), 22, T, 5, 5, F, T, 2, 3, 2, 2, T) 356!$omp end single copyprivate (x, y, z) 357 call ver_dt (x, 3, F, 0, 0, T, T, 0, 1, 0, 1, F) 358 call ver_dt (y, 22, T, 5, 5, F, T, 2, 3, 2, 2, T) 359 call ver_dt (z(-3,2), 3, F, 0, 0, T, T, 0, 1, 0, 1, F) 360 call ver_dt (z(-3,3), 22, T, 5, 5, F, T, 2, 3, 2, 2, T) 361!$omp end parallel 362 call ver_dt (x, 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 363 call ver_dt (y, 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 364 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T) 365 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F) 366 end subroutine foo 367end 368