16c1ac141SIvan Zhechev! RUN: %python %S/test_errors.py %s %flang_fc1 264ab3302SCarolineConcatto! Test 15.5.2.6 constraints and restrictions for ALLOCATABLE 364ab3302SCarolineConcatto! dummy arguments. 464ab3302SCarolineConcatto 564ab3302SCarolineConcattomodule m 664ab3302SCarolineConcatto 764ab3302SCarolineConcatto real, allocatable :: cov[:], com[:,:] 864ab3302SCarolineConcatto 964ab3302SCarolineConcatto contains 1064ab3302SCarolineConcatto 1164ab3302SCarolineConcatto subroutine s01(x) 1264ab3302SCarolineConcatto real, allocatable :: x 1364ab3302SCarolineConcatto end subroutine 1464ab3302SCarolineConcatto subroutine s02(x) 1564ab3302SCarolineConcatto real, allocatable :: x[:] 1664ab3302SCarolineConcatto end subroutine 1764ab3302SCarolineConcatto subroutine s03(x) 1864ab3302SCarolineConcatto real, allocatable :: x[:,:] 1964ab3302SCarolineConcatto end subroutine 2064ab3302SCarolineConcatto subroutine s04(x) 2164ab3302SCarolineConcatto real, allocatable, intent(in) :: x 2264ab3302SCarolineConcatto end subroutine 2364ab3302SCarolineConcatto subroutine s05(x) 2464ab3302SCarolineConcatto real, allocatable, intent(out) :: x 2564ab3302SCarolineConcatto end subroutine 2664ab3302SCarolineConcatto subroutine s06(x) 2764ab3302SCarolineConcatto real, allocatable, intent(in out) :: x 2864ab3302SCarolineConcatto end subroutine 2964ab3302SCarolineConcatto function allofunc() 3064ab3302SCarolineConcatto real, allocatable :: allofunc 3164ab3302SCarolineConcatto end function 3264ab3302SCarolineConcatto 3364ab3302SCarolineConcatto subroutine test(x) 3464ab3302SCarolineConcatto real :: scalar 3564ab3302SCarolineConcatto real, allocatable, intent(in) :: x 3664ab3302SCarolineConcatto !ERROR: ALLOCATABLE dummy argument 'x=' must be associated with an ALLOCATABLE actual argument 3764ab3302SCarolineConcatto call s01(scalar) 3864ab3302SCarolineConcatto !ERROR: ALLOCATABLE dummy argument 'x=' must be associated with an ALLOCATABLE actual argument 3964ab3302SCarolineConcatto call s01(1.) 4064ab3302SCarolineConcatto !ERROR: ALLOCATABLE dummy argument 'x=' must be associated with an ALLOCATABLE actual argument 4164ab3302SCarolineConcatto call s01(allofunc()) ! subtle: ALLOCATABLE function result isn't 4264ab3302SCarolineConcatto call s02(cov) ! ok 4364ab3302SCarolineConcatto call s03(com) ! ok 4464ab3302SCarolineConcatto !ERROR: ALLOCATABLE dummy argument 'x=' has corank 1 but actual argument has corank 2 4564ab3302SCarolineConcatto call s02(com) 4664ab3302SCarolineConcatto !ERROR: ALLOCATABLE dummy argument 'x=' has corank 2 but actual argument has corank 1 4764ab3302SCarolineConcatto call s03(cov) 4864ab3302SCarolineConcatto call s04(cov[1]) ! ok 4964ab3302SCarolineConcatto !ERROR: ALLOCATABLE dummy argument 'x=' must have INTENT(IN) to be associated with a coindexed actual argument 5064ab3302SCarolineConcatto call s01(cov[1]) 51*573fc618SPeter Klausler !ERROR: Actual argument associated with INTENT(OUT) dummy argument 'x=' is not definable 52*573fc618SPeter Klausler !BECAUSE: 'x' is an INTENT(IN) dummy argument 5364ab3302SCarolineConcatto call s05(x) 54*573fc618SPeter Klausler !ERROR: Actual argument associated with INTENT(IN OUT) dummy argument 'x=' is not definable 55*573fc618SPeter Klausler !BECAUSE: 'x' is an INTENT(IN) dummy argument 5664ab3302SCarolineConcatto call s06(x) 5764ab3302SCarolineConcatto end subroutine 5864ab3302SCarolineConcattoend module 59