可以索引到受转置函数影响的数组内容吗?



在 fortran 中,是否可以索引到受内部函数约束的数组元素?我特别指的是transpose职能。在下面的代码中,我正在生成并初始化一个名为 A 的数组,并尝试索引为转置数组中的值

program test 
integer, dimension(5,3) :: A
integer :: i,j
A = reshape((/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15/), shape(A))
print *, transpose(A)(1,1)
end program test

但是我收到如下语法错误:

**D:\TEMP\FortranTest>gfortran -o Test Transposecommand.f90 Transposecommand.f90:11:22:

打印 *, 转置(A((1,1( 1 错误:(1(** 处的 PRINT 语句中出现语法错误

有没有办法完成此操作,而不必声明一个单独的变量,然后将转置的数组分配给它?如果可能的话,我想避免声明新变量...

不,Fortran 不支持这种索引到函数结果中。 你必须设计一个你自己的优雅解决方案(又名一个笨蛋(。 我自己的会考虑到

transpose(a)(i,j) == a(j,i)

相关内容

最新更新