我想将 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