program cmplettura character*20 filedat integer ipio(1440) C legge cmp da std input call initread(filedat,idt,ndati_giorno) write (6,*)'dt=',idt,'minuti ,',ndati_giorno ,' dati per giorno' call leggigiorno(igiorno,ipio,ndati_giorno,ptot) do while (igiorno.ne.-10000) write(6,*)igiorno,ptot/10 ,' mm' call leggigiorno(igiorno,ipio,ndati_giorno,ptot) enddo close(11) end subroutine initread(filedat,idt,ndati_giorno) character*(*) filedat read(5,*) read(5,*) read(5,*) read(5,*) read(5,*)igior,imese,ianno,iora,iminuto write(*,*)igior,imese,ianno,iora,iminuto read(5,*)idt ndati_giorno=24*60/idt end subroutine leggigiorno(igiorno,ipio,ndati_giorno,ptot) integer ipio (1),num(1442) character*3000 stringa do i=1,ndati_giorno ipio(i)=0 enddo read (5,'(a3000)',end=1000,err=1000)stringa c write(6,*) stringa(1:50) i=1 2 read(stringa,*,err=1,end=1)(num(j),j=1,i) i=i+1 go to 2 1 nn=i-1 igiorno=num(1) if(igiorno.eq.-10000) return ind=1 do j=2,nn if(num(j).eq.-9999)go to 7 if(num(j).ge.0)then ipio(ind)=num(j) ind=ind+1 else ind=ind-num(j) endif enddo 7 if(ind-1.ne.ndati_giorno)write(6,*)'Giorno ',igiorno, . ' ERRORE rilevati ',ind-1,' dati ' ptot=0 do i=1,ndati_giorno ptot=ptot+ipio(i) enddo return 1000 igiorno=-10000 end