在的Fortran我们编码为以下几点: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]
不知道我们做的Fortran语言的实现是正确的。请注意,这是一个非常大的计划的一部分,我们得到了一些恼人的运行时错误,有时候就算没有消息,但崩溃......
您使用的编译器是什么?尝试启用尽可能多的诊断编译器选项。 – 2012-01-12 04:52:28
@ M.S.B。它是'GFortran'。 – Developer 2012-01-12 04:55:16
尝试:-02 -fimplicit-没有-Wall -Wline截断-Wcharacter截断-Wsurprising -Waliasing -Wimplicit接口-Wunused参数-fwhole文件-fcheck =所有-std = F2008 -pedantic -fbacktrace – 2012-01-12 05:57:53