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 次元配列には、ソート対象の要素が含まれます。len (または len8) は配列内にある要素の数です。isize (または isize8) は要素のサイズで、通常は次のとおりです。
4: integer と real の場合 (qsort64 では 4_8)
8: double precision または complex の場合 (qsort64 では 8_8)
16: double complex の場合 (qsort64 では 16_8)
文字要素オブジェクトの長さ (バイト単位): character 配列の場合。
compar は、ユーザーが指定する INTEGER*2 関数の名前であり、これによりソート順が決定されます。この関数は、配列の要素になる 2 つの引数を使用して呼び出されます。この関数は、次のように返す必要があります。
引数 1 が引数 2 の前にある場合は、負の値。
引数 1 と引数 2 が同等である場合は、ゼロ。
引数 1 が引数 2 の後ろにある場合は、正の値。
返すときに、配列の要素がソートされます。
配列のサイズ (または文字配列要素) が 2G バイトよりも大きく、INTEGER*8 値でしか指定できない 64 ビット環境では、qsort64 を使用してください。
qsort64 を使用している場合は、必ず、要素のサイズ isize8、および配列の長さ len8 を INTEGER*8 データとして指定してください。INTEGER*8 の定数は、次のように Fortran 90 の構文 (8_8 など) を使用して指定します。
integer*8 LENARRAY, ARRAY(large_number) integer*2 ORDER external ORDER ... call qsort64(ARRAY, LENARRAY, 8_8, ORDER)
libfui.a
qsort(3C)