comparison libgomp/testsuite/libgomp.fortran/appendix-a/a.22.7.f90 @ 0:a06113de4d67

first commit
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Fri, 17 Jul 2009 14:47:48 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:a06113de4d67
1 ! { dg-do run }
2 ! { dg-require-effective-target tls_runtime }
3
4 PROGRAM A22_7_GOOD
5 INTEGER, ALLOCATABLE, SAVE :: A(:)
6 INTEGER, POINTER, SAVE :: PTR
7 INTEGER, SAVE :: I
8 INTEGER, TARGET :: TARG
9 LOGICAL :: FIRSTIN = .TRUE.
10 !$OMP THREADPRIVATE(A, I, PTR)
11 ALLOCATE (A(3))
12 A = (/1,2,3/)
13 PTR => TARG
14 I=5
15 !$OMP PARALLEL COPYIN(I, PTR)
16 !$OMP CRITICAL
17 IF (FIRSTIN) THEN
18 TARG = 4 ! Update target of ptr
19 I = I + 10
20 IF (ALLOCATED(A)) A = A + 10
21 FIRSTIN = .FALSE.
22 END IF
23 IF (ALLOCATED(A)) THEN
24 PRINT *, "a = ", A
25 ELSE
26 PRINT *, "A is not allocated"
27 END IF
28 PRINT *, "ptr = ", PTR
29 PRINT *, "i = ", I
30 PRINT *
31 !$OMP END CRITICAL
32 !$OMP END PARALLEL
33 END PROGRAM A22_7_GOOD