real :: r1, r2 complex :: c1, c2 integer :: i1, i2 !$omp atomic write c1 = 0 !$omp atomic write r2 = 0 !$omp atomic write i2 = 0 !$omp atomic read r1 = c1 !$omp atomic read c2 = r2 !$omp atomic read i1 = r2 !$omp atomic read c2 = i2 !$omp atomic write c1 = r1 !$omp atomic write r2 = c2 !$omp atomic write r2 = i1 !$omp atomic write i2 = c2 !$omp end atomic !$omp atomic write c1 = 1 + 2 + r1 !$omp atomic write r2 = c2 + 2 + 3 !$omp atomic write r2 = 3 + 4 + i1 !$omp atomic write i2 = c2 + 4 + 5 !$omp atomic c1 = c1 * 2. !$omp atomic update r2 = r2 / 4 !$omp end atomic !$omp atomic update i2 = i2 + 8 !$omp atomic capture c1 = c1 * 2. r1 = c1 !$omp end atomic !$omp atomic capture c2 = r2 r2 = r2 / 4 !$omp end atomic !$omp atomic capture i2 = i2 + 8 c2 = i2 !$omp end atomic end