我想在 ac 程序中使用 f90 模块 (abc) 中定义的整数变量(比如说 xyz)。我发现使用 gnu 编译器可以这样做:
extern int __abc_MOD_xyz;
但我找不到 Cray 编译器的相应语法。
更新
在友好提醒阅读手册和其他评论之后,我能够让它工作。这是示例 FORTRAN 模块:
module test
use, intrinsic :: iso_c_binding
integer :: ftnint = 100
BIND(C) :: ftnint
end module test
和C代码:
#include <stdio.h>
#include <stdlib.h>
#include <ISO_Fortran_binding.h>
// variable that matches up with the FORTRAN module variable
int ftnint;
int main()
{
printf(" var2 : %d\n", ftnint );
}
编译
ftn -c test_mod.f90
cc -c test.c
cc test.o test_mod.o