2011-10-31 86 views
1

我是非常新的Fortran。目前我正在写(或试图编写)调用C库的Fortran应用程序。从fortran调用c函数,遇到argc和argv问题

到目前为止,我已经有了一些工作,但是我坚持使用argc和argv库中的init函数来获取调用该函数的程序名称。

的C-库预计指针argc和argv:

void init(gint argc, gchar ***argv); 

我不知道如何来表达*** ARGV在FORTRAN。其他功能只需要整数,所以我不得不使用这个骨架没有他们的麻烦:

interface 
    subroutine init(argc, argv) 
     ?? 
    end subroutine ee_init 
end interface 

call init(,) 
+0

是gchar ***类似于二维指针数组吗? –

回答

5

你可能需要用C来写,init_fortran或类似自己的包装功能,你的Fortran调用和带参数一种可以在Fortran中表达的方式,然后将它们转换为C init函数所期望的。

4

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