如何检查Fortran数组是否包含值?

时间:2011-12-01 11:25:46

标签: arrays if-statement fortran where fortran90

我已经看到这要求其他语言,但刚刚发现Fortran可以处理数组的方式很好,我想可能有一种简单的方法可以在没有循环的情况下执行此操作。

目前我在搜索“最近邻居”的3D数组,看它们是否包含字母'n',每当找到这个值时,我希望它执行一些clusterLabel赋值(这是不相关的)对于这个问题)

我想使用if(lastNeighArray.eq."n") then...<rest of code> 但由于显而易见的原因,它不喜欢根据值检查数组。它也不像我使用lastNeighArray(:),即使我希望它一次检查一个元素。 where(lastNeighArray.eq."n")不起作用,因为我在where循环中有一个case语句,我收到错误WHERE statements and constructs must not be nested.

所以我有点卡住了。我真正想要的是类似when(lastNeighArray.eq."n")但不存在的东西。

我也看过anyforall,但它们似乎不是正确的选择。

1 个答案:

答案 0 :(得分:44)

任何实际上都应该是正确的选择

if ( ANY( lastNeighArray=="n" ) ) then

如果您希望整个数组包含该值,那么还有ALL。