shellc |
Table of contents
ProcedureSHELLC ( Shell sort a character array ) SUBROUTINE SHELLC ( NDIM, ARRAY ) AbstractSort an array of character strings according to the ASCII collating sequence using the Shell Sort algorithm. Required_ReadingNone. KeywordsARRAY SORT DeclarationsIMPLICIT NONE INTEGER NDIM CHARACTER*(*) ARRAY ( * ) Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- NDIM I Dimension of the array. ARRAY I-O The array. Detailed_InputNDIM is the number of elements in the array to be sorted. ARRAY on input, is the array to be sorted. Detailed_OutputARRAY on output, contains the same elements, sorted according to the ASCII collating sequence. The actual sorting is done in place in ARRAY. ParametersNone. ExceptionsError free. 1) If NDIM < 2, this routine does not modify the array. FilesNone. ParticularsThe Shell Sort Algorithm is well known. ExamplesThe numerical results shown for this example may differ across platforms. The results depend on the SPICE kernels used as input, the compiler and supporting libraries, and the machine specific arithmetic implementation. 1) Given a list of words, sort it according to the ASCII collating sequence using the Shell Sort algorithm. Example code begins here. PROGRAM SHELLC_EX1 IMPLICIT NONE C C Local parameters. C INTEGER NDIM PARAMETER ( NDIM = 6 ) INTEGER WRDSZ PARAMETER ( WRDSZ = 8 ) C C Local variables. C CHARACTER*(WRDSZ) ARRAY ( NDIM ) INTEGER I C C Let ARRAY contain the following elements: C ARRAY(1) = 'FEYNMAN' ARRAY(2) = 'NEWTON' ARRAY(3) = 'EINSTEIN' ARRAY(4) = 'GALILEO' ARRAY(5) = 'EUCLID' ARRAY(6) = 'Galileo' C C Print ARRAY before calling SHELLC. C WRITE(*,*) 'Array before calling SHELLC:' WRITE(*,*) DO I = 1, NDIM WRITE(*,*) ' ', ARRAY(I) END DO WRITE(*,*) C C Call SHELLC and print ARRAY again. C CALL SHELLC ( NDIM, ARRAY ) WRITE(*,*) 'Array after calling SHELLC:' WRITE(*,*) DO I = 1, NDIM WRITE(*,*) ' ', ARRAY(I) END DO END When this program was executed on a Mac/Intel/gfortran/64-bit platform, the output was: Array before calling SHELLC: FEYNMAN NEWTON EINSTEIN GALILEO EUCLID Galileo Array after calling SHELLC: EINSTEIN EUCLID FEYNMAN GALILEO Galileo NEWTON RestrictionsNone. Literature_ReferencesNone. Author_and_InstitutionJ. Diaz del Rio (ODC Space) W.L. Taber (JPL) I.M. Underwood (JPL) VersionSPICELIB Version 1.1.0, 06-JUL-2021 (JDR) Added IMPLICIT NONE statement. Edited the header to comply with NAIF standard. Added complete code example based on existing example. Extended $Exceptions section to explain what happens if NDIM < 2. SPICELIB Version 1.0.1, 10-MAR-1992 (WLT) Comment section for permuted index source lines was added following the header. SPICELIB Version 1.0.0, 31-JAN-1990 (IMU) |
Fri Dec 31 18:36:48 2021