Replicable Monte Carlo simulation with OpenMP

program main
  integer :: n1, n2, i
  real(8) :: pi, x1, x2
  n1 = 1000*1000
  n2 = 0
  call random_init(.true., .true.)
  !$omp parallel do reduction(+:n2)
  do i = 1, n1
    call random_number(x1)
    call random_number(x2)
    if (x1**2 + x2**2 <= 1.0_8) n2 = n2 + 1
  end do
  pi = 4.0_8*dble(n2)/dble(n1)
  print *, pi
end program

The above program generates a different value of pi at each run. How can I ensure replicability in this case? GFortran 12.2.1 with flags -fimplicit-none -O3 -fopenmp is used.