module read_data contains SUBROUTINE Read(File_Name,Raw_Data,How_Many) IMPLICIT NONE CHARACTER (LEN=*) , INTENT(IN) :: File_Name INTEGER , INTENT(IN) :: How_Many REAL , INTENT(OUT) , DIMENSION(:) :: Raw_Data INTEGER :: I OPEN(FILE=File_Name,UNIT=1) DO I=1,How_Many READ (UNIT=1,FMT=*) Raw_Data(I) ENDDO END SUBROUTINE Read end module read_data module sort_data contains SUBROUTINE Sort(Raw_Data,How_Many) IMPLICIT NONE INTEGER , INTENT(IN) :: How_Many REAL , INTENT(INOUT) , DIMENSION(:) :: Raw_data CALL QuickSort(1,How_Many) CONTAINS RECURSIVE SUBROUTINE QuickSort(L,R) IMPLICIT NONE INTEGER , INTENT(IN) :: L,R INTEGER :: I,J REAL :: V,T i=l j=r v=raw_data( int((l+r)/2) ) do do while (raw_data(i) < v ) i=i+1 enddo do while (v < raw_data(j) ) j=j-1 enddo if (i<=j) then t=raw_data(i) raw_data(i)=raw_data(j) raw_data(j)=t i=i+1 j=j-1 endif if (i>j) exit enddo if (l