program openmp implicit none integer :: k integer, parameter :: n = 20 double precision, dimension(n) :: vec double precision :: min_vec do k = 1, n vec(k) = 1.0d0 / k end do min_vec = vec(1) !$omp parallel do reduction(min: min_vec) & !$omp shared(vec) private(k) do k = 1, n min_vec = min(vec(k), min_vec) end do print*, 'min_vec = ', min_vec end ! % gfortran -fopenmp openmp.f90 ! % ./a.out ! min_vec = 5.000000000000000E-002