Introduzione al FORTRAN 90 Il compilatore g95 (www.g95.org oppure FTP.g95.org) g95-MinGW-41.exe programma di installazione per sistemi Windows 2000/XP g95-MinGW.exe programma di installazione per sistemi Windows Me/98 Il compilatore g95 Path di installazione evitare nomi di cartelle che contengono spazi bianchi NON sono validi …\Program Files\.... c:\Documents and Settings\... NON è utilizzabile come folder di installazione il DESKTOP dell’utente Il compilatore g95 Reimpostare il PATH di sistema aggiungendo …\<instaldir>\bin Impostare il LIBRARY_PATH LIBRARY_PATH=…\<instaldir>\lib Istruzioni istruzioni eseguibili che descrivono le azioni che un programma deve effettuare sum=var1+var2 istruzioni non eseguibili che forniscono informazioni per eseguire un programma correttamente REAL :: var1,var2,sum Istruzioni possono iniziare in un qualsiasi punto di un riga sum=var1+var2 sum=var1+var2 ogni riga può contenere al massimo 132 caratteri sum=var1+var2+var3+var4+var5+var6+var7 ogni riga può contenere più istruzioni purché divise con il carattere ; suma=var1+var2; sumb=var3+var4 Istruzioni un’istruzione può continuare sulla riga successiva purché la riga termini con il carattere & sum=var1+var2+var3+& var4+var5+var6+var7 un’istruzione può occupare al massimo 40 righe sum=var1+var2+var3+& var4+var5+var6+var7+& var9+var10+var11+var12+& var13+var14+var15+var16 Istruzioni un’istruzione può essere preceduta da un numero compreso da 1 a 99999 detto label 77 100 suma=var1+var2 sumb=suma+var3 sumc=var4+var5 la presenza di un label permette di richiamare l’istruzione da altre parti di un programma Commenti i commenti devono essere preceduti dal carattere ! e possono essere posti in un qualunque punto di una riga ! somma delle due variabili var1 e var2 suma=var1+var2 ! somma di var1, var2 , var3 sumb=suma+var3 sumc=var4+var5 ! somma totale Costanti e variabili costanti sono dati i cui valori non cambiano durante l’esecuzione del programma variabili sono dati i cui valori possono cambiare durante l’esecuzione del programma Nomi delle costanti e variabili possono essere costituiti da una qualsiasi combinazione di lettere alfabetiche (a-z), cifre (0-9) e caratteri di sottolineatura _ validi z12_sto917 Sl_u772 non validi c&2_sto917 Sl_u%72 Il Fortran 90 non distingue le lettere minuscole dalle lettere maiuscole aBcD è equivalente a AbCd Nomi delle costanti e variabili il numero massimo di caratteri è 31 valido ab_sto917 non valido sabcd_123efcdlmns987654bc2_sto917 il primo carattere deve essere un lettera valido bc2_sto917 non valido 7c2_sto917 Struttura di un programma sezione dichiarativa sezione esecutiva sezione conclusiva Struttura di un programma sezione dichiarativa contiene istruzioni non eseguibili definisce il nome del programma definisce numero e tipi di costanti e variabili PROGRAM nome_programma REAL :: var1,var2,var3 REAL, PARAMETER :: coef=1.5 Struttura di un programma sezione esecutiva contiene istruzioni eseguibili definisce le azioni che deve fare il programma READ( , ) var1,var2 var3=var1+coef var2 WRITE( , ) var3 Struttura di un programma sezione conclusiva contiene istruzioni che concludono l’esecuzione del programma STOP END PROGRAM nome_programma STOP interrompe l’esecuzione del programma END PROGRAM indica l’ultima istruzione del programma Struttura di un programma PROGRAM nome_programma dichiarazioni parametri e variabili END PROGRAM nome_programma Dichiarazioni parametri e variabili i tipi di parametri e variabili si dividono tipi intrinseci (cioè definiti nel linguaggio) tipi derivati (che possono essere definiti dal dal programmatore) Tipi intrinseci tre tipi numerici INTEGER REAL COMPLEX un tipo logico LOGICAL uno formato da stringhe di caratteri CHARACTER Tipi INTEGER e REAL Definizione implicita (o di default) ogni variabile che inizia con I,J,K,L,M,N è considerata una variabile intera ogni variabile la cui iniziale è compresa tra A e H oppure tra O e Z è considerata una variabile reale Tipi INTEGER e REAL Definizione esplicita variabili INTEGER :: nome1,nome2,.... REAL :: nome1,nome2,.... parametri INTERGER, PARAMETER :: nome1=valore REAL, PARAMETER :: nome1=valore Tipi INTEGER e REAL Per utilizzare i reali con una precisione doppia rispetto a quella associata al tipo REAL si può utilizzare le seguenti definizioni: variabili DOUBLE PRECISION :: nome1,nome2,.... parametri DOUBLE PRECISION, PARAMETER :: nome1=val VETTORI e MATRICI dimensioni miste INTEGER :: nome1(dim1),nome2(dima2,dimb2).... REAL :: nome1(dim1),nome2(dima2,dimb2),.... DOUBLE PRECISION ::nome1(dim1),....... dimensioni uguali INTEGER, DIMENSION(dim1,dim2) :: nom1,nom2 REAL, DIMENSION(dim1,dim2) :: nome1,nome2 DOUBLE PRECISION, DIMENSION(dim1) ::nom1, Tipi INTEGER e REAL Per evitare errori i battitura è consigliabile utilizzare l’istruzione: IMPLICIT NONE che impone che tutti i parametri e tutte le variabili siano definite esplicitamente Riferimenti S.J. Chapman:”Fortran 90/95, guida alla programmazione”. McGraw-Hill, II edizione, 2004. M. Metcalf, J. Reid:”Fortran 90/95, explained”. Oxford Science Publications, 1996.