view libgomp/testsuite/libgomp.oacc-fortran/default-1.f90 @ 128:fe568345ddd5

fix CbC-example
author mir3636
date Wed, 11 Apr 2018 19:32:28 +0900
parents 04ced10e8804
children 84e7813d76e9
line wrap: on
line source

! { dg-do run }

program main
  implicit none
  real a, b
  real c
  !$acc declare create (c)

  a = 2.0
  b = 0.0

  !$acc parallel copy (a) create (b) default (none)
    b = a
    a = 1.0
    a = a + b
  !$acc end parallel

  if (a .ne. 3.0) call abort

  !$acc kernels copy (a) create (b) default (none)
    b = a
    a = 1.0
    a = a + b
  !$acc end kernels

  if (a .ne. 4.0) call abort

  !$acc parallel default (none) copy (a) create (b)
    b = a
    a = 1.0
    a = a + b
  !$acc end parallel

  if (a .ne. 5.0) call abort

  !$acc parallel default (none) copy (a)
    c = a
    a = 1.0
    a = a + c
  !$acc end parallel

  if (a .ne. 6.0) call abort

  !$acc data copy (a)
  !$acc parallel default (none)
    c = a
    a = 1.0
    a = a + c
  !$acc end parallel
  !$acc end data

  if (a .ne. 7.0) call abort

  ! The default (present) clause doesn't affect scalar variables; these will
  ! still get an implicit copy clause added.
  !$acc kernels default (present)
    c = a
    a = 1.0
    a = a + c
  !$acc end kernels

  if (a .ne. 8.0) call abort

end program main