在Linux上,要调用Fortran库,你需要遵循以下步骤:
sudo apt-get install gfortran
.f90(或其他Fortran源文件扩展名)文件。例如,创建一个名为my_library.f90的文件,其中包含以下代码:module my_library
implicit none
contains
subroutine add(a, b, c) bind(c, name="add")
real, intent(in) :: a, b
real, intent(out) :: c
c = a + b
end subroutine add
end module my_library
这个模块包含一个名为add的子程序,它接受两个输入参数a和b,并返回它们的和作为输出参数c。
gfortran -fPIC -c my_library.f90
gfortran -shared -o libmy_library.so my_library.o
这将生成一个名为libmy_library.so的共享库文件。
main.c的C文件,其中包含以下代码:#include <stdio.h>
// 声明add子程序的原型
extern void add_(float a, float b, float *c);
int main() {
float a = 1.0, b = 2.0, c;
// 调用add子程序
add_(a, b, &c);
printf("The sum of %.2f and %.2f is %.2f\n", a, b, c);
return 0;
}
注意,我们在子程序名称后面添加了一个下划线(_),因为在Fortran中,子程序名称默认会以下划线结尾。
gcc -o main main.c -L. -lmy_library -lgfortran
这将生成一个名为main的可执行文件。
./main
你应该看到输出结果:
The sum of 1.00 and 2.00 is 3.00
这就是在Linux上调用Fortran库的方法。请注意,这个例子中的代码是用C语言编写的,但是你也可以用Fortran编写调用Fortran库的程序。只需确保在编译时使用gfortran而不是gcc。