Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy...
Transcript of Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy...
![Page 1: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/1.jpg)
Introducción a la Programación en Fortran
![Page 2: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/2.jpg)
Contenido
• Antecedentes• Entrada y Salida de Datos• Programación en FORTRAN• Códigos Fuente• Tipo de Datos• Datos Intrínsecos• Variables• Arreglos• Control de Ejecución• Funciones, Subrutinas, Módulos y Bloques de datos
![Page 3: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/3.jpg)
Antecedentes
• FORTRAN (Formula Translator)• Lenguaje orientado a procedimientos que tienen una gramática bien definida• Desarrollado para describir e implementar algoritmos, en especial, aquellos
de naturaleza ingenieril o científica.• Muy estable y transportable• Primer lenguaje de programación de alto nivel
![Page 4: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/4.jpg)
Antecedentes
• FORTRAN I• Aparece en 1954. El grupo que desarrollo el lenguaje fue encabezado por
John Backs.
• FORTRAN II• Aparece en 1958
• FORTRAN III• Nunca se popularizó
• FORTRAN IV• Aparece en 1956 y se convirtió en el lenguaje más popular. Fue el primer
lenguaje que se estandarizó, facilitando la transportabilidad.
![Page 5: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/5.jpg)
Antecedentes
• FORTRAN 66• Primer documento estándar que describía la existencia del FORTRAN IV (1966).
• FORTRAN 77• (~1975) Actualización del documento del FORTRAN 66, agregando nuevas características al
FORTRAN IV.
• FORTRAN 90• Nueva versión sacada en 1992 e incluye FORTRAN 77 más otros estándares.
• FORTRAN 95• Se agregan algunas pequeñas mejoras al FORTRAN 90
• FORTRAN 2003• 30 de noviembre de 2004
![Page 6: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/6.jpg)
Antecedentes
• FORTRAN 2008• Septiembre de 2010, se agregan actualizaciones al FORTRAN 95
• FORTRAN 2015• Será la próxima revisión del lenguaje en la que se espera mayor
interoperabilidad entre el FORTRAN y el C.
![Page 7: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/7.jpg)
Entrada y Salida de Datos
• Existen tres métodos para especificar como los datos son transferidos:
• READ (lectura de datos)• WRITE (escritura de datos)• PRINT (escritura de datos)
![Page 8: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/8.jpg)
Entrada y Salida de DatosREAD• READ ([UNIT=]unit,[FMT=]fmt) iolist
• Unidades (unit): archivos, teclado y pantalla(*) o (0), teclado (5), pantalla(6)• Formato (fmt): label del FORMAT• Lista de variables de entrada (iolist)
• Ejemplos:• READ(*,*) a, b, c• READ(2,*) a, b, c ! Lee de la unidad 2
![Page 9: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/9.jpg)
Entrada y Salida de DatosWRITE• WRITE([UNIT=]unit,[FMT=]fmt) iolist
• Unidades (unit): archivos, teclado y pantalla(*) o (0), teclado (5), pantalla(6)• Formato (fmt): label del FORMAT• Lista de variables de entrada (iolist)
• EjemplosWRITE(*,*) ‘Hola’, aWRITE(2,*) a, 23.2, ‘Hola’ ! Escribe en la unidad 2WRITE(*,20) a
20 FORMAT(‘a =‘,\)WRITE(*,’(A\)’) ‘a =‘WRITE(*,30) a, b
30 FORMAT(‘a=‘,I2,’ b=‘, F6.1)
![Page 10: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/10.jpg)
Entrada y Salida de DatosPRINT• Tiene la misma función que el WRITE, sólo que imprime nada más en
la pantalla.• Ejemplos similares
PRINT xWRITE(*,*) x
![Page 11: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/11.jpg)
Entrada y Salida de DatosFORMAT[r]Iw[.m] Integer values[r]Bw[.m] Binary values[r]Ow[.m] Octal values[r]Zw[.m] Hexadecimal values[r]Fw.d Real values[r]Ew.d[Ee] Real values with exponents[r]Enw.d[Ee] Real values in engineering notation[r]Esw.d[Ee] Real values in scientific notation[r]Gw.d[Ee] Real values, extended notation[r]Dw.d Double-precision real values[r]Lw Logical values[r]A[w] Character values
r = veces que se repite, w = ancho de campo, m = número de ceros que preceden, d = número de dígitos después del punto decimal, e = exponente
nX = n espacios en blanco, $ ó \ = continúan en el mismo renglón
![Page 12: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/12.jpg)
Códigos Fuente
• Los códigos se pueden escribir en dos formas de códigos fuente:• Fijo (fixed form source)• Libre (free form source)
• Código Fijo• FORTRAN 77• .FOR• 72 caracteres por renglón• Restricciones de posición-columna
![Page 13: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/13.jpg)
Códigos Fuente
• Código Libre• No tiene restricciones de posición-columna• Líneas de 132 caracteres• Los espacios son considerados entre nombres, constantes o etiquetas para
separarlos de otras palabras• .F90• Un estatuto puede contener hasta 7200 caracteres ya sea 100 líneas
continuas de 72 columnas o 54 líneas continuas de 132 columnas
![Page 14: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/14.jpg)
Programación en FORTRAN
• Caracteres especiales:espacio = + - * / ( ) , . ‘ : ! “ % & ; < > ?
• Nombres• Identifica: variables, arreglos, blocks comunes, funciones, unidades de
programa, argumentos dummy, nombre de constantes, lista de grupos, y tipos de derivados
• Primer carácter alfabético o $, resto alfanumérico• 31 caracteres máximo (CVF hasta 63)
![Page 15: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/15.jpg)
Programación en FORTRAN
• Constantes• Es un valor que permanece sin cambiar a través de la ejecución de un
programa (ejemplo pi)
• Operadores• Aritméticas (**, *, /, +, -)• String concatenation (//)• Lógica (.AND., .NOT., .OR., .EQV., .NEQV., .XOR.)• Relaciónales (.EQ., .NE., .LT., .LE., .GT., .GE., ==, /=, <, <=, >, >=)
![Page 16: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/16.jpg)
Programación en FORTRAN
• Etiquetas (labels)• Es una secuencia de uno o cinco dígitos, al menos uno de ellos deberá ser
diferente de cero• Cualquier estatuto puede empezar con un label (aunque no lo requiera); sin
embargo, sólo las etiquetas de ejecución o estatutos FORMAT pueden ser referenciadas.
• El copilador reconoce 99,999 únicas etiquetas.• Una etiqueta no puede ser repetida dentro de un mismo programa
![Page 17: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/17.jpg)
Programación en FORTRAN
• Delimitadores• Encierran y separan elementos de una lista• Un par de diagonales, paréntesis o una combinación de ambas.
• ( . . .), / . . . /, [ . . .], (/ . . ./)
• Indicadores! Comentario (se pone en cualquier lugar del código)& Continuación de línea (se pone al final de la línea fuente)
![Page 18: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/18.jpg)
Tipos de Datos
• Cada constante, variable, arreglo o función referenciada tiene un tipo de datos
• Las propiedades de los tipos de datos:• Un nombre• Un juego de valores• Una forma de representar los valores constantes• Un juego de operaciones para manipular e interpretar los valores
![Page 19: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/19.jpg)
Tipos de Datos
• Ejemplo de un tipo de declaraciónREAL var_real
• Definición de la variablevar_real = 25.44
• Variables Implícitas• Predefinidas por el lenguaje FORTRAN• Empiezan con: enteros (I – N), reales (A – H, O – Z, $)
• Variables Explícitas• Declaradas por el usuario• Para deshabilitar las Variables Implícitas, usar el siguiente comando antes de la
declaración de variables:IMPLICIT NONE
![Page 20: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/20.jpg)
Datos Intrínsecos
• Enteros• INTEGER, INTEGER(1), INTEGER(2), e INTEGER(4).
• Reales• REAL, DOUBLE PRECISION, REAL(4), y REAL(8).
• Complejos• COMPLEX, COMPLEX(4), DOUBLE COMPLEX, y COMPLEX(8)
• Carácter• CHARACTER[*n] donde n es la longitud de la palabra (string)
• Lógica• LOGICAL, LOGICAL(1), LOGICAL(2), y LOGICAL(4)
![Page 21: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/21.jpg)
Variables
• Enteros• INTEGER o INTEGER(1) o INTEGER*1
• Bytes = 1, valor = -128 a 127• INTEGER(2) o INTEGER*2
• Bytes = 2, valor = -32,768 a 32,767• INTEGER(4) o INTEGER*4
• Bytes = 4, valor = -2,147,483,684 a 2,147,483,647• INTEGER(8) o INTEGER*8 (sólo sistemas ALPHA)
• Bytes = 8, valor = -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
![Page 22: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/22.jpg)
Variables
• Reales• REAL o REAL(4) o REAL*4
• Bytes = 4, precisión = 7 dígitos• Números negativos desde aproximadamente:
-3.4028235E+38 a -1.1754944E-38 • Cero• Números positivos desde aproximadamente:
+1.1754944e-38 a +3.4028235e+38• REAL(8) o REAL*8 o DOUBLE PRECISION
• Bytes = 8, precisión = 15 dígitos• Números negativos desde aproximadamente:
-1.797693134862316D+308 a -2.225073858507201D-308 • Cero• Números positivos desde aproximadamente:
+2.225073858507201D-308 a +1.797693134862316D+308• REAL(16) o REAL*16 (sólo en unix y vms)
![Page 23: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/23.jpg)
Arreglos
• Un arreglo es una variable con al menos una dimensión• Ejemplo de declaración de arreglos
• REAL A(10,2,3)• DIMENSION A(10,2,3)• REAL, DIMENSION (10,2,3) :: A• REAL A(-1:8, 0:1, -1:1)
• mínimo número : máximo número (default mínimo =1)
![Page 24: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/24.jpg)
Funciones Intrínsecas más Comunes
• ABS(x), valor absoluto de x• ACOS(x), coseno de x• ASIN(x), coseno inverso de x• ATAN(x), tangente inversa de x• COS(x), coseno de x• COSH(x), coseno hiperbólico de x• EXP(x), exponente de x• LOG(x), logaritmo natural de x
• LOG10(x), logaritmo base 10 de x• SIN(x), seno de x• SINH(x), seno hiperbólico de x• SQRT(x), raíz cuadrada de x• TAN(x), tangente de x• TANH(x), tangente hiperbólica de x
![Page 25: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/25.jpg)
Control de Ejecución
• Blocks de construcción• DO; END DO o CONTINUE• DO WHILE; END DO• SELECT CASE; CASE; END SELECT• IF; END IF• WHERE; END WHERE (usado en arreglos)• Combinación de ellos.
![Page 26: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/26.jpg)
Control de EjecuciónDO y DO WHILE• DO
[nombre:] DO [label] variable=bajo,alto[,inc]block
[label] END DO ó CONTINUE
• DO WHILEDO [label] WHILE (exp-lógica)
block[label] END DO
![Page 27: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/27.jpg)
Control de EjecuciónEjemplos DODO k = -30, -60, -3
int = j / 3isb = -9 – karray(isb) = MyFunc (int)
END DO
LOOP_1: DO I = 1, NA(I) = C * B(I)
END DO LOOP_1
![Page 28: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/28.jpg)
Control de EjecuciónEjemplos DO WHILEDO WHILE (I .GT. J)
ARRAY(I,J) = 1.0I = I - 1
END DO
DO 10 WHILE (I .GT. J)ARRAY(I,J) = 1.0I = I – 1
10 END DO
CHARACTER(1) inputinput = ' ' DO WHILE ((input .NE. 'n') .AND. (input .NE. 'y'))
WRITE (*, '(A)') 'Enter y or n: ' READ (*, '(A)') input
END DO
![Page 29: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/29.jpg)
Control de EjecuciónSELECT CASE[nombre:] SELECT CASE (expresión)
CASE [selector]block
[CASE DEFAULTblock]
END SELECT [nombre]
expresión – escalar entero, lógico o carácterselector – escalares enteros, lógicos o caracteres que inicializan la expresión. Expresiones enteras o
carácter pueden representarse de la siguiente forma:bajo:alto (bajo <= selector <= alto)bajo: (selector >= bajo):alto (selector <= alto)
![Page 30: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/30.jpg)
Control de EjecuciónEjemplos SELECT CASECHECK_STATUS: SELECT CASE (I)
CASE (:-1) STATUS_CODE = -1CASE (0) STATUS_CODE = 0CASE (1:) STATUS_CODE = 1
END SELECT CHECK_STATUS
SELECT CASE (J)CASE (1, 3:7, 9) ! Valores: 1, 3, 4, 5, 6, 7, 9
CALL SUB_ACASE DEFAULT
CALL SUB_BEND SELECT
![Page 31: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/31.jpg)
Control de EjecuciónIF[nombre:] IF (condición) THEN
block[ELSE IF (condición) THEN
block]…[ELSE
block]END IF [nombre]
![Page 32: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/32.jpg)
Control de EjecuciónEjemplos IFIF (i .LT. 10) THEN
! the next two statements are only executed if i < 10 j = i slice = TAN (angle)
END IF
Formato EjemploIF (expr) THEN IF (NAME .LT. 'N') THEN
block1 IFRONT = IFRONT + 1FRLET(IFRONT) = NAME(1:2)
ELSE ELSEblock2 IBACK = IBACK + 1
END IF END IF
Formato EjemploIF (expr) THEN IF (A .GT. B) THEN
block1 D = BF = A – B
ELSE IF (expr) THEN ELSE IF (A .GT. B/2.) THENblock2 D = B/2.
F = A - B/2.END IF END IF
![Page 33: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/33.jpg)
Control de EjecuciónWHERE• Para usarse con arreglos.
[nombre:] WHERE (expresión)asignación
[ELSEWHEREasignación]
END WHERE
![Page 34: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/34.jpg)
Control de EjecuciónEjemplos WHEREINTEGER A, B, CDIMENSION A(5), B(5), C(5)DATA A /0,1,1,1,0/DATA B /10,11,12,13,14/C = -1WHERE(A .NE. 0) C = B / AEl resultado del arreglo C contiene: -1,11,12,13, y -1.
DIMENSION PRESSURE(1000), TEMP(1000), PRECIPITATION(1000)WHERE(PRESSURE .GE. 1.0)
PRESSURE = PRESSURE + 1.0TEMP = TEMP - 10.0
ELSEWHEREPRECIPITATION = .TRUE.
ENDWHERE
![Page 35: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/35.jpg)
Control de Ejecución
• Otros Estatutos• CYCLE [nombre del DO]
• Interrumpe la ejecución del DO• Ejemplo:DO I =1, 10
A(I) = C + D(I)IF (D(I) < 0) CYCLE ! If true, the next statement is omitted
A(I) = 0 ! from the loop and the loop is tested again.
END DO
![Page 36: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/36.jpg)
Control de EjecuciónEjemplo Cycle
sample_loop: do i = 1, 5print *,iif( i .gt. 3 ) cycle sample_loopprint *,i
end do sample_loop print *,'done!'
!output: ! 1 ! 1 ! 2 ! 2 ! 3 ! 3 ! 4 ! 5 ! done!
![Page 37: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/37.jpg)
Control de EjecuciónOtros Estatutos• EXIT [nombre del DO]
• Termina la ejecución del DO• Ejemplo
LOOP_A : DO I = 1, 15N = N + 1 IF (N > I) EXIT LOOP_A
END DO LOOP_A
• STOP [mensaje]• Termina la ejecución del un programa antes del END
![Page 38: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/38.jpg)
Ejemplo de Programación
• Resolver las raíces de una función Cuadrática:ax2+bx+c=0
• Solución:x1=(-b+sqrt(b2-4ac))/(2a)x2=(-b-sqrt(b2-4ac))/(2a)
• Condición:b2-4ac>=0
![Page 39: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/39.jpg)
Ejemplo de Programación
1. Abrir cualquier editor de texto (ej. Notepad) y escribir el programa.2. Salvarlo con la extensión .f90 (ej. raices.f90), en el folder donde se
tendrán los programas de FORTRAN (ej. c:\Fortran\)
![Page 40: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/40.jpg)
Ejemplo de Programación
![Page 41: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/41.jpg)
Ejemplo de Programación
• Compilar el programa en el command prompt, con el comando ifortpara Intel Visual Fortran (IVF).
![Page 42: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/42.jpg)
Ejemplo de Programación
![Page 43: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/43.jpg)
Ejemplo de Programación
• Correr el programa con el nombre que se dio el compilador al archivo ejecutable.
• Para el caso del IVF, el ejecutable se crea con el mismo nombre del archivo f90 (ej. raices.exe).
![Page 44: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/44.jpg)
Ejemplo de Programación
![Page 45: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/45.jpg)
Comandos comunes del Command Prompt(MS-DOS)• dir – lista los archivos de un directorio (folder o carpeta)• cd – cambia de directorio (change directory)
• cd carpetaX – cambia al directorio “carpetaX”• cd .. – se regresa al directorio anterior• cd\ – se va directamente a la raíz
• ren file1 file2 – cambia el nombre de “file1” a “file2” (rename)• del file – borra el archivo “file” (delete)• md – crea un nuevo directorio (make directory)• rd – borra un directorio (remove directory)• cls – limpia la pantalla (clear screen)• edit – abre el editor de texto (sólo para computadoras de 32 bits)
![Page 46: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/46.jpg)
Funciones
• Una función es un subprograma que es llamado para ejecutar una operación y regresar un valor (como resultado de la función) y así evaluar la expresión[prefijo] FUNCTION nombre (resultado)
…operaciones…
END
![Page 47: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/47.jpg)
Ejemplo de FunctionProgram funciondex
integer ireal F, Y
write(*,*) ' Programa f(x)=x^3+x-3, de x = 1 hasta x =10'write(*,*) ' i f(X)'do i=1,10Y=F(i)write(*,10) i,Y
10 format(' ',I2,' ',F8.1)end do
end
function F(X)integer XF=X**3+X-3
end
![Page 48: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/48.jpg)
Subrutinas
• Las subrutinas son muy similares a las funciones.• Las subrutinas son llamadas por el comando CALL
CALL subroutine_name (argument_list)
• Las subrutinas pueden tener muchos argumentos entre paréntesis o ningún argumento. En el último caso el paréntesis se debe conservar.
SUBROUTINE subroutine_name (argument_list)…
END SUBROUTINE (name)
![Page 49: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/49.jpg)
Ejemplo de SubrutinaProgram Hipotenusa
implicit none
real L1, L2, H
write(*,*) ' Calculo de la hipotenusa'
write(*,*)
write(*,'(A\)') ' Dame el lado 1 = '
read(*,*) L1
write(*,'(A\)') ' Dame el lado 2 = '
read(*,*) L2
CALL Hipo (L1,L2,H)
write(*,10) H
10 format( ' La hipotenusa es = ', F8.2)
end
Subroutine Hipo(L1,L2,H)
real L1, L2, H
H=sqrt(L1**2+L2**2)
end
![Page 50: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/50.jpg)
Intel Visual Fortran
![Page 51: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/51.jpg)
Intel Visual Fortran
![Page 52: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/52.jpg)
Intel Visual Fortran
![Page 53: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/53.jpg)
Intel Visual Fortran
![Page 54: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/54.jpg)
Intel Visual Fortran
![Page 55: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/55.jpg)
Intel Visual Fortran
![Page 56: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/56.jpg)
Intel Visual Fortran
![Page 57: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/57.jpg)
Intel Visual Fortran
• Deshabilitar persistencia en salida de windows. Agregar al programa lo siguiente:
USE IFQWIN ! Accesa las librerías gráficas
Implicit none ! Deshabilita las variables de default
Integer(4) i4 ! Variable dommy
I4=setexitqq(qwin$exitnopersist)
• BUILD project…START… • Loop Forever:Do while(.true.) ! Loop forever
End DO
• BUILD project…START…
![Page 58: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/58.jpg)
Intel Visual Fortran
![Page 59: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/59.jpg)
Intel Visual Fortran
• Cambiar el título a ventana principal:USE IFWIN !Accesa las librerías de Windows
logical l
l=setwindowtext(gethwndqq(qwin$framewindow), &
“mi ventana”C)
• BUILD project…START…
![Page 60: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/60.jpg)
Intel Visual Fortran
![Page 61: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/61.jpg)
Intel Visual Fortran
• Control de la Ventana PrincipalFunction Initialsettings()
USE IFQWIN
type(qwinfo) qwi
qwi%type=qwin$max ! Maximiza el tamaño de la ventana
i=setwsizeqq(qwin$framewindow,qwi) !Pone tamaño ventana
initialsettings=.true.
END
• BUILD project…START…
![Page 62: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/62.jpg)
Intel Visual Fortran
![Page 63: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/63.jpg)
Intel Visual Fortran
• Los qwi%type pueden ser los siguientes:• QWIN$MIN – Minimiza la pantalla• QWIN$MAX – Maximiza la pantalla• QWIN$RESTORE – Regresa la ventana minimizada a su tamaño previo• QWIN$SET – Valores dados por el programador
![Page 64: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/64.jpg)
Intel Visual Fortran
• Agregar menú personal a la ventana principallogical(4) r
r=appendmenuqq(1,$menuenabled,’File’C,nul)
r=appendmenuqq(1,$menuenabled,’Print’C,winprint)
r=appendmenuqq(1,$menuseparator,’’C,nul)
r=appendmenuqq(1,$menuenabled,’E&xit’C,winexit)
r=appendmenuqq(2,$menuenabled,’Menu2’C,nul)
• BUILD project…START…
![Page 65: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/65.jpg)
Intel Visual Fortran
![Page 66: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/66.jpg)
Opciones de las constantes que indican el estado del menú• $MENUGRAYED – Deshabilita y pone en gris la opción del menú. • $MENUDISABLED – Deshabilita pero no pone en gris las opción del
menú. • $MENUENABLED – Habilita la opción del menú. • $MENUSEPARATOR – Dibuja una barra separadora. • $MENUCHECKED – Pone una marca de checado a la opción del menú. • $MENUUNCHECKED – Remueve la marca de checado en la opción del
menú.
![Page 67: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/67.jpg)
Rutinas predeterminadas para los menús
• WINPRINT - Prints the program. • WINSAVE - Saves the program. • WINEXIT - Terminates the program. • WINSELECTTEXT - Selects text from the current window. • WINSELECTGRAPHICS - Selects graphics from the current window. • WINSELECTALL - Selects the entire contents of the current window. • WINCOPY - Copies the selected text and/or graphics from the current window to the Clipboard. • WINPASTE - Allows the user to paste Clipboard contents (text only) to the current text window of
the active window during a READ.
![Page 68: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/68.jpg)
Rutinas predeterminadas para los menús
• WINCLEARPASTE - Clears the paste buffer. • WINSIZETOFIT - Sizes output to fit window. • WINFULLSCREEN - Displays output in full screen. • WINSTATE - Toggles between pause and resume states of text output. • WINCASCADE - Cascades active windows. • WINTILE - Tiles active windows. • WINARRANGE - Arranges icons. • WINSTATUS - Enables a status bar. • WININDEX - Displays the index for QuickWin help. • WINUSING - Displays information on how to use Help. • WINABOUT - Displays information about the current QuickWin application. • NUL - No callback routine.
![Page 69: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/69.jpg)
Intel Visual Fortran
![Page 70: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/70.jpg)
Menú “about”
• Para cambiar la información en el menú “about” de la Ayuda (WINABOUT) usar el siguiente comando en el programa principal:
i4=aboutboxqq(‘Hecho por mi…’)
• Copilar, Construir, Ejecutar…
![Page 71: Introducción a la Programación en Fortran€¦ · de naturaleza ingenieril o científica. • Muy estable y transportable • Primer lenguaje de programación ... • FORTRAN III](https://reader033.fdocumento.com/reader033/viewer/2022042316/5f04f0cb7e708231d41077a7/html5/thumbnails/71.jpg)
Intel Visual Fortran