view libgomp/testsuite/libgomp.oacc-fortran/firstprivate-1.f90 @ 120:f93fa5091070

fix conv1.c
author mir3636
date Thu, 08 Mar 2018 14:53:42 +0900
parents 04ced10e8804
children 84e7813d76e9
line wrap: on
line source

! { dg-do run }

program firstprivate
  integer, parameter :: Nupper=100
  integer :: a, b(Nupper), c, d, n
  include "openacc_lib.h"

  if (acc_get_device_type () .ne. acc_device_host) then
     n = Nupper
  else
     n = 1
  end if

  b(:) = -1
  a = 5

  !$acc parallel firstprivate (a) num_gangs (n)
  !$acc loop gang
  do i = 1, n
     a = a + i
     b(i) = a
  end do
  !$acc end parallel

  do i = 1, n
     if (b(i) .ne. i + a) call abort ()
  end do

  !$acc data copy (a)
  !$acc parallel firstprivate (a) copyout (c)
  a = 10
  c = a
  !$acc end parallel

  !$acc parallel copyout (d) present (a)
  d = a
  !$acc end parallel
  !$acc end data

  if (c .ne. 10) call abort ()
  if (d .ne. 5) call abort ()
end program firstprivate