blob: 5550cf24005a315031acfa6b5cdf655fed63f5bf [file] [log] [blame]
! { dg-do compile}
!
! TS 29113
! C535a An assumed-rank entity shall be a dummy variable that does not
! have the CODIMENSION or VALUE attribute.
! An assumed-rank object may have the CONTIGUOUS attribute.
!
! This test file contains tests that are expected to all pass.
! Check basic usage with no attributes.
module m
type :: t
integer :: i
real :: f
end type
end module
subroutine s0 (a, b, c, d)
use m
implicit none
integer :: a(..)
real :: b(..)
type(t) :: c(..)
type(*) :: d(..)
end subroutine
! Likewise with dimension attribute.
subroutine s1 (a, b, c, d)
use m
implicit none
integer, dimension(..) :: a
real, dimension(..) :: b
type(t), dimension(..) :: c
type(*), dimension(..) :: d
end subroutine
! Likewise with dimension statement.
subroutine s2 (a, b, c, d)
use m
implicit none
integer :: a
real :: b
type(t) :: c
type(*) :: d
dimension a(..), b(..), c(..), d(..)
end subroutine
! Test that various other attributes are accepted.
subroutine s3 (a, b, c, d, e, f, g, h, i, j)
implicit none
integer, allocatable :: a(..)
integer, asynchronous :: b(..)
integer, contiguous :: c(..)
integer, intent(in) :: d(..)
integer, intent(out) :: e(..)
integer, intent(inout) :: f(..)
integer, optional :: g(..)
integer, pointer :: h(..)
integer, target :: i(..)
integer, volatile :: j(..)
end subroutine