! !------------------------------------------------------------------ MODULE setInitialConditions PUBLIC Character (LEN=12), DIMENSION(4) :: NamesDir=(/ & 'PMstrtXX.DAT','PMstrtVX.DAT',& 'PMstrtYY.DAT','PMstrtVY.DAT'/) Integer*4, PARAMETER :: NGRID = 1024 ! zero-level mesh in INTEGER, PARAMETER :: NPAGE = 1024**2, & ! # particles in a record NRECL = NPAGE*6 ! # particles in a record Real*4, dimension(NPAGE) :: xbuf,vxbuf Integer*4, PARAMETER :: nbyteword = 4 ! defines length of direct-access:1or4 end MODULE setInitialConditions !------------------------------------------ Program TestIO use setInitialConditions Npages = 128 NBYTE = NPAGE*4 NACCES= NBYTE / nbyteword OPEN(31,FILE=NamesDir(1),ACCESS='DIRECT',form='unformatted', & STATUS='UNKNOWN',RECL=NACCES) ! x coord and veloc OPEN(32,FILE=NamesDir(2),ACCESS='DIRECT',form='unformatted', & STATUS='UNKNOWN',RECL=NACCES) ! y OPEN(33,FILE=NamesDir(3),ACCESS='DIRECT',form='unformatted', & STATUS='UNKNOWN',RECL=NACCES) ! x coord and veloc OPEN(34,FILE=NamesDir(4),ACCESS='DIRECT',form='unformatted', & STATUS='UNKNOWN',RECL=NACCES) ! y Do i=1,NPAGE xbuf(i) = i vxbuf(i) = Npage-i EndDo Do i=1,Npages write(*,'(10x,a,i5,a,4i11)')' Test Reading=',i !write(33,rec=i)xbuf !write(34,rec=i)vxbuf read(33,rec=i)xbuf read(34,rec=i)vxbuf end Do end Program TestIO