File: test3.f

package info (click to toggle)
opari2 2.0.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,808 kB
  • sloc: cpp: 8,533; sh: 5,755; ansic: 5,129; f90: 530; fortran: 341; makefile: 227; awk: 179
file content (90 lines) | stat: -rw-r--r-- 1,995 bytes parent folder | download | duplicates (2)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
! * This file is part of the Score-P software (http://www.score-p.org)
! *
! * Copyright (c) 2009-2011,
! *    RWTH Aachen University, Germany
! *    Gesellschaft fuer numerische Simulation mbH Braunschweig, Germany
! *    Technische Universitaet Dresden, Germany
! *    University of Oregon, Eugene, USA
! *    Forschungszentrum Juelich GmbH, Germany
! *    German Research School for Simulation Sciences GmbH, Juelich/Aachen, Germany
! *    Technische Universitaet Muenchen, Germany
! *
! * See the COPYING file in the package base directory for details.
! *
! * Testfile for automated testing of OPARI2
! *
! *
! * @brief Special tests for end pragma substitution and nested parallel regions/loops.

      program test3
      integer i, j, k
      real end_level, dolic

c$OMP parallel
c$OMP do
      do 12,i = 1,8
         a=a+1
 12   continue
c$OMP end parallel

c$OMP parallel do
      do 13,i = 1,8
         a=a+1
 13   continue

c$OMP parallel
c$OMP do
      do 14,i = 1,8
         a=a+1
 14   continue
c$OMP atomic
      me = me + omp_get_thread_num()
c$OMP end parallel

c$OMP parallel do
      do 15,i = 1,8
 15      a=a+1
c$OMP parallel private(me,glob)
      me = omp_get_thread_num()
c$OMP end parallel

! **********************
! * nested parallelism *
! **********************

!$omp parallel
!$omp parallel
!$omp parallel
!$omp parallel do
      do i = 1,8
         end_level = end_level + dolic/i
         a=a+1
      end do
!$omp end parallel do
!$omp end parallel
!$omp end parallel
!$omp end parallel

! *******************************************
! * end pragma substitution in nested loops *
! *******************************************
c$OMP parallel do
      do 16, i = 1,8
         do 16, j = 1,8
            a=a+1
 16   continue

      do 17,i = 1,8
c$OMP parallel do
         do 18, j = 1,8
            a=a+1
 18      continue
 17   continue

c$omp parallel do
      do
         if (a .gt. 0) then
            exit
         endif
      enddo
      end program test3