MPIF90运行错误“整数读取期间值错误”

时间:2018-11-14 07:46:27

标签: fortran mpi

当我使用mpif90编译器时出现问题,抱怨“整数读取期间的值不正确”。但是,当我使用gfortran编译器时,没有问题。

gfortran版本是

program main
implicit none
character*100 :: line
integer :: ierr, i
open(10, file="test.txt", action="read")
read(10, '(A)' ,iostat=ierr) line
read(line, "(6X, I5)") i
print*, i
end program

mpif90版本是

program main
implicit none
include "mpif.h"
character*100 :: line
integer :: ierr, i, procID

call mpi_init(ierr)
call mpi_comm_rank(mpi_comm_world,procID,ierr)
if (procID==0) then
    open(10, file="test.txt", action="read")
    read(10, '(A)' ,iostat=ierr) line
    read(line, "(6X, I5)") i
    print*, i
endif
call mpi_finalize(ierr)
endprogram

test.txt文件包含该文件

TEST      1
  1. gfortran版本提供正确答案1
  2. mpif90版本使用mpif90编译器编译程序并使用mpirun -n 4 ./a.out运行程序,结果是
      

    在文件read.f90的第12行
      Fortran运行时错误:整数读取期间值错误

为什么会有这样的问题?谁能解决这个问题?

0 个答案:

没有答案