Other arrays can depend on dummy arguments, these are called automatic arrays and:
INTERFACE ! etc ... END INTERFACE ... CALL une_bus_riot(IX,2,3) CALL une_bus_riot(IY,7,2) END PROGRAM SUBROUTINE une_bus_riot(A,M,N) INTEGER, INTENT(IN) :: M, N INTEGER, INTENT(INOUT) :: A(:,:) REAL :: A1(M,N) ! auto REAL :: A2(SIZE(A,1),SIZE(A,2)) ! auto ... END SUBROUTINE
The SIZE intrinsic or dummy arguments can be used to declare automatic arrays. A1 and A2 may have different sizes for different calls.
For more information, click here