************************************************************************
* File:  r2imain.for
************************************************************************
* Scopo: illustrare la compilazione separata - modulo chiamante
************************************************************************

* Modulo cliente (cioe` chiamante) di rom2int.for

      PROGRAM NumeriRomaniNonCrescenti
* Legge da tastiera una sequenza di caratteri fra 'I','V','X','L','C','D','M'
* (che rappresentano un numero romano) terminata da un punto, e stampa il
* numero intero corrispondente.
* Assume che le cifre romane compaiano SOLO in ordine non crescente.

      IMPLICIT NONE

* Dichiarazioni variabili
      CHARACTER car
      INTEGER somma

* Dichiarazioni funzioni esterne
      INTEGER Romano2Intero
*       parametri: (CHARACTER)

* Inizializzazione variabili
      DATA somma/0/

* Istruzioni esecutive
      WRITE (*,*) 'Inserisci le cifre di un numero romano, una per riga,
     $ terminando con un punto !'
      WRITE (*,*) 'Le cifre (M,D,C,L,X,V,I) devono comparire in ordine n
     $on crescente!'
      READ (*,100) car
      DO WHILE (car .NE. '.')
        somma = somma + Romano2Intero(car)
        READ (*,100) car
      ENDDO
      WRITE (*,*) 'Numero corrispondente : ', somma
      STOP

* Istruzioni FORMAT
 100  FORMAT(A1)

      END