in Fortran мы закодировали следующим образом:
!vectors w,q are of the same size
...
w = ... !a vector of integers [0,...,n)
if (allocated(t)) deallocate(t);
allocate(t(count(w/=0)))
t = pack(q, w/=0)
m = count(t>0)
if (allocated(b)) deallocate(b)
allocate(b(m))
b = pack(t,t>0)
для перевода кода в Python :
t = q[w!=0]
b = t[t>0]
не уверенреализация на Фортране, которую мы сделали, верна.Обратите внимание, что это часть очень большой программы, и мы получаем некоторые раздражающие ошибки во время выполнения, иногда даже нет сообщений, но происходит сбой ...