!------------------------------------------- ! Read and Test PMc files !------------------------------------------- Module Struc integer, parameter :: NROW = 8192, & NPAGE = 1024**2 Real*4, DIMENSION(NPAGE) :: XPt,VXt,YPt,VYt,ZPt,VZt INTEGER*4, DIMENSION(NPAGE) :: MPt1,MPt2,MPt3 Integer*4, dimension(0:5) :: Counts end module STRUC !------------------------------------------- Program ReadandSpread use Struc character*120 :: FileName1,FileName2,FileName3 write(*,'(a,$)') ' Enter page number to read= ' read(*,*) ipage open(16,file='out5.dat') open(17,file='out6.dat') Do k =0,100 Counts = 0 jpage = ipage +k write(FileName1,'(a,i1.1,a,i4.4,a)') 'PMc/PMcoord.',1,'.',jpage,'.DAT' write(FileName2,'(a,i1.1,a,i4.4,a)') 'PMc/PMcoord.',2,'.',jpage,'.DAT' write(FileName3,'(a,i1.1,a,i4.4,a)') 'PMc/PMcoord.',3,'.',jpage,'.DAT' Open(1,file=TRIM(FileName1),form='unformatted') Open(2,file=TRIM(FileName2),form='unformatted') Open(3,file=TRIM(FileName3),form='unformatted') read(1)XPt,VXt,MPt1 read(2)YPt,VYt,MPt2 read(3)ZPt,VZt,MPt3 do i=1,NPAGE If(MPt1(i).gt.5.or.MPt1(i).lt.0)write(*,*) ' Error in index: ',MPt1(i) If(MPt1(i).ne.MPt2(i))write(*,*) ' Error in index: ',MPt1(i),MPt2(i),MPt3(i) j =MPt1(i) Counts(j)=Counts(j) +1 EndDo write(16,'(a,i4,a,10i8)') ' Page=',jpage,' Number of indexes= ',Counts(1:5) do i=1,NPAGE If(MPt1(i)/=0)& write(17,'(i8,3f10.4,3x,3i5)') i,XPt(i),YPt(i),ZPt(i),MPt1(i),jpage !,MPt2(i),MPt3(i) endDo close(1) close(2) close(3) enddo End Program ReadandSpread