当我使用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
gfortran
版本提供正确答案1
mpif90
版本使用mpif90
编译器编译程序并使用mpirun -n 4 ./a.out
运行程序,结果是
在文件read.f90的第12行
Fortran运行时错误:整数读取期间值错误
为什么会有这样的问题?谁能解决这个问题?