************************************************************************
* File: counter.for
************************************************************************
* Scopo: realizza un MODULO PER SINGOLO OGGETTO
************************************************************************
* In particolare, l'oggetto e' un CONTATORE INTERO
* Le operazioni disponibili sono:
*  - inizializza a 0 il contatore
*  - incrementa di 1 il valore del contatore
*  - restituisci il valore del contatore
* Viene realizzato mediante una variabile intera (cont) condivisa
* tramite COMMON, e tre unita' di programma
************************************************************************

      SUBROUTINE Init ()
      IMPLICIT NONE
      INTEGER cont
      COMMON /counter/cont
      cont = 0
*     WRITE (*,*) 'Init: ', cont
      RETURN
      END

      SUBROUTINE Incrementa ()
      IMPLICIT NONE
      INTEGER cont
      COMMON /counter/cont
      cont = cont + 1
*     WRITE (*,*) 'Incrementa: ', cont
      RETURN
      END

      INTEGER FUNCTION Valore ()
      IMPLICIT NONE
      INTEGER cont
      COMMON /counter/cont
      valore = cont
*     WRITE (*,*) 'Valore: ', cont
      RETURN
      END