从fortran调用c函数,用argc和argv调用

时间:2011-10-31 14:46:00

标签: c fortran

我对Fortran非常非常。目前我正在编写(或试图编写)一个称为C库的fortran应用程序。

到目前为止,我已经完成了一些工作,但我仍然坚持使用库中的init函数,它希望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( , )

2 个答案:

答案 0 :(得分:5)

您可能需要在C,init_fortran或类似程序中编写自己的包装器函数,您可以从Fortran调用它,并以可在Fortran中表达的方式获取参数,然后将它们转换为C init函数所期望的内容。

答案 1 :(得分:4)

我建议使用模块ISO_C_BINDING并将指针传递给指针数组,如果我理解正确的话。