我对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( , )
答案 0 :(得分:5)
您可能需要在C,init_fortran或类似程序中编写自己的包装器函数,您可以从Fortran调用它,并以可在Fortran中表达的方式获取参数,然后将它们转换为C init函数所期望的内容。
答案 1 :(得分:4)
我建议使用模块ISO_C_BINDING并将指针传递给指针数组,如果我理解正确的话。