program kadaiDataSharing
  implicit none
  integer i, j
  integer,parameter :: N=10000
  integer,allocatable :: a(:), b(:)
  allocate( a(N), b(N) )
  a = (/(i,i=1,N)/)
  b = 0
!$omp parallel private(j)
!$omp do
  do i=1, N
    j = N - i + 1
    b(j) = a(i)
  end do
!$omp end do
!$omp end parallel
  print *, sum(a), "=", sum(b)
end program
