我有一些看起来像这样的代码:
DO I=0,500
arg1((I*54+1):(I*54+54)) = premultz*sinphi(I+1)
ENDDO
简而言之,我有一个维度为 54 的数组 premultz。我有一个维度为 501 的数组 sinphi。我想将 sinphi 的第一个值乘以 premultz 的所有条目,并将其存储在 arg1 的前 54 个条目中,然后sinphi 的第二个值乘以 premultz 的所有条目并将其存储在 arg1 的 second54 个条目中,依此类推。
这些是扁平矩阵。为了速度,我将它们展平,因为这个项目的主要目标之一是非常快的代码。
我的问题是:在 Fortran90 中编码这种计算是否有更有效的方法?我知道 Fortran 有很多漂亮的数组操作可以完成,但我并不完全了解。
提前致谢。