我非常新的Fortran。目前我正在编写(或尝试编写)一个调用c库的fortran应用程序。
到目前为止,我已经有了一些工作,但我仍然坚持使用库中的init-function,它期望argc和argv只是获取调用函数的程序名称。
c标准库期望指针指向argc和argv:
void init(gint argc, gchar ***argv);
我不知道如何在fortran中表达那个***argv。其他函数只需要整数,所以我对它们使用这个框架没有问题:
interface
subroutine init( argc, argv)
??
end subroutine ee_init
end interface
call init( , )
您可能需要用C, init_fortran或类似的语言编写自己的包装器函数,从Fortran调用并以您可以用Fortran表示的方式接受参数,然后将它们转换为C初始化函数所期望的
我建议使用模块ISO_C_BINDING并将指针传递给指针数组,如果我理解正确的话。