PROGRAM Area_Trapezio       ! Il commento va da "!" a fine riga.
                            ! La fine riga, di norma, termina l'istruzione.
!   I nomi vanno composti con lettere, cifre e "_"
!   per un massimo di 31 caratteri, di cui il primo dev'essere una lettera.
!   Maiuscole e miuscole hanno lo stesso valore.
!   Per chiarezza, scriveremo le parole chiave in maiuscolo.
!--------------------------------------------------------------------------
! Calcolo dell'area di un trapezio, date le basi e l'altezza
!--------------------------------------------------------------------------
  IMPLICIT NONE
!   Disattiva la dichiarazione implicita di tipo.
!   In sua assenza, i nomi che cominciano con le lettere da "I" ad "N"
!   indicano variabili intere, gli altri variabili reali.
!   E' facoltativa, ma il suo uso e' altamente raccomandabile.
  REAL :: b1, b2, h, area
!   Variabili reali in precisione di "default", tipicamente 32 bit.

  WRITE(*,*) "Calcolo dell'area di un trapezio"
!   Il primo asterisco indica l'unita' di default: il video in scrittura.
!   Il secondo asterisco indica una scrittura "guidata dalla lista",
!   vale a dire con formattazione automatica.
!   WRITE inizia la scrittura a capo riga.
  WRITE(*,*) 'Dammi le basi e l''altezza: '
!   Le stringhe si possono delimitare con coppie di apostrofi "'" o di
!   virgolette '"'.
!   Il raddoppio dell'apostrofo, in una stringa delimitata da apostrofi,
!   consente di inserire un singolo apostrofo nella stringa.
!   Idem per le virgolette.
  READ(*,*) b1, b2, h
!   Il primo asterisco indica l'unita' di default: la tastiera.
!   Il secondo asterisco indica una lettura "guidata dalla lista";
!   qui vuol dire che i dati si possono inserire separati da
!   uno o più spazi, una virgola o una fine riga.
!   La lettura termina quando si e' letto un numero di dati pari a quello
!   richiesto dalla lista di variabili.
!   READ comincia la lettura a capo riga della riga successiva.
  area = (b1+b2) * h / 2
!   Assegnazione ed espressione aritmetica.
!   Regole di precedenza secondo le convenzioni aritmetiche.
!   Operazioni fra interi (es. "2") e reali producono risultati reali.
  WRITE(*,*) "L'area e'", ArEa
!   Maiuscole e minuscole hanno lo stesso valore!
  STOP
!   Si può inserire in qualunque punto per arrestare l'esecuzione.
!   Non e' obbligatorio, la fine del programma produce comunque l'arresto.
END PROGRAM Area_Trapezio
!   Il nome del programma non e' obbligatorio, ma aumenta la leggibilita'.

