diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgomp/testsuite/libgomp.fortran/appendix-a/a.22.7.f90	Fri Jul 17 14:47:48 2009 +0900
@@ -0,0 +1,33 @@
+! { dg-do run }
+! { dg-require-effective-target tls_runtime }
+
+      PROGRAM A22_7_GOOD
+        INTEGER, ALLOCATABLE, SAVE :: A(:)
+        INTEGER, POINTER, SAVE :: PTR
+        INTEGER, SAVE :: I
+        INTEGER, TARGET :: TARG
+        LOGICAL :: FIRSTIN = .TRUE.
+!$OMP THREADPRIVATE(A, I, PTR)
+        ALLOCATE (A(3))
+        A = (/1,2,3/)
+        PTR => TARG
+        I=5
+!$OMP PARALLEL COPYIN(I, PTR)
+!$OMP CRITICAL
+            IF (FIRSTIN) THEN
+              TARG = 4           ! Update target of ptr
+              I = I + 10
+              IF (ALLOCATED(A)) A = A + 10
+              FIRSTIN = .FALSE.
+            END IF
+            IF (ALLOCATED(A)) THEN
+              PRINT *, "a = ", A
+            ELSE
+              PRINT *, "A is not allocated"
+            END IF
+            PRINT *, "ptr = ", PTR
+            PRINT *, "i = ", I
+            PRINT *
+!$OMP END CRITICAL
+!$OMP END PARALLEL
+      END PROGRAM A22_7_GOOD