vectorial producto memoria matriz matrices guia dinamica arreglos allocatable arrays fortran variable-declaration

arrays - producto - Declaración de matriz en Fortran



memoria dinamica en fortran (2)

Sí, es idéntico. Incluso por supuesto, diferido y cualquier forma posible.

Considerar

INTEGER,DIMENSION(3) :: NumberVector

y

INTEGER :: NumberVector(3)

¿Hay alguna diferencia entre estas dos declaraciones o son exactamente las mismas? (Me refiero a CUALQUIER contexto y variación posibles: por ejemplo, en el caso de que esos dos fueran idénticos, ¿qué ocurre si declaro una matriz con un tamaño implícito como uno de los parámetros de entrada de una subrutina? ¿Sería irrelevante cuál de ellos? ¿Solía?)


El atributo DIMENSION se agregó a Fortran 90 para mejorar la claridad del código y permitir el ahorro de código al declarar múltiples matrices del mismo tipo (no poco común en la informática científica), por ejemplo, en lugar de

REAL :: mat1(10,20), mat2(10,20), mat3(10,20), mat4(10,20), mat5(10,20)

uno podría escribir

REAL, DIMENSION(10,20) :: mat1, mat2, mat3, mat4, mat5

Además de reducir el tamaño del código fuente y el tiempo de compilación (menos análisis, no tan relevante hoy en día), esto reduce la posibilidad de cometer un error en cualquiera de las declaraciones. De lo contrario, ambas formas son iguales y las variables declaradas se comportan exactamente de la misma manera en todas partes del programa.