Vous êtes sur la page 1sur 8

UNIVERSIDAD AUSTRAL DE CHILE FACULTAD DE CIENCIAS DE LA INGENIERA INSTITUTO DE OBRAS CIVILES ESCUELA DE INGENIERA CIVIL EN OBRAS CIVILES.

Conceptos Introductorios sobre el Lenguaje FORTRAN.


Informativo N3

Estos apuntes son entregados a los alumnos que cursan la asignatura de Computacin para Ingeniera Estructural (IOCC 281), para la Carrera de Ingeniera Civil en Obras Civiles de la Universidad Austral de Chile. Su confeccin se ha hecho con el fin de entregar a los alumnos una gua de comandos bsicos y sencillos ejemplos que les facilite el aprendizaje del lenguaje FORTRAN. Lgicamente la presente gua puede quedar supeditada a limitaciones y errores, los cuales debieran sortearse con informacin complementaria y correcciones, respectivamente, en virtud de la correcta elaboracin de apuntes para fines educativos de vuestra Escuela.

Pablo E. Oyarzn H. Ing. Civil en Obras Civiles Universidad Austral de Chile

1.

Cadenas de caracteres.

Numerosas situaciones en la prctica sugieren manipular informacin compuesta de caracteres. 1.1. Constantes de tipo caracter.

Un caracter corresponde a una nica letra, dgito o smbolo admitido por el lenguaje FORTRAN para incluir contenido de tipo texto dentro de una variable. Una constante de tipo caracter corresponde a una cadena de caracteres, escrita entre apstrofes (comilla simple); por ejemplo ABC. El contenido o cardinalidad de la variable de tipo cadena de caracteres corresponde al nmero de elementos (caracteres) que la forman; tambin se cuentan los espacios en blanco incluidos dentro de los apstrofes, por ejemplo A#B DONT 3.14 =$*.+/Nota: 1.2. cardinalidad: 3 cardinalidad: 5 cardinalidad: 4 cardinalidad: 7

El smbolo # representa un espacio en blanco. Variables de tipo caracter.

Corresponden a variables que almacenan constantes de tipo caracter. Tales variables deben declararse de la siguiente forma. CHARACTER*n <lista de variables> donde n determina la cardinalidad de las variables de la lista; sta puede ser una constante entera o cualquier expresin constante entera encerrada entre parntesis. Debe entenderse cada variable como una secuencia de unidades de almacenamiento de caracteres. La cardinalidad o contenido de la variable es igual al nmero de estas unidades. Ejemplos: CHARACTER*10 X, Y, Z Esta declaracin establece tres variables (X, Y y Z) de tipo caracter, cada una de cardinalidad 10. O sea cada variable es capaz de almacenar hasta 10 caracteres.

Una forma ms general de declarar la cardinalidad de variables de tipo caracter es asociar, a cada variable de la lista, su cardinalidad escrita justamente despus de su nombre, como se ve en los siguientes ejemplos: CHARACTER NOMBRE*20 CHARACTER A*1, NOMBRE*20, NUMERO*4 Observaciones:

CHARACTER es una declaracin, por lo que debe ir antes del primer comando ejecutable de un programa; Siempre que exista una especificacin de cardinalidad asociada a una variable de la lista, ella prevalece por sobre la especificacin de cardinalidad asociada a la declaracin. En el siguiente ejemplo las variables X, Y y Z tienen cardinalidad 10, mientras que la variable NOMBRE posee cardinalidad 20. CHARACTER*10 X, Y, Z, NOMBRE*20

Caso no fuere declarada cardinalidad alguna, se asume que cada variable implicada en esa lnea posee cardinalidad 1; En la declaracin de conjuntos (o variables compuestas tales como vectores y matrices) de tipo caracter, la especificacin de cardinalidad, cuando es asociada a una variable, debe ir despus de la informacin acerca de las dimensiones del conjunto; por ejemplo CHARACTER NOMBRES (40)*30

1.3.

Constantes simblicas de tipo caracter.

Para la asociacin de contenido (nombres) a las variables de tipo caracter puede usarse la declaracin PARAMETER, tal como en el caso de las constantes numricas. Por ejemplo CHARACTER TITULO*23 PARAMETER (TITULO = INSTITUTO DE MATEMATICA) Otra forma de conseguir el mismo efecto, vlida solamente con la declaracin PARAMETER, es CHARACTER TITULO*(*) PARAMETER (TITULO = INSTITUTO DE MATEMATICA) La presente forma puede resultar ms conveniente, pues no existira la necesidad de prescribir previamente la cardinalidad o nmero de caracteres que admite la variable.

1.4.

Expresiones de tipo caracter.

Destacando el hecho de que una expresin consiste en una combinacin de operandos a travs de operadores, las expresiones del tipo caracter pueden combinar operandos del tipo caracter mediante el operador de concatenacin //. Forma general: C1 // C2 en la que Ci : Funcionamiento: El operador de concatenacin crea una nueva cadena mediante la unin de las cadenas C1 y C2. Ejemplo: expresiones del tipo caracter.

.
CHARACTER C*3 , R*7 C = FOR R = C // TRAN WRITE ( * , * ) R

.
Impresin resultante: 1.5. FORTRAN

Comando de atribucin para caracteres.

El comando = permite atribuir a variables de tipo caracter resultados de expresiones de tipo carcter. Forma general: <variable del tipo caracter> = <expresin del tipo caracter>

Ejemplo: CHARACTER MES*10 MES = ENERO

.
MES = FEB // RERO Observaciones: Si la cardinalidad de la variable es mayor que la del resultado de la expresin atribuida, entonces el valor resultante de dicha expresin es almacenado en la parte localizada a la izquierda de la variable, mientras que las casillas restantes son llenadas con espacios en blanco. En el ejemplo anterior se tendr

2.

Comandos para locacin dinmica de variables.

En muchas ocasiones, principalmente en programas consistentes en cdigos muy extensos, se hace indispensable desde el punto de vista prctico la designacin de una variable para dimensionamiento de vectores y matrices; esto es, la lectura de una variable, sea por pantalla o a travs de un archivo de datos, para posterior dimensionamiento de variables compuestas. La definicin de variables con locacin dinmica se efecta mediante el uso del comando ALLOCATABLE. La variable entera es leda y posteriormente incluida en declaraciones de dimensionamiento de variables compuestas a travs del comando ALLOCATE.

Comando ALLOCATABLE.

Es utilizado para declarar variables compuestas (vectores y matrices) con locacin dinmica. Forma general: ALLOCATABLE :: VAR1(:, :), VAR2(:) Ejemplo: ALLOCATABLE :: A(:, :), BB(:), XX(:, :, :) En dicha declaracin se seala A como matriz (de dos dimensiones), BB como vector y XX como arreglo de tres dimensiones. Tal como se ha mencionado antes, el nmero de elementos en cada dimensin de estas variables compuestas quedar determinado por constantes o variables definidas posteriormente a lo largo del programa. Observaciones:

Las declaraciones ALLOCATABLE deben ir incorporadas antes de cualquier comando ejecutable de la unidad de programa, despus de las declaraciones de tipo; En caso que se tenga la necesidad de especificar el tipo de variable compuesta, adems de definir locacin dinmica, ambos tipos de informacin pueden ser incorporadas dentro de la misma lnea de comando, por ejemplo: REAL, ALLOCATABLE :: A(:,:)

Comando ALLOCATE.

Efecta las declaraciones de variables compuestas una vez que se han definido las variables enteras que definen el dimensionamiento de tales variables compuestas. Forma general: ALLOCATE (VAR1(n1, n2), VAR2(n3), STAT= ierr) en la cual ierr: Indicador opcional que acusa el estado de la sentencia; caso la lectura sea considerada exitosa arroja el valor 0, caso contrario arroja un valor diferente de cero.

Un ejemplo de fragmento de programa se muestra a continuacin, donde se declara la variable compuesta con locacin dinmica, luego se leen los parmetros para dimensionamiento y posteriormente se dimensionan las variables compuestas: Ejemplo: ALLOCATABLE :: (A(:, :), BB(:), XX(:, :, :))

.
READ (*, *) n, m

.
ALLOCATE (A(n, n), BB(m), XX(n, m, 2))

.
Observacin:

Las declaraciones ALLOCATE son las nicas que pueden ser incluidas a lo largo del programa, entre lneas de comandos ejecutables y no necesariamente al inicio de la unidad de programa. Es utilizada una vez que se han definido variables que servirn para dimensionar vectores y matrices; En caso que exista en la sentencia ALLOCATE, y la instruccin STAT no aparezca en la lnea de comandos donde fue especificado el comando ALLOCATE, el programa se detiene. Comando DEALLOCATE. Utilizase este comando en caso que se quiera deshacer la locacin de una

variable.

Forma general: DEALLOCATE (VAR1, VAR2, STAT= ierr)

Comando ALLOCATED.

Comando que es empleado a modo de indicador si la variable ha sido o no dimensionada. Como resultado arroja un valor lgico (verdadero o falso); .TRUE. en caso que la variable haya sido dimensionada y .FALSE. si es que an no lo ha sido. Forma general: ALLOCATED (VAR1)

Vous aimerez peut-être aussi