URL
                    https://opencores.org/ocsvn/openrisc/openrisc/trunk
                
            Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgomp/] [testsuite/] [libgomp.fortran/] [task2.f90] - Rev 735
Compare with Previous | Blame | View Log
integer :: errerr = 0!$omp parallel num_threads (4) default (none) shared (err)!$omp singlecall test!$omp end single!$omp end parallelif (err.ne.0) call abortcontainssubroutine check (x, y, l)integer :: x, ylogical :: ll = l .or. x .ne. yend subroutine checksubroutine foo (c, d, e, f, g, h, i, j, k, n)use omp_libinteger :: ncharacter (len = *) :: ccharacter (len = n) :: dinteger, dimension (2, 3:5, n) :: einteger, dimension (2, 3:n, n) :: fcharacter (len = *), dimension (5, 3:n) :: gcharacter (len = n), dimension (5, 3:n) :: hreal, dimension (:, :, :) :: idouble precision, dimension (3:, 5:, 7:) :: jinteger, dimension (:, :, :) :: klogical :: linteger :: p, q, rcharacter (len = n) :: sinteger, dimension (2, 3:5, n) :: tinteger, dimension (2, 3:n, n) :: ucharacter (len = n), dimension (5, 3:n) :: vcharacter (len = 2 * n + 24) :: winteger :: x, zcharacter (len = 1) :: ys = 'PQRSTUV'forall (p = 1:2, q = 3:5, r = 1:7) t(p, q, r) = -10 + p - q + 2 * rforall (p = 1:2, q = 3:7, r = 1:7) u(p, q, r) = 30 - p + q - 2 * rforall (p = 1:5, q = 3:7, p + q .le. 8) v(p, q) = '_+|/Oo_'forall (p = 1:5, q = 3:7, p + q .gt. 8) v(p, q) = '///|||!'!$omp task default (none) firstprivate (c, d, e, f, g, h, i, j, k) &!$omp & firstprivate (s, t, u, v) private (l, p, q, r, w, x, y) shared (err)l = .false.l = l .or. c .ne. 'abcdefghijkl'l = l .or. d .ne. 'ABCDEFG'l = l .or. s .ne. 'PQRSTUV'do 100, p = 1, 2do 100, q = 3, 7do 100, r = 1, 7if (q .lt. 6) l = l .or. e(p, q, r) .ne. 5 + p + q + 2 * rl = l .or. f(p, q, r) .ne. 25 + p + q + 2 * rif (r .lt. 6 .and. q + r .le. 8) l = l .or. g(r, q) .ne. '0123456789AB'if (r .lt. 6 .and. q + r .gt. 8) l = l .or. g(r, q) .ne. '9876543210ZY'if (r .lt. 6 .and. q + r .le. 8) l = l .or. h(r, q) .ne. '0123456'if (r .lt. 6 .and. q + r .gt. 8) l = l .or. h(r, q) .ne. '9876543'if (q .lt. 6) l = l .or. t(p, q, r) .ne. -10 + p - q + 2 * rl = l .or. u(p, q, r) .ne. 30 - p + q - 2 * rif (r .lt. 6 .and. q + r .le. 8) l = l .or. v(r, q) .ne. '_+|/Oo_'if (r .lt. 6 .and. q + r .gt. 8) l = l .or. v(r, q) .ne. '///|||!'100 continuedo 101, p = 3, 5do 101, q = 2, 6do 101, r = 1, 7l = l .or. i(p - 2, q - 1, r) .ne. 7.5 * p * q * rl = l .or. j(p, q + 3, r + 6) .ne. 9.5 * p * q * r101 continuedo 102, p = 1, 5do 102, q = 4, 6l = l .or. k(p, 1, q - 3) .ne. 19 + p + 7 + 3 * q102 continuecall check (size (e, 1), 2, l)call check (size (e, 2), 3, l)call check (size (e, 3), 7, l)call check (size (e), 42, l)call check (size (f, 1), 2, l)call check (size (f, 2), 5, l)call check (size (f, 3), 7, l)call check (size (f), 70, l)call check (size (g, 1), 5, l)call check (size (g, 2), 5, l)call check (size (g), 25, l)call check (size (h, 1), 5, l)call check (size (h, 2), 5, l)call check (size (h), 25, l)call check (size (i, 1), 3, l)call check (size (i, 2), 5, l)call check (size (i, 3), 7, l)call check (size (i), 105, l)call check (size (j, 1), 4, l)call check (size (j, 2), 5, l)call check (size (j, 3), 7, l)call check (size (j), 140, l)call check (size (k, 1), 5, l)call check (size (k, 2), 1, l)call check (size (k, 3), 3, l)call check (size (k), 15, l)if (l) then!$omp atomicerr = err + 1end if!$omp end taskc = ''d = ''e(:, :, :) = 199f(:, :, :) = 198g(:, :) = ''h(:, :) = ''i(:, :, :) = 7.0j(:, :, :) = 8.0k(:, :, :) = 9s = ''t(:, :, :) = 10u(:, :, :) = 11v(:, :) = ''end subroutine foosubroutine testcharacter (len = 12) :: ccharacter (len = 7) :: dinteger, dimension (2, 3:5, 7) :: einteger, dimension (2, 3:7, 7) :: fcharacter (len = 12), dimension (5, 3:7) :: gcharacter (len = 7), dimension (5, 3:7) :: hreal, dimension (3:5, 2:6, 1:7) :: idouble precision, dimension (3:6, 2:6, 1:7) :: jinteger, dimension (1:5, 7:7, 4:6) :: kinteger :: p, q, rc = 'abcdefghijkl'd = 'ABCDEFG'forall (p = 1:2, q = 3:5, r = 1:7) e(p, q, r) = 5 + p + q + 2 * rforall (p = 1:2, q = 3:7, r = 1:7) f(p, q, r) = 25 + p + q + 2 * rforall (p = 1:5, q = 3:7, p + q .le. 8) g(p, q) = '0123456789AB'forall (p = 1:5, q = 3:7, p + q .gt. 8) g(p, q) = '9876543210ZY'forall (p = 1:5, q = 3:7, p + q .le. 8) h(p, q) = '0123456'forall (p = 1:5, q = 3:7, p + q .gt. 8) h(p, q) = '9876543'forall (p = 3:5, q = 2:6, r = 1:7) i(p, q, r) = 7.5 * p * q * rforall (p = 3:6, q = 2:6, r = 1:7) j(p, q, r) = 9.5 * p * q * rforall (p = 1:5, q = 7:7, r = 4:6) k(p, q, r) = 19 + p + q + 3 * rcall foo (c, d, e, f, g, h, i, j, k, 7)end subroutine testend

