我有一个派生类型数组,派生类型也可以是数组。有没有办法在不诉诸do循环的情况下对元素求和?
program main
type t_couple
real :: income(2) = 5
end type t_couple
type(t_couple) :: couple(2)
print *, " sum 1 ", sum(couple(1)%income) ! works fine
print *, " sum 2 ", sum(couple%income) ! doesn't work
end program main
%F90-E-ERROR,如果包含结构是数组,则组件不能是数组。
当然我们都多次看过这个错误信息并且可以编写一个do循环来解决这个问题,但我想知道是否有更简单,更简洁的方法?
答案 0 :(得分:1)
您可以使用隐式循环:
print *, " sum 2 ", sum( [( couple(i)%income, i=1,size(couple))] )