FortranIniziare con Fortran


Osservazioni

Fortran è un linguaggio ampiamente utilizzato nella comunità scientifica per la sua idoneità al calcolo numerico. Particolarmente interessante è la notazione intuitiva degli array, che semplifica la scrittura di calcoli vettoriali veloci.

Nonostante la sua età, Fortran è ancora attivamente sviluppato, con numerose implementazioni, tra cui GNU, Intel, PGI e Cray.

Versioni

Versione Nota pubblicazione
FORTRAN 66 Prima standardizzazione di ASA (ora ANSI) 1966/03/07
FORTRAN 77 Fixed Form, Historic 1978/04/15
Fortran 90 Forma libera, standard ISO, operazioni di matrice 1991/06/15
Fortran 95 Procedure pure ed elementali 1997/06/15
Fortran 2003 Programmazione orientata agli oggetti 2004/04/04
Fortran 2008 Co-Array 2010-09-10

Case insensibilità

Le lettere maiuscole e minuscole dell'alfabeto sono equivalenti nel set di caratteri di Fortran. In altre parole, Fortran non fa distinzione tra maiuscole e minuscole . Questo comportamento è in contrasto con i linguaggi case-sensitive, come C ++ e molti altri.

Di conseguenza, le variabili a e A sono la stessa variabile. In linea di principio si potrebbe scrivere un programma come segue

pROgrAm MYproGRaM
..
enD mYPrOgrAM
 

È per il buon programmatore evitare queste brutte scelte.

Ciao mondo

Qualsiasi programma Fortran deve includere la end come ultima dichiarazione. Pertanto, il programma Fortran più semplice ha il seguente aspetto:

end
 

Ecco alcuni esempi di programmi "ciao, mondo":

print *, "Hello, world" 
end
 

Con la dichiarazione di write :

write(*,*) "Hello, world"
end
 

Per chiarezza ora è comune usare l'istruzione del program per avviare un programma e dargli un nome. L'istruzione end può quindi fare riferimento a questo nome per rendere evidente ciò a cui si riferisce e lasciare che il compilatore verifichi il codice per la correttezza. Inoltre, tutti i programmi Fortran dovrebbero includere implicit none dichiarazione implicit none . Pertanto, un programma Fortran minimamente dovrebbe apparire come segue:

program hello
  implicit none
  write(*,*) 'Hello world!'
end program hello
 

Il prossimo passo logico da questo punto è come vedere il risultato del programma Hello World. Questa sezione mostra come ottenerlo in un ambiente simile a Linux. Assumiamo che tu abbia alcune nozioni di base sui comandi della shell , principalmente sai come arrivare al terminale della shell. Supponiamo anche che tu abbia già configurato il tuo ambiente fortran . Usando il tuo editor di testo preferito (notepad, notepad ++, vi, vim, emacs, gedit, kate, ecc.), Salva il programma ciao sopra (copia e incolla) in un file chiamato hello.f90 nella tua home directory. hello.f90 è il tuo file sorgente. Quindi vai alla riga di comando e vai alla directory (home directory?) In cui hai salvato il file sorgente, quindi digita il seguente comando:

>gfortran -o hello hello.f90
 

Hai appena creato il tuo programma Hello World eseguibile. In termini tecnici, hai appena compilato il tuo programma. Per eseguirlo, digitare il seguente comando:

>./hello
 

Dovresti vedere la seguente riga stampata sul tuo terminale shell.

> Hello world!
 

Congratulazioni, hai appena scritto, compilato e eseguito il programma "Hello World".

Installazione o configurazione

Fortran è un linguaggio che può essere compilato utilizzando i compilatori forniti da molti fornitori. Sono disponibili diversi compilatori per diverse piattaforme hardware e sistemi operativi. Alcuni compilatori sono software gratuiti, alcuni possono essere utilizzati gratuitamente e alcuni richiedono l'acquisto di una licenza.

Il compilatore Fortran gratuito più comune è GNU Fortran o gfortran. Il codice sorgente è disponibile da GNU come parte di GCC, la raccolta del compilatore GNU. I binari per molti sistemi operativi sono disponibili su https://gcc.gnu.org/wiki/GFortranBinaries . Le distribuzioni Linux contengono spesso gfortran nel loro gestore di pacchetti.

Ulteriori compilatori sono disponibili ad esempio:

Sui sistemi HPC esistono spesso compilatori specializzati disponibili dal fornitore del sistema come ad esempio i compilatori IBM o Cray .

Tutti questi compilatori supportano lo standard Fortran 95. Una panoramica sullo stato di Fortran 2003 e lo stato di Fortran 2008 da parte di vari compilatori è offerta dal forum Fortran ACM e disponibile in Fortran Wiki.

Equazione quadrata

Oggi Fortran è utilizzato principalmente per il calcolo numerico. Questo esempio molto semplice illustra la struttura di base del programma per risolvere equazioni di secondo grado:

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