# qpsrt.f

          SUBROUTINE QPSRT (LIMIT, LAST, MAXERR, ERMAX, ELIST, IORD, NRMAX)
    C***BEGIN PROLOGUE  QPSRT
    ....
    ....
    Warning:   this routine is not intended to be user-callable.
    ....
    ....
    C***SUBSIDIARY
    C***PURPOSE  Subsidiary to QAGE, QAGIE, QAGPE, QAGSE, QAWCE, QAWOE and
    C            QAWSE
    C***LIBRARY   SLATEC
    C***TYPE      SINGLE PRECISION (QPSRT-S, DQPSRT-D)
    C***KEYWORDS  SEQUENTIAL SORTING
    C***AUTHOR  (UNKNOWN)
    C***DESCRIPTION
    C
    C 1.        QPSRT
    C           Ordering Routine
    C              Standard FORTRAN Subroutine
    C              REAL Version
    C
    C 2.        PURPOSE
    C              This routine maintains the descending ordering
    C              in the list of the local error estimates resulting from
    C              the interval subdivision process. At each call two error
    C              estimates are inserted using the sequential search
    C              method, top-down for the largest error estimate
    C              and bottom-up for the smallest error estimate.
    C
    C 3.        CALLING SEQUENCE
    C              CALL QPSRT(LIMIT,LAST,MAXERR,ERMAX,ELIST,IORD,NRMAX)
    C
    C           PARAMETERS (MEANING AT OUTPUT)
    C              LIMIT  - INTEGER
    C                       Maximum number of error estimates the list
    C                       can contain
    C
    C              LAST   - INTEGER
    C                       Number of error estimates currently
    C                       in the list
    C
    C              MAXERR - INTEGER
    C                       MAXERR points to the NRMAX-th largest error
    C                       estimate currently in the list
    C
    C              ERMAX  - REAL
    C                       NRMAX-th largest error estimate
    C                       ERMAX = ELIST(MAXERR)
    C
    C              ELIST  - REAL
    C                       Vector of dimension LAST containing
    C                       the error estimates
    C
    C              IORD   - INTEGER
    C                       Vector of dimension LAST, the first K
    C                       elements of which contain pointers
    C                       to the error estimates, such that
    C                       ELIST(IORD(1)),... , ELIST(IORD(K))
    C                       form a decreasing sequence, with
    C                       K = LAST if LAST.LE.(LIMIT/2+2), and
    C                       K = LIMIT+1-LAST otherwise
    C
    C              NRMAX  - INTEGER
    C                       MAXERR = IORD(NRMAX)
    C
    C***SEE ALSO  QAGE, QAGIE, QAGPE, QAGSE, QAWCE, QAWOE, QAWSE
    C***ROUTINES CALLED  (NONE)
    C***REVISION HISTORY  (YYMMDD)
    C   800101  DATE WRITTEN
    C   890831  Modified array declarations.  (WRB)
    C   891214  Prologue converted to Version 4.0 format.  (BAB)
    C   900328  Added TYPE section.  (WRB)
    C***END PROLOGUE  QPSRT