1! { dg-do compile }
2! PR 44693 - check for invalid dim even in functions.
3! Based on a test case by Dominique d'Humieres.
4subroutine test1(esss,Ix,Iyz, n)
5  real(kind=kind(1.0d0)), dimension(n), intent(out) :: esss
6  real(kind=kind(1.0d0)), dimension(n,n,n) :: sp
7  real(kind=kind(1.0d0)), dimension(n,n) :: Ix,Iyz
8  esss = sum(Ix * Iyz, 0) ! { dg-error "is not a valid dimension index" }
9  esss = sum(Ix * Iyz, 1)
10  esss = sum(Ix * Iyz, 2)
11  esss = sum(Ix * Iyz, 3) ! { dg-error "is not a valid dimension index" }
12  sp = spread (ix * iyz, 0, n) ! { dg-error "is not a valid dimension index" }
13  sp = spread (ix * iyz, 1, n)
14  sp = spread (ix * iyz, 2, n)
15  sp = spread (ix * iyz, 3, n)
16  sp = spread (ix * iyz, 4, n) ! { dg-error "is not a valid dimension index" }
17end subroutine
18