Primero se creará una carpeta nueva para guardar el programa para este esquema, el archivo sera llamado simplemente "FTBCS", de modo que una vez guardado se tengan las primeras líneas de código como :
PROGRAM FTBCS
IMPLICIT NONE
END PROGRAM FTBCS
Lo anterior es como una estructura de código predefinida en la cual se van añadiendo líneas de código de acuerdo al tipo de programa que se escribirá.
El programa para esta parte inicial se muestra a continuación:
PROGRAM FTBCS
IMPLICIT NONE
INTEGER :: i
REAL :: ns, L, dx, dt, c, mu
REAL :: courant, gamma
! ns : numero de secciones en x
! L : longitud del dominio en x
! gamma = numero de difusion
! dx = delta de x
! dt = delta de t
!##--- Bloque de datos de entrada ---##!
!
! Nota: se dara un valor inicial para
! el paso de tiempo (dt).
L = 8.0
ns = 81
dt = 0.01
c = 0.5
mu = 0.25
!##----------------------------------##!
!##------ Bloque de operaciones -----##!
dx = L / (ns - 1)
courant = c * (dt / dx)
gamma = mu * dt / (dx ** 2)
!##----------------------------------##!
!##-- Bloque de salida en pantalla --##!
PRINT *, "dx = ", dx
PRINT *, "Courant = ", courant
PRINT *, "Gamma = ", gamma
IF (gamma <= 0.5) THEN
PRINT *, " "
PRINT *, "Como:"
PRINT *, " Gamma =", gamma, " <= 0.5"
PRINT *, "Entonces : El esquema es ESTABLE."
ELSE
PRINT *, " "
PRINT *, "Como:"
PRINT *, " Gamma =", gamma, " > 0.5"
PRINT *, "Entonces : El esquema es INESTABLE!"
END IF
!##----------------------------------##!
END PROGRAM FTBCS
Hasta aquí sólo se han usado varios de los mecanismos previamente presentados, excepto por la inclusión de el bloque condicional "IF / ELSE".
Fig.: Programa FTBCS, con comentarios adicionales y números de línea asignados en el software "Plato FTN 95".
Luego de indicar el nombre del programa, se declaran los tipos de variables a usar. Estas variables pueden denominarse de formas en las cuales uno pueda interpretarlas fácilmente, aunque en este ejemplo se optó por mantener abreviaciones, por ejemplo, para el número de secciones se usó "ns" en vez de "numero_de_secciones". Existen ocasiones en las que es mejor expresar los parámetros en modo muy explícito, como en el caso en el que uno esté tratando de crear un código fácil de leer, mantener y buscar posibles errores en compilación.
En el bloque de datos se asignan directamente los valores a ciertos parámetros para poder proceder con los cálculos necesarios del esquema FTBCS, los cuales están en el bloque de operaciones.
El bloque de salida en pantalla esta dedicado a mostrar mensajes de acuerdo a los resultados obtenidos del programa y sus instrucciones establecidas.
El bloque IF/ELSE, tiene ciertas formas de uso, para este caso se necesitó de una primera condición en la cual se evalúa si el valor de "gamma" es menor o igual a 0.5, si esto se cumple, el comando "THEN" procede a continuar con la siguiente expresión, en este caso es la de usar "PRINT" para imprimir en pantalla lo que se desee, en el ejemplo se desea mostrar el mensae de que "gamma" es menor o igual que 0.5 y añade que el esquema es "estable".
Fig.: Bloque de "IF / ELSE" para determinar si el esquema FTBCS es estable o no, de acuerdo a los parametros iniciales dados.
El comando "ELSE" considerará el resto de opciones que no incluyan a la condición usada con el comando "IF", lo cual sería que considere hacer las intrucciones en su "interior" si es que "gamma" es mayor que 0.5; si se cumpliese su condición, mostrará en pantalla lo que se indican en sus instrucciones usando el comando "PRINT".
Fig.: Resultados mostrados según el bloque de salida en pantalla.



No comments:
Post a Comment