温馨提示×

Linux上Fortran库如何调用

小樊
43
2025-12-20 02:41:02
栏目: 智能运维

在Linux上,要调用Fortran库,你需要遵循以下步骤:

  1. 确保你已经安装了Fortran编译器。在大多数Linux发行版中,你可以使用包管理器来安装Fortran编译器,例如在Ubuntu上,你可以使用以下命令安装gfortran:
sudo apt-get install gfortran
  1. 编写Fortran代码并保存为.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的子程序,它接受两个输入参数ab,并返回它们的和作为输出参数c

  1. 使用Fortran编译器编译源代码以创建共享库。在终端中,导航到包含源文件的目录,并运行以下命令:
gfortran -fPIC -c my_library.f90
gfortran -shared -o libmy_library.so my_library.o

这将生成一个名为libmy_library.so的共享库文件。

  1. 编写一个C或Fortran程序来调用共享库中的子程序。例如,创建一个名为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中,子程序名称默认会以下划线结尾。

  1. 编译C程序并链接到Fortran共享库。在终端中,运行以下命令:
gcc -o main main.c -L. -lmy_library -lgfortran

这将生成一个名为main的可执行文件。

  1. 运行程序。在终端中,输入以下命令:
./main

你应该看到输出结果:

The sum of 1.00 and 2.00 is 3.00

这就是在Linux上调用Fortran库的方法。请注意,这个例子中的代码是用C语言编写的,但是你也可以用Fortran编写调用Fortran库的程序。只需确保在编译时使用gfortran而不是gcc

0