在Ubuntu中,Fortran可以通過使用ISO C Binding來調用C函數。以下是一個簡單的示例,展示了如何在Fortran代碼中調用C函數。
首先,創建一個名為example.c
的C文件,包含一個簡單的C函數:
#include <stdio.h>
void hello_from_c() {
printf("Hello from C!\n");
}
接下來,創建一個名為example.f90
的Fortran文件,用于調用上面創建的C函數:
! example.f90
program main
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 main
在這個Fortran文件中,我們使用了iso_c_binding
模塊來定義與C語言兼容的數據類型和接口。bind(c, name="hello_from_c")
子句指定了我們要調用的C函數的名稱。
現在,編譯這兩個文件并將它們鏈接在一起。在終端中,運行以下命令:
gfortran -c example.c
gfortran -c example.f90
gfortran example.o example.o -o example
這將生成一個名為example
的可執行文件。運行它,你將看到以下輸出:
Hello from C!
這就是在Ubuntu中使用Fortran調用C函數的方法。請注意,這個示例僅適用于簡單的函數調用。對于更復雜的函數,可能需要處理數據類型轉換和內存管理等問題。