Fortran還原功能


下表描述了還原功能:

函式 描述
all(mask, dim) 它返回一個邏輯值,指明掩碼的所有關係是 .true。以及只有所需的維度,如果第二個引數是給定的。
any(mask, dim) 它返回一個邏輯值,指明掩碼的任何關係是.true。以及只有所需的維度,如果第二個引數是給定的。
count(mask, dim) 它返回一個數位值,該值為掩碼為 .true 關係的數目。以及所需的維數,如果第二個引數給出。
maxval(array, dim, mask) 它返回 的陣列的陣列中最大的值,那些遵守於第三個引數掩碼的關係,如果一個給定的,以及具有只有所需的維數,如果第二個引數 dim給出的。
minval(array, dim, mask) 它返回陣列的陣列中那些遵守於第三個引數掩碼的關係的最小值,如果一個給定的,以及具有僅在第二個引數 dim 給出所期望的維度。
product(array, dim, mask) 它返回該產品遵守於第三個引數掩碼的關係,如果一個給定的,以及具有只有所需的維數,如果第二個引數 dim 給出的所有陣列的陣列中的元素,。
sum (array, dim, mask) 它返回 遵守於第三個引數掩碼關係的總和,如果給定以及具有只有所需的維數,如果第二個引數 dim給出的所有陣列的陣列中的元素。

例子

下面的例子演示了這一概念:

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

當上述程式碼被編譯和執行時,它產生了以下結果:

F
T
5
F

範例

下面的例子演示了這一概念:

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 

當上述程式碼被編譯和執行時,它產生了以下結果:

33.0000000    
12.0000000    
121.000000    
47900160.0