读整数语句

时间:2013-07-17 14:09:59

标签: fortran90

我对fortran很新,并且有一个问题。我需要从以下行读取2个整数:

K=234, L=241, I=0

我对最后一个值不感兴趣。只需要整数234和241.我用

尝试了
read(20,'(3X,I3,3X,I3)')a,b

它编译,但是当我运行程序时,我总是收到错误消息:

At line 27 of file test.f90 (unit = 20, file = 'int_p2.dat')
Fortran runtime error: Bad value during integer read

不知道我做错了什么。有人可以给我一些建议吗?

2 个答案:

答案 0 :(得分:0)

您的行中有字符串,因此您的READ语句应该考虑到它。你应该用

替换它
  READ(20, '(3(a2,i3,2x))') dumChar, k, dumChar, l, dumInt, dumChar

其中dumChar是长度为2的字符,dumInt是整数。

答案 1 :(得分:-2)

我的代码中没有问题。 (当然,你的格式是错误的,但不应该给出运行时错误)。此外,你正在逃避字符(K,L),而不是阅读它们。编译器不应该抱怨。但是3X会占用K=234

的1个整数
Program  se
Implicit None
integer :: K,L,I,a,b

open(20, file="se.in",status='old')
read(20,'(3X,I3,3X,I3)')a,b
close(20)
write(*,*)a,b
End Program  se


$ cat se.in 
K=234, L=241, I=0

$gfortran se.f90
$ ./a.out 
          34         241

如果您仍然遇到问题,如果这是您尝试阅读的单行,请执行此操作 删除文件中K=之前的所有空格。 我认为这是错误,因为代码读取的是非整数。