Fortran
CONCEPTOS BASICOS
Muchas veces en un programa necesitamos repetir un mismo proceso varias veces en distintas partes de éste. Para evitar el tener que repetir el mismo código varias veces, el programador tiene la opción de sacar esa parte del programa en un módulo. Este módulo es independiente del programa principal y puede ser llamado por éste cuando serequiera. Muchos lenguajes de programación (como el C) se basan íntegramente en módulos. Se crea un módulo principal y distintos módulos más pequeños con las distintas operaciones del programa. A esta clase de programación se la denomina programación MODULAR. El lenguaje FORTRAN permite crear módulos independientes a los programas de dos tipos distintos. Son las funciones (function ) y subrutinas(subroutine). Los módulos se declaran mediante un nombre de variable. Los programas pueden llamar a estos módulos mediante su nombre. A continuación vamos a ver la forma de diseñar módulos. Es importante resaltar que, si bien un módulo es un programa completo, depende del programa principal que lo llama. No es posible ejecutar un módulo por separado, sino que debe siempre estar asociado a unprograma principal.
ORGANIZACION DE MODULOS
Los módulos se organizan de forma que siempre debemos tener un programa principal (PROGRAM ), en el cual comienza el proceso, y que llama a cada subprograma enviándole los datos iniciales, para que los procese, cuando lo necesite. Los subprogramas devolverán los resultados de su acción al programa principal.
El retorno de un módulo siempre se realiza ala línea siguiente de aquella que hace la llamada en el caso de subrutinas, o a la misma en el caso de funciones. Los datos que se envían a los módulos se llaman argumentos del programa principal. Los datos recibidos en el módulo son los argumentos del módulo. Las variables usadas en los módulos se llaman variables temporales, y su tiempo de vida es el mismo que el de ejecución del módulo, esdecir, todas las variables de los módulos son destruidas al retornar de este al programa principal. Podemos usar nombres en los subprogramas que coincidan con variables del programa principal, pues no tienen nada que ver, ya que son variables temporales del procedimiento, y solo son conocidos por el. Los demás módulos no saben de la existencia de esa variable, a no ser que sea enviada como argumento.DIFERENCIAS ENTRE SUBRUTINA Y FUNCION
Hemos dicho que existen dos tipos de módulos en FORTRAN, subrutinas y funciones. Las principales diferencias entre ellas son las siguientes:
Una función es un bloque de código con un nombre de variable. En el programa principal se hace referencia a el como si de una variable más se tratara. Generalmente, las funciones aparecen en sentencias deasignación y en expresiones a evaluar, como una variable más, por ejemplo en el siguiente programa:
PROGRAM MAS_MENOS
INTEGER A,B,N
WRITE(*.*)'DAME LOS SUMANDOS A Y B'
READ(*,*)A,B
WRITE(*,*)ELIGE OPERACION 1=SUMA,2=RESTA'
READ(*,*)N
SELECT CASE (N)
CASE(1)
WRITE(*,*)SUMA(A,B)
CASE DEFAULT
WRITE(*,*)RESTA(A,B)
END SELECT
END
Se llama a dos funciones de nombre SUMA y RESTA queefectuarán la operación correspondiente de los sumandos. La sintaxis de estas funciones sería:
INTEGER FUNCTION SUMA(X,Y)
INTEGER X,Y
SUMA=X+Y
END
INTEGER FUNCTION RESTA(J,K)
INTEGER J,K
RESTA=J-K
END
Primero se evalúa la expresión y luego se imprime. Si una función aparece varias veces en una misma expresión, se procesa sucesivamente, hasta lograr el valor final de la expresión.
Nóteseque en el programa principal, los nombres de las funciones conllevan unos paréntesis con nombres de variables. Estos son los valores o argumentos que se envían a la función para que realice su tarea. El resultado de la función queda almacenado en su nombre y devuelto mediante este al programa principal (Nótese que se emplea el nombre de la función sin argumentos dentro de la propia función, es...
Regístrate para leer el documento completo.