目的
マスクの値が真になるすべてのエレメントの最小値を持つ配列の最初のエレメント を、次元に沿って見つけます。 MINLOC は、正の整数を用いているエレメントの位置を参照できる指標を戻します。
クラス
変換関数
引き数の型と属性
+---------------------------------Fortran 95---------------------------------+
+-----------------------------End of Fortran 95------------------------------+
結果の値と属性
DIM が存在しない場合、結果はランク 1 の整数配列 で、ARRAY のランクに等しいサイズを持ちます。 DIM が存在する場合、結果はランク rank(ARRAY)-1 の整数配列で、 その形状は (s1, ..., sDIM-1, sDIM+1, ..., sn) となります。 この場合 n は ARRAY のランクを表しています。
最小値が存在しない場合 (おそらく、配列がゼロにサイズ決定されているか、または、 マスク配列がすべて .FALSE. の値を持っているか、 または、DIM 引き数がないのが原因) は、戻り値はサイズが ゼロで 1 次元のエンティティーです。 DIM が存在する場合、結果の形状は ARRAY の ランクによって決まります。
結果の値
結果は ARRAY の、マスクされた最小エレメントの位置の添え字を示します。 複数のエレメントがこの最小値に等しいと、 この関数は (配列エレメント順に) 最初の位置を検出します。 DIM が指定されると、結果は次元の各ベクトルに沿った 最小マスク・エレメントの位置を示します。
+---------------------------------Fortran 95---------------------------------+
DIM と MASK はどちらもオプションであるため、 引き数のさまざまな組み合わせが可能になります。 -qintlog オプションが 2 つの引き数を指定すると、2 番目の 引き数は次のうちの 1 つを参照します。
+-----------------------------End of Fortran 95------------------------------+
例
! A is the array | 4 9 8 -8 | ! | 2 1 -1 5 | ! | 9 4 -1 9 | ! | -7 5 7 -3 | ! Where is the smallest element of A? RES = MINLOC(A) ! The result is | 1 4 | because -8 is located at A(1,4). ! Where is the smallest element in each row of A that ! is not equal to -7? RES = MINLOC(A, DIM = 2, MASK = A .NE. -7) ! The result is | 4 3 3 4 | because these are the ! corresponding column locations of the smallest value ! in each row not equal ! to -7 (the values being ! -8,-1,-1,-3).
配列の定義された上限と下限に関係なく、MINLOC は下限の 指標を '1' として判別します。 MAXLOC および MINLOC 指標は両方とも正の整数を使用します。 実際の指標を見つける方法を次に示します。
INTEGER B(-100:100) ! Minloc views the bounds as (1:201) ! If the smallest element is located at index '-49' I = MINLOC(B) ! Will return the index '52' ! To return the exact index for the smallest element, insert: INDEX = LBOUND(B) - 1 + I ! Which is: INDEX = (-100) - 1 + 52 = (-49) PRINT*, B(INDEX)