Fortran 派生类型的Maxval';数组中的s变量
我在Fortran 90中有以下派生类型的数组: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
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