FortranEmpezando con Fortran

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

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.

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".

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.

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