首页 > 解决方案 > 多维数组上的 Fortran 操作 - 求和示例

问题描述

我试图弄清楚如何对多维数组中的元素子集进行简单的代数运算,并将结果分配给另一个具有相同维度的数组。

program hello
IMPLICIT NONE
   REAL,DIMENSION(10,10,2,1) :: tmp1=2
   REAL,DIMENSION(10,10,2,1) :: tmp2=1
   INTEGER,DIMENSION(2) :: myind=(/1,2/)

此操作仅返回一个值

Print *, sum(tmp1(:,:,itree,:))

虽然这会返回正确的结果,但是我希望得到与第二次操作相同的结果,也许我正在以 R 的方式思考。

Print *, tmp1(:,:,1,:)+tmp1(:,:,2,:)
end program Hello

如何实现第二次操作的结果并将其分配给另一个多维数组?想象一下,我的索引很大,所以我无法在操作中输入每个术语。

标签: arraysfortran

解决方案


推荐阅读