Fortran 中是否有将数组初始化为零的内部函数?
Is there an intrinsic function for initializing arrays to zero in Fortran?
有没有办法在 Fortran 中将数组(向量、矩阵,甚至标量)设置为零? 2003/2008 似乎将 Fortran 带到了一个非常现代的水平,我想知道他们是否包含了一种简单的方法来将数组值设置为零而无需执行
do i = 1,X
do j = 1,Y
A(i,j) = 0
enddo
enddo
其中 X 是行数,Y 是二维矩阵中的列数。这个可以泛化到任意维度,但是原理是一样的
在 Matlab 中,这很容易用 zeros 函数完成,即
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
但是关于内在函数的问题仍然存在。
原来答案很简单
A = 0.0
或者只是
A = 0
会将数组中的所有元素设置为 0.0000...
(从问题中移出。)
有没有办法在 Fortran 中将数组(向量、矩阵,甚至标量)设置为零? 2003/2008 似乎将 Fortran 带到了一个非常现代的水平,我想知道他们是否包含了一种简单的方法来将数组值设置为零而无需执行
do i = 1,X
do j = 1,Y
A(i,j) = 0
enddo
enddo
其中 X 是行数,Y 是二维矩阵中的列数。这个可以泛化到任意维度,但是原理是一样的
在 Matlab 中,这很容易用 zeros 函数完成,即
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
但是关于内在函数的问题仍然存在。
原来答案很简单
A = 0.0
或者只是
A = 0
会将数组中的所有元素设置为 0.0000...
(从问题中移出。)