program example02 call demo02 stop end subroutine demo02 integer:: m, i real*8 :: mys write(*,*)'how many terms?' read(*,*) m mys=0.d0 !$omp parallel do private (i) & !$omp shared (m) & !$omp reduction (+:mys) do i=0,m mys=mys+dsqrt(dfloat(i)) end do write(*,*) 'mys=',mys, ' m:',m return end