32 lines
1.0 KiB
Fortran
32 lines
1.0 KiB
Fortran
! { 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
|