Вопросы по теме 'fortran-iso-c-binding'

вызывать функции из общей библиотеки фортрана в python
Я хотел бы вызвать некоторые функции из общей библиотеки Fortran в Python. Я нашел несколько ссылок в сети и прочитал их, и в соответствии с тем, что я нашел, я должен сделать libadd = cdll.LoadLibrary('./libbin.so') для загрузки общего...
6538 просмотров
schedule 08.01.2023

Ошибка нарушения прав доступа при передаче массива
Прежде чем найти ответ на вопрос , который я задал раньше , я написал очень простой код для очень похожей сетки (есть только два треугольника), как показано ниже, для вызова функции C в фортране. Для простоты кода. Здесь не используется ни...
342 просмотров
schedule 17.07.2023

Вызов функции/подпрограммы C в коде Fortran
Я пытаюсь скомпилировать и связать код Fortran, вызывающий подпрограмму c: Код Фортрана: program adder integer a,b a=1 b=2 call addnums(a,b) stop end program C-код: void addnums( int* a, int* b ) { int c = (*a) + (*b); /*...
15090 просмотров

Взаимодействие вариативной функции C и Fortran
Есть ли способ объявить вариативную функцию C и вызвать ее из Fortran? Мне нужно вызвать эту функцию, чтобы вычислить некоторые скалярные произведения между векторами, помеченными строкой. Моя идея состояла в том, чтобы объявить что-то вроде...
585 просмотров

Почему мои функции fortran не экспортируются при использовании атрибута BIND(C, NAME=name)
Я привык использовать следующий синтаксис subroutine CalcA(A,N) !DEC$ ATTRIBUTES DLLEXPORT :: CALCA !DEC$ ATTRIBUTES ALIAS:'CalcA' :: CalcA IMPLICIT NONE ... end subroutine CalcA который создает...
1697 просмотров

Преобразование реальной переменной fortran-iso-c-binding в реальную
С помощью fortran-iso-c-binding я могу взаимодействовать с функциями C и получать переменные таких типов, как real(c_float) integer(c_int) Но в остальной части программы я хотел бы использовать базовые типы (просто потому, что я не хочу...
208 просмотров
schedule 10.05.2022

Передача целочисленного массива Fortran в подпрограмму C, только первый переданный элемент
Я пытаюсь передать целочисленный массив из Fortran в C, но могу передать только первый элемент массива. У меня есть тестовая программа ниже, которая воспроизводит ошибку. Где я ошибаюсь? program test use foo integer (kind=c_int),...
438 просмотров
schedule 01.01.2023

Как передать несколько строк Fortran в C?
Чтобы передать строку Fortran в C, также передается скрытый параметр с размером переменной. Вот рабочее определение fortran и метод C (фактически C++/CLI): interface subroutine AppendExtension( + Filename) + bind(C,...
608 просмотров

Доступ к массивам 2d, переданным из C как указатели в Fortran
Как я могу получить доступ к массиву 2d в Fortran, который передается как указатель из функции C. Ниже мой код program linkFwithC use iso_c_binding implicit none interface subroutine my_routine(p,r) bind(c,name='print2')...
332 просмотров

Изменение массива Fortran в C
В Fortran у меня есть массив, указанный как: dimension insv(*) Теперь я хотел бы отредактировать этот массив из C. Мне удалось прочитать массив из C с помощью iso_c_binding: SUBROUTINE userroutine(insv) IMPLICIT NONE INTERFACE...
260 просмотров
schedule 26.12.2022

Функция интерфейса C со структурами в Fortran
Я хочу связать C-функцию с соответствующей структурой на Фортране struct ovf_file { bool found; bool is_ovf; int n_segments; struct ovf_file_handle *_file_handle; }; DLLEXPORT struct ovf_file * ovf_open(const char *filename);...
492 просмотров
schedule 06.04.2022

Передача скаляров и массивов (любых размеров) из Фортрана в Си
У меня есть следующая подпрограмма Fortran с именем show_value , которая вызывает функцию C с именем show_value : INTERFACE SUBROUTINE show_value(variable) BIND(C, name = "show_value") USE, INTRINSIC :: iso_c_binding TYPE(*)...
243 просмотров
schedule 27.08.2022

Совместимость Fortran со структурой указателя C
У меня есть коммерческая библиотека C, которую я хочу использовать с Fortran. Есть две функции и структура указателя, например: struct env; typedef struct env *ENVptr; две функции имеют прототип: ENVptr open(int *status_p); int...
466 просмотров
schedule 29.03.2023

Fortran освобождение выделенной памяти C++
Чтобы добавить некоторый фоновый контекст, мне нужен потокобезопасный генератор случайных чисел для использования в многопоточном коде Fortran, который должен быть кросс-компилятором и совместим с кросс-платформой. Лучший способ добиться этого —...
88 просмотров
schedule 04.01.2024

почему не удается напечатать комплексное число при передаче его из фортрана в c
Я пытаюсь напечатать одномерный массив комплексных чисел (c_double_complex), который заполняется кодом Fortran90 и размещается в коде C. Однако при печати массива на C (используя %f) после его передачи из кода на Фортране печатается только первое...
364 просмотров

Передайте нулевой указатель на привязку Fortran C
Скажем, у меня есть функция C void foo(int* val) , для которой я написал следующую привязку Fortran C (надеюсь, соответствующую стандарту F2008): use, intrinsic :: iso_c_binding ... subroutine foo(val) bind(c) integer(kind=c_int), intent(inout)...
175 просмотров

Как объявить указатель-указатель с помощью iso_c_binding?
Я пишу iso_c_binding в Фортране для вызова C-функции с прототипом ниже int zmat_run( const size_t inputsize, unsigned char *inputstr, size_t *outputsize, unsigned char **outputbuf, const int zipid, int *ret, const...
82 просмотров
schedule 04.05.2022

Присвоение целочисленного значения Fortran целевой памяти C, выделенной malloc
Предположим, вы создали Fortran array(:) указателей на память, выделенную в C с помощью malloc (как показано в лучший ответ , код повторяется ниже). Есть ли способ записать целочисленное значение в эту выделенную память, используя массив...
95 просмотров