Está en la página 1de 9

Manual de Fortran

17 Mayo, 2000 En el presente manual intento describir de una forma sencilla y clara el ltimo standard para el lenguaje FORTRAN: el F-90. Aunque cabe decir que las reglas generales de este lenguaje ya fueron publicadas por all en los aos 60. Os estaris preguntando porque he decidido hacer un manual sobre este lenguaje, el cual puede parecer arcaico en determinados momentos. La razn es que el lenguaje FORTRAN capacita al programador para lograr una buena utilizacin de los grandes sistemas, particularmente en todos aquellos casos relacionados con el sistema numrico. Aunque este lenguaje permite otras ms posibilidades, y el no estrictamente el relacionado con el clculo, desaconsejo la utilizacin de este lenguaje para tales fines ya que toda la potencia que pueda mostrar en los clculos lo pierde en otros aspectos. Para estos casos recomiendo la utilizacin de lenguajes ms intuitivos, como puede ser el Visual Basic. Por ltimo dir que los programas realizados en la seccin de ingeniera qumica han sido realizados en su mayora con este lenguaje.

Estructura de datos Operadores aritmticos Sentencias bsicas Sentencia GO TO Sentencias IF y DO

Estructura de datos
El lenguaje FORTRAN, como cualquier otro lenguaje de programacin, posee unos elementos bsicos que se estudiarn a continuacin y un conjunto de reglas que, combinando entre si esos elementos de base, van dando lugar a una serie de instrucciones, con las cuales el hombre llega a comunicarse con el ordenador. Antes de explicar como se construye un algoritmo, hay que mencionar los tipos de datos que puede manejar este lenguaje, los cuales vienen a ser bastante generales a cualquier sistema de programacin. 1. Constantes. Este trmino designa un valor especfico y determinado que se define al hacer un programa y que no cambia a lo largo del mismo

2. Variables. El concepto de variable coincide con el concepto habitual que se tiene de ella; es un nombre simblico con el que se designa o hace referencia a un dato que puede tomar valores diversos. Tanto las constantes como las variables pueden ser de cuatro tipos principalmente:
y

Entera (INTEGER). Una constante entera es una sucesin de dgitos precedidos o no del signo positivo (+) o negativo (-) y sin coma decimal, es decir, el concepto de constante entera en FORTRAN coincide con el concepto habitual de nmero entero. El lmite en la cantidad para datos enteros es de -32768 al 32767 para mquinas con memoria de 16 bits y de -2147433647 al 2147433647 para mquinas las cuales la memoria guarde hasta 32 bits. (Ej: 2435, -569, +15) Reales (REAL). En cualquier caso, una constante real en FORTRAN equivale al valor de un nmero real habitual, es decir, una cantidad formada por una parte entera y una fraccionaria (punto decimal equivale a coma). Se define como exponente real, el carcter alfabtico E seguido por in signo + o y por una constante formada por dos dgitos como mximo (Ej: E25, 1.23E-3, -5E-02) Lgicas (LOGICAL). Un dato lgico nicamente posee dos valores: cierto (.TRUE.) o falso (.FALSE.) y se guardan en memoria mediante cdigos binarios especiales. Obsrvese los puntos que preceden y siguen a estas valores, los cuales son indispensables. Carcteres (CHARACTER). Es un conjunto de caracteres vlidos y su longitud es el nmero total de caracteres que contiene. Se define una constante de este tipo precedidos y seguidos por un apstrofe (), cuyo carcter denomina delimitador. (Ej: Hola que tal, Coste= ). No confundir el apstrofe con las comillas, ya que son dos cosas totalmente diferentes. Doble precisin (REAL*8). Se denomina exponente doble precisin en FORTRAN, al carcter alfabtico D seguido opcionalmente del signo + o y finalizando por una constante entera (Ej: D01, 14.2D+3, 12D-02). La diferencia entre este tipo de valor con el de real es que para este caso es que el compilador reserva ms memoria para la doble precisin, con lo cual el nmero de dgitos es mayor.

Los nombres para las constantes y variables se forman utilizando un conjunto de caracteres, los cuales hay que seguir varias reglas:
y y

No pueden empezar por un carcter numrico, por ejemplo no se puede llamar una variable 8MAR. Todas aquellas variables cuyo nombre comience con los caracteres alfabticos I, J, K, L, M o N se dice que queda implcitamente definida como variable entera. Las variables enteras designan zonas de memoria cuyo contenido es una constante o valor entero. Todas aquellas variables cuyo primer carcter alfabtico sea una letra distinta de las mencionadas anteriormente, se dice que son variables reales definidas de forma implcita. Una variable real contiene un valor constante real.

Como esto restringe bastante la programacin, ya que por ejemplo no se podra declarar una variable distinta a entera o real, existe una forma de indicar explcitamente las constantes y variables, para ello se indica justo detrs del inicio del programa como se indica en la siguente tabla: INTEGER contador REAL numero LOGICAL salir CHARACTER*6 mensaje REAL*8 suma Variable entera denominada contador Variable real denominada numero Variable lgica denominada salir Variable de 6 caracteres denominada mensaje Variable doble precisin denominada suma

Para la declaracin de contantes, se realiza mediante la orden PARAMETER, de la siguiente forma: PARAMETER (radio=6.5) Esto es equivalente a indicar lo siguiente: REAL, PARAMETER (radio=6.5) Constante real de valor 6.5 Ya que como empieza por "r" FORTRAN entiende implicitamente que se trata de un valor real. Mi recomendacin para evitaros problemas, es que declaris siempre al principio todas las variables de esta forma, explcitamente, para menor confusin a la hora de que el programa interprete de una forma u otra una variable. Otro tipo de datos es el concepto denominado lista. Por ejemplo, la temperatura en 5 ciudades diferentes, puede disponerse convenientemente en secuencia de elementos, cada uno puede ser identificado segn el lugar que ocupa. As el conjunto podra ser de la siguiente forma: TEMPERATURA=(32,27,18,24,21) Lo mismo podra ocurrir con una matriz de doble entrada donde en cada posicin se encontrar la ciudad y en la otra la estacin del ao. Las listas y tablas son estructuras de datos que vamos a designar con el nombre genrico de conjunto de datos (en ingls: array) y que se declaran mediante la instruccin DIMENSION de la siguiente forma. DIMENSION B(3,4) Matriz de datos reales con 3 filas y 4 columnas Constante real de valor 6.5

Hasta aqu llega como se declaran los diferentes tipos de datos que hya en el lenguaje FORTRAN y com o se declaran, a continuacin pasar a detallar los conceptos generales para escribir el algoritmo final.

Operadores aritmticos
En matemticas se dispone de una serie de smbolos que indican determinadas operaciones a efectuar con los datos: As por ejemplo, el + para la suma, etctera. De la misma forma, el lenguaje FORTRAN posee tambin esos signos, los cuales se denominan operadores aritmticos, y son los cinco indicados en el cuadro siguiente: Operador Significado ** Exponenciacin / * + Divisin Multiplicacin Resta Suma

As, las expresiones algebraicas que siguen a continuacin, se escribirn en FORTRAN como se indica: Sumar A ms B Multiplicar A con B Dividir A entre B A elevado a B A que multipica a la suma de B ms C 5 veces A al cubo A+B A*B A/B A ** B A * (B + C) 5 * A ** 3

Cabe mencionar que cuando se opera con diferentes tipos de valores, es decir un real con un entero o cualquier otra combinacin resulta un valor del tipo ms dominante, el cual por orden es primero doble precisin, real, y por ltimo entero. Ejemplos y Multiplicar un entero con un real, se obtiene un real. y Sumar un valor de doble precisin con un entero, se obtiene un doble precisin. Por ltimo, mencionar otro tipos de operadores como pueden ser el logaritmo y la exponencial E Logaritmo de A Exponencial de a (E elevado a A) log(A) exp(A)

Sentencias bsicas
Antes de empezar con las sentencias de la programacin en FORTRAN hay que mencionar un pequeo detalle, el compilador de FORTRAN no lee los 6 primeros caracteres de una lnea, con lo cual habr que dejar en blanco estos, para empezar a escribir a partir de la columna nmero 7. Anteriormente a la versin de F-90, tambin haba una limitacin en la banda derecha, exactamente al carcter nmero 72, el cual ha sido solventado en esta ltima versin. Otra mencin merece el comentar que solo se puede escribir una sentencia por lnea, quedando restringido el utilizar varias de ellas en una misma lnea. A continuacin vamos con las sentencias bsicas del FORTRAN. Al escribir un programa FORTRAN, su primera sentencia puede ser PROGRAM, cuya sintaxis es simplemente: PROGRAM nombre siendo nombre, el nombre o denominacin simblica que quiere darse al programa que comienza a escribirse. No es obligatorio utilizar esta sentencia,; pero si figura en el programa, debe escribirse en primer lugar. Para indicar la terminacin de la ejecucin de un programa FORTRAN es necesario emplear la sentencia STOP, cuya sintaxis o forma general es: STOP n donde n es una serie de hasta cinco dgitos o bien una constante carcter (Ej: STOP 243, STOP final) Un programa FORTRAN puede contener varias sentencias STOP o lo que es lo mismo, varios puntos de parada. Por ello aunque el uso de n no es obligatorio, es conveniente para poder saber donde realmente se ha detenido un programa, ya que la constante n puede ser visualizada en una unidad de salida, cuando se produce la parada. La ltima sentencia de un programa tiene que ser: END Esta sentencia equivale al final de un programa ejecutable e indica al compilador que ya no existen ms sentencias en el programa fuente para ser convertidas en programa objeto. Para resumir, diramos que STOP produce una parada lgica y definitiva y sirve para detener un proceso; END sirve para indicar el final de una compilacin. Por tlimo dir que cualquier lnea precedida por el smbolo * o C se entender como un comenatrio, y el compilador lo obviar a la hora de codificar el programa. Esto puede resultar til, ya que puede hacer un prorama ms legible para personas que no sea el propio

programador. Este smbolo se coloca en la primera columna, espacio destinado para este fin.

Ejemplo:
PROGRAM suma * Este programa efecta la suma de dos nmeros DIMENSION valor(2) valor(1)=2 valor(2)=3 * Se introduce los valores de los dos nmeros en un vector de dos dimensiones sumavalor=valor(1) + valor(2) STOP END

La sentencia CONTINUE es ejecutable pero no genera instruccin alguna al ser traducida a cdigo mquina por el compilador. Su uso ms corriente es el siguiente: como se mencionar despus en las reglas del DO, la sentencia CONTINUE se emplea para colocar como ltima sentencia en este bucle. Otra aplicacin es la de sustituir CONTINUE por una sentencia que anteriormente se hacia referencia. Su sintaxis es muy simple: CONTINUE Para indicar una parada temporal en la ejecucin de un programa FORTRAN se utiliza la sentencia PAUSE, cuya sintaxis o forma general es: PAUSE n donde n es una serie de cinco dgitos como mximo o bien una constante carcter (Ej: PAUSE, PAUSE 234, PAUSE Parada en el programa).

Sentencia GO TO
En los programas preparadas por un ordenador, las instrucciones se ejecutan, mientras no se disponga lo contrario, secuencialmente, es decir, acabada la realizacin de una de ellas, comienza la ejecucin de la siguiente. En cambio existen situaciones donde nos interesa repetir una instruccin o ejecutar una instruccin que viene ms abajo ignorando de esta manera las sentencias siguientes. Esto saltos se denominan bifurcaciones, y se realizan mediante la instruccin GO TO o GOTO. Esta sentencia puede ser de dos tipos: incondicional o calculada. La sintaxis para el GO TO incondicional es la siguiente:

GO TO n siendo n el nmero o etiqueta de una sentencia ejecutable que parecer en el mismo programa: es, por consiguiente, una constante entera positiva y distinta de cero de valor n<99999. La constante n representa el nmero de la siguiente instruccin a realizar, es decir, el lugar preciso donde va a efectuarse la bifurcacin. Este nmero puede escribirse entre las columnas 1 a 5 de la hoja de codificacin. La sintaxis para el GO TO calculada es la siguiente: GO TO (n1, n2, .., nh), i siendo i un nombre de una variable. n1, n2, .., nh son nmeros o etiquetas de sentencias que se encuentran en el programa. La coma (,) que precede a la i es opcional. Con esta instruccin existe la posibilidad de bifurcar a diversas sentencias, segn sea el valor de la variable i. Si dicha variable toma el valor 1, se bifurcar a la sentencia nmero n1; si 2 a la n2 y as sucesivamente. Cuando sea i <1 o bien i>h, esta instruccin no tiene ningn efecto y se ejecuta la sentencia siguiente en consecuencia.

Ejemplo:
PROGRAM descuentos ... ... * Este programa dependiendo del estado efecta un descuento o otro GO TO (10, 20, 30), estado * Estado es una variable que puede optar tres valores: 1, 2 o 3 * soltero 10 paga=sueldo - 200.0 GO TO 50 * casado 20 paga=sueldo - 300.0 GO TO 50 * viudo 30 paga=sueldo - 400.0 GO TO 50 50 STOP END

Sentencias IF y DO
Otra sentencia que se emplea para realizar bifurcaciones, segn ciertas condiciones, es la sentencia IF. Responde a la sintaxis siguiente.

IF (e), n1, n2, n3 siendo e una expresin aritmtica entera o real y n1, n2 y n3 son nmeros o etiquetas se sentencias ejecutables, que se encuentran en el mismo programa. El significado de esta instruccin es: si el valor de la expresin e es menor, igual o mayor de cero, el control se transfiere, respectivamente, a la sentencia n1, n2 o n3 respectivamente.

Ejemplo:
PROGRAM pares * Suma de los nmeros pares menores de 102 I=2 suma=0 10 suma=suma + I I=I+2 IF (I-100)10,10,20 20 STOP END

Para ejecutar repetidamente una serie de sentencias en bucle, tiene mucha utilidad en el lenguaje FORTRAN el uso de una sentencia especial: la sentencia DO. Su sintaxis es: DO n, i = m1, m2, m3 siendo n una constante entera que indica el nmero de una sentencia posterior a la DO, que se denomina sentencia terminal del bucle DO. i es una variable entera y m1, m2, m3 son constantes o variables enteras, reales, o de doble precisin e indican un valor inicial, un valor final y un incremento. La variable m3 puede omitirse si su valor es igual a 1. Se pueden introducir tantos DO dentro de otros (DO en nido). Reglas sobre el uso del DO
y y y y y y

El valor de la variable o constante m3 de una sentencia DO no puede ser nunca cero. La ultima sentencia del rango de un DO ha de terminar con la sentencia CONTINUE. No esta permitido bifurcar desde fuera hacia dentro del rango de un DO, si de forma inversa. El valor de la variable del DO, i, es usado automticamente dentro del rango; pero no est permitido redefinirla. Est permitido todo tipo de bifurcacin dentro del propio rango. Tratndose de un nido de DO, debe tenerse en cuenta que todas las instrucciones del ms interno deben estar contenidas en el rango del externo.

Ejemplo:
PROGRAM cuadrados * Suma de los cuadrados de los nmeros impares comprendidos entre 1 y 10 DO 10 I=1, 10, 2 SUMA=SUMA + I*I 10 CONTINUE STOP END

También podría gustarte