Fortran 90 extiende las posibilidades de declarar argumentos dummy en los procedimientos para darle el formato adecuado a los arreglos que pasan como parámetros.
SUBROUTINE lee_matriz(m, i_max, j_max) IMPLICIT NONE INTEGER i_max, j_max REAL, DIMENSION(i_max,j_max) :: m READ*, m END
También existen las declaraciones dummy del formato predefinido, en este caso el formato del arreglo no está especificado.
SUBROUTINE asume_formato(a, b, n) IMPLICIT NONE INTEGER :: n REAL, DIMENSION(:,:,:) :: a ! Arreglo de tres dimensiones REAL, DIMENSION(-5:,n:) :: b ! Arreglo de 2 dimensiones ... ! que inicia en (-5,n)
Las funciones intrínsecas SIZE, SHAPE, LBOUND (lower boundary) y UBOUND (upper boundary) son utilizadas con estas declaraciones para poder escribir códigos más generales.
SUBROUTINE intercambiar(a, b) IMPLICIT NONE ! a y b son arreglos de 2 dimensiones REAL, DIMENSION(:) :: a, b ! con formato predefinido REAL, DIMENSION(SIZE(a,DIM=1)&! aux tiene las mismas dimensiones ,SIZE(a,DIM=2)) :: aux ! del arreglo a aux = a a = b b = aux END