Вопросы по теме '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 просмотров
schedule
05.05.2022
Как я могу иметь указатель процедуры Fortran в качестве компонента производного типа, который указывает на процедуру, связанную с типом, в расширении этого типа?
Я проверил подобные вопросы и соответствующие учебники, но не могу найти решение этой проблемы.
NB: здесь используется современный Fortran.
Итак, я хочу иметь базовый тип, например. base , который содержит процедуру с привязкой к типу,...
288 просмотров
schedule
06.05.2022
Проверка нулевого аргумента в 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 просмотров
schedule
12.07.2023
Ошибка: если выражение селектора в 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 просмотров
schedule
03.06.2023
Не один индексированный массив от ассоциированного
Я хотел бы иметь ассоциацию, которая указывает на массив (или его части) и не индексируется. Следующая программа иллюстрирует проблему:
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