       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
