diff libgomp/testsuite/libgomp.fortran/lastprivate1.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 84e7813d76e9
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgomp/testsuite/libgomp.fortran/lastprivate1.f90	Fri Jul 17 14:47:48 2009 +0900
@@ -0,0 +1,126 @@
+program lastprivate
+  integer :: i
+  common /c/ i
+  !$omp parallel num_threads (4)
+  call test1
+  !$omp end parallel
+  if (i .ne. 21) call abort
+  !$omp parallel num_threads (4)
+  call test2
+  !$omp end parallel
+  if (i .ne. 64) call abort
+  !$omp parallel num_threads (4)
+  call test3
+  !$omp end parallel
+  if (i .ne. 14) call abort
+  call test4
+  call test5
+  call test6
+  call test7
+  call test8
+  call test9
+  call test10
+  call test11
+  call test12
+contains
+  subroutine test1
+    integer :: i
+    common /c/ i
+    !$omp do lastprivate (i)
+    do i = 1, 20
+    end do
+  end subroutine test1
+  subroutine test2
+    integer :: i
+    common /c/ i
+    !$omp do lastprivate (i)
+    do i = 7, 61, 3
+    end do
+  end subroutine test2
+  function ret3 ()
+    integer :: ret3
+    ret3 = 3
+  end function ret3
+  subroutine test3
+    integer :: i
+    common /c/ i
+    !$omp do lastprivate (i)
+    do i = -10, 11, ret3 ()
+    end do
+  end subroutine test3
+  subroutine test4
+    integer :: j
+    !$omp parallel do lastprivate (j) num_threads (4) default (none)
+    do j = 1, 20
+    end do
+    if (j .ne. 21) call abort
+  end subroutine test4
+  subroutine test5
+    integer :: j
+    !$omp parallel do lastprivate (j) num_threads (4) default (none)
+    do j = 7, 61, 3
+    end do
+    if (j .ne. 64) call abort
+  end subroutine test5
+  subroutine test6
+    integer :: j
+    !$omp parallel do lastprivate (j) num_threads (4) default (none)
+    do j = -10, 11, ret3 ()
+    end do
+    if (j .ne. 14) call abort
+  end subroutine test6
+  subroutine test7
+    integer :: i
+    common /c/ i
+    !$omp parallel do lastprivate (i) num_threads (4) default (none)
+    do i = 1, 20
+    end do
+    if (i .ne. 21) call abort
+  end subroutine test7
+  subroutine test8
+    integer :: i
+    common /c/ i
+    !$omp parallel do lastprivate (i) num_threads (4) default (none)
+    do i = 7, 61, 3
+    end do
+    if (i .ne. 64) call abort
+  end subroutine test8
+  subroutine test9
+    integer :: i
+    common /c/ i
+    !$omp parallel do lastprivate (i) num_threads (4) default (none)
+    do i = -10, 11, ret3 ()
+    end do
+    if (i .ne. 14) call abort
+  end subroutine test9
+  subroutine test10
+    integer :: i
+    common /c/ i
+    !$omp parallel num_threads (4) default (none) shared (i)
+    !$omp do lastprivate (i)
+    do i = 1, 20
+    end do
+    !$omp end parallel
+    if (i .ne. 21) call abort
+  end subroutine test10
+  subroutine test11
+    integer :: i
+    common /c/ i
+    !$omp parallel num_threads (4) default (none) shared (i)
+    !$omp do lastprivate (i)
+    do i = 7, 61, 3
+    end do
+    !$omp end parallel
+    if (i .ne. 64) call abort
+  end subroutine test11
+  subroutine test12
+    integer :: i
+    common /c/ i
+    !$omp parallel num_threads (4) default (none) shared (i)
+    !$omp do lastprivate (i)
+    do i = -10, 11, ret3 ()
+    end do
+    !$omp end parallel
+    if (i .ne. 14) call abort
+  end subroutine test12
+end program lastprivate