2017-04-16 20 views
1

有沒有辦法在Fortran中將數組(矢量或矩陣,甚至標量)設置爲零? 2003/2008似乎是採取的Fortran到一個非常現代化的水平,我有其中X是行數懷疑,如果他們都包含一個簡單的方法來設置數組值爲零,而不必做在Fortran中是否有一個將數組初始化爲零的內部函數?

do i = 1,X 

     do j = 1,Y 

      A(i,j) = 0 

     enddo 

enddo 

Y是2-d矩陣中的列數。這可以概括爲儘可能多的維度,但原則是一樣的。

在Matlab中這是很容易與零函數來完成,即

A = zeros(X,Y) 

現代Fortran語言似乎包含了很多東西的人的喜歡約Matlab和其他語言爲它的劇目,所以我只是好奇他們是否有這個簡單而基本的任務的內在。

或者,也許在現代的Fortran中,通過初始化數組不需要清除內存中以前存儲的任何值?

我想一個較短的方式是隻去

real, dimension(X,Y)  :: A 

A = A*0.0 ! Set all elements to zero by multiplying matrix by scalar value 0 

但是關於固有的問題仍然有效。

+4

我想'A = 0.0'會做到這一點。 – rici

+0

@rici,你是對的。對於我一直在做的事情來說,這是一個非常簡單的解決方案。 –

+2

您找到了正確的答案,但請注意您的「乘以零」方法不正確 - 在表達式中使用未初始化的變量永遠不會正確 –

回答

1

原來答案很簡單。

A = 0.0 

或只是

A = 0 

將設置你的陣列,以0.0000中的所有元素...

(從問題中移動。)

相關問題