Arrays in Routinen

assumed shape

  ...
INTERFACE                           ! noetig bei assumed shape arrays
  SUBROUTINE juhu(a, b)
    REAL, INTENT(IN), DIMENSION(:)       :: a  
    REAL, INTENT(INOUT), DIMENSION(:,:)  :: b  ! niemals INTENT(OUT)
  END SUBROUTINE juhu
END INTERFACE

REAL, DIMENSION(23)        :: x
REAL, DIMENSION(0:5, 3:8)  :: y

CALL juhu(x,y)
  ...

SUBROUTINE juhu(a, b)
  IMPLICIT NONE
  REAL, INTENT(IN), DIMENSION(:)       :: a ! -> a(23)
  REAL, INTENT(INOUT), DIMENSION(:,:)  :: b ! -> b(6,6), b(1,1) = y(0,3)

automatische Arrays

SUBROUTINE juhu(a)
  IMPLICIT NONE
  REAL, DIMENSION(:)          :: a
  REAL, DIMENSION(2*SIZE(a))  :: w       ! workspace

dynamische Arrays

INTEGER                           :: n   ! array dimension
REAL, DIMENSION(:), ALLOCATABLE   :: x
REAL, DIMENSION(:,:), ALLOCATABLE :: y

READ*, n
  ...
ALLOCATE(x(n))
ALLOCATE(y(n, 0:2*n-1))
  ...
DEALLOCATE(x, y)        ! automatisch fuer local arrays in Fortran 95