Fortran Tutorial
Empezando con Fortran
Buscar..
Observaciones
Fortran es un lenguaje utilizado ampliamente en la comunidad científica debido a su idoneidad para el cálculo numérico. Particularmente atractiva es su intuitiva notación matricial, que facilita la escritura de cómputos vectorizados rápidos.
A pesar de su edad, Fortran todavía está activamente desarrollado, con numerosas implementaciones, incluyendo GNU, Intel, PGI y Cray.
Versiones
Versión | Nota | Lanzamiento |
---|---|---|
FORTRAN 66 | Primera estandarización por ASA (ahora ANSI) | 1966-03-07 |
FORTRAN 77 | Forma fija, histórica | 1978-04-15 |
Fortran 90 | Forma libre, norma ISO, operaciones matriciales. | 1991-06-15 |
Fortran 95 | Procedimientos puros y elementales | 1997-06-15 |
Fortran 2003 | Programación orientada a objetos | 2004-04-04 |
Fortran 2008 | Co-matrices | 2010-09-10 |
Instalación o configuración
Fortran es un lenguaje que puede compilarse utilizando compiladores suministrados por muchos proveedores. Diferentes compiladores están disponibles para diferentes plataformas de hardware y sistemas operativos. Algunos compiladores son software libre, algunos se pueden utilizar de forma gratuita y otros requieren la compra de una licencia.
El compilador gratuito más común de Fortran es GNU Fortran o gfortran. El código fuente está disponible en GNU como parte de GCC, la colección del compilador GNU. Los binarios para muchos sistemas operativos están disponibles en https://gcc.gnu.org/wiki/GFortranBinaries . Las distribuciones de Linux a menudo contienen gfortran en su gestor de paquetes.
Otros compiladores están disponibles por ejemplo:
En los sistemas HPC, a menudo hay compiladores especializados disponibles por el proveedor del sistema como, por ejemplo, los compiladores IBM o Cray .
Todos estos compiladores soportan el estándar Fortran 95. ACM Fortran Forum ofrece una descripción general sobre el estado de Fortran 2003 y el estado de Fortran 2008 de varios compiladores y está disponible en la Wiki de Fortran.
Hola Mundo
Cualquier programa de Fortran tiene que incluir el end
como última declaración. Por lo tanto, el programa Fortran más simple se ve así:
end
Aquí hay algunos ejemplos de programas "hola mundo":
print *, "Hello, world"
end
Con declaración de write
:
write(*,*) "Hello, world"
end
Para mayor claridad, ahora es común usar la declaración del program
para iniciar un programa y darle un nombre. La declaración end
puede referirse a este nombre para que sea obvio a qué se refiere, y permitir que el compilador verifique que el código sea correcto. Además, todos los programas de Fortran deben incluir una declaración implicit none
. Por lo tanto, un programa mínimo de Fortran debería tener el siguiente aspecto:
program hello
implicit none
write(*,*) 'Hello world!'
end program hello
El siguiente paso lógico a partir de este punto es cómo ver el resultado del programa hello world. Esta sección muestra cómo lograr eso en un entorno similar a Linux. Suponemos que tiene algunas nociones básicas de los comandos de shell , principalmente sabe cómo llegar al terminal de shell. También asumimos que ya ha configurado su entorno fortran
. Utilizando su editor de texto preferido (notepad, notepad ++, vi, vim, emacs, gedit, kate, etc.), guarde el programa de saludo de arriba (copie y pegue) en un archivo llamado hello.f90
en su directorio de inicio. hello.f90
es su archivo fuente. Luego vaya a la línea de comandos y navegue hasta el directorio (¿directorio de inicio?) Donde guardó su archivo fuente, luego escriba el siguiente comando:
>gfortran -o hello hello.f90
Acabas de crear tu programa ejecutable hello world. En términos técnicos, acaba de compilar su programa. Para ejecutarlo, escriba el siguiente comando:
>./hello
Debería ver la siguiente línea impresa en su terminal shell.
> Hello world!
Enhorabuena, acaba de escribir, compilar y ejecutar el programa "Hello World".
Ecuación cuadrática
Hoy en día Fortran se utiliza principalmente para el cálculo numérico. Este ejemplo muy simple ilustra la estructura básica del programa para resolver ecuaciones cuadráticas:
program quadratic
!a comment
!should be present in every separate program unit
implicit none
real :: a, b, c
real :: discriminant
real :: x1, x2
print *, "Enter the quadratic equation coefficients a, b and c:"
read *, a, b, c
discriminant = b**2 - 4*a*c
if ( discriminant>0 ) then
x1 = ( -b + sqrt(discriminant)) / (2 * a)
x2 = ( -b - sqrt(discriminant)) / (2 * a)
print *, "Real roots:"
print *, x1, x2
! Comparison of floating point numbers for equality is often not recommended.
! Here, it serves the purpose of illustrating the "else if" construct.
else if ( discriminant==0 ) then
x1 = - b / (2 * a)
print *, "Real root:"
print *, x1
else
print *, "No real roots."
end if
end program quadratic
Insensibilidad a la caja
Las letras mayúsculas y minúsculas del alfabeto son equivalentes en el conjunto de caracteres de Fortran. En otras palabras, Fortran no distingue entre mayúsculas y minúsculas . Este comportamiento está en contraste con los lenguajes que distinguen entre mayúsculas y minúsculas, como C ++ y muchos otros.
Como consecuencia, las variables a
y A
son la misma variable. En principio se podría escribir un programa de la siguiente manera
pROgrAm MYproGRaM
..
enD mYPrOgrAM
Es bueno para el programador evitar tales elecciones feas.