C THIS SUBROUTINE IS THE MAIN SUBROUTINE OF A GROUP WHICH WILL SORT C A SERIES OF NUMBERS INTO ASCENDING ORDER. THIS SUBROUTINE CALLS C PART AND PERMUT TO ACCOMPLISH THIS. C SUBROUTINE SORT (A,N) DIMENSION A(N) IF (N.LE.1) RETURN IF (N.GT.20) GO TO 10 IU=N CALL PERMUT (A,N,1,IU) RETURN 10 AMAX=A(1) AMIN=A(1) DO 20 I=2,N IF (A(I).LT.AMIN) AMIN=A(I) IF (A(I).GT.AMAX) AMAX=A(I) 20 CONTINUE IF (AMIN.EQ.AMAX) RETURN Q=SQRT(FLOAT(N)) D=(AMAX-AMIN)/Q K=Q CUT=AMIN+D IU=0 30 CALL PART (A,N,CUT,IL,IU) IF (IL.LT.IU) CALL PERMUT (A,N,IL,IU) IF (IU.GE.(N-1)) RETURN CUT=CUT+D IF ((N-IU).GT.K) GO TO 30 IL=IU+1 IU=N CALL PERMUT (A,N,IL,IU) RETURN END