blob: caf4d177e5c9b674a5a967725d19c40702eeabba [file] [log] [blame]
! { dg-do compile }
! PR fortran/33343
!
! Check conformance of array actual arguments to
! elemental function.
!
! Contributed by Mikael Morin <mikael.morin@tele2.fr>
!
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