2011-10-31 4 views
1

Я очень новый для Fortran. В настоящее время я пишу (или пытаюсь написать) приложение fortran, которое вызывает C-библиотеку.вызов c функции из fortran, проблема с argc и argv

У меня есть несколько вещей, которые работают до сих пор, но я застрял в функции init из библиотеки, которая ожидает, что argc и argv просто получат имя программы, которое вызывает функцию.

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 и передать указатель на массив указателей, если я правильно его понимаю.

Смежные вопросы