数组中派生类型变量的 Maxval

Maxval for derived type's variable in array

我在 Fortran 90 中有以下派生类型数组:

type tpo_line
    integer             :: price    = -1
    integer             :: count    = -1
end type

type(tpo_line),dimension(10000) :: myarray

给定一个已填充的 myarray,是否有比遍历整个数组更直接的方法来获取数组中具有最大 counttpo_line 项? (我已经看到,对于简单的数组,您可以使用 maxval

即使右边的部分是标量,数据引用也可以是数组。正如你可以有 MAXVAL(named_array) 你可以有 MAXVAL(array_ref):

print*, MAXVAL(myarray(:)%count)  ! (:) added for clarity but not needed

因为组件 count 是标量,所以我们允许它左侧的单个部分是一个数组,然后引用本身是一个(等级 1)数组,MAXVAL 开心工作

类似地,MAXLOC和其他数组查询函数会将myarray%count视为合适的数组。

count 组件本身是一个数组时,这不适用。