! { dg-do compile } | |
! | |
! PR fortran/90111 | |
! | |
! Check that OpenACC directives in everywhere in specification part, | |
! i.e. it may appear before/after the use, import, implicit, and declaration | |
! | |
module m | |
end module m | |
subroutine foo0(kk) | |
use m | |
implicit none | |
integer :: jj, kk | |
!$acc routine | |
end | |
subroutine foo1() | |
use m | |
implicit none | |
!$acc routine | |
integer :: jj | |
end | |
subroutine foo2() | |
use m | |
!$acc routine | |
implicit none | |
end | |
subroutine foo3() | |
!$acc routine | |
use m | |
implicit none | |
end | |
module m2 | |
interface | |
subroutine foo0(kk) | |
use m | |
import | |
implicit none | |
integer :: kk | |
!$acc routine | |
end | |
subroutine foo1() | |
use m | |
import | |
implicit none | |
!$acc routine | |
end | |
subroutine foo2() | |
use m | |
import | |
!$acc routine | |
implicit none | |
end | |
subroutine foo3() | |
use m | |
!$acc routine | |
import | |
implicit none | |
end | |
subroutine foo4() | |
use m | |
!$acc routine | |
import | |
implicit none | |
end | |
end interface | |
end module m2 | |
subroutine bar0() | |
use m | |
implicit none | |
integer :: ii | |
!$acc declare copyin(ii) | |
end | |
subroutine bar1() | |
use m | |
implicit none | |
!$acc declare copyin(ii) | |
integer :: ii | |
end | |
subroutine bar2() | |
use m | |
!$acc declare copyin(ii) | |
implicit none | |
integer :: ii | |
end | |
subroutine bar3() | |
!$acc declare copyin(ii) | |
use m | |
implicit none | |
integer :: ii | |
end |