Fortran 90
Carissimi, all'epoca del tempo che fu, ossia 4 anni orsono, in un pietoso corso di informatica generale mi fu insegnata la sintassi del glorioso Fortran 77, ora sono molto curioso di sapere da chi ne è esperto se il fortran 90 è molto diverso e se il processo di apprendimento è lento o veloce.
Tenete conto ceh abitualmente scrivo applicativi in matlab e che la logica di programmazione mi è nota.
Tenete conto ceh abitualmente scrivo applicativi in matlab e che la logica di programmazione mi è nota.
Risposte
Non sono molto esperto di FORTRAN90, l'ho usato una volta perché consente di fare funzioni ricorsive. Comunque per FORTRAN90 valgono tutti i costrutti e le sintassi comunemente usate in FORTRAN77 (che poi sono 2 in croce
), se aggiungi il fatto che il FORTRAN è usato quasi solo per applicativi numerici scritti in codice strettamente procedurale.... di fatto sai già programmare in FORTRAN90, è solo questione di consultare una reference guide e leggere qualche file di esempio in cui siano spiegate le nuove funzionalità del linguaggio (come se poi in pratica non si programmasse usando solo i costrutti FORTRAN77
).
Forse l'unica vera differenza del FORTRAN90 è la possibilità di fare loop usando il costrutto DO ... END DO come in Matlab (o i cicli WHILE), risparmiandosi i label. Ma di fatto comunque questo era possibile anche usando le estensioni del g77 o di altri compilatori già col vecchio 77.
Comunque anche se non ti ricordassi più nulla di FORTRAN77, conoscendo il linguaggio Matlab direi che puoi imparare il FORTRAN90 in meno di un giorno. L'unica parte complicata è quella di formattazione degli input/output da file, ma li basta leggere una reference guide o "scopiazzare" da qualche altro programma...
Questo per quanto riguarda l'imparare la programmazione, poi imparare a programmare è un po' più lungo perché i programmi FORTRAN tendono ad avere un sacco di bug per via di alcune "features" del FORTRAN:
1. Passaggio per riferimento di tutte le variabili alle funzioni, senza check per vedere se queste sono riferite allo stesso indirizzo in memoria (questo è anche il motivo per cui le chiamate a funzioni sono più efficienti in FORTRAN che in C, almeno sulla carta...)
2. Interpreta eventuali errori di spelling nei nomi delle variabili come dichiarazioni di nuove varibili fatte implicitamente (con ovvie disastrose conseguenze)
3. Il funzionamento a dir poco perverso dei common blocks con i quali posso fare cose orrende tipo riempire 4 interi con i bit estratti da un double o altre perverse amenità in virtù del fatto che per lui conta solo l'ordine delle variabili e lo spazio in memoria.
quindi per programmare decentemente oltre alla conoscenza del linguaggio (che è ben poca cosa per te) ci vuole un po' di esperienza e soprattutto una buona comprensione di certi meccanismi strani peculiari del FORTRAN.


Forse l'unica vera differenza del FORTRAN90 è la possibilità di fare loop usando il costrutto DO ... END DO come in Matlab (o i cicli WHILE), risparmiandosi i label. Ma di fatto comunque questo era possibile anche usando le estensioni del g77 o di altri compilatori già col vecchio 77.
Comunque anche se non ti ricordassi più nulla di FORTRAN77, conoscendo il linguaggio Matlab direi che puoi imparare il FORTRAN90 in meno di un giorno. L'unica parte complicata è quella di formattazione degli input/output da file, ma li basta leggere una reference guide o "scopiazzare" da qualche altro programma...
Questo per quanto riguarda l'imparare la programmazione, poi imparare a programmare è un po' più lungo perché i programmi FORTRAN tendono ad avere un sacco di bug per via di alcune "features" del FORTRAN:
1. Passaggio per riferimento di tutte le variabili alle funzioni, senza check per vedere se queste sono riferite allo stesso indirizzo in memoria (questo è anche il motivo per cui le chiamate a funzioni sono più efficienti in FORTRAN che in C, almeno sulla carta...)
2. Interpreta eventuali errori di spelling nei nomi delle variabili come dichiarazioni di nuove varibili fatte implicitamente (con ovvie disastrose conseguenze)
3. Il funzionamento a dir poco perverso dei common blocks con i quali posso fare cose orrende tipo riempire 4 interi con i bit estratti da un double o altre perverse amenità in virtù del fatto che per lui conta solo l'ordine delle variabili e lo spazio in memoria.
quindi per programmare decentemente oltre alla conoscenza del linguaggio (che è ben poca cosa per te) ci vuole un po' di esperienza e soprattutto una buona comprensione di certi meccanismi strani peculiari del FORTRAN.
Ok, grazie!
Per fare programmi in Fortran ci vuole un editor ed un compilatore giusto? Esistono open o bisogna pagare?
Per fare programmi in Fortran ci vuole un editor ed un compilatore giusto? Esistono open o bisogna pagare?
Come compilatori sotto Linux/MAC c'è il gfortran che è per il FORTRAN95 (e supporta anche il 77 e il 90). Sotto windows, usando Cygwin dovrebbe esserci il g95 che è il "padre" dell'attuale gfortran e forse anche il gfortran e il g77 (solo FORTRAN77) che è però un po' vecchiotto. Altrimenti non so...
Oltre ai compilatori della GNU c'è l'Intel Fortran Compiler che è disponibile gratuitamente per usi non commerciali e che, su macchine Intel, ha delle prestazioni inarrivabili dagli altri compilatori, ma te lo sconsiglio perché proprio in virtù delle ottimizzazioni estremamente spinte produce del codice che a volte si comporta in maniera un po' strana se non è scritto con grande attenzione....
A livello di editor di testo uno qualunque credo vada bene... io personalmente adoro il VIM perché mi evidenzia di rosso tutte i caratteri quando sforo dalla 70sima colonna ed è molto comodo, ma comunque alla fin fine un editor qualunque va bene.
Oltre ai compilatori della GNU c'è l'Intel Fortran Compiler che è disponibile gratuitamente per usi non commerciali e che, su macchine Intel, ha delle prestazioni inarrivabili dagli altri compilatori, ma te lo sconsiglio perché proprio in virtù delle ottimizzazioni estremamente spinte produce del codice che a volte si comporta in maniera un po' strana se non è scritto con grande attenzione....
A livello di editor di testo uno qualunque credo vada bene... io personalmente adoro il VIM perché mi evidenzia di rosso tutte i caratteri quando sforo dalla 70sima colonna ed è molto comodo, ma comunque alla fin fine un editor qualunque va bene.
Aspetta aspetta, la cosa della 70-esima colonna non mi è nuova ma non mi ricordoi cosa vuol dire...
me la potresti rammentare?
me la potresti rammentare?
Il codice sorgente, almeno per quello che riguarda il FORTRAN77, deve essere formattato in maniera particolare rispetto alle colonne: le prime cinque colonne per la numerazione delle righe (obbligatoria solo per i label), la sesta per il carattere '&' che indica una linea che è il proseguimento della precedente e da li fino alla settanta circa per il codice, poi è necessario andare a capo, altrimenti il testo che viene dopo è semplicemente ignorato dal compilatore.
Il numero esatto di colonne ora non me lo ricordo, ma si può trovare in qualunque guida di FORTRAN77...
Il numero esatto di colonne ora non me lo ricordo, ma si può trovare in qualunque guida di FORTRAN77...