Cha*_*own 4 arrays fortran memory-management fortran2003 fortran2008
有没有办法在 Fortran 中将数组(向量、矩阵,甚至标量)设置为零?2003/2008 似乎将 Fortran 提升到了一个非常现代的水平,我想知道它们是否包含一种无需执行即可将数组值设置为零的简单方法
do i = 1,X
do j = 1,Y
A(i,j) = 0
enddo
enddo
Run Code Online (Sandbox Code Playgroud)
其中 X 是行数,Y 是二维矩阵中的列数。这可以推广到任意多个维度,但原理是相同的。
在 Matlab 中,这很容易用 zeros 函数完成,即,
A = zeros(X,Y)
Run Code Online (Sandbox Code Playgroud)
现代 Fortran 似乎将很多人们喜欢的关于 Matlab 和其他语言的东西融入到它的曲目中,所以我很好奇他们是否对这个简单而基本的任务有内在的东西。
或者,也许在现代 Fortran 中,没有必要通过初始化数组来清除内存中以前存储的任何值?
我想更短的方法就是去
real, dimension(X,Y) :: A
A = A*0.0 ! Set all elements to zero by multiplying matrix by scalar value 0
Run Code Online (Sandbox Code Playgroud)
但是关于内在的问题仍然存在。
Vla*_*r F 11
事实证明,答案很简单。
A = 0.0
Run Code Online (Sandbox Code Playgroud)
要不就
A = 0
Run Code Online (Sandbox Code Playgroud)
将数组中的所有元素设置为 0.0000 ...
(从问题移开。)