繁体   English   中英

如何读取在Fortran中使用MPI-IO编写的二进制数据?

[英]How to read binary data written using MPI-IO in Fortran?

我想从Fortran代码中读取一些输出数据到数据文件中以进行后处理。 给我的代码使用MPI写入那些数据文件。 对于最基本的情况,当处理器数应为1且Nx, Ny, Nz are all set to 1 and l is 3 ,写入数据文件的输出应全部为1。但是,输出写入数据文件的格式是某些不可读的,如下所示:

^@^@^@^@^@^@^@^@^@^@^@^@

写入数据文件的代码的相关部分如下所示。

 do rst=1,1
   fname='phi'
   fname = trim('ufs')//":" // trim(fname)
   write(buffer,"(i3.3)") 2*rst-1
   fname = trim(adjustl(fname))//'.'//trim(adjustl(buffer))
   print *, 'The output file to which all the data is written is ', fname
   call MPI_FILE_OPEN(MPI_COMM_WORLD,fname,MPI_MODE_WRONLY+MPI_MODE_CREATE,MPI_INFO_NULL,ifile,ierr)
   do l=1,numvar
      disp = Nx_MOK*Ny_MOK*Nz_MOK*WP_MOK*(l-1)
      call MPI_FILE_SET_VIEW(ifile,disp,MPI_REAL_SP,view,"native",MPI_INFO_NULL,ierr)
      call MPI_FILE_WRITE_ALL(ifile,phi_xyz(1:Nxp,1:Nyp,1:Nzp,l,2*rst 1),Nxp*Nzp*Nyp, MPI_REAL_SP,status,ierr)
   end do
   call MPI_FILE_CLOSE(ifile,ierr)
   call MPI_BARRIER(MPI_COMM_WORLD, ierr)
end do

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM