Está en la página 1de 2

ASIGNACION DE VALORES A TABLAS

Las versiones anteriores de FORTRAN slo permitan la asignacin de valores a


los elementos de una tabla elemento a elemento, tpicamente mediante la
utilizacin de bucles DO. FORTRAN90 incluye una buena cantidad de
procedimientos para manipular tablas de forma global.
Se pueden asignar valores a vectores escribiendo a la derecha del signo igual
los valores encerrados entre los signos (/ y /) , y separndolos por comas, como
en:
Ejemplo:
Real:: v(5), w(5)
V=(/ 1.,2.,3.,4.,5. /)
X=1.1
W=(/ 0.,x,x-1,0.,-1. /)
Se pueden utilizar otras variables para escribir los valores. Tambin se puede
incluir un vector que ya tenga valores asignados como parte de otro, como en:
Ejemplo:
Real:: v(5), w(3)
W=(/ 1.2,3.1,-1.2 /)
V=(/ 0., w ,0. /)
Otra posibilidad es utilizar el DO implcito:
Ejemplo:
Integer:: nvec(5)
nvec(/ (i,i=1,5) /)
Este ejemplo asigna el vector entero nvec los valores nvec=(1,2,3,4,5)
Debe tenerse en cuenta que con este mecanismo slo se puede crear un
vector (i.e. una tabla de una dimensin) luego, por s solo, no es apto para
asignar valores a una tabla con ms de una dimensin.
ARREGLOS
Muchos clculos cientficos usan vectores y matrices. El tipo de dato usado en
Fortran para representar tales objetos es el array. Un arreglo unidimensional
corresponde a un vector, mientras que un arreglo bidimensional corresponde a
una matriz.
Arreglos Unidimensionales

El arreglo ms sencillo es el de una dimensin, el cual es slo un conjunto de


elementos almacenados secuencialmente en memoria. Por ejemplo, la
declaracin
real d(20)
o de manera alternativa:
real, dimension (20) :: d
declara a d como un arreglo del tipo real con 20 elementos. Esto es, d consiste
de 20 nmeros del tipo real almacenados en forma contigua en memoria.
Arreglos Bidimensionales
Las matrices son muy importantes en lgebra lineal. Las matrices son
usualmente representadas por arreglos bidimensionales. Por ejemplo, la
declaracin
real Arreglo(3,5)
O
real, dimension (3, 5) :: Arreglo
define un arreglo bidimensional de 3 x 5 = 15 nmeros del tipo real. Es til
pensar que el primer ndice es el ndice del rengln, y el segundo ndice
corresponde a la columna. Por lo tanto se vera como:
1

1
2
3
Para esto sirve la funcin RESHAPE. Su sintaxis es:
RESHAPE(input,forma)
Donde input es la tabla que se quiere re-interpretar y forma es un vector entero
indicando las nuevas dimensiones que se le quieren dar a la tabla input. Por
ejemplo, con
RESHAPE(M,(/2,6/))
Esta funcin se puede utilizar para asignar valores a tablas con ms de una
dimensin. As, para conseguir una matriz ms amplia, se podra escribir:
INTEGER:: M(4,3)
M=RESHAPE( (/I,I=1,12)/), (/4,3/) )

También podría gustarte