Elementi di Fortran 90

Transcript

Elementi di Fortran 90
Elementi di Fortran 90
Programma “Hello world”
!MS$FREEFORM
PROGRAM ciao
IMPLICIT NONE
PRINT*, ‘CIAO’
END PROGRAM
Elementi del linguaggio
• Formato libero
– Massimo di 132 caratteri per linea
– per continuare una riga si usa &
• Importanza della spaziatura
PROGRAM e NON PRO GRA M
• Commenti
Il carattere ! Indica l’inizio di un commento
• Nomi delle variabili
– Lunghezza massima di 31 caratteri
– Lettere, numeri e _ permessi
– Il primo carattere DEVE essere una lettera
• Ordine delle istruzioni
• Dichiarazione delle variabili
Ordine delle istruzioni
PROGRAM nome_programma
USE module
IMPLICIT NONE
Dichiarazione delle variabili usate
Sequenza di istruzioni
END PROGRAM [nome_programma]
Dichiarazione delle variabili
Carattere
CHARACTER stringa di uno o
più caratteri
Variabile Booleana
LOGICAL variabili che
possono essere vere o false
Numero
REAL numeri reali
INTEGER numeri interi
COMPLEX numeri complessi
Esempi
CHARACTER
:: letter ! Singola lettera
CHARACTER (LEN=12) :: nome
! Stringa di 12 caratteri
LOGICAL
:: fine
! vero o falso?
REAL
:: x1
! Variabile reale
DOUBLE PRECISION :: pi
! variabile reale in doppia precisione
INTEGER
:: int
! Intero
COMPLEX
:: var_comp
! Variabile complessa del tipo x + iy
NB: Maiuscole = minuscole
• Il Fortran non fa distinzione tra lettere maiuscole
e minuscole. Questo vale sia per le istruzioni del
linguaggio (es. PROGRAM, END, ecc.) sia per
la definizione delle variabili.
• Esempi:
viviana è la stessa cosa di Viviana o di VIVIANA
PROGRAM è la stessa cosa di program o di
ProGraM
A è la stessa cosa di a
IMPLICIT NONE
Nel Fortran alle variabili non dichiarate esplicitamente
viene assegnato un tipo implicito che dipende dalla
prima lettera del nome della variabile:
- I, J, K, L, M e N => la variabile è di tipo intero
- Tutte le altre lettere => la variabile è reale
Questo è potenzialmente PERICOLOSISSIMO!
Esempio: che succede se nel testo del programma sbaglio
a scrivere il nome di una variabile?
Soluzione: utilizzare SEMPRE l’istruzione
IMPLICIT NONE
all’inizio del programma. In questo modo il compilatore
controllerà che il tipo di TUTTE le variabili usate sia stato
dichiarato esplicitamente
Espressioni e assegnamento
• Per assegnare ad una variabile un valore
si usa =
Esempi:
A=0
A=A+1
A=B
• Operatori numerici
+ addizione;
- sottrazione;
* moltiplicazione;
/ divisione;
** elevamento a potenza
NB: esistono predefinite
regole di precedenza tra gli
operatori numerici:
**
Precedenza più alta
*o/
+o-
Precedenza più bassa
Stampa del valore di una variabile
• PRINT*, nome_variabile
Esempio:
…
A=1
PRINT*, A
…
• WRITE(*,*) nome_variabile
Esempio:
…
A=1
WRITE(*,*) A
…