File: test3.f90

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 (95 lines) | stat: -rw-r--r-- 1,966 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
91
92
93
94
95
! * 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

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

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

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

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

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

  !$omp parallel
  !$omp parallel
  !$omp parallel
  !$omp parallel do
  do i = 1,8
     a=a+1
  enddo
  !$omp end parallel do
  !$omp end parallel
  !$omp end parallel
  !$omp end parallel


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

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

   !$omp parallel do
   do
      if (a .gt. 0) then
         exit
      endif
   enddo

   !$OMP parallel do
   loopLabel: do i = 1,8
      a=a+1
   end do loopLabel

   end program test3