从fortran调用c函数,argc和argv的问题



非常新的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并将指针传递给指针数组,如果我理解正确的话。

最新更新