! { dg-do compile } ! PR fortran/33343 ! ! Check conformance of array actual arguments to ! elemental function. ! ! Contributed by Mikael Morin ! module geometry implicit none integer, parameter :: prec = 8 integer, parameter :: length = 10 contains elemental function Mul(a, b) real(kind=prec) :: a real(kind=prec) :: b, Mul intent(in) :: a, b Mul = a * b end function Mul pure subroutine calcdAcc2(vectors, angles) real(kind=prec), dimension(:) :: vectors real(kind=prec), dimension(size(vectors),2) :: angles intent(in) :: vectors, angles real(kind=prec), dimension(size(vectors)) :: ax real(kind=prec), dimension(size(vectors),2) :: tmpAcc tmpAcc(1,:) = Mul(angles(1,1:2),ax(1)) ! Ok tmpAcc(:,1) = Mul(angles(:,1),ax) ! OK tmpAcc(:,:) = Mul(angles(:,:),ax) ! { dg-error "Incompatible ranks in elemental procedure" } end subroutine calcdAcc2 end module geometry