In the code below, the reference to maxval with assumed size array a as an argument should be detected as an error at compile time.
module mmm
contains
function largest(a)
real largest
real, intent(in) :: a(*) ! a is assumed size
largest = maxval(a) ! This should be detected as an error at compile time
end function largest
end module mmm
program anon
use mmm
real a(5), y
a = (/(real(i),i=1,5)/)
y = largest(a)
print *, y
end program anon