program readcorr implicit none INTEGER(4) nh INTEGER(4) i,j INTEGER(4) lbin,ibinit,kt,ibin,nmis REAL(8) wk,wbin REAL(8), dimension(:), allocatable :: de,ek REAL(8), dimension(:), allocatable :: ebin,ebin2 write(6,*) 'lbin,ndrop,size' read(5,*) lbin,ibinit,nh ALLOCATE(de(nh)) ALLOCATE(ek(nh)) ALLOCATE(ebin(nh)) ALLOCATE(ebin2(nh)) kt=0 ibin=0 do j=1,nh ek(j)=0.d0 ebin(j)=0.d0 ebin2(j)=0.d0 enddo wk=0.d0 wbin=0.d0 do while(kt.ge.0) kt=kt+1 read(13,end=100) i,(de(j),j=1,nh) do j=1,nh ek(j)=ek(j)+de(j) enddo wk=wk+1.d0 if(mod(kt,lbin).eq.0) then ibin=ibin+1 if(ibin.ge.ibinit) then do j=1,nh ebin(j)=ebin(j)+ek(j) enddo wbin=wbin+wk do j=1,nh ebin2(j)=ebin2(j)+ek(j)**2/wk enddo endif write(20,*) (ek(j),j=1,nh),wk do j=1,nh ek(j)=0.d0 enddo wk=0.d0 endif enddo 100 continue nmis=ibin-ibinit+1 do j=1,nh ebin(j)=ebin(j)/wbin ebin2(j)=dsqrt(dabs(ebin2(j)/wbin-ebin(j)**2)) ebin2(j)=ebin2(j)/dsqrt(dfloat(nmis)) enddo write(6,*) ' Independent bins ',nmis,'of lenght ',lbin write(6,*) write(6,*) ' Correlations' do j=1,nh write(6,*) j,ebin(j),ebin2(j) enddo write(6,*) DEALLOCATE(de) DEALLOCATE(ek) DEALLOCATE(ebin) DEALLOCATE(ebin2) stop end