0

我想在 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
4

0 回答 0