Вопросы по теме '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 просмотров
schedule
14.05.2023
Взаимодействие вариативной функции C и Fortran
Есть ли способ объявить вариативную функцию C и вызвать ее из Fortran? Мне нужно вызвать эту функцию, чтобы вычислить некоторые скалярные произведения между векторами, помеченными строкой. Моя идея состояла в том, чтобы объявить что-то вроде...
585 просмотров
schedule
17.11.2023
Почему мои функции fortran не экспортируются при использовании атрибута BIND(C, NAME=name)
Я привык использовать следующий синтаксис
subroutine CalcA(A,N)
!DEC$ ATTRIBUTES DLLEXPORT :: CALCA
!DEC$ ATTRIBUTES ALIAS:'CalcA' :: CalcA
IMPLICIT NONE
...
end subroutine CalcA
который создает...
1697 просмотров
schedule
30.10.2023
Преобразование реальной переменной 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 просмотров
schedule
28.01.2024
Доступ к массивам 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 просмотров
schedule
02.10.2022
Изменение массива 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 просмотров
schedule
03.04.2022
Передайте нулевой указатель на привязку 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 просмотров
schedule
22.04.2023
Как объявить указатель-указатель с помощью 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 просмотров
schedule
02.07.2023