qsort_(array, len, isize, compar)

目的

qsort_ サブルーチンは、 1 次元の配列 ARRAY に対して並列クイック・ソートを実行します。 この ARRAY の長さ LEN は配列内のエレメント数であり、 各エレメントの大きさは ISIZE です。また、このサブルーチンは、 ユーザー定義のソート順序関数 COMPAR を実行して、配列のエレメントをソートします。

クラス

サブルーチン

引き数の型と属性

array
ソートされる配列。 型はどんな型でもかまいません。

len
配列でのエレメントの数。引き数の型は、INTEGER(4) です。

isize
配列の単一エレメントのサイズ。引き数の型は、INTEGER(4) です。

compar
配列のソートに使用されるユーザー定義の比較関数。

INTEGER(4) FUNCTION COMPAR_UP(C1, C2)
INTEGER(4) C1, C2
IF (C1.LT.C2) COMPAR_UP = -1
IF (C1.EQ.C2) COMPAR_UP =  0
IF (C1.GT.C2) COMPAR_UP =  1
RETURN
END
 
SUBROUTINE FOO()
  INTEGER(4) COMPAR_UP
  EXTERNAL COMPAR_UP
  INTEGER(4) ARRAY(8), LEN, ISIZE
  DATA ARRAY/0, 3, 1, 2, 9, 5, 7, 4/
  LEN = 6
  ISIZE = 4
  CALL qsort_(ARRAY(3:8), LEN, ISIZE, COMPAR_UP)! sorting ARRAY(3:8)
  PRINT *, ARRAY                                ! result value is [0, 3, 1, 2, 4, 5, 7, 9]
  RETURN
END
IBM Copyright 2003