Fortran - Fonctions de réduction

Le tableau suivant décrit les fonctions de réduction:

Fonction La description
tout (masque, atténuation) Il renvoie une valeur logique qui indique si toutes les relations dans le masque sont. Vraies., Avec uniquement la dimension souhaitée si le deuxième argument est donné.
any (masque, dim) Il renvoie une valeur logique qui indique si une relation dans mask est .vrai., Avec uniquement la dimension souhaitée si le deuxième argument est donné.
count (masque, dim) Il renvoie une valeur numérique qui est le nombre de relations dans le masque qui sont .vraies., Avec uniquement la dimension souhaitée si le deuxième argument est donné.
maxval (tableau, dim, masque) Il renvoie la plus grande valeur du tableau, de celles qui obéissent à la relation dans le troisième masque d'argument, si celle-ci est donnée, avec uniquement la dimension souhaitée si le deuxième argument dim est donné.
minval (tableau, dim, masque) Il renvoie la plus petite valeur du tableau, de celles qui obéissent à la relation dans le troisième masque d'argument, si celle-ci est donnée, ainsi que seulement la dimension souhaitée si le deuxième argument DIM est donné.
produit (matrice, dim, masque) Il renvoie le produit de tous les éléments du tableau, de ceux qui obéissent à la relation dans le troisième argument masque, si celui-ci est donné, avec uniquement la dimension souhaitée si le deuxième argument dim est donné.
somme (tableau, dim, masque) Il renvoie la somme de tous les éléments du tableau, de ceux qui obéissent à la relation dans le troisième masque d'argument, si celui-ci est donné, avec uniquement la dimension souhaitée si le deuxième argument dim est donné.

Example

L'exemple suivant illustre le concept:

program arrayReduction

   real, dimension(3,2) :: a 
   a = reshape( (/5,9,6,10,8,12/), (/3,2/) ) 
   
   Print *, all(a>5)
   Print *, any(a>5)
   Print *, count(a>5)
   Print *, all(a>=5 .and. a<10)
  
end program arrayReduction

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant:

F
T
5
F

Example

L'exemple suivant illustre le concept:

program arrayReduction
implicit none

   real, dimension(1:6) :: a = (/ 21.0, 12.0,33.0, 24.0, 15.0, 16.0 /)
   Print *, maxval(a)
   Print *, minval(a)
   Print *, sum(a)
   Print *, product(a)
   
end program arrayReduction

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant:

33.0000000    
12.0000000    
121.000000    
47900160.0