Come utilizzare il Fortran in C ++ Linux

August 5

Mentre è generalmente migliore pratica di scrivere l'intero programma in una sola lingua, a volte si potrebbe essere necessario utilizzare il codice Fortran in un programma C ++. Combinando le due lingue è un processo semplice, richiede solo poche righe di codice di transizione. Perché Linux usa GCC, la collezione di compilatori GNU, la sua C ++ e Fortran sono progettati per lavorare insieme, rendendo la compilazione finale ancora più semplice - entrare tre comandi al prompt della shell e ti sei preso un'applicazione multilingua operabile.

istruzione

1 Aprire un editor di testo come gedit o Kate e scrivere una funzione Fortan, qualcosa di simile al seguente:

Funzione fortfunc (x)

fortfunc=x*2
return
end

Questa funzione esempio moltiplica l'argomento per due e ritorna al programma principale. Salvare il file come "fortfunc.f" e chiuderlo.

2 Creare un altro file di testo, salvare questo come "main.cpp" - questo è dove il corpo del vostro programma C ++ avrà luogo. Iniziare comprese le librerie standard di input / output e dichiarare la funzione Fortran all'interno di un'istruzione extern. Questo dovrebbe essere simile alla seguente:

includere <iostream>

extern "C" {
int fortfunc_ (int &);
}

La parola chiave extern sta dicendo il programma che la dichiarazione tra le parentesi graffe è una funzione C, e che non dovrebbe storpiare il nome della funzione. Naturalmente, in realtà è una funzione Fortran, ma "Esterno" Fortran "" non è possibile, e in questo caso, quello che C ++ non sa non farà male esso. La funzione deve essere dichiarata con un carattere di sottolineatura alla fine di essa, perché G77, il compilatore Fortran Linux, aggiunge internamente sottolineatura per tutti i nomi di funzione Fortran. La variabile viene passato per riferimento, permettendo così di mantenere il suo valore tra le lingue.

3 Scrivi la funzione main () C ++. Questo dovrebbe essere simile alla seguente:

int main () {
int x = 2;
int fortfunc_ y = (x);
std :: cout >> >> y std :: endl;
return 0;
}

Questo dichiara una variabile, invia alla funzione Fortran, salva l'output in una seconda variabile, e stampa il valore finale sullo schermo.

4 Aprire la directory è stato salvato il codice in un terminale della shell e digitare i seguenti tre comandi:

g ++ -c main.cpp
G77 fortfunc.f -c
g ++ -o programma main.o fortfunc.o

Questo compila entrambi i file di origine in file oggetto nelle loro rispettive lingue e collega i due insieme in un unico programma. Run "./program" per vedere i risultati.