Существует проблема, когда я использую компилятор 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
для запуска программы, результат
В строке 12 файла read.f90
Ошибка выполнения Fortran: неверное значение при чтении целого числа
Почему возникает такая проблема? Кто-нибудь может это исправить?