Вопросы по теме 'fortran2003'

изменение членов указателя аргумента подпрограммы с намерением (в)
Я пишу библиотеку разреженных матриц на Фортране для развлечения, но столкнулся с небольшой загвоздкой. У меня есть подпрограмма для умножения матриц с интерфейсом subroutine matvec(A,x,y) class(sparse_matrix), intent(in) :: A...
88 просмотров
schedule 20.02.2022

Назначение производного типа Fortran
Скажем, у меня есть производный тип от Фортрана type :: atype integer :: n integer :: a(10) integer, allocatable :: b(:) end type и у меня есть два экземпляра этого типа type(atype) :: t1, t2 что именно происходит, когда...
3995 просмотров
schedule 07.03.2022

Хороший дизайн ООП, чтобы избежать копирования/вставки в Fortran
Учитывая приведенный ниже минимальный рабочий пример, я хотел бы изменить его, чтобы избежать копирования/вставки вызовов call func_some_calc1(par) call func_some_calc2(par) как в main_func_problem1 , так и в main_func_problem2 . В идеале...
341 просмотров
schedule 01.04.2022

Как получить доступ к (динамически выделенным) массивам Fortran в C
Мой главный вопрос заключается в том, почему массивы делают такие странные вещи и есть ли вообще способ сделать следующее «чистым» способом. В настоящее время у меня есть программа C foo.c , взаимодействующая с программой Fortran bar.f90 через...
3384 просмотров

Как я могу иметь указатель процедуры Fortran в качестве компонента производного типа, который указывает на процедуру, связанную с типом, в расширении этого типа?
Я проверил подобные вопросы и соответствующие учебники, но не могу найти решение этой проблемы. NB: здесь используется современный Fortran. Итак, я хочу иметь базовый тип, например. base , который содержит процедуру с привязкой к типу,...
288 просмотров

Проверка нулевого аргумента в Fortran 2003
Я объявил рекурсивный тип: type treeNode private class(treeNode), pointer :: left => null() class(treeNode), pointer :: right => null() contains procedure, non_overridable :: IsNull ! Returns true if link is null...
2123 просмотров
schedule 26.07.2022

Общие процедуры в fortran 2003
Я знаю, что у fortran есть концепция общей процедуры, позволяющей пользователям определять несколько конкретных процедур и собирать их интерфейсы в блоке интерфейса. Однако мне неясно, можно ли удалить дублирование кода, имея только одну реализацию...
1453 просмотров
schedule 28.01.2023

Как назначается c_ptr в Фортране?
Учитывая производный тип Фортрана с полем, которое является c_ptr (из iso_c_binding) и двумя переменными A и B указанного типа, как определяется назначение A = B? Если бы указатели были указателями Фортрана, они фактически разыменовывались бы во...
668 просмотров

Ошибка: если выражение селектора в SELECT TYPE не является именованной переменной, должно появиться ассоциированное имя=>
Я пытаюсь использовать тип в другом типе. Однако я просто не могу его скомпилировать. Мне это странно: в основной программе работает выбор типа, а в подпрограмме тип не работает. module ModBuffer implicit none private type, abstract,...
694 просмотров
schedule 05.06.2023

Попытка прочитать неправильное значение в переменную изменит ее значение?
Если присутствует ключевое слово iostat , программа не останавливается при возникновении ошибки ввода-вывода. Затем, если я попытаюсь считать недопустимое значение в скалярную переменную, i скажем, останется ли эта переменная неизменной? Кажется,...
47 просмотров
schedule 01.07.2023

Есть ли альтернатива GETCWD() в Fortran 2003-2008?
Расширение GNU для компилятора GNU Fortran предоставляет подпрограмму GETCWD() , которая получает текущий рабочий каталог. Однако мой код также должен быть переносимым на компиляторы ifort и nagfor , и я использую функции F2003. Итак, есть ли...
1725 просмотров
schedule 30.05.2023

Как передать дескриптор коммуникатора MPI из Fortran в C, используя iso_c_binding
Я пытаюсь связать параллельную программу MPI Fortran с параллельной библиотекой C, которая также использует MPI. Архитектура программного обеспечения ориентирована на Fortran, поэтому я стараюсь максимально использовать Fortran. Поэтому мне нужно...
1159 просмотров

Не один индексированный массив от ассоциированного
Я хотел бы иметь ассоциацию, которая указывает на массив (или его части) и не индексируется. Следующая программа иллюстрирует проблему: program test_associate implicit none(type, external) integer, parameter :: N = 10 integer :: i, A(0...
54 просмотров
schedule 15.08.2023

параметризованная процедура в производных типах
Я пытаюсь написать небольшой модуль, который создает производный тип vector , однако при компиляции с помощью gcc10.1 я получаю сообщение об ошибке overload1.f95:10:14: 10 | procedure :: ciao | 1 Error: Argument â of â...
32 просмотров
schedule 16.11.2023

Как проектировать значимые объекты и их отношения в простых физических симуляциях
Я пытаюсь разработать несколько простых живых симуляций, используя парадигму ООП. Проблема, с которой я столкнулся, заключается в том, что из-за отсутствия у меня опыта в этом подходе я не знаю, как естественным образом определить «правильные»...
85 просмотров
schedule 06.12.2023