! { dg-do run } integer (kind = 4) :: a integer (kind = 2) :: b real :: c, f double precision :: d integer, dimension (10) :: e a = 1 b = 2 c = 3 d = 4 e = 5 f = 6 !$omp atomic a = a + 4 !$omp atomic b = 4 - b !$omp atomic c = c * 2 !$omp atomic d = 2 / d if (a .ne. 5 .or. b .ne. 2 .or. c .ne. 6 .or. d .ne. 0.5) call abort d = 1.2 !$omp atomic a = a + c + d !$omp atomic b = b - (a + c + d) if (a .ne. 12 .or. b .ne. -17) call abort !$omp atomic a = c + d + a !$omp atomic b = a + c + d - b if (a .ne. 19 .or. b .ne. 43) call abort !$omp atomic b = (a + c + d) - b a = 32 !$omp atomic a = a / 3.4 if (a .ne. 9 .or. b .ne. -16) call abort end