SVRBN
Sorts a real array by nondecreasing absolute value.
Required Arguments
RA — Vector of length N containing the array to be sorted. (Input)
RB — Vector of length N containing the sorted array. (Output)
If RA is not needed, RA and RB can share the same storage locations.
Optional Arguments
N — Number of elements in the array to be sorted. (Input)
Default: N = size (RA,1).
FORTRAN 90 Interface
Generic: CALL SVRBN (RA, RB [, …])
Specific: The specific interface names are S_SVRBN and D_SVRBN.
FORTRAN 77 Interface
Single: CALL SVRBN (N, RA, RB)
Double: The double precision name is DSVRBN.
Description
Routine SVRBN sorts the elements of an array, A, into ascending order by absolute value. The routine SVRBN uses the algorithm discussed in SVRGN. On completion, |Aj| ≤ |Ai| for j < i.
Example
This example sorts the 10-element array RA by absolute value.
USE SVRBN_INT
USE UMACH_INT
IMPLICIT NONE
! Declare variables
INTEGER N, J, NOUT
PARAMETER (N=10)
REAL RA(N), RB(N)
! Set values for RA
! RA = ( -1.0 3.0 -4.0 2.0 -1.0 0.0 -7.0 6.0 10.0 -7.0 )
!
DATA RA/-1.0, 3.0, -4.0, 2.0, -1.0, 0.0, -7.0, 6.0, 10.0, -7.0/
! Sort RA by absolute value into RB
CALL SVRBN (RA, RB)
! Print results
CALL UMACH (2,NOUT)
WRITE (NOUT, 99999) (RB(J),J=1,N)
!
99999 FORMAT (' The output vector is :', /, 10(1X,F5.1))
END
Output
The Output vector is :
0.0 -1.0 -1.0 2.0 3.0 -4.0 6.0 -7.0 -7.0 10.0