How can it violate the standard if the standard allowed it for several decades before F90 introduced explicit interfaces. I’ve seen a lot of old code where a scalar or the inner-most dimension of a multi-dimensional array was passed to an assumed size array. It was common practice to try to improve vectorization performance by passing a 3D array of say size NX x NY x NZ to a 2D assumed size array A(NX*NY,*) to get a longer vector length (NX*NY) on systems like the Cyber 205 that wanted a long vector length. The fact that error is only thrown when there is an explicit interface indicates to me (as @PierU suggests) that in this particular case there is an over-rigid intepretation of the Standard. Also, my original question stands. Is this a recent addition to the Standard.