| ! { 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 |