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 …