Sie sind auf Seite 1von 23

UNIVERSIDAD AUTONOMA DEL CARMEN

FACULTAD DE QUIMICA
INGENIERIA PETROLERA

GUÍA PARA CÓDIGOS EN FORTRAN


Simulación Numérica de
Yacimientos Naturalmente Fracturados

DOCENTE:
DR. EDUARDO ALONSO ROSADO VAZQUEZ

EQUIPO
CHAO MEY ESTIFALIS BALÁN LANDERO
EDUARDO VIDAL CASTRO JIMENEZ
CORAIMA DEL CARMEN RODRÍGUEZ PÉREZ

Cd. Del Carmen, Campeche A 9 de Enero de 2018


DO

¿Qué es?

El ciclo Do (hacer) ejecuta una sentencia de instrucciones un número determinado


de veces. Para llevar la cuenta, utiliza una variable de conrol que toma distintos
valores en cada iteración.

¿Para qué se usa?

Se utiliza para ejecutar repeticiones de un conjunto de instrucciones

¿Cómo se representa mediante los símbolos de diagrama de flujo?

Indica una secuencia de acciones que realizan una tarea específica incrustada
dentro de un proceso más grande. Esta secuencia de acciones podría describirse
con más detalle en un diagrama de flujo separado.

Sintaxis

Do <Variable> = <inicio>, <fin>, [<inc>]

<Sentencias>

End do

Semántica

<Variable> entera, se conoce como índice


Inicialmente se asigna el valor <inicio> a la <Variable>

Se comprueba que la variable no haya llegado al valor <fin>

El paso de la iteración viene dado por <inc>

Ejemplo
DO WHILE

¿Qué es y para que se usa?

Una manera de limitar el número de iteraciones de un bloque de instrucciones do,


consiste en utilizar la variante do while.

El ciclo continúa realizando mientras la condición sea cierta; eso significa, que para
que se ejecute al menos una vez, la condición tiene que ser cierta en el primer ciclo.
En esta variante, está permitido utilizar las instrucciones cycle y exit; como también
es posible imbricar otros ciclos do.

¿Cómo se representa mediante los símbolos de diagrama de flujo?

Sintaxis

Do While(condición)

conjunto de instrucción o argumentos



End do
Ejemplo
IF

¿Qué es?

En ocasiones uno desea que una parte del programa solo sea ejecutada si cierta
condición específica se satisface. Esto se logra utilizando los “condicionales”, que
en FORTRAN se controlan con el comando IF.

¿Para qué se usa?

Se utiliza para comparar variables y dependiendo del resultado de esa comparación


se ejecuta una instrucción o conjunto de instrucciones.

¿Cómo se representa mediante los símbolos de diagrama de flujo?

Un punto de decisión o ramificación. Las líneas que representan diferentes


decisiones surgen de diferentes puntos del diamante.

Sintaxis

If <Condición>

Then

[Bloque de instrucciones]

Else

[Bloque de instrucciones]

End if
Ejemplo
ENTRADA Y SALIDA DE DATOS (INPUT/OUTPUT)

En la mayoría de los códigos científicos es necesario dar datos desde fuera y sacar
datos hacia afuera. Por default, la entrada de datos es desde el teclado y la salida
es a la pantalla. La entrada y salida de datos se manejan con los comandos:

read(,)

write(,)

Ambos comandos tienen dos argumentos, el primero de los cuales indica la “unidad”
de entrada o salida, y el segundo el formato en el que están los datos. La versión
más simple es:

read(*,*)

write(*,*)

Aquí, el primer asterisco indica entrada o salida estándar (teclado y pantalla


respectivamente), y el segundo formato libre. El comando write(*,*) puede
substituirse por la forma equivalente print * seguido de una coma.
READ

¿Qué es?

La declaración READ es utilizada para la transferencia de datos

¿Para qué se usa?

Se utiliza para ingresar información y obtener fuera de la computadora

¿Cómo se representa mediante los símbolos de diagrama de flujo?

Representa un paso en el que se pide al usuario que introduzca la información


manualmente.

Sintaxis

Read (Unidad,Formato) lista de variables

Ejemplo
WRITE

¿Qué es?

permite al ordenador escribir la información que ha procesado.

¿Para qué se usa?

Se utiliza para sacar la información y obtener datos desde afuera de la computadora

¿Cómo se representa mediante los símbolos de diagrama de flujo?

Sintaxis

WRITE(*,*)

Donde el * denota el lugar de escritura que la máquina toma por defecto (la pantalla)
y el segundo que escriba los datos tal como los tiene almacenados.”

La forma general de la sentencia WRITE es WRITE(n1,n2) donde n1 son los


archivos de salida que puede ir desde el 1 hasta el 99 y el n2 FORMAT que indica
con que formato deben ser escritos los datos (número de decimales, posición en
pantalla, separación, etc.), los cuales numeraremos desde el 100 hacia adelante.
Ejemplo
FORMAT
¿Qué es?

En ocasiones se requiere que los datos de entrada o salida estén en un formato


muy específico. El control del formato se lleva a cabo en el segundo argumento de
los comandos open y close.

¿Para qué se usa?

Existen dos posibilidades: Para formatos sencillos, el formato se coloca


simplemente el formato entre comillas y paréntesis dentro del segundo argumento,
mientras que para formatos más complicados se coloca un número entero que
identifica la línea donde está el formato.

¿Cómo se representa mediante los símbolos de diagrama de flujo?

Síntaxis

Un ejemplo simple muestra como trabaja. Supongamos que se tiene una variable
entera que se quiere mostrar con un ancho de 4 caracteres y un número real que
se quiere mostrar en notación de punto fijo con 3 decimales.
La etiqueta 900 de la sentencia format es escogida en forma arbitraria, pero es una
práctica común numerar las sentencias format con números más grandes que las
etiquetas de control de flujo. Después de la palabra format se ponen los códigos de
formato encerrados entre paréntesis. El código I4 indica que un entero tendrá un
ancho de 4 y F8.3 significa que el número deberá mostrarse en notación de punto
fijo con un ancho de 8 y 3 decimales.

La sentencia format puede estar en cualquier lugar dentro del programa. Hay dos
estilos de programación: agrupar por parejas las sentencias (como en el ejemplo),
o poner el grupo de sentencias format al final del (sub)programa.

Códigos comunes de formato

Las letras para códigos de formato más comunes son:

A - cadena de texto

D - números de doble precisión, notación científica

E - números reales, notación científica

F - números reales, formato de punto fijo

I - entero

X - salto horizontal (espacio)

/ - salto vertical (nueva línea)


Ejemplo
OPEN-CLOSE

¿Qué es?

El comando OPEN que permite usar un archivo asignándole una unidad.

El comando CLOSE está asociado a unidad-archivo que se estableció al utilizar


OPEN.

¿Para qué se usa?

Se utiliza para leer datos desde un archivo. Para ello debe primero abrirse el archivo
con el open que debe tener al menos dos argumentos. El primer argumento es la
“unidad” a la que se asigna la salida o entrada de datos, que debe ser un número
entero (comúnmente se usa 10). El segundo argumento es el nombre del archivo
entre comillas. Al terminar de leer o escribir se debe cerrar el archivo con el comando
close cuyo único argumento es el número de la unidad.

¿Cómo se representa mediante los símbolos de diagrama de flujo?

Representa el material o la información que entra o sale del sistema, como una
orden del cliente (entrada) o un producto (salida).

Sintaxis

OPEN ( UNIT, FILE='nombre del archivo')

Close (UNIT)
Ejemplo
SUBPROGRAMAS

En muchas ocasiones existen tareas que se deben realizar muchas veces durante
la ejecución de un código, por lo que resulta conveniente que sean subprogramas
en si mismos. La existencia de subprogramas también hace que un código sea más
modular, y permite que diferentes personas programes diferentes partes de un
mismo código. Los diversos subprogramas pueden ser parte de un mismo archivo,
o estar en archivos separados que se unen durante el proceso de compilación. Si
están en un mismo archivo, deben aparecer después de la línea que termina el
programa principal. En FORTRAN 90 hay tres tipos básicos de subprogramas:
funciones, subrutinas y módulos. Consideraremos cada uno de ellos por separado.

FUNCIONES

¿Qué es?

Así como existen funciones intrínsecas en FORTRAN (sin, cos, etc.), también es
posible definir funciones nuevas de una o más variables. El objetivo de una función
es obtener un numero a partir de los argumentos.

¿Para qué se usa?

Al igual que el programa principal, una función comienza por su nombre function
nombre. Al final de la función deben aparecer los comandos return seguido de end
function nombre, esto regresa el control al programa principal. La función es una
unidad autónoma, por lo que debe declarar todas las variables que utiliza,
incluyendo el nombre de la función y los argumentos.
¿Cómo se representa mediante los símbolos de diagrama de flujo?

Es muy importante que los argumentos de la funci´on sean del mismo tipo cuando
se llama la funci´on y en la funci´on misma, de otra forma habr´a errores al ejecutar
el c´odigo. El nombre de la funci´on debe declarase en el programa principal y
cualquier subprograma que la llame.

Sintaxis

---

Ejemplo
SUBRUTINAS

¿Qué es?

Una subrutina es similar a una función, pero más complicada, de la que no solo se
espera un número, sino toda una secuencia de operaciones que pueden requerir
regresar muchos números al programa principal (o ninguno).

¿Para qué se usa?

Las subrutinas se llaman usando el comando call nombre. Igual que las funciones,
las subrutinas comienzan por su nombre subroutine nombre y terminar con los
comandos return y end subroutine nombre. Tambi´en son unidades aut´onomas que
deben declarar todas las variables que utilizan, incluyendo a sus argumentos.

A diferencia de las funciones, el nombre de una subrutina no tiene un tipo (el nombre
de las funciones si tiene un tipo pues corresponde al valor de regreso).

¿Cómo se representa mediante los símbolos de diagrama de flujo?

Una característica importante de las subrutinas es que cuando se pasa un arreglo


como uno de sus argumentos, no es necesario dar el tamaño. Se puede pasar el
tamaño como un argumento, digamos N, y simplemente declarar el arreglo como
real, dimensión(N) :: nombre. Algo similar sucede con la variable de tipo carácter
que se pueden declarar con dimensión indeterminada usando * cuando son parte
de los argumentos de la subrutina, de manera que heredan el tamaño que tengan
el en programa que llamo a la subrutina.

Sintaxis

---
Ejemplo
MODULOS

¿Qué es?

El último tipo de subprogramas son los módulos que solo existen a partir de
FORTRAN 90. Los módulos sirven para declarar variables que se usan en muchos
subprogramas, o para agrupar muchos subprogramas en una sola unidad.

¿Para qué se usa?

Los módulos comienzan por su nombre module nombre y terminan con end module
nombre (en los módulos no se utiliza el comando return). A diferencia de las
funciones y subrutinas, si el módulo está en el mismo archivo que el programa
principal, debe estar antes que este. Cualquier subprograma que haga uso del
módulo debe hacerlo mediante el comando use nombre inmediatamente después
del nombre del subprograma

¿Cómo se representa mediante los símbolos de diagrama de flujo?

El uso más común de los módulos es para declarar variables que van a ser utilizadas
por muchos subprogramas.

Sintaxis

---
Ejemplo
BIBLIOGRAFÍA

 Alcubierre M. (2005). Introducción a FORTRAN. UNAM. Recuperado el 08


de enero de 2018, desde:
http://pelusa.fis.cinvestav.mx/tmatos/LaSumA/LaSumA2_archivos/Superco
mputo/Fortran.pdf
 Símbolos de diagramas de flujo. (2018). Smartdraw.com. Recuperado el 08
de enero de 2018, desde:
https://www.smartdraw.com/flowchart/simbolos-de-diagramas-de-flujo.htm
 Manual de FORTRAN. Recuperado el 08 de enero de 2018, desde:
http://anyp.fcaglp.unlp.edu.ar/biblio/fortran/fortran90.pdf
 Símbolos de diagramas de flujo. (2018). Recuperado el 08 de enero de 2018,
desde:
https://es.slideshare.net/32marce23/diagramas-de-flujo2
 Introducción a Fortran. (Abril 2005) por Miguel Alcubierre. Instituto de
Ciencias Nucleares, UNAM desde:
http://pelusa.fis.cinvestav.mx/tmatos/LaSumA/LaSumA2_archivos/Superco
mputo/Fortran.pdf

Das könnte Ihnen auch gefallen