Example of an OpenMP Program/3
subroutine initialize ( field, spectrum )
common /setup/ iam, ipiece, npoints, nzone
!$OMP THREADPRIVATE ( / setup / )
dimension field( npoints ), spectrum( nzone )
!$OMP DO
do i = 1, nzone
spectrum(i) = “initial data”
end do
np = omp_get_num_threads()
nleft = mod( npoints, np)
ipiece = npoints / np
if( iam .lt. nleft ) ipiece = ipiece + 1
do i = istart, iend
field(i) = “initial data”
end do
return
end