program cmplettura character*20 filedat,filemin integer ipio(1440) write(6,*)'Nome file' read(5,*)filedat call initread(filedat,idt,ndati_giorno) write (6,*)'dt=',idt,'minuti ,',ndati_giorno ,' dati per giorno' write(6,*)'quale giorno ?' read(5,*)igiod filemin="piomin.out" open(unit=10,file=filemin) write(6,*)'scrivo su piomin.out' call leggigiorno(igiorno,ipio,ndati_giorno,ptot) do while (igiorno.ne.-10000) if(igiorno.eq.igiod)then write(10,*)igiorno,ptot/10 ,' mm' write(10,*) npora=60/idt do iming=1,ndati_giorno iora=iming/npora imin=iming-iora*npora write(10,100)iora,imin,ipio(iming)/10.0 100 format(i2,':',I2.2,f6.1) enddo endif call leggigiorno(igiorno,ipio,ndati_giorno,ptot) enddo close(11) close(10) end subroutine initread(filedat,idt,ndati_giorno) character*(*) filedat open(unit=11,file=filedat,status='old') read(11,*) read(11,*) read(11,*) read(11,*) read(11,*)igior,imese,ianno,iora,iminuto write(*,*)igior,imese,ianno,iora,iminuto read(11,*)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 (11,'(a3000)',end=1000,err=1000)stringa 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