Hvordan bruke Fortran i C ++ Linux

Mens det er generelt bedre praksis å skrive hele programmet i et enkelt språk, noen ganger kan det være nødvendig å bruke Fortran kode i et C ++ program. Ved å kombinere de to språkene er en enkel prosess, som krever bare noen få linjer med overgangs kode. Fordi Linux bruker GCC, GNU kompilatoren samling, sin C ++ og Fortran kompilatorer er utviklet for å fungere sammen, slik at den endelige samlingen enda enklere - skriv tre kommandoer på skallprompten og du har fått deg en operativ flerspråklige program.

Bruksanvisning

1 Åpne en tekst editor som gedit eller Kate og skrive en Fortan funksjon, noe som følgende:

Funksjonen fortfunc (x)

fortfunc=x*2
return
end

Dette eksemplet funksjon multipliseres argumentet med to og returnerer det til hovedprogrammet. Lagre filen som "fortfunc.f" og lukke den.

2 Lag en tekstfil, lagrer dette som "main.cpp" - dette er hvor kroppen av C ++ programmet vil foregå. Begynn ved å inkludere standard input / output biblioteker og erklære Fortran fungere innenfor en extern uttalelse. Dette bør se slik ut:

inkluderer <iostream>

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

Den extern søkeordet forteller programmet at erklæringen mellom klammeparentes er en C-funksjon, og at det ikke skal mangle funksjonsnavnet. Selvfølgelig, det er faktisk en Fortran funksjon, men "extern" Fortran "" ikke er mulig, og i dette tilfellet vil det C ++ ikke vet ikke skade den. Funksjonen må deklareres med en understrek på slutten av det fordi G77, Linux Fortran kompilator, internt legger strek for alle Fortran funksjonsnavn. Variabelen er vedtatt av referanse, slik at det å beholde sin verdi mellom språkene.

3 Skriv din main () C ++ funksjon. Dette skal se omtrent slik ut:

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

Dette erklærer en variabel, sender den til Fortran-funksjonen, lagrer resultatet i en annen variabel, og skriver den endelige verdien på skjermen.

4 Åpne mappen du lagret koden til i et skall terminal og skriv følgende tre kommandoer:

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

Dette kompilerer begge kildefiler til objekt-filer i sine respektive språk, og knytter de to sammen til ett enkelt program. Kjør "./program" for å se resultatene.