Arrays 在Fortran 90中沿整个数组求和
我有一个大小为[3035007000]的数组,并且希望沿着第一维度进行累加,因此剩下一个[35007000]数组。我尝试了以下方法:Arrays 在Fortran 90中沿整个数组求和,arrays,fortran,Arrays,Fortran,我有一个大小为[3035007000]的数组,并且希望沿着第一维度进行累加,因此剩下一个[35007000]数组。我尝试了以下方法: Implicit None REAL,INTENT(IN) :: datastored(30,3500,7000),emptyarray(3500,7000) REAL,INTENT(OUT) :: summed(3500,7000) INTEGER :: i, j, r DO i = 1,3500 DO j = 1,7000 DO r = 1,3
Implicit None
REAL,INTENT(IN) :: datastored(30,3500,7000),emptyarray(3500,7000)
REAL,INTENT(OUT) :: summed(3500,7000)
INTEGER :: i, j, r
DO i = 1,3500
DO j = 1,7000
DO r = 1,30
summed(i,j) = emptyarray(i,j) + datastored(r,i,j)
问题在于,出于某种原因,它不会沿r维度求和,求和的变量只会是数据存储中的最后一个“r”值,基本上是镜像数据存储(30,i,j)
有什么想法吗
summed = sum(datastored, DIM = 1)
检查Fortran标准第13.7.161项,该项定义了内部和。示例案例(iii)正是您所要求的
检查Fortran标准第13.7.161项,该项定义了内部和。示例案例(iii)正是您所要求的。您既没有定义emptyarray
也没有定义datastored
:请提供一个真实的示例(请参阅)。还要注意的是,summated
中的值不依赖于r
迭代中的值:请解释您认为代码在做什么。另外,为什么不考虑使用<代码>和>代码>内在合适的?您不定义<代码>空数组> /COD>或<代码>数据> <代码>:请提供一个真实的例子(参见)。还要注意的是,summated
中的值不依赖于r
迭代中的值:请解释您认为代码在做什么。此外,你为什么不考虑使用<代码>和> /代码>内在合适的?