Fortran 派生类型的Maxval';数组中的s变量

Fortran 派生类型的Maxval';数组中的s变量,fortran,fortran90,Fortran,Fortran90,我在Fortran 90中有以下派生类型的数组: type tpo_line integer :: price = -1 integer :: count = -1 end type type(tpo_line),dimension(10000) :: myarray 给定一个填充的myarray,有没有比遍历整个数组更直接的方法来获取数组中tpo\u行项,该项的计数最大?(我已经看到,对于简单数组,可以使用maxv

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

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

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

给定一个填充的
myarray
,有没有比遍历整个数组更直接的方法来获取数组中
tpo\u行
项,该项的
计数最大?(我已经看到,对于简单数组,可以使用
maxval

即使右侧的部分是标量,数据引用也可以是数组。您可以使用
MAXVAL(命名数组)
您可以使用
MAXVAL(数组引用)

因为组件
count
是标量的,我们允许它左边的单个部分是一个数组,然后引用本身是一个(秩1)数组,在这个数组上
MAXVAL
可以很好地工作

同样,<代码> Max LoC 和其他数组查询函数将考虑<代码> MyReals%计数>代码>作为一个合适的数组。


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

您最近问了几个问题,明确提到了“Fortran 90”。与Fortran 95、2003、2008、2018相比,您的编译器或上司/主管不太可能关心(非常旧的)语言版本,因此,除非您真的需要限制自己使用F90,请将其称为“Fortran”。不要将(Fortran 90)放在标题的括号中,我们有相应的标记。或者你可以把它作为标题的一部分,比如“在Fortran数组中”。谢谢你的评论。我将遵循这些SO准则和建议,不要拘泥于Fortran 90。
print*, MAXVAL(myarray(:)%count)  ! (:) added for clarity but not needed