! sorting array elements PROGRAM ex6_1 IMPLICIT NONE INTEGER :: m, mark(100), n = 0, max, maxi, i, j DO WHILE( n <= 99 ) PRINT '(1X, A)', 'Input integer, or negative one to stop: ' READ *, m IF ( m <= 0 ) EXIT n = n + 1 mark(n) = m END DO ! sorting DO i = 1, n - 1 max = mark(i) maxi = i DO j = i+1, n IF ( mark(j) > max ) THEN max = mark(j) maxi = j END IF END DO IF ( maxi /= i ) THEN mark(maxi) = mark(i) mark(i) = max END IF END DO ! output DO i = 1, n PRINT '(1X, "rank", I3, " = ", I10)', i, mark(i) END DO END PROGRAM ex6_1