      program  prodscalare
C
C  programma per il calcolo del prodotto scalare tra due vettori
C
      implicit none
C
C dichiarazione della dimensione massima dei vettori tramite un numero
C intero nmax attraverso l'uso dell'istruzione parameter
      integer nmax
      parameter (nmax=10)
C dichiarazione delle variabili
      integer n,i
      real*8 x(nmax), y(nmax), pscal

C
C  lettura/scrittura dei dati da file e su file
C
      open(8, FILE='dati.dat', STATUS='old')
      open(9, FILE='prodscalare.ris', STATUS='unknown')
C  il file chiamato dati.dat deve contenere, sulla prima riga, il
C  valore numerico della dimensione effettiva dei due vettori x e y
C  sulla seconda riga il valore della prima componente di x - x(1) -
C  sulla terza riga il valore della seconda componente di x - x(2)
C  e cosi' via, riga per riga si scrive il valore di ciascuna componente di x.
C  Una volta scritte tutte le componenti di x, si scrivono, riga per riga,
C  tutte le componenti di y.
C  Ad un file scritto in questo modo corrispondono le seguenti istruzioni
C  nel programma FORTRAN per leggere i dati di input
      read(8,*)  n
      do i=1,n
        read(8,*) x(i)
      end do
      do i=1,n
        read(8,*) y(i)
      end do
C
C  calcolo del prodotto scalare
C      
      pscal=0.d0
      do i=1,n
         pscal = pscal + x(i)*y(i)
      end do
 
     
C  scrittura dei risultati sul  file  che abbiamo etichettato con il
C  numero 9 e che avra' il nome di prodscalare.ris una volta che sara'
C  eseguito il programma
C
      write(9,*) 'vettore x'
      do i=1,n
        write(9,*) x(i)
      end do
      write(9,*) 'vettore y'
      do i=1,n
        write(9,*) y(i)
      end do
      write(9,*) 'prodotto scalare ', pscal
 
 
      end 
