1 2 SUBROUTINE SBYVAL(ARRIN1,ARRIN2,INX) 3 !*********************************************************************** 4 ! SBYVAL Module of the AMS/EPA Regulatory Model - AERMOD 5 ! 6 ! PURPOSE: Sort Array By Its 'Index Value' 7 ! 8 ! PROGRAMMER: Jeff Wang, Roger Brode 9 ! 10 ! DATE: March 2, 1992 11 ! 12 ! INPUTS: ARRIN1: 'Index Array', ARRIN2: 'Value Array' 13 ! INX: Number of Values to Sort 14 ! 15 ! OUTPUTS: Sorted Array 16 ! 17 ! CALLED FROM: (This Is A Utility Program) 18 !*********************************************************************** 19 ! 20 ! Variable Declarations 21 USE MAIN1 22 IMPLICIT NONE 23 CHARACTER MODNAM*12 24 25 SAVE 26 INTEGER :: I , INX , JC , IMIN 27 ! Declare Input Arrays as Assumed-Size Arrays (Currently Dimensioned NREC 28 ! in Calling Routines) 29 REAL :: ARRIN1(*) , ARRIN2(*) , RMIN , TEMP1 , TEMP2 30 31 ! Variable Initialization 32 MODNAM = 'SBYVAL' ! 9 33 JC = 1 34 35 DO WHILE ( JC.LE.INX ) 36 ! Find out The First Minimum In the Array 37 RMIN = ARRIN1(JC) ! 0 38 IMIN = JC 39 DO I = JC , INX 40 IF ( ARRIN1(I).LT.RMIN ) THEN ! 0 41 IMIN = I ! 0 42 RMIN = ARRIN1(I) 43 ENDIF 44 ENDDO 45 ! Swap The Selected Array Elements 46 TEMP1 = ARRIN1(JC) ! 0 47 TEMP2 = ARRIN2(JC) 48 ARRIN1(JC) = ARRIN1(IMIN) 49 ARRIN2(JC) = ARRIN2(IMIN) 50 ARRIN1(IMIN) = TEMP1 51 ARRIN2(IMIN) = TEMP2 52 ! Increment The Counter 53 JC = JC + 1 54 ENDDO 55 56 CONTINUE ! 9 57 END
HyperKWIC - Version 1.00DD executed at 20:00 on 1 Mar 2018 | Personal or Academic or Evaluation User | Free for Non-Commercial, Non-Government Use