在的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