вызов функций из фортрана, проблемы с argc и argv - PullRequest
2 голосов
/ 31 октября 2011

Я очень новичок в Фортране.В настоящее время я пишу (или пытаюсь написать) приложение на фортране, которое вызывает C-библиотеку.

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

Библиотека C ожидает указатели на argc и argv:

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

Я понятия не имею, как выразитьчто *** аргв в фортране.Другим функциям нужны только целые числа, поэтому у меня не было проблем с использованием этого скелета для них:

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

call init( , )

Ответы [ 2 ]

5 голосов
/ 31 октября 2011

Возможно, вам понадобится написать собственную функцию-обертку на C, init_fortran или аналогичную, которую вы вызываете из Fortran, и принимает аргументы так, как вы можете выразить в Fortran, а затем преобразует их в то, что ожидает функция init C.*

4 голосов
/ 01 ноября 2011

Я бы предложил использовать модуль ISO_C_BINDING и передать указатель на массив указателей, если я правильно понимаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...