QSORT(3F)

名前
qsort, qsort64 - クイックソート

形式
integer*4 len, isize
integer*8 len8, isize8
external compar
integer*2 compar

subroutine qsort (array, len, isize, compar)
subroutine qsort64(array,len8, isize8, compar)

機能説明
1 次元配列 array には、ソート対象の要素を含みます。 len (または len8) は配列内の要素の数です。 isize (または isize8) は要素のサイズで、通常は次のとおりです。

4(qsort64 では 4_8) : integer および real の場合
8(qsort64 では 8_8) : double precision または complex の場合
16(qsort64 では 16_8) : double complex の場合
文字要素オブジェクトの長さ (バイト単位) : character 配列の場合

compar は、ユーザーが指定したソート順を決定する INTEGER*2 型関数名です。 この関数は、 array の要素になる 2 つの引数を用いて呼び出されます。 戻り値は次のようにします。

引数 1 が引数 2 の前にある場合は、負の値。
引数 1 と引数 2 の順序が同じである場合は、ゼロ。
引数 1 が引数 2 の後ろにある場合は、正の値。

リターン時、 array の要素はソートされます。

64 ビット環境において、配列のサイズ (または文字配列要素) が 2 ギガバイト以上で、 INTEGER*8 の値でのみ指定できるような場合は、 qsort64 を使用してください。

注意事項
qsort64 を使用する場合、必ず 要素サイズ isize8 と 配列の長さ len8 を INTEGER*8 のデータとして指定してください。 INTEGER*8 の定数は、以下の例 8_8 のように、 Fortran 90 の構文を使用して指定してください。

integer*8 LENARRAY, ARRAY(large_number)
integer*2 ORDER
external ORDER
...
call qsort64(ARRAY, LENARRAY, 8_8, ORDER)

ファイル
libfui.a

関連項目
qsort(3c)