Tecnología

Inicio

Cómo usar Fortran en C ++ de Linux

Aunque en general es una mejor práctica para escribir todo el programa en un solo idioma, a veces es posible que sea necesario utilizar el código Fortran en un programa en C ++. La combinación de las dos lenguas es un proceso simple, que requiere sólo unas pocas líneas de código de transición. Debido a que Linux utiliza GCC, la colección de compiladores de GNU, el C ++ y Fortran compiladores están diseñados para trabajar juntos, haciendo que la compilación final aún más simple - introduzca los tres comandos en el intérprete de comandos y usted se tiene una aplicación multilenguaje operable.

Instrucciones

1 Abra un editor de texto como gedit o Kate y escribir una función Fortan, algo así como lo siguiente:

fortfunc función (x)

fortfunc=x*2
return
end

Esta función ejemplo multiplica el argumento por dos y lo devuelve al programa principal. Guarde el archivo como "fortfunc.f" y cerrarla.

2 Cree otro archivo de texto, el ahorro de éste como "main.cpp" - aquí es donde el cuerpo de su programa en C ++ se llevará a cabo. Comience mediante la inclusión de las bibliotecas estándar de entrada / salida y declarar la función Fortran dentro de una instrucción extern. Esto debería ser similar al siguiente:

incluir <iostream>

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

La palabra clave extern está diciendo el programa que la declaración entre las llaves es una función de C, y que no debe destrozar el nombre de la función. Por supuesto, en realidad es una función Fortran, pero "extern" Fortran "" no es posible, y en este caso, lo que C ++ no sabe no lo dañará. La función debe ser declarada por un guión al final de ella, porque g77, el compilador Fortran Linux, internamente agrega subrayado que todos los nombres de las funciones de Fortran. La variable se pasa por referencia, lo que le permite mantener su valor entre idiomas.

3 C Escriba su función main () ++. Esto debe ser algo como lo siguiente:

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

Esto declara una variable, lo envía a la función de Fortran, guarda la salida en una segunda variable, e imprime el valor final en la pantalla.

4 Abra la carpeta donde ha guardado el código en un terminal de shell y escriba los siguientes tres comandos:

g ++ -c main.cpp
fortfunc.f -c g77
g ++ -o programa main.o fortfunc.o

Este elabora los dos archivos de código fuente en archivos de objeto en sus respectivos idiomas y vincula a los dos juntos en un solo programa. Ejecutar "./program" para ver los resultados.