PDF de programación - Introducción a Fortran 90

Imágen de pdf Introducción a Fortran 90

Introducción a Fortran 90gráfica de visualizaciones

Publicado el 11 de Julio del 2017
1.340 visualizaciones desde el 11 de Julio del 2017
1,9 MB
73 paginas
Creado hace 16a (18/02/2008)
Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Introducción a Fortran 90

18 de febrero de 2008

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Esquema que seguiremos

1 Generalidades

2 Variables en Fortran 90

3 Expresiones

4 Arrays

5 Bloques de control

6 Programación estructurada

7 Modules

8 Instrucciones de entrada/salida

Tipos de programas en Fortran

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

• Programa fuente (nombre.f90): Es el programa que editamos y
que contiene las instrucciones del lenguaje Fortran. Para su
edición, utilizaremos cualquier editor de texto (edit, emacs, vi,
pico,...).

⇓ COMPILACI ÓN ⇓

• Programa objeto (nombre.o): El programa fuente se hace

comprensible al ordenador.
⇓ LINKADO ⇓

• Programa ejecutable (nombre.out).

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Órdenes de compilación y linkado

• Compilación:

> gfortran -c dicotomia.f90

! se crea dicotomia.o

Pueden compilarse al mismo tiempo varios programas fuente:

> gfortran -c dicotomia.f90 auxiliar.f90
! se crean dicotomia.o y auxiliar.o

• Linkado:

> gfortran -o dicotomia.out dicotomia.o

Se puede crear un único ejecutable con varios programas objeto:

> gfortran -o dicotomia.out dicotomia.o auxiliar.o

• Todo junto (no recomendado):

> gfortran -o dicotomia.out dicotomia.f90

> gfortran -o dicotomia.out dicotomia.f90 auxiliar.f90

• Ejecución:

> ./dicotomia.out

Empezando...

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

• No hay distinción entre mayúsculas y minúsculas.
• Los nombres de programas y variables deben tener un máximo
de 32 caracteres. El primer carácter tiene que ser una letra y los
siguientes pueden ser números, letras o subrayado.
• Comentarios: Se ponen después del signo “!”.
• La longitud máxima de línea es de 132 caracteres.
• Para indicar que una instrucción continua en la línea siguiente se

pone “&” al final de la línea:

print*, &

’Esto es una prueba’

Además, la línea siguiente tiene que empezar por “&” si
queremos continuar textos entrecomillados:

print*, &

’Esta linea es muy larga &
& y por eso la dividimos’

• Se pueden poner varias instrucciones en la misma línea si las

separamos por “;”

A=0 ; B=0

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Variables en Fortran 90

Hay cinco tipos básicos de variables:

• Enteras.
• Reales.
• Complejas.
• Lógicas.
• Carácter.

De forma implícita, Fortran guarda los nombres de variables que
empiecen por {i, j, k, l, m, n} para variables enteras y el resto para
variables reales de precisión simple.

Es recomendable empezar un programa anulando este criterio
predefinido con la instrucción IMPLICIT NONE. Así tenemos que
declarar todas las variables que utilicemos y evitaremos muchos
errores.

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Variables enteras

Almacenamos en ellas números enteros: ...,-3,-2,-1,0,1,2,3,...

> integer :: i, j1, j2

!Declara i,j1,j2 como variables enteras

Dentro de las variables enteras se distinguen distintos tipos
dependiendo de la cantidad de memoria que se use para
almacenarlas. Estos tipos pueden depender de la máquina en que
estemos trabajando. En general:

• integer (kind=1) :: i
• integer (kind=2) :: j
• integer (kind=4) :: k

! Números enteros entre -127 y 127
! Números enteros entre -32767 y 32767
! Números enteros entre -2147483647 y

2147483647

En nuestro sistema, el tipo por defecto para variables enteras es
kind=4. De todas formas, conviene ponerlo explícitamente.

Variables reales

Almacenamos en ellas números reales.

Al igual que para las variables enteras, hay distintos tipos de variables
reales que dependen de la máquina utilizada. Habitualmente son:

• real (kind=4) :: x1
• real (kind=8) :: x2
• real (kind=16) :: x3

! 7 cifras significativas (precisión simple ).
! 14 cifras significativas (precisión doble).
! 28 cifras significativas (prec. cuádruple).

¡¡Atención!! El tipo real por defecto es kind=4. Nosotros usaremos,
salvo que se diga lo contrario, kind=8.

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Sobre las constantes reales

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

real (kind=8) :: x1
x1=0.3
print*, x1

!En pantalla: 0.300000011920929

real (kind=8) :: x1
x1=0.3 8
print*, x1

!En pantalla: 0.300000000000000

Variables complejas

Los números complejos se almacenan como pares de números reales.

Los tipos son los mismos que para las variables reales:

> complex (kind=4) :: c1

> complex (kind=8) :: c2

> c1=(1. 4 , 2.05 4) ; c2=(0.1 8,0)

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Variables lógicas

Admiten dos valores posibles : .FALSE. y .TRUE.

> logical :: log1, log2
> log1= .true.
> log2= .false.

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Variables carácter

Nos permiten guardar cadenas alfanuméricas. Debemos especificar el
número máximo de caracteres.

> character (len=10) :: fichero
> fichero= ’datos’

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Parameter

Sirve para almacenar un valor constante en una variable de forma que
no cambie a lo largo de todo el programa:

> integer, parameter :: dim=100

> real, parameter :: pi simple=3.14159265

> real(kind=8), parameter :: pi= 3.14159265358979

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Expresiones

Expresiones aritméticas:
• operandos aritméticos
• operadores (ordenados por prioridad):

/
-

**
* ,
+ ,
El orden de prioridad puede alterarse usando paréntesis.
(por ej., real(kind=8)*entero(kind=4) ⇒ real(kind=8))

• resultado: será del tipo del operando más potente

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Expresiones relacionales:

• operandos lógicos o aritméticos
• operadores:
> o .GT.
< o .LT.
== o .EQ.

; >= o .GE.
; <= o .LE.

• resultado: .TRUE. o .FALSE.

;

/= o .NE.

Expresiones

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Expresiones lógicas:

• operandos: expresiones relacionales
• operadores: .NOT. , .AND. , .OR.
• resultado: .TRUE. o .FALSE.

Ejemplo:

> if ( (i<10).AND.(i/=5) ) . . .

Expresiones de caracteres:

• operandos: cadenas de caracteres
• operador: concatenación (//)
• resultado: otra cadena de caracteres

Ejemplo:

> ch1=’fich ’
> ch2=’out’
> ch3=char1//char2

! ch3=’fich out’

Expresiones

Orden de prioridad:

1 aritméticas
2 concatenación
3 relacionales
4 lógicas

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Arrays

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Los arrays son variables dimensionadas.
Identifican un conjunto de posiciones de memoria, todas ellas de un
mismo tipo (real, entero, etc.).

La forma de definirlas es:

real, dimension(3) :: a ! tres variables reales: a(1), a(2) y a(3)

real (kind=8), dimension(0:2) :: b

! b(0), b(1) y b(2)

real, dimension(3,0:2) :: c

! c(1,0), c(2,0),c(3,0),c(1,1), ...

integer (kind=4), dimension(-1:2,2) :: d ! d(-1,1), d(0,1),...

Introducción a

Fortran 90

Generalidades

Variables en
Fortran 90

Expresiones

Arrays

Bloques de
control

Programación
estructurada

Modules

Instrucciones de
entrada/salida

Asignación de valores en un array

• Asignación directa de un vector:

real (kind=8), dimension(0:3) :: a
a=(/1.0 8, 2.1 8, 3.9 8, 4.24 8/)
• Asignación mediante un bucle implícito:

integer, dimension(5) :: i1,i2,i3
i1=0
i2(1:4)=1; i2(5)=0
i3(1:5)=(/(2.0*j, j=1,5)/)

• Para la definición de una matriz hay dos opciones:

integer, dimension(3,2) :: i

(1) i(1,:)= (/1,2/) ; i(2,:)=(/3,4/) ; i(3,:)=(/5,6/)

(2) i=reshape( (/1,3,5,2,4,6/), shape=(/3,2/)).

Nota: El comando reshape suele llevar a errores.

Operaciones con arrays

• Se puede operar de manera directa:

integer, dimension(3) :: a, b, c, d
real (kind=8), dimension(20) :: x1, x2, x3
a=(/1, 2, 3/) ; b=(/4, -5, 6/)
!c = (/5,−3, 9/)
c=a+b
!d = (/4,−10, 18/)
d=a*b
...
x1=x1/
  • Links de descarga
http://lwp-l.com/pdf5273

Comentarios de: Introducción a Fortran 90 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad