************************************************************************
* File: sortfil2.for
************************************************************************
* Scopo: utilizza il modulo realizzato dal file bubsort.for
*        effettua lettura da file
*        simile al file sortfile.for, ma:
*          - usa DO IMPLICITI per operazioni di I/O
*          - usa istruzioni FORMAT
************************************************************************

      PROGRAM SortFile

* Istruzioni dichiarative
      IMPLICIT NONE

* Dichiarazioni di tipo per le costanti
      INTEGER dim
      CHARACTER*12 nomefilein, nomefileout
* Definizioni delle costanti
      PARAMETER (dim = 10)
      PARAMETER (nomefilein = 'VETT.TXT', nomefileout = 'SORTED.TXT')

* Dichiarazioni delle variabili
      INTEGER j
      INTEGER miovett(dim)

* Subroutine usate:
*     BubSort (INTEGER(*), INTEGER)

* Istruzioni esecutive

* lettura vettore da file
      OPEN (9, FILE = nomefilein)
      READ (9,*) (miovett(j), j=1,dim)
      CLOSE (9)

* stampa del vettore su video, tutti gli elementi SULLA STESSA riga
      WRITE (*,*) 'Prima dell''ordinamento ...'
      WRITE (*,100) (miovett(j), j=1,dim)

      CALL BubSort (miovett, dim)

* stampa il vettore ordinato sul video
      WRITE (*,*) 'Dopo l''ordinamento ...'
      WRITE (*,100) (miovett(j), j=1,dim)

* stampa il vettore ordinato su file e su video per conferma
      WRITE (*,*) 'Viene scritto sul file SORTED.TXT'
      OPEN (8, FILE = nomefileout)
      WRITE (8,100) (miovett(j), j=1,dim)
      CLOSE (8)

      STOP

* Istruzioni FORMAT
 100  FORMAT(10I6)

      END