Compilatore Fortran per Leopard

Ora, non questioniamo sull’utilità e la bellezza del Fortran, non è questo lo scopo. Chi per piacere o per dovere si dovesse trovare a che fare con la necessità di utilizzare un compilatore Fortran su Leopard, non troverebbe soddisfazione nella utility XCode, in quanto questo compilatore non è fornito nel pacchetto.

Il rimedio è moto semplice: visitate http://hpc.sourceforge.net/ dove potete trovare una lista dettagliata di compilatori (liberi e a pagamento). Se siete per la soluzione free potete scegliere tra un compilatore per Fortran95, ed uno per Fortran77 (questo il mio caso). La procedura per l’installazione è piuttosto semplice. Qui il teso dell’autore:

Recently compiled using source code from the GNU CVS servers. This is the FINAL release of g77 (version 3.4 compiler). Future versions of GCC will have gfortran (see above). Download my binaries, and cd to the download folder. Then gunzip g77-bin.tar.gz (if your browser didn’t do so already) and sudo tar -xvf g77-bin.tar -C /. It installs everything in /usr/local. Try it! You will need to have Apple’s Developer Tools installed. They are included on a separate CD in the retail version of OS X and also available as a free download from Apple’s Developer Site. Please install the most current version of Developer Tools. Thanks to James Wookey for the Intel Mac version of g77.

I passi da fare sono qui raccolti e tradotti in italiano:

  1. Installate l’ultima versione degli Apple Developers Tool.
  2. Download dei binari: PowerPC oppure Intel.
  3. Apriamo un terminale. Collochiamoci nella Directory dove abbiamo effettuato il download. Scompattiamo il tutto:
    $: gunzip g77-bin.tar.gz
    $: sudo tar -xvf g77-bin.tar -C /

    Il primo passo potrebbe non essere necessario in quanto browser come Safari si preoccupano di estrarre gli archivi non appena il download è terminato. Per il secondo passo è necessario avere i diritti di amministratore sulla macchina su cui si lavora.
  4. Ora potete compilare in Fortran77 attraverso il comando, da terminale:
    $: g77 -o nome_output -c nome_input
    $: g77 -o nome_output nome_input

La procedura è andata liscia come l’olio sulla mia macchina, fatemi sapere se avete problemi.

Questo è un buon manuale di Fortran77 (in inglese). Il manuale è distribuito sotto la licenza GNU FDL (Free Documentation License) e questa è l’homepage dell’autore (qui il riferimento alla documentazione su Fortran).

Annunci

11 Risposte

  1. Ciao,
    ho seguito la procedura sopra per installare il fortran sul mio Mac Os X.
    Sembra tutto ok. Ma quando provo a compilare un semplice programma di 2 righe (che ho chiamato test.f), leggo il messaggio: no such file or directory
    no input file. Mi sapresti dire come mai?
    Grazie.

  2. Riesci a fare il copia e incolla del comando che dai, della directory in cui sei (ls -l) e dell’errore?

  3. Si.
    Un errore lo vedo anche io: mancano i diritti di esecuzione (x):

    total 169605
    -rw-r–r– 1 enricocataldo admin 2 10 Apr 11:13 #$#
    -rw-r–r– 1 enricocataldo admin 1 10 Apr 11:19 #test.f#
    -rw-r–r–@ 1 root admin 5694 24 Feb 16:46 2com_nat.f
    -rw-r–r– 1 enricocataldo admin 11652 10 Apr 10:53 2com_nat.o
    drwxrwxr-x+ 62 root admin 2108 4 Apr 16:00 Applications
    -rw-r–r–@ 1 root admin 5632 22 Dic 12:31 Desktop DB
    -rw-r–r–@ 1 root admin 2 7 Feb 2008 Desktop DF
    drwxrwxr-x@ 17 root admin 578 20 Feb 16:57 Developer
    drwxrwxr-t+ 56 root admin 1904 20 Feb 16:53 Library
    lrwxr-xr-x 1 root admin 60 1 Feb 2008 Manuali utente e informazioni -> /Library/Documentation/User Guides and Information.localized
    drwxr-xr-x@ 2 root wheel 68 23 Set 2007 Network
    drwxr-xr-x 4 root wheel 136 4 Apr 16:01 System
    drwxr-xr-x 5 root admin 170 1 Feb 2008 Users
    drwxrwxrwt@ 3 root admin 102 10 Apr 11:44 Volumes
    -rw-r–r–@ 1 root admin 173 24 Feb 16:46 acast.f
    -rw-r–r–@ 1 root admin 51 24 Feb 16:46 acast.inc
    -rw-r–r–@ 1 root admin 169 24 Feb 16:46 akst.f
    -rw-r–r–@ 1 root admin 46 24 Feb 16:46 akst.inc
    -rw-r–r–@ 1 root admin 168 24 Feb 16:46 aktau.f
    -rw-r–r–@ 1 root admin 51 24 Feb 16:46 aktau.inc
    -rw-r–r–@ 1 root admin 172 24 Feb 16:46 anast.f
    -rw-r–r–@ 1 root admin 48 24 Feb 16:46 anast.inc
    drwxr-xr-x@ 40 root wheel 1360 4 Apr 15:54 bin
    -rw-r–r–@ 1 root admin 184 24 Feb 16:46 bnast.f
    -rw-r–r–@ 1 root admin 50 24 Feb 16:46 bnast.inc
    -rw-r–r–@ 1 root admin 171 24 Feb 16:46 bnatau.f
    -rw-r–r–@ 1 root admin 58 24 Feb 16:46 bnatau.inc
    drwxrwxr-t@ 2 root admin 68 23 Set 2007 cores
    dr-xr-xr-x 2 root wheel 512 7 Apr 20:45 dev
    lrwxr-xr-x@ 1 root admin 11 26 Ott 2007 etc -> private/etc
    -rw-r–r–@ 1 root admin 674 24 Feb 16:46 gasdev.f
    -rw-r–r– 1 enricocataldo admin 1484 10 Apr 10:54 gasdev.o
    -rw-r–r–@ 1 enricocataldo admin 65587200 6 Feb 09:45 gfortran-intel-bin.tar
    dr-xr-xr-x 2 root wheel 1 7 Apr 20:46 home
    -rw-r–r–@ 1 root wheel 10318880 25 Nov 02:39 mach_kernel
    -rw-r–r–@ 1 root wheel 10768480 25 Nov 02:39 mach_kernel.ctfsys
    -rw-r–r–@ 1 root 502 1409 2 Apr 19:47 modelall.prm
    -rw-r–r–@ 1 root admin 1525 24 Feb 16:46 nat.f
    dr-xr-xr-x 2 root wheel 1 7 Apr 20:46 net
    -rw-r–r– 1 enricocataldo admin 0 10 Apr 12:43 output.out
    -rw-r–r– 1 enricocataldo admin 18876 10 Apr 11:11 ppc.txt
    drwxr-xr-x@ 6 root wheel 204 26 Ott 2007 private
    -rw-r–r–@ 1 root admin 772 24 Feb 16:46 ran1.f
    drwxr-xr-x@ 66 root wheel 2244 4 Apr 15:54 sbin
    -rw-r–r–@ 1 enricocataldo staff 46 10 Apr 11:22 test.f
    lrwxr-xr-x@ 1 root admin 11 26 Ott 2007 tmp -> private/tmp
    drwxr-xr-x@ 13 root wheel 442 2 Mag 2008 usr
    drwxr-xr-x@ 3 enricocataldo admin 102 6 Feb 12:49 usr 2
    lrwxr-xr-x@ 1 root admin 11 26 Ott 2007 var -> private/var

    cataldop:/ enricocataldo$ g77 -o test.o -c test.f > test.out
    g77: test.f: No such file or directory
    g77: no input files
    cataldop:/ enricocataldo$ ls
    #$# bnatau.f
    #test.f# bnatau.inc
    2com_nat.f cores

  4. Ma in che cartella stai lavorando? Innanzitutto ti consiglio di creare una cartella nella tua home nella quale lavorare.
    Poi prova a dare questo comando:
    $: g77 -o test.o test.f

  5. Hai ragione. Ho messo i files (test.f ed altri) del codice fortran in /Users/enricocataldo/FORTRAN e ho aggiunto il percorso alla PATH;

    ho eseguito dalla directory in cui si trova il compilatore (cioe’ da / ) il comando:
    g77 -o test.o test.f

    e la risposta e’: no such file or directory

  6. Il messaggio di errore è relativo al fatto che il compilatore non trova il tuo file. Se ti posizioni nella directory in cui hai messo il compilatore, allora devi fornire il percorso completo del file, altrimenti il compilatore non sa dove cercarlo. Prova a posizionarti invece nella cartella in cui sono i file:
    $: cd ~/FORTRAN
    $: g77 -o test.o test.f
    $: ./test.o

    Fammi sapere.

  7. Fatto, ma ottengo il solito messaggio: no such file or directory

  8. È molto strano… Alcune prove che puoi fare (per sicurezza) sono:
    1. Verificare di essere nella cartella dove è il file. I comandi:
    $: cd ~/FORTRAN
    $: ls

    devono tornarti la lista dei file contenuti nella cartella /Users/enricocataldo/FORTRAN, tra cui deve esserci anche test.f
    2. Prova a compilare (per compilare puoi lanciare g77 da qualsiasi cartella) inserendo il percorso completo:
    $: g77 -o test.o /Users/enricocataldo/FORTRAN/test.f

  9. Ho pensato di cambiare il nome: da test.f a prova.f. In questo caso funziona.
    Il programma era la somma di due numeri e il file prova.o mi contiene il risultato corretto. Quindi il compilatore funziona.
    Ti ringrazio molto. Alla prossima, Buona Pasqua.
    Enrico.

  10. Ciao, io ho lo stesso problema! però non riesco nemmeno a posizionarmi nella cartella del fortran

    Ecco i procedimenti che ho fatto:
    -scaricato
    -zippato
    -avviato il terminale
    -sono andato nella cartella SCARICATI
    -ho messo il commando “sudo tar -xvf g77-index-bin.tar -C /” e non “sudo tar -xvf g77-bin.tar -C /” perché non lo prendeva!!!
    -ho messo la password
    -è partito e mi ha stampato queste righe:

    x usr/local/
    x usr/local/bin/
    x usr/local/bin/cpp
    x usr/local/bin/g77
    x usr/local/include/
    x usr/local/lib/
    x usr/local/lib/gcc/
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/crt2.o
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/emmintrin.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/float.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/g2c.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/gcc/
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/iso646.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/limits.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/mmintrin.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/pmmintrin.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/README
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/stdarg.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/stdbool.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/stddef.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/syslimits.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/unwind.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/varargs.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/include/xmmintrin.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/gsyslimits.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/emmintrin.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/float.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/iso646.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/limits.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/mmintrin.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/pmmintrin.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/README
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/stdarg.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/stdbool.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/stddef.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/unwind.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/varargs.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/include/xmmintrin.h
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/mkheaders.conf
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/libgcc.a
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/libgcov.a
    x usr/local/lib/gcc/i686-apple-darwin8.8.1/3.4.0/specs
    x usr/local/lib/libfrtbegin.a
    x usr/local/lib/libg2c.0.0.0.dylib
    x usr/local/lib/libg2c.0.dylib
    x usr/local/lib/libg2c.a
    x usr/local/lib/libg2c.dylib
    x usr/local/lib/libg2c.la
    x usr/local/lib/libiberty.a
    x usr/local/libexec/
    x usr/local/libexec/gcc/
    x usr/local/libexec/gcc/i686-apple-darwin8.8.1/
    x usr/local/libexec/gcc/i686-apple-darwin8.8.1/3.4.0/
    x usr/local/libexec/gcc/i686-apple-darwin8.8.1/3.4.0/cc1
    x usr/local/libexec/gcc/i686-apple-darwin8.8.1/3.4.0/collect2
    x usr/local/libexec/gcc/i686-apple-darwin8.8.1/3.4.0/f771
    x usr/local/libexec/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/
    x usr/local/libexec/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/fixinc.sh
    x usr/local/libexec/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/fixincl
    x usr/local/libexec/gcc/i686-apple-darwin8.8.1/3.4.0/install-tools/mkheaders
    x usr/local/share/
    x usr/local/share/locale/
    x usr/local/share/locale/be/
    x usr/local/share/locale/be/LC_MESSAGES/
    x usr/local/share/locale/be/LC_MESSAGES/gcc.mo
    x usr/local/share/locale/ca/
    x usr/local/share/locale/ca/LC_MESSAGES/
    x usr/local/share/locale/ca/LC_MESSAGES/gcc.mo
    x usr/local/share/locale/da/
    x usr/local/share/locale/da/LC_MESSAGES/
    x usr/local/share/locale/da/LC_MESSAGES/gcc.mo
    x usr/local/share/locale/de/
    x usr/local/share/locale/de/LC_MESSAGES/
    x usr/local/share/locale/de/LC_MESSAGES/gcc.mo
    x usr/local/share/locale/el/
    x usr/local/share/locale/el/LC_MESSAGES/
    x usr/local/share/locale/el/LC_MESSAGES/gcc.mo
    x usr/local/share/locale/es/
    x usr/local/share/locale/es/LC_MESSAGES/
    x usr/local/share/locale/es/LC_MESSAGES/gcc.mo
    x usr/local/share/locale/fr/
    x usr/local/share/locale/fr/LC_MESSAGES/
    x usr/local/share/locale/fr/LC_MESSAGES/gcc.mo
    x usr/local/share/locale/ja/
    x usr/local/share/locale/ja/LC_MESSAGES/
    x usr/local/share/locale/ja/LC_MESSAGES/gcc.mo
    x usr/local/share/locale/nl/
    x usr/local/share/locale/nl/LC_MESSAGES/
    x usr/local/share/locale/nl/LC_MESSAGES/gcc.mo
    x usr/local/share/locale/sv/
    x usr/local/share/locale/sv/LC_MESSAGES/
    x usr/local/share/locale/sv/LC_MESSAGES/gcc.mo
    x usr/local/share/locale/tr/
    x usr/local/share/locale/tr/LC_MESSAGES/
    x usr/local/share/locale/tr/LC_MESSAGES/gcc.mo

    -poi sono andato nella cartella dove ho salvato il mio file fisso.f
    -ho scritto il commando “g77 -o fisso fisso.f”
    -il terminale mi ha stampato:

    g77: installation problem, cannot exec `as’: No such file or directory
    MacBook-Pro-di-Vasile-Danila-2:1. Calcolo Numerico vasiledanila$

    Secondo te qual’è il problema?

  11. Ciao e grazie per il commento.
    Come vedi il post non è molto recente e non utilizzo il compilatore Fortran da parecchio tempo.
    Sembra in effetti che il problema sia legato all’installazione, hai provato a cercare supporto sul sito da dove hai effettuato il download?

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: