c++调用fortran代码的例子
时间: 2023-10-01 09:09:24 浏览: 112
调用 FORTRAN77 子例程的 C 程序.rar
以下是一个C调用Fortran的简单示例:
1.创建Fortran代码文件
在任何文本编辑器中,创建一个名为“myfunc.f90”的文件,并将以下代码粘贴到文件中:
```
subroutine myfunc(x, y, z)
real*8 x
real*8 y
real*8 z
z = x + y
return
end subroutine myfunc
```
该代码定义了一个名为“myfunc”的Fortran子程序,该子程序将两个实数相加并将结果存储在第三个实数中。
2.编译Fortran代码
将Fortran代码编译为共享库。在终端中,进入包含“myfunc.f90”的目录,并执行以下命令:
```
gfortran -shared -fPIC -o libmyfunc.so myfunc.f90
```
这将使用gfortran编译器将代码编译为共享库“libmyfunc.so”。
3.创建C代码文件
在同一目录中,创建一个名为“main.c”的文件,并将以下代码粘贴到文件中:
```
#include <stdio.h>
#include <stdlib.h>
extern void myfunc_(double*, double*, double*);
int main()
{
double x = 2.0;
double y = 3.0;
double z;
myfunc_(&x, &y, &z);
printf("The sum of %f and %f is %f.\n", x, y, z);
return 0;
}
```
该代码包括头文件和使用extern关键字声明Fortran子程序的原型。在main函数中,它定义了三个double类型的变量,并将它们传递给名为“myfunc_”(注意后面的下划线)的函数。该函数将调用Fortran代码并将结果存储在第三个变量中。最后,该程序将输出添加结果。
4.编译C代码
在终端中,执行以下命令以编译C代码:
```
gcc -c main.c
gcc -o main main.o -L. -lmyfunc
```
第一个命令将源代码编译为目标文件“main.o”。第二个命令将目标文件链接到共享库“libmyfunc.so”。
5.运行程序
在终端中,执行以下命令以运行程序:
```
./main
```
输出应该是:“The sum of 2.000000 and 3.000000 is 5.000000。”
阅读全文