Newsgroup: it.istruzione.universita.ingegneria
Titolo: Fortran 90 che bella cosa :)

Salve a tutti.
In questi giorni sono costretto a causa di enormita di calcoli da
svolgere ad usare un linguaggio di programmazione.
Linguaggi del tipo Octave, Scilab sono adatti, ma non brillano
per velocita' di esecuzione (gia' con il massimo delle ottimizzazioni
del compilatore arrivo a superare 15 minuti di calcolo per problemi con
un piccolo ordine di grandezza), ho rivolto quindi la mia attenzione a
linguaggi compilati come C, fortran77, e fortran90.
Il fortran77 e' semplicissimo da imparare ma soffre di una serie di
problemi che rendo piu' semplice e conveniente effettuare lo sviluppo
del codice in C, nonstante la complessita' e trappole che tale 
linguaggio offre ;).
Da tale esperienza ho capito perche' molte persone gridano allo
scandalo quando sentono dire che il f77 e' ancore usato.
Poi facendo ricerchine in rete ho letto qualcosa su fortran90, ed
effettivamente (dopo quanche prova con F) ho notalto che le capacita' e
il livello di astrazione offerto e' veramente ottimo per problemi di
tipo numerico (differenza praticamente inersistente tra C e F77), ma non
capisco come mai nella pratica corrente il F90 e' praticamente
sconoscito.
I per quel poco che ho studiato e visto per problemi di tipo numerico
nel campo dei linguaggi compilati il F90 e' il piu' adatto gazie a tutta
una serie di funzioni intrinsece pronte che evitano di scrivere
personalmente delle funzioncine ad oc in altri linguaggi, Es:
+ assegnazione dei valori ad un vettore
+ ricerva min max
+ posizione del min o del max in un vettore
+ gestione avanzate di matrici e vettore, tramite slice (come in python
  i Matlab)
+ Ordinameto
+ Diverse funzioni per numeri random
ecc
Vorrei conoscosce le esperienze di lavoro con tale linguaggio o con il C
nell'ambito del calcolo di altre persone che sicuramente hanno 
affrontato problemi e progetti
piu' grandi del mio piccolissimo programma di calcolo personale.

 piu' grandi del mio piccolissimo programma di calcolo personale.
Io ho esperienza con il mio lavoro di tesi, dove ho scritto una 
procedura di accoppiamento tra un codice in F77 che risolve il problema 
di Navier-Cauchy per le strutture solide caricate e un altro in f90 che 
risolve le equazioni Navier-Stokes per un fluido incomprimibile in 
regime subsonico; non solo il fortran90 e` piu` semplice da usare, 
perche' piu` astratto, del F77, ma e` potente quanto il C per le 
applicazioni numeriche e soprattutto molto intuitivo, il che ti permette 
di trascurare tutti quei particolari di scrittura del codice, 
sicuramente molto interessanti per altri versi, ma non fondamentali per 
i fini che ti prefiggi.
Nel mio caso si trattavano dati in vettori, matrici, si riordinavano nei 
modi piu` disparati, si operavano fattorizzazioni di matrici e 
risoluzioni di sistemi lineari a molte incognite (si parla di giornate 
intere di calcolo, he he).
Se vuoi il mio parere, ti consiglio di usare F, che e` quasi potente 
come il f90, puoi trovare un compilatore freeware (in realta` c'e` anche 
per il f90... ma non supporta tutte le caratteristiche di quelli 
commerciali) ma ha il vantaggio di permetterti di scrivere le cose in un 
solo modo, forzandoti a scrivere un buon codice.
Ciao
Luca.

 
F l'ho usato per poco tempo, poi ho scoperto che la INTEL fornisce
gratuitamente il suo compilatore fortran per uso personale e per la
piattaforma LINUX che uso con immensa soddisfazione da 7 anni ;).
E tra l'altro il compilatore e' veramente ottimo, e fa pure lo
schizzinoso se scrivi codice misto f77/f90/f95 dandoti dei bei WARNING
Grazie per aver risposto al post, piu' il tempo passa piu' sono contento
della scelta che ho fatto (C + F90) 

 di evitare come la peste il Fortran e il VisualBasic.
Non conosco il Fortran (né 77 né 90) e sono un appassionato di informatica e
studente a ing. inf.
E' vero che molti informatici trovano il Fortran superato, quelli
intelligenti però riconoscono la superiorità del Fortran rispetto al C++ e
spesso anche rispetto al C per quanto riguarda l'efficienza nei programmi di
calcolo. Allo stato attuale non esiste un linguaggio di programmazione che
batta il fortran nel suo campo applicativo, tuttavia il Fortran è
consigliabile solo per applicazioni intensive di calcolo scientifico, di
conseguenza viene imparato ed utilizzato da una ristretta cerchia di
sviluppatori e rimane un linguaggio di nicchia. Se serve un linguaggio per
più scopi il Fortran non va più bene, e anche per quelle applicazioni che
prevedono un uso limitato di calcolo scientifico oppure quei programmi in
cui l'efficienza non è fondamentale spesso conviene utilizzare il C, che
offre prestazioni minori ma una maggiore versatilità, comodità ecc ecc
Io stesso comunque non mi farei alcun problema a studiarmi il Fortran se
dovessi sviluppare applicazioni di calcolo scientifico.
Anche per quanto riguarda il Visual Basic non sono completamente d'accordo.
Come linguaggio di programmazione fa schifo, però è molto semplice da usare
e da imparare e di conseguenza si presta bene a quelle persone che non sono
programmatori professionisti ma hanno bisogno di fare occasionalmente
piccoli programmi.

 piccoli programmi.
mmhhh io non riesco ad usarlo, ed ho una infarinatura di base in circa 5 linguaggi
:)
Grazie per la tua risposta

 :)
personalmente ritengo che VB sia piu' comprensibile a chi ha esperienza di
scripting piuttosto che profonde competenze da programmatore in linguaggi
come il C
--
artemis.alpeia
http://spazioinwind.libero.it/artemis

 :)
Direi che sei un caso particolare. Io ho fatto una intera applicazione per
la gestione di un database (niente di trascendentale) in meno di un mese,
partendo da conoscenze nulle in Visual Basic (ma buone conoscenze nella
teoria dei database e in Delphi).
Come linguaggio è particolarmente semplice, però è molto poco potente e
permette un bassso livello di astrazione.
Ho un amico che sa DAVVERO poco di programmazione in genere ma fa programmi
in Visual Basic, e lo pagano.

 > scandalo quando sentono dire che il f77 e' ancore usato.
....compresi i miei professori di analisi numerica,
Un consiglio, impara il MATLAB, è di una semplicità disarmante ed è molto
versatile.

 versatile.
Gia' conosco Matlab e l'ho pure usato, e' un bell'ambiente sicuramente,
ma con lo standard del Fortran90/95 molte caratteristiche del matlab
sono state incluse come ad esempilo le slide delle matrici e vettori.
I tempi di sviluppo in Matlab sono rapidi, ma ha alcuni punti(a mio
parere) a sfavore:
a)E' un prodotto distribuito solo a pagamento, anche per studenti (io ho
  usato Scilab e Octave a casa, e matlab all'universita)
b)E' un ambiente pesantuccio in termini di risorse.
c)E' interpretato e molto lento, eccezion fatta in qualche caso, ma e'
  fondamentalmente lento.
Il fortran77 mi fa schifo, ma il 90 e successivi sono tutta un'altra
storia, all'universita e' installato Fortran Power Station della
Microsoft che usa l'ambiente di VC++, e' un bell'ambiente, ma a casa a
costi 0 mi sono fatto (non sessualmente ;) ):
a) Intel Fortran Compiler (gratuito per uso personale e nella versione 
   Linux)
b) DDD un frontend grafico al debugger gdb
c) gnuplot e xmgrace per analizzare i grafici dei dati trovati.
d) vim per scrivere codice bello colorato :)
Certo la bellezza grafica e l'intuibilita' d'uso e' poca, ma la qualita
dei pacchetti (senza considerarne il prezzo) e' veramente ottima.
Sviluppi sono rapidi, e la velocita di esecuzione incredibile.
Rimane il fatto che il tuo consiglio e' perfettamente valido, specie a
chi deve iniziare a programmare mettendo mano a calcoli su matrici
enormi, il passaggio matlab->fortran e' stato molto immediato e
indolore.
Grazie per la risposta.
Ciao