blob: 702e32e74671cb03d493fe70772cbb41627756ec [file] [log] [blame]
! { dg-do compile }
! { dg-additional-options "-ffrontend-optimize" }
! PR 84270 - this used to be rejected.
! Test case by Michael Weinert
module fp_precision
integer, parameter :: fp = selected_real_kind(13)
end module fp_precision
subroutine lhcal(nrot,orth,ngpts,vgauss,vr_0)
use fp_precision ! floating point precision
implicit none
!---> rotation matrices and rotations (input)
integer, intent(in) :: nrot
! real(kind=fp), intent(in) :: orth(3,3,nrot) ! fine at all -O
real(kind=fp), intent(in) :: orth(3,3,*)
!---> gaussian integration points
integer, intent(in) :: ngpts
real(kind=fp), intent(in) :: vgauss(3,*)
!---> output results
real(kind=fp), intent(out) :: vr_0(3)
real(kind=fp) :: v(3),vr(3)
integer :: n,nn
vr_0 = 0
do nn=1,ngpts
v(:) = vgauss(:,nn)
!---> apply rotations
do n=2,nrot
vr = matmul( orth(:,:,n), v )
vr_0 = vr_0 + vr
enddo
enddo
return
end subroutine lhcal