manual fortran

Download Manual fortran

Post on 13-Jul-2015

3.951 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

  • UNIVERSIDAD NACIONAL DEL CALLAO

    METODOS COMPUTACIONALES DE

    LA FISICA Apuntes de Clase

    JUVENAL TORDOCILLO PUCHUC

    CALLAO-2012

    Este documento fue elaborado en Word 2010, para el semestre acadmico 2012-B, del curso de Mtodos Computacionales de la Fsica, dicho curso se imparte en Facultad de Ciencias Naturales y Matemtica de la Universidad Nacional del Callao.

  • JUVENAL TORDOCILLO PUCHUC 1

    Dios es real

    A menos que sea declarado entero.

    1.1 Comenzando a programacin.

    La resolucin de un problema cientfico con una computadora, tarde o temprano,

    conduce a la escritura de un programa que implemente la solucin del problema. Un

    programa es un conjunto de instrucciones, ejecutables sobre una computadora, que

    permite cumplir una funcin especfica. Ahora bien, la creacin del programa no

    comienza directamente en la computadora! El proceso comienza en papel diseando un

    algoritmo para resolver el problema. Un algoritmo es un conjunto de pasos (o

    instrucciones) precisos, definidos y finitos que a partir de ciertos datos conducen al

    resultado del problema.

    Caractersticas de un algoritmo.

    preciso: el orden de realizacin de cada paso est especificado,

    definido: cada paso est especificado sin ambigedad,

    finito: el resultado se obtiene en un nmero finito de pasos.

    entrada/salida: dispone de cero o ms datos de entrada y devuelve uno o ms resultados.

  • JUVENAL TORDOCILLO PUCHUC 2

    Para describir un algoritmo utilizaremos un pseudocdigo. Un pseudocdigo es un

    lenguaje de especificacin de algoritmos donde las instrucciones a seguir se especifican

    de forma similar a como las describiramos con nuestras palabras.

    Consideremos, como ejemplo, el diseo de un algoritmo para calcular el rea de un

    crculo. Nuestro primer intento, bruto pero honesto, es:

    Calcular el rea de un crculo.

    Sin embargo, este procedimiento no es un algoritmo, por cuanto no se especifica, como

    dato de entrada, cul es el crculo a considerar ni tampoco cual es el resultado. Un mejor

    procedimiento sera:

    Leer el radio del crculo.

    Calcular el rea del crculo de radio dado.

    Imprimir el rea.

    Sin embargo, ste procedimiento an no es un algoritmo por cuanto la segunda

    instruccin no especifica cmo se calcula el rea de un crculo de radio dado.

    Explicitando la frmula matemtica tenemos finalmente un algoritmo apropiado:

    Leer el radio del crculo.

    Tomar p = 3.141593.

    Calcular rea = p*radio*radio.

    Imprimir el rea.

    Una manera complementaria de describir un algoritmo es realizar una representacin

    grfica del mismo conocida como diagrama de flujo. El correspondiente diagrama de

    flujo para el algoritmo anterior se ilustra en la figura 1.1.

    Una vez que disponemos del algoritmo apropiado, su implementacin en la

    computadora requiere de un lenguaje de programacin. Un lenguaje de programacin es

    un lenguaje utilizado para escribir programas de computadora. Como todo lenguaje,

    cada lenguaje de programacin tiene una sintaxis y gramtica particular que debemos

    aprender para poder utilizarlo. Por otra parte, si bien existen muchos lenguajes de

    programacin.

    Para escoger, un lenguaje adecuado para problemas cientficos es el denominado

    lenguaje Fortran. El proceso de implementar un algoritmo en un lenguaje de

    programacin es llamado codificacin y su resultado cdigo o programa fuente.

    Siguiendo con nuestro ejemplo, la codificacin del algoritmo en el lenguaje Fortran

    conduce al siguiente programa:

  • JUVENAL TORDOCILLO PUCHUC 3

    PROGRAM calcular_area

    ! -------------------------------------------------

    ! Clculo del rea de un crculo de radio dado

    ! -------------------------------------------------

    ! Declaracin de variables

    ! -------------------------------------------------

    IMPLICIT NONE

    REAL :: radio ! radio del crculo

    REAL :: area ! rea del crculo

    REAL, PARAMETER :: PI = 3.141593 ! nmero pi

    ! -------------------------------------------------

    ! Entrada de datos

    ! -------------------------------------------------

    WRITE(*,*) Ingrese radio del crculo READ(*,*) radio

    ! -------------------------------------------------

    ! Calcular area

    ! -------------------------------------------------

    area = PI*radio**2

    ! -------------------------------------------------

    ! Imprimir resultado

    ! -------------------------------------------------

    WRITE(*,*) Area = , area ! -------------------------------------------------

    ! Terminar

    ! -------------------------------------------------

    STOP

    END PROGRAM calcular_area

    An cuando no conozcamos todava la sintaxis y gramtica del Fortran, podemos

    reconocer en el cdigo anterior ciertas caractersticas bsicas que se corresponden con el

    algoritmo original. En particular, notemos que los nombres de las variables involucradas

    son similares a la nomenclatura utilizada en nuestro algoritmo, que los datos de entrada

    y salida estn presentes (junto a un mecanismo para introducirlos y mostrarlos) y que el

    clculo del rea se expresa en una notacin similar (aunque no exactamente igual) a la

    notacin matemtica usual. Adems hemos puesto una cantidad de comentarios que

    permiten comprender lo que el cdigo realiza.

    Un algoritmo es independiente del lenguaje de programacin. Si bien estamos utilizando Fortran como lenguaje de programacin debemos enfatizar que un algoritmo es independiente del lenguaje de programacin que se utiliza para su codificacin. De este modo un mismo algoritmo puede ser implementado en diversos lenguajes.

  • JUVENAL TORDOCILLO PUCHUC 4

    Nuestro programa fuente, almacenado ahora en el archivo fuente area.f90, no es todava

    un programa que la computadora pueda entender directamente. Esto se debe a que

    Fortran es uno ms de los denominados lenguajes de alto nivel, los cuales estn

    diseados para que los programadores (es decir, nosotros) puedan escribir instrucciones

    con palabras similares a los lenguajes humanos (en general, como vemos en nuestro

    cdigo, en idioma ingls). En contraste, una computadora no puede entender

    directamente tales lenguajes, pues las computadoras solo entienden lenguajes de

    mquina donde las instrucciones se expresan en trminos de los dgitos binarios 0 y 1.

    De este modo, nuestro programa fuente, escrito en un lenguaje de alto nivel, debe ser

    traducido a instrucciones de bajo nivel para que la computadora pueda ejecutarlo. Esto

    se realiza con ayuda de un programa especial conocido como compilador. As pues, el

    compilador toma el cdigo fuente del programa y origina un programa ejecutable que la

    computadora puede entender directamente. Este proceso es denominado compilacin.

    Ejercicio 1.1 Compile el programa fuente del ejercicio anterior. Verifique que se

    genera, efectivamente, el programa ejecutable.

    Ejercicio 1.2 Verificar que el programa da resultados correctos. En particular verificar

    que para un radio igual a la unidad el rea que se obtiene es y que el rea se cuadruplica cuando el radio es igual a 2.

    Ejercicio 1.3 Modificar el programa para que calcule el rea de una elipse de semiejes a y b.

    1.2. Cuando las cosas fallan.

    Tres tipos de errores se pueden presentar: errores de compilacin, errores de ejecucin y

    errores lgicos.

    Los errores de compilacin se producen normalmente por un uso incorrecto de las

    reglas del lenguaje de programacin (tpicamente errores de sintaxis). Debido a ellos el

    compilador no puede generar el programa ejecutable. Por otra parte, los errores de

    ejecucin se producen por instrucciones que la computadora puede comprender pero no

    ejecutar. En tal caso se detiene abruptamente la ejecucin del programa y se imprime un

    mensaje de error. Finalmente, los errores lgicos se deben a un error en la lgica del

    programa. Debido a estos errores, an cuando el compilador nos da un programa

    ejecutable, el programa dar resultados incorrectos.

    Todos estos tipos de errores obligan a revisar el cdigo, originando un ciclo de

    desarrollo del programa que consta de compilacin, revisin y nueva compilacin hasta

    que resulten subsanados todos los errores.

  • JUVENAL TORDOCILLO PUCHUC 5

    1.2.1. Ejercicios

    Ejercicio 1.4 Procediendo con la compilacin y ejecucin, identificar que tipo de

    errores se producen en las siguientes situaciones con nuestro cdigo.

    a) La sentencia WRITE(*,*) Ingrese el radio del crculo del cdigo es cambiada por WROTE(*,*) Ingrese radio del crculo.

    b) Durante la ejecucin se ingresa una letra cuando se pide el radio del crculo.

    c) El valor de la constante PI es asignada a 2:7182818 en el cdigo.

    1.3. Estructura general de un programa Fortran

    Un programa en Fortran consiste de un programa principal (main, en ingls) y

    posiblemente varios subprogramas. Por el momento asumiremos que el cdigo consta

    slo de un programa principal. La estructura del programa principal es:

    PROGRAM nombre declaraciones de tipo sentencias ejecutables STOP END PROGRAM nombre

    Cada lnea del programa forma parte de una sentencia que describe una instruccin a ser

    llevada a cabo y tales sentencias se siguen en el orden que estn escritas. En general, las

    sentencias se clasifican en ejecutables (las cuales realizan acciones concretas como ser

    clculos aritmticos o entrada y salida

Recommended

View more >