Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el...
Transcript of Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el...
![Page 1: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/1.jpg)
Curso Básico de Intel Visual FORTRAN
![Page 2: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/2.jpg)
Contenido
• Antecedentes• Entrada y Salida de Datos• Programación en FORTRAN• Códigos Fuente• Tipo de Datos• Datos Intrínsicos• Variables• Arreglos• Control de Ejecución• Funciones, Subrutinas, Módulos y Bloques de datos
![Page 3: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/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: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/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: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/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 Historia Lenguajes
![Page 6: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/6.jpg)
Intel Visual Fortran
![Page 7: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/7.jpg)
IVF
![Page 8: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/8.jpg)
IVF
![Page 9: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/9.jpg)
IVF
![Page 10: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/10.jpg)
IVF
![Page 11: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/11.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 12: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/12.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 13: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/13.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 14: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/14.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 similaresPRINT xWRITE(*,*) x
![Page 15: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/15.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 16: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/16.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 17: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/17.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 18: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/18.jpg)
IVF
![Page 19: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/19.jpg)
IVF
![Page 20: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/20.jpg)
IVF
![Page 21: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/21.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 22: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/22.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 23: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/23.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 24: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/24.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 25: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/25.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 26: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/26.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
![Page 27: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/27.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 28: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/28.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 29: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/29.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 30: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/30.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 31: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/31.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 32: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/32.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 33: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/33.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 34: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/34.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 35: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/35.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 36: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/36.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 37: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/37.jpg)
Control de EjecuciónIF[nombre:] IF (condición) THEN
block[ELSE IF (condición) THENblock]…
[ELSEblock]
END IF [nombre]
![Page 38: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/38.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 Ejemplo
IF (expr) THEN IF (NAME .LT. 'N') THEN
block1 IFRONT = IFRONT + 1
FRLET(IFRONT) = NAME(1:2)
ELSE ELSE
block2 IBACK = IBACK + 1
END IF END IF
Formato Ejemplo
IF (expr) THEN IF (A .GT. B) THEN
block1 D = B
F = A – B
ELSE IF (expr) THEN ELSE IF (A .GT. B/2.) THEN
block2 D = B/2.
F = A ‐ B/2.
END IF END IF
![Page 39: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/39.jpg)
Control de EjecuciónWHERE• Para usarse con arreglos.
[nombre:] WHERE (expresión)asignación
[ELSEWHEREasignación]
END WHERE
![Page 40: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/40.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 41: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/41.jpg)
Control de Ejecución
• Otros Estatutos• CYCLE [nombre del DO]
• Interrumpe la ejecución del DO• Ejemplo:DO I =1, 10A(I) = C + D(I)IF (D(I) < 0) CYCLE ! If true, the next statement is omittedA(I) = 0 ! from the loop and the loop is tested again.
END DO
![Page 42: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/42.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 43: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/43.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 44: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/44.jpg)
IVF
• 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 45: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/45.jpg)
IVF
![Page 46: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/46.jpg)
IVF
• 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 47: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/47.jpg)
![Page 48: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/48.jpg)
Intel 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 49: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/49.jpg)
![Page 50: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/50.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 51: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/51.jpg)
Intel 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 52: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/52.jpg)
![Page 53: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/53.jpg)
• 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 54: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/54.jpg)
Intel 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 55: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/55.jpg)
![Page 56: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/56.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 57: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/57.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 58: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/58.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 59: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/59.jpg)
![Page 60: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/60.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 61: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/61.jpg)
![Page 62: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/62.jpg)
![Page 63: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/63.jpg)
Icono
• Para anexar un icono al archivo ejecutable:1. Archivo – Agregar nuevo elemento2. Seleccionar Resource y abrir con nuevo nombre y con extensión .rc3. Seleccionar Edición – Agregar Recursos, agregar un Nuevo Icon4. Seleccionar la pestaña de Recursos.rc5. Nombrar el icono en ID, en Propiedades (Esquina inferior derecha) sustituyendo el nombre
actual por:a) “frameicon” para la ventana principal (usar comillas)b) “childicon” para las otras ventanas (usar comillas)
6. Poner nombre al icono en Filename con extensión .ico7. Salvar el Recurso en Guardar Recursos.rc8. Dibujar el icono o importar un .bmp9. Generar solución
![Page 64: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/64.jpg)
![Page 65: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/65.jpg)
![Page 66: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/66.jpg)
![Page 67: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/67.jpg)
![Page 68: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/68.jpg)
Control de la Ventana Child
TYPE (qwinfo) qwi
OPEN(1, file='user', title='Mi Ventana 1') ! Abre Ventana 1
qwi%h = 28 ! Altura de la Ventana 1
qwi%w = 97 ! Ancho de la Ventana 1
qwi%type = QWIN$SET ! Establece los valores de la Ventana 1
i4 = SetWSizeQQ(1, qwi) ! Pone el tamaño de la Ventana 1
write(1,*) ' hola'
![Page 69: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/69.jpg)
![Page 70: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/70.jpg)
![Page 71: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/71.jpg)
Diálogos1. En la carpeta de Recursos.rc dar click con el botón derecho del mouse y seleccionar Agregar
Recurso.2. Seleccionar un nuevo Dialog.3. Guardar Todo.4. Seleccionar Proyecto‐Agregar Elemento Existente, seleccionar en Tipo de Archivos “Todos los
Archivos (*.*)”, seleccionar el archivo “resouce.h”.5. En el “Explorador de Solución” del lado derecho superior, seleccionar con el botón derecho
del mouse “resource.h” y seleccionar “Propiedades”.6. Cambiar los siguientes renglones:
Command Line: deftofd resource.h resource.fdDescription: Generating Fortran include file…Outputs: resource.fd
7. Click “Ok”
![Page 72: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/72.jpg)
![Page 73: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/73.jpg)
![Page 74: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/74.jpg)
![Page 75: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/75.jpg)
Diálogos
1. Seleccionar Ver – Cuadro de Herramientas. Moverlo a donde no estorbe.2. Seleccionar el diálogo y en propiedades identificar el diálogo con un nombre (ID:
IDD_Temperaturas)3. Agregar controles al diálogo. Ejemplo
‐ Incrementar el tamaño del diálogo‐ Seleccionar “Group Box” y agregarlo al diálogo‐ Cambiarle el nombre al Group Box en propiedades – Caption (Ej. ponerle: Entrada de Datos)‐ Identificar el Group Box con un nombre (ID: IDC_EntDatos)
4. Cada vez que se anexe un control, en propiedades del control, cambiarle el nombnre en “Caption” e identificarlo en “ID”
![Page 76: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/76.jpg)
![Page 77: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/77.jpg)
![Page 78: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/78.jpg)
Diálogos
• Haciendo uso de los controles “Static Text”, “Edit Control” y “Group Box”, terminar el diálogo e identificarlo los controles de la siguiente forma:
• Edit Text: Temperatura (°C) =; ID: IDC_TTGC• Edit Control: ID: IDC_TGC• Group Box: Resultados; ID: IDC_Resultados• Edit Text: Temperatura (°F) =; ID: IDC_TTGF (Abrir más este cuadro a la derecha para agregar espacio para el resultado)
• Button: Calcular; ID: IDC_Calcular• Borrar el botón Cancelar• Cambiar nombre y ID al Botón Aceptar: Terminar; ID: IDCLOSE
• Guardar Todo
![Page 79: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/79.jpg)
![Page 80: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/80.jpg)
Diálogos
• En la Función “Initialsettings”, cambiamos el nombre del “Menu2” por el de “Temperaturas” y agregamos al menú lo siguiente:r=appendmenuqq(2,$menuenabled,'°C a°F'C,DoDialog)
• Además agregamos el comandoExternal DoDialog
![Page 81: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/81.jpg)
![Page 82: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/82.jpg)
Diálogos• Creamos la Subrutina DoDialog
SUBROUTINE DoDialog()
USE IFLOGM
IMPLICIT NONE
INCLUDE 'RESOURCE.FD'
INTEGER retint
LOGICAL retlog
TYPE (dialog) dlg
EXTERNAL ActualizaDlg
IF (.not.DlgInit(idd_Temperaturas,dlg)) THEN
WRITE(*,*) "Error: No hay Diálogo"
ELSE
retlog = DlgSet(dlg,IDC_TGC,"24")
retlog = DlgSetSub(dlg,IDC_Calcular,ActualizaDlg)
retint = DlgModal(dlg)
CALL DlgUninit(dlg)
END IF
END SUBROUTINE DoDialog
![Page 83: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/83.jpg)
![Page 84: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/84.jpg)
Diálogos
• Creamos la Subrutina ActualizaDlg
![Page 85: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/85.jpg)
![Page 86: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/86.jpg)
Diálogos• Copilar para obtener el siguiente resultado:
![Page 87: Curso Básico Intel Visual FORTRAN - her.itesm.mx · •QWIN$SET –Valores dados por el programador. Intel Fortran •Agregar menú personal a la ventana principal logical(4) r r=appendmenuqq(1,$menuenabled](https://reader033.fdocuments.in/reader033/viewer/2022050902/5add96a97f8b9a4a268db9c5/html5/thumbnails/87.jpg)
Curso Básico de Intel Visual FORTRAN