数组中派生类型变量的 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
,是否有比遍历整个数组更直接的方法来获取数组中具有最大 count
的 tpo_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
组件本身是一个数组时,这不适用。
我在 Fortran 90 中有以下派生类型数组:
type tpo_line
integer :: price = -1
integer :: count = -1
end type
type(tpo_line),dimension(10000) :: myarray
给定一个已填充的 myarray
,是否有比遍历整个数组更直接的方法来获取数组中具有最大 count
的 tpo_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
组件本身是一个数组时,这不适用。