PROGRAM Sortish IMPLICIT NONE INTEGER, PARAMETER :: VSize = 100 REAL, DIMENSION(VSize), TARGET :: Vector TYPE arrptr REAL, POINTER :: p END TYPE TYPE(arrptr), DIMENSION(VSize) :: A INTEGER i, itmp(1) CALL RANDOM_NUMBER(Vector) itmp = MAXLOC(Vector) A(1)%p => Vector(itmp(1)) DO i = 2,VSize itmp = MAXLOC(Vector,MASK=Vector.LT.A(i-1)%p) A(i)%p => Vector(itmp(1)) END DO PRINT*, "Unsorted Vector", Vector PRINT*, "Sorted Vector" DO i=1,Vsize PRINT*, A(i)%p END DO END PROGRAM Sortish