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