Sorts a real array by nondecreasing absolute value.
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.
N — Number of
elements in the array to be sorted. (Input)
Default: N = size
(RA,1).
Generic: CALL SVRBN (RA, RB [,…])
Specific: The specific interface names are S_SVRBN and D_SVRBN.
Single: CALL SVRBN (N, RA, RB)
Double: The double precision name is DSVRBN.
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.
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
The Output vector is
:
0.0 -1.0 -1.0 2.0 3.0
-4.0 6.0 -7.0 -7.0 10.0
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |