aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/graphite/id-4.f90
blob: 896d608777eee00b574ffa951fe66248daace3c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
! { dg-options "-O2 -fgraphite-identity" }

MODULE Vcimage
  CHARACTER (LEN=80), SAVE :: CARD, FIELD
END MODULE Vcimage
MODULE Vimage
  LOGICAL, SAVE ::  EOFF
END MODULE Vimage
SUBROUTINE READIN(PROB, TITLE, CSTOP, FCYCLE, DCYCLE, DHIST, VHIST&
     &    , IMAX, PHIST, DEBUG, NSTAT, STATS, MAXSTA, NCORE, PPLOT,     &
     &    DPLOT, VPLOT, TPLOT, SLIST, D0, E0, NODES, SHEAT, GAMMA, COLD &
     &    , THIST, NVISC, SCREEN, WEIGHT, TSTOP, STABF)
  USE Vcimage
  USE Vimage
  INTEGER, DIMENSION(MAXSTA) :: STATS
  IF (.NOT.EOFF) THEN
     IF (FIELD=='PROB' .OR. FIELD=='PROBLEM_NUMBER') THEN
        CALL QSORT (STATS(1:NSTAT))
        WRITE (16,                                                 &
             &'(//'' YOU HAVE REQUESTED A PRINTOUT OF THE STATION'',            &
             &    '' ABORT''//)')
     ENDIF
  ENDIF
CONTAINS
  RECURSIVE SUBROUTINE QSORT (LIST)
    INTEGER, DIMENSION(:), INTENT(INOUT) :: LIST
    INTEGER, DIMENSION(SIZE(LIST)) :: SMALLER,LARGER
    IF (SIZE(LIST) > 1) THEN
       LIST(NUMBER_SMALLER+1:NUMBER_SMALLER+NUMBER_EQUAL) = CHOSEN
       CALL QSORT (LARGER(1:NUMBER_LARGER))
       LIST(NUMBER_SMALLER+NUMBER_EQUAL+1:) = LARGER(1:NUMBER_LARGER)
    END IF
  END SUBROUTINE QSORT
END SUBROUTINE READIN