1  real :: r1, r2
2  complex :: c1, c2
3  integer :: i1, i2
4!$omp atomic write
5  c1 = 0
6!$omp atomic write
7  r2 = 0
8!$omp atomic write
9  i2 = 0
10!$omp atomic read
11  r1 = c1
12!$omp atomic read
13  c2 = r2
14!$omp atomic read
15  i1 = r2
16!$omp atomic read
17  c2 = i2
18!$omp atomic write
19  c1 = r1
20!$omp atomic write
21  r2 = c2
22!$omp atomic write
23  r2 = i1
24!$omp atomic write
25  i2 = c2
26!$omp end atomic
27!$omp atomic write
28  c1 = 1 + 2 + r1
29!$omp atomic write
30  r2 = c2 + 2 + 3
31!$omp atomic write
32  r2 = 3 + 4 + i1
33!$omp atomic write
34  i2 = c2 + 4 + 5
35!$omp atomic
36  c1 = c1 * 2.
37!$omp atomic update
38  r2 = r2 / 4
39!$omp end atomic
40!$omp atomic update
41  i2 = i2 + 8
42!$omp atomic capture
43  c1 = c1 * 2.
44  r1 = c1
45!$omp end atomic
46!$omp atomic capture
47  c2 = r2
48  r2 = r2 / 4
49!$omp end atomic
50!$omp atomic capture
51  i2 = i2 + 8
52  c2 = i2
53!$omp end atomic
54end
55