MINLOC |
書式 | MINLOC(ARRAY[,MASK]) | ||||
機能 |
MINLOCは同様に、最小の値を調べる。 (1)MAXLOCでMASKを省略した場合、結果は、ARRAYのすべての要素の 最大値に等しい要素の各次元の添字値を要素とする1次元配列とする。 返されたi番目の添字は、1からeiまでの範囲の値とする。 ここでeiは、ARRAYのi番目の次元の大きさとする。 2個以上の要素が最大値になるとき、添字が返される要素は配列要素順序で 最初の要素とする。 ARRAYの大きさが0であるとき、結果の値はコンパイラ依存とする。 (2)MAXLOCでMASKを指定した場合、結果は、MASK中の真である要素に対応する ARRAYのすべての要素の最大値に等しい要素の各次元の添字値を要素とする 1次元配列とする。 返されたi番目の添字は、1からeiの範囲の値とする。 ここでeiは、ARRAYのi番目の次元の大きさとする。 2個以上の要素が最大値になるとき、添字が返される要素は配列要素順序で 最初の要素とする。 要素がないとき(すなわち、ARRAYの大きさが0であるか、 またはMASKのすべての要素の値が偽であるとき)。 結果の値はコンパイラ依存とする。 (3)コンパイラが結果のある要素の値を基本整数型で表現することができないとき、 その要素は不定とする。 | ||||
引数 |
| ||||
戻り値 |
型、種別型パラメタは基本整数型である。 形状は、ARRAYの次元数に等しい大きさの1次元配列とする。 |
INTEGER,DIMENSION(4) :: vect INTEGER,DIMENSION(1) :: a,b,c LOGICAL,DIMENSION(4) :: mask vect=(/2, 3, 4, 8/) a=MAXLOC(vect) ! vect中の最大値8の位置4 b=MINLOC(vect) ! vect中の最小値2の位置1 mask=vect<6 ! vectの要素が6より小さいか? c=MAXLOC(vect,mask) ! vect中の6より小さい値の最大値4の位置3 WRITE(*,*) a,b,c
実行例 |