File: openmp_73.f90

package info (click to toggle)
lfortran 0.58.0-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 54,512 kB
  • sloc: cpp: 162,179; f90: 68,251; python: 17,476; ansic: 6,278; yacc: 2,334; sh: 1,317; fortran: 892; makefile: 33; javascript: 15
file content (27 lines) | stat: -rw-r--r-- 583 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
! TEAMSDISTRIBUTE combined construct test
program openmp_73
    use omp_lib
    implicit none
integer :: array(1000), i, j, sum=0
array(1)=3
!$omp teams distribute num_teams(2) thread_limit(5)
do i = 1, 1000, 100
    print*,omp_get_num_threads(), omp_get_max_threads()
  !$omp parallel do
  do j = i, min(i+99, 1000)
    array(j) = j * 3
  end do
  !$omp end parallel do
end do
!$omp end teams distribute

! Sum of all elements
!$omp parallel do reduction(+:sum)
do i=1,1000
sum=sum+array(i)
end do
!$omp end parallel do

print*, sum
if(sum/=1501500) error stop
end program openmp_73