У меня возник вопрос о правильном способе программирования пользовательских операторов на Фортране. Чтобы быть более конкретным, я приведу пример моей проблемы. Я работаю над созданием определяемого пользователем типа данных для сферических частиц под названием «Частица». Я хочу определить оператор, который берет существующий массив объектов Particle и добавляет к нему новый объект Particle. Мне было интересно, как я буду определять пользовательские операторы для выполнения такого действия.
В настоящее время у меня есть в определении типа для Particle следующие строки:
procedure, public:: addNewParticleTo
generic:: operator(.spawn.) => addNewParticleTo
После этого у меня есть подпрограмма, которая определяется следующим образом:
subroutine addNewParticleTo(a_LHS, a_RHS)
implicit none
class(Particle), dimension(:), allocatable, intent(in):: a_LHS
class(Particle), dimension(:), allocatable, intent(inout):: a_RHS
<rest of the code>
end subroutine addNewParticleTo
Я намереваюсь, чтобы оператор вызывался как:
particle .spawn. particleArray
Мне было интересно, правильный ли это способ сделать это. Любые предложения или советы по этому поводу будут очень полезны.
operator
требуетfunction
, а неsubroutine
. - person Kyle Kanos   schedule 18.11.2013subroutine
наfunction
, а затем используяNewparticleArray = particle .spawn. OldparticleArray
. - person Kyle Kanos   schedule 18.11.2013