program main
  implicit none
  integer, parameter :: n = 100
  real, allocatable :: a(:)[:]
  integer :: i
  allocate (a(n)[*])
  call random_number(a)
  sync all
  if (this_image() == 1) then
     do i = 2, num_images()
        a = a + a(:)[i]
     end do
     print *, "Mean :", sum(a) / (n * num_images())
  end if
end program
