! { dg-options "-O3 -floop-block" } MODULE util INTEGER, PARAMETER :: int_4=4 INTERFACE sort MODULE PROCEDURE sort_int_4v END INTERFACE CONTAINS SUBROUTINE sort_int_4v ( arr, n, index ) INTEGER(KIND=int_4), INTENT(INOUT) :: arr(1:n) INTEGER, INTENT(OUT) :: INDEX(1:n) DO i = 1, n INDEX(i) = i END DO 1 IF (ir-l<m) THEN DO j = l + 1, ir DO i = j - 1, 1, -1 IF (arr(i)<=a) GO TO 2 arr(i+1) = arr(i) INDEX(i+1) = INDEX(i) END DO 2 arr(i+1) = a END DO END IF END SUBROUTINE sort_int_4v SUBROUTINE create_destination_list(list) INTEGER, DIMENSION(:, :, :), POINTER :: list INTEGER :: icpu, ncpu, stat, ultimate_max INTEGER, ALLOCATABLE, DIMENSION(:) :: index, sublist ultimate_max=7 ALLOCATE(INDEX(ultimate_max),STAT=stat) CALL t(stat==0) ALLOCATE(sublist(ultimate_max),STAT=stat) DO icpu=0,ncpu-1 CALL sort(sublist,ultimate_max,index) list(1,:,icpu)=sublist list(2,:,icpu)=0 ENDDO END SUBROUTINE create_destination_list END MODULE