! { 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