economia news e media viaggi informatica internet salute e benessere int rattenimento e spettacolo sport tempo libero istruzio ne e formazione arte cultura scienza

Il Sondaggio

Quale versione del fortran utilizzi?

Guarda i risultati

Fortran 77

Compilazione di routine e caricamento in libreria di moduli

A cura di Giuseppe Ciaburro

Pubblicato il 22/06/2001

Compilazione di routine e caricamento in libreria di moduli compilati in ambiente UNIX-LINUX, come ottenere da un sorgente f77 un eseguibile.

La sintassi del fortran 77 per la compilazione di una routine di nome nomesub dal sorgente nomesub.f e' la seguente:

f77 -c nomesub.f -I$home/f77/include

-I indica la directory di librerie per gli include (oltre quelle di sistema)
-L indica la directory di librerie per il link (oltre quelle di sistema)

Tale comando produce il modulo compilato di nome nomesub.o. Il caricamento del modulo nomesub.o nella libreria libnome.a avviene con il comando ar :

ar -r libnome.a nomesub.o

Se la libreria non esiste essa viene creata.
Note: Il comando ar -vt libnome.a permette di listare i moduli oggetto contenuti nella libreria: ognuno di essi corrisponde ad un sorgente Fortran caricato per esempio con lo script olib.
Il comando ar -w libnome.a permette di listare i nomi simbolici disponibili per il linker: essi corrispondono a tutti i nomi di subroutine e function presenti all'interno di ogni modulo oggetto contenuto nella libreria. E' possibile utilizzare ovunque la normale sintassi generica per i nomi dei files:

ar -r libnome.a *.o

carichera' tutti i moduli .o dell directory corrente nella libreria libnome.a.

  • Una procedura semplice: olib
    E' disponibile lo script olib che permette la compilazione del sorgente di una o piu' moduli Fortran ed il loro caricamento in una libreria. Tale script puo' essere copiato nella directory etc dell'utente ed se deve adattato alle esigenze specifiche fornendo i nomi delle directories di Include e le eventuali opzioni per il compilatore secondo la normale sintassi. Si consiglia l'utente di creare le sue librerie sotto la directory lib e di scegliere un nome che le identifichi univocamente in modo chiaro: infatti i comandi UNIX per la compilazione/link non permettono di associare in modo esplicito ed univoco le librerie alle directory in cui esse risiedono. E' conveniente caricare i moduli Fortran delle routines in sottodirectory della directory contenente la libreria. In in particolare la procedura olib assume tale configurazione e deve essere fatta eseguire all'interno della sottodirectory contenente le routine sulle quali agisce.

    Esempio:

    $home/f77/lib/libnome.a - nome della libreria, che necessariamente deve avere prefisso lib e suffisso .a $home/f77/lib/per_src - directory contenente le routines suba, subb....
    $home/f77/lib/per_src/suba.f - routines $home/f77/lib/per_src/subb.f

  • L'utility standard: make
    L'utility standard in UNIX per l'automatizzazione delle operazioni di compilazione e link e' l'utility make ;infatti dopo aver inglobato tutti i parametri di compilazione in un file chiamato makefile il richiamo della utility make permette in un solo passo l'intera procedura di compilazione.
    Il suo utilizzo permette di trattare in modo automatico solo quelle routines che sono state modificate direttamente, oppure indirettamente attraverso modifiche delle include che esse contengono.

Vuoi essere aggiornato sulle novità della guida?

Feed RSS XML vostro feed RSS