1  integer :: i, j
2  integer, dimension (10, 10) :: a
3!$omp parallel do default(none)proc_bind(master)shared(a)
4  do i = 1, 10
5    j = 4
6    do j = 1, 10
7      a(i, j) = i + j
8    end do
9    j = 8
10  end do
11!$omp end parallel do
12!$omp parallel do default(none)proc_bind(primary)shared(a)
13  do i = 1, 10
14    j = 4
15    do j = 1, 10
16      a(i, j) = i + j
17    end do
18    j = 8
19  end do
20!$omp end parallel do
21!$omp parallel proc_bind (close)
22!$omp parallel default(none) proc_bind (spread) firstprivate(a) private (i)
23  do i = 1, 10
24    a(i, i) = i
25  enddo
26!$omp end parallel
27!$omp endparallel
28end
29