implicit real*8(a-h,o-z)
      include 'fnx.h'
      integer i,j,k
      real*8 x,y,z,dclock ,bytes
      integer xarr(1024*512)
      integer*8 offset
      integer max_writes ,req_size
 
      max_writes=10
      req_size = size(xarr)*4
      if(mynode()==0)then
        print *, "req_size=",req_size
      endif

       open(unit=8,
     & file='/pfs_grande/multi/tmp_1/pfay/f90/tmpb', 
     & form='unformatted',  
     &   access='sequential',status='unknown')
      call gsync()
      offset = mynode()*req_size
      x=dclock()
      do i=1,max_writes
        j = iwriteoff(8,offset,xarr,req_size)
        k = iowait(j)
        offset = offset + req_size*numnodes()
      enddo
      call gsync()
      bytes = max_writes*numnodes()*req_size
      x=dclock() - x
      y = bytes/(1024.0*1024.0)/x
      close(unit=8)
      if(mynode()==0)print *,"iwriteoff() ran at MB/sec=",y
      
     
       open(unit=8,
     & file='/pfs_grande/multi/tmp_1/pfay/f90/tmpb', 
     & form='unformatted',  
     &  access='sequential',status='unknown')
      call gsync()
      offset = mynode()*req_size
      x=dclock()
      do i=1,max_writes
        j = ireadoff(8,offset,xarr,req_size)
        k = iowait(j)
        offset = offset + req_size*numnodes()
      enddo
      call gsync()
      bytes = max_writes*numnodes()*req_size
      x=dclock() - x
      y = bytes/(1024.0*1024.0)/x
      close(unit=8)
      if(mynode()==0)print *,"ireadoff() ran at MB/sec=",y
      call exit
      end 
     


Acknowledgement and Disclaimer