program kadaiBarrier
  use omp_lib
  implicit none
  integer a(5), b(5), c(10), max_a, max_b, i
  a = (/10,15,7,3,22/)
  b = (/20,17,1,30,1/)
  max_a = 0
  max_b = 0
!$omp parallel num_threads(2)
  if ( omp_get_thread_num() == 0 ) then
    max_a = maxVal(a)
  else
    max_b = maxVal(b)
  end if
!$omp barrier
!$omp do
  do i=1,10
    c(i) = (max_a+max_b)*i
  end do
!$omp end do
!$omp end parallel
  print *, "maxA + maxB =", max_a+max_b
  print *, "C has :", c
end program
