我正在处理一些关于Fortran调用C语言的代码,并不确定如何使用iso_c_binding模块。
没有使用iso_c_binding,我已经成功地编写了Fortran和C语言接口,现在的问题是是否仍然需要显式地绑定函数和变量。例如,以下代码可以正常工作:
program testprog
...
interface
subroutine c_parser(param)
integer, intent(in) :: param
end subroutine
end interface
integer :: a
call c_parser(a)
..
end program
/****************/
void c_parser_ (int* param)
将下划线附加到C函数,编写接口,然后从Fortran程序调用它。
iso_c_binding的确切目的是什么?有什么需要注意的地方吗?例如,这个提到了在使用绑定时处理字符串时的一个警告(请参阅“不幸的是,在至少GNU和Intel编译器上,该语句”部分)。
我不使用指针或可分配变量,我的所有代码都包含需要从Fortran子程序移动到C的整数、字符、浮点数和逻辑变量。