PROGRAM TestArg IMPLICIT NONE REAL :: a(4:8) INTEGER :: i a(4) = 1.3 a(5) = -2.1 a(6) = 1.3 a(7) = 2.4 a(8) = 0.3 PRINT*,'----------------' CALL anotherroutine (a(4:8)) PRINT*,'----------------' DO i = 4,8 PRINT*,i,a(i) END DO PRINT*,'----------------' CONTAINS SUBROUTINE anotherroutine (a) IMPLICIT NONE REAL, INTENT(INOUT) :: a(:) INTEGER :: i DO i = 1,5 PRINT*,i,a(i) END DO DO i = 1,5 a(i) = 2.*a(i) END DO END SUBROUTINE anotherroutine END PROGRAM TestArg