! { dg-additional-sources my-usleep.c } ! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" } program main implicit none interface subroutine usleep(t) bind(C, name="my_usleep") use iso_c_binding integer(c_int), value :: t end subroutine end interface integer :: a(128) integer :: i !$omp teams num_teams(5) !$omp loop bind(teams) do i = 1, 128 a(i) = i if (i == 1) then call usleep (20) else if (i == 17) then call usleep (40) end if end do !$omp loop bind(teams) do i = 1, 128 a(i) = a(i) + i end do !$omp end teams do i = 1, 128 if (a(i) /= 2 * i) & stop 1 end do !$omp teams num_teams(5) !$omp loop bind(teams) order(concurrent) do i = 1, 128 a(i) = a(i) * 2 if (i == 1) then call usleep (20) else if (i == 13) then call usleep (40) end if end do !$omp loop bind(teams) order(concurrent) do i = 1, 128 a(i) = a(i) + i end do !$omp end teams do i = 1, 128 if (a(i) /= 5 * i) & stop 2 end do !$omp teams num_teams(5) !$omp loop bind(teams) order(reproducible:concurrent) do i = 1, 128 a(i) = a(i) * 2 if (i == 3) then call usleep (20) else if (i == 106) then call usleep (40) end if end do !$omp loop bind(teams) order(reproducible:concurrent) do i = 1, 128 a(i) = a(i) + i end do !$omp end teams do i = 1, 128 if (a(i) /= 11 * i) & stop 3 end do end program main