MAXLOC |
書式 | MAXLOC(ARRAY[,MASK]) | ||||
機能 |
MAXLOCはMASKによって指定したARRAYの要素のうち、
最大の値をもっている最初の要素の位置を調べる。 (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
実行例 |