C*********************************************************************** C MAINLINE PROGRAM TO TEST SUBROUTINE ASORT C*********************************************************************** PROGRAM TEST DIMENSION ARRAY(200) DO 5 I=1,200 5 ARRAY(I)=0.0 READ (5, 1) (ARRAY(I),I=1,24) 1 FORMAT(12F6.2) IBEG=1 NEND=24 IAORD=0 CALL ASORT(IBEG,NEND,IAORD,ARRAY) WRITE (6, 2) (ARRAY(I),I=1,24) 2 FORMAT( 40(/) 24HARRAY IN ASCENDING ORDER// (F10.2) ) END C*********************************************************************** C * C G O D D A R D C O M P U T E R S C I E N C E I N S T I T U T E * C * C (1) SUBROUTINE NAME, ORDER A FLOATING POINT ARRAY * C (2) CALLING NAME, ASORT * C (3) STATUS/CHANGE LEVEL, PGM.=GCSL024, PCR.= 00-06-65 * C (4) PROGRAMMED BY, JEANNE L RAMSEY * C (5) ADAPTED TO HP FORMAT ROLAND JAHN 04-70 * C * C SUPPORTED IN PART BY GRANT NO. FR00197 BY THE * C SPECIAL RESEARCH RESOURCES BRANCH, NIH-USPHS. * C * C*********************************************************************** SUBROUTINE ASORT(IBEG,NEND,IAORD,ARRAY) DIMENSION ARRAY(1) IF (IAORD) 1,1,2 1 K=NEND-1 DO 10 I=IBEG,K M=NEND-1 DO 10 J=IBEG,M IF (ARRAY(J)-ARRAY(J+1)) 10,10,5 5 ANEW = ARRAY(J) ARRAY(J) = ARRAY(J+1) ARRAY(J+1)=ANEW 10 CONTINUE RETURN 2 K=NEND-1 DO 30 I=IBEG,K M=NEND-I DO 30 J=IBEG,M IF (ARRAY(J+1)-ARRAY(J)) 30,30,15 15 ANEW=ARRAY(J+1) ARRAY(J+1)=ARRAY(J) ARRAY(J)=ANEW 30 CONTINUE RETURN END 12345 28164 28130 13579 18763 11311 21806 18132 21212 20101 22222 11122 21312 31211 12354 24531 14449 13441 13372 29991 21930 30313 11330 20000