web-dev-qa-db-fra.com

Comment vérifier si le tableau Fortran contient de la valeur?

J'ai vu cela demander d'autres langues, mais après avoir découvert à quel point Fortran peut gérer les tableaux, j'ai pensé qu'il pourrait y avoir un moyen facile de le faire sans boucles.

Actuellement, je recherche sur un tableau 3D en regardant les "voisins les plus proches" pour voir s'ils contiennent la lettre "n", et chaque fois qu'il trouve cette valeur, je veux qu'il effectue une affectation de clusterLabel (ce qui n'est pas pertinent pour cette question )

Je voulais utiliser if(lastNeighArray.eq."n") then...<rest of code> mais pour des raisons évidentes, il n'aime pas vérifier un tableau par rapport à une valeur. Cela ne me plait pas non plus d'utiliser lastNeighArray(:), même si j'aimerais qu'il vérifie chacun des éléments un par un. where(lastNeighArray.eq."n") ne fonctionne pas car j'ai une instruction case dans la boucle where et j'obtiens l'erreur WHERE statements and constructs must not be nested.

Je suis donc un peu coincé. Ce que je veux vraiment, c'est quelque chose comme when(lastNeighArray.eq."n") mais qui n'existe pas.

J'ai également examiné any et forall mais ils ne semblent pas être le bon choix.

33
Pureferret

N'IMPORTE QUI devrait être le bon choix

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

il y a aussi TOUS si vous vouliez que le tableau entier contienne cette valeur.

45
Vladimir F