在CentOS系统中,Fortran可以通过使用iso_c_binding模块来调用外部C函数。以下是一个简单的示例,展示了如何在Fortran代码中调用C函数。
首先,创建一个名为example.c的C文件,包含一个简单的函数:
#include <stdio.h>
void hello_from_c() {
printf("Hello from C!\n");
}
接下来,使用gcc编译器将C文件编译为共享库:
gcc -fPIC -c example.c -o example.o
gcc -shared -o libexample.so example.o
现在,创建一个名为example.f90的Fortran文件,使用iso_c_binding模块调用C函数:
program call_c_function
use iso_c_binding, only: c_void
implicit none
interface
subroutine hello_from_c() bind(c, name="hello_from_c")
import c_void
! No arguments and no return value
end subroutine hello_from_c
end interface
call hello_from_c()
end program call_c_function
最后,使用gfortran编译器编译Fortran文件,并链接共享库:
gfortran -o call_c_function example.f90 -L. -lexample -Wl,-rpath,.
现在,可以运行Fortran程序,它将调用C函数并输出"Hello from C!":
./call_c_function
注意:在编译和链接过程中,可能需要根据实际情况调整库文件的路径。