这已经工作了(见代码中的评论)
我是MPI的新手并且还在学习它。我实际上试图在Fortran中编写代码以同时从每个处理器上的同一组文件(已经生成)中读取数据,并在不同的处理器中执行不同的计算。我决定使用它,
程序......
use mpi
implicit none
.
.
.
call mpi_file_open(mpi_comm_world,filename_i,mpi_mode_rdonly,mpi_info_null,i,ierr)
从程序开始。现在,每个处理器调用一个子程序,我试图使用普通的fortran命令打开文件open(i,*)
...(因为我不在子程序中使用mpi)。
首先,我对这个想法本身并不自信。接下来,它会出现此错误,
_open(mpi_comm_world,filename_i,mpi_mode_rdonly,mpi_status_ignore,i,ierr) (1)
错误:通用' mpi_file_open'没有特定的子程序。 在(1)
请提出您的建议和意见。
我想要做的事情很长,因为子程序,我只想包含一个原型代码,如果这个问题解决了,我的问题就会解决。下面的代码给出了与之前说的相同的错误。请提出你的建议。感谢。
program hello
use mpi
integer::ierr,num_procs,my_id,i,j,no
call MPI_INIT(ierr)
call MPI_COMM_RANK (MPI_COMM_WORLD,my_id,ierr)
call MPI_COMM_SIZE (MPI_COMM_WORLD,num_size,ierr)
open(4,file='hella') !CHANGING THIS LINE
do i=1,num_size
if(i-1 .eq. my_id)print*,"In",my_id
if(i-1 .eq. my_id)then
read(4,*)no
print*,no
endif
enddo
call mpi_finalize(ierr)
end program hello