1*404b540aSrobert! { dg-do run } 2*404b540aSrobert integer (kind = 4) :: a 3*404b540aSrobert integer (kind = 2) :: b 4*404b540aSrobert real :: c, f 5*404b540aSrobert double precision :: d 6*404b540aSrobert integer, dimension (10) :: e 7*404b540aSrobert a = 1 8*404b540aSrobert b = 2 9*404b540aSrobert c = 3 10*404b540aSrobert d = 4 11*404b540aSrobert e = 5 12*404b540aSrobert f = 6 13*404b540aSrobert!$omp atomic 14*404b540aSrobert a = a + 4 15*404b540aSrobert!$omp atomic 16*404b540aSrobert b = 4 - b 17*404b540aSrobert!$omp atomic 18*404b540aSrobert c = c * 2 19*404b540aSrobert!$omp atomic 20*404b540aSrobert d = 2 / d 21*404b540aSrobert if (a .ne. 5 .or. b .ne. 2 .or. c .ne. 6 .or. d .ne. 0.5) call abort 22*404b540aSrobert d = 1.2 23*404b540aSrobert!$omp atomic 24*404b540aSrobert a = a + c + d 25*404b540aSrobert!$omp atomic 26*404b540aSrobert b = b - (a + c + d) 27*404b540aSrobert if (a .ne. 12 .or. b .ne. -17) call abort 28*404b540aSrobert!$omp atomic 29*404b540aSrobert a = c + d + a 30*404b540aSrobert!$omp atomic 31*404b540aSrobert b = a + c + d - b 32*404b540aSrobert if (a .ne. 19 .or. b .ne. 43) call abort 33*404b540aSrobert!$omp atomic 34*404b540aSrobert b = (a + c + d) - b 35*404b540aSrobert a = 32 36*404b540aSrobert!$omp atomic 37*404b540aSrobert a = a / 3.4 38*404b540aSrobert if (a .ne. 9 .or. b .ne. -16) call abort 39*404b540aSrobertend 40