Con los constructos para arreglos de FORTRAN 90, puede usted especificar arreglos completos o secciones de los mismos como participantes en operaciones unarias y binarias. Tales constructos son una característica clave para "deserializar" las aplicaciones, de forma que puedan adaptarse mejor a computadoras vectoriales o procesadores paralelos. Por ejemplo, digamos que desea usted sumar dos vectores A y B. En FORTRAN 90, puede expresarlo como una simple operación de suma, en vez de usando el bucle tradicional. Esto es, puede usted escribir:
A = A + B
en vez del tradicional bucle en FORTRAN 77:
DO I=1,N
A(I) = A(I) + B(I)
ENDDO
Puede que el código generado por el compilador en su estación de trabajo no se vea muy diferente, pero en algunas máquinas de arquitectura paralela o en algunas estaciones de trabajo a la vuelta de la esquina, la diferencia es significativa. La versión FORTRAN 90 declara explícitamente que los cálculos pueden realizarse en cualquier orden, incluyendo todos en paralelo simultáneamente.
Un efecto importante de ello es que si la versión de FORTRAN 90 experimenta una falla de punto flotante sumando el elemento 17, y revisa usted la memoria en un depurador, encontrará que el elemento 27 ya fue calculado y tiene un valor perfectamente válido.
Y no está usted limitado tan sólo a arreglos unidimensionales. Por ejemplo, la suma a nivel de elementos de dos arreglos bidimensionales puede realizarse así:1
A = A + B
en vez de:
DO J=1,M
DO I=1,N
A(I,J) = A(I,J) + B(I,J)
END DO
END DO
Naturalmente, si desea combinar dos arreglos en una operación, sus tamaños tienen que ser compatibles. Sumar un vector de siete elementos a uno de ocho no tiene sentido. Tampoco lo tiene multiplicar un arreglo de 2*4 a uno de 3*4.. Cuando los dos arreglos tienen tamaños compatibles, relativos a la operación a que quiere usted someterlos, decimos que tienen concordancia de tamaños, como en el siguiente código:
DOUBLE PRECISION A(8), B(8)
...
A = A + B
Siempre se considera que los escalares tienen concordancia de tamaños con los arreglos (y con otros escalares). En una operación binaria con un arreglo, un escalar se trata como un arreglo del mismo tamaño, con el único elemento duplicado en el resto de las posiciones.
Aun así, existen limitaciones. Cuando haga referencia a un arreglo particular, por ejemplo A, está haciendo referencia a todo él, del primer al último elemento. Seguro puede usted imaginar casos donde le interese especificar un subconjunto de un arreglo. Puede tratarse de un grupo de elementos consecutivos o algo como "cada octavo elemento" (i.e. un recorrido de salto no unitario a través del arreglo). A tales partes de los arreglos, posiblemente no contiguas, se les denomina secciones del arreglo.
Para especificar secciones de arreglos en FORTRAN 90, se reemplazan los índices tradicionales con tripletas de la forma a:b:c, que significan "los elementos desde a hasta b, tomados con un incremento de c." Pueden omitirse partes de la tripleta, siempre y cuando el significado permanezca claro. Por ejemplo, a:b significa "los elementos desde a hasta b;" a: significa "los elementos desde a hasta el extremo superior del arreglo con un incremento de 1." Recuerdo que una tripleta reemplaza a un único índice, así que un arreglo n-dimensional puede tener n tripletas.
Puede usted usar tripletas en expresiones, nuevamente asegurándose de que las partes de las expresiones estén en concordancia. Considere estos ejemplos:
REAL X(10,10), Y(100)
...
X(10,1:10) = Y(91:100)
X(10,:) = Y(91:100)La primera sentencia asigna los últimos 10 elementos de Y al décimo renglón de X. La segunda sentencia expresa lo mismo de modo ligeramente diferente. El " : " solitario le indica al compilador que está implícito el rango completo (del 1 al 10).





