SUBROUTINE ISORTI_SLOAN(NL,LIST,NK,KEY) ************************************************************************ * * PURPOSE: * -------- * * Order a list of integers in ascending sequence of their keys * using insertion sort * * INPUT: * ------ * * NL - Length of LIST * LIST - A list of integers * NK - Length of KEY (NK must be ge NL) * KEY - A list of integer keys * * OUTPUT: * ------- * * NL - Unchanged * LIST - A list of integers sorted in ascending sequence of KEY * NK - Unchanged * KEY - Unchanged * * NOTE: Efficient for short lists only (NL lt 20) * ----- * * PROGRAMMER: Scott Sloan * ----------- * * LAST MODIFIED: 1 March 1991 Scott Sloan * -------------- * * COPYRIGHT 1989: Scott Sloan * --------------- Department of Civil Engineering * University of Newcastle * NSW 2308 * ************************************************************************ INTEGER I,J,T INTEGER NL,NK INTEGER VALUE INTEGER KEY(NK) INTEGER LIST(NL) * DO 20 I=2,NL T=LIST(I) VALUE=KEY(T) DO 10 J=I-1,1,-1 IF(VALUE.GE.KEY(LIST(J)))THEN LIST(J+1)=T GOTO 20 ENDIF LIST(J+1)=LIST(J) 10 CONTINUE LIST(1)=T 20 CONTINUE END