Fortran运行时错误“列表输入中项目11的错误整数”

时间:2015-06-10 17:43:30

标签: io fortran

我收到运行时错误“列表输入中第11项的错误整数”,引用了以下代码行。

read(2,*)a,b,c,d,e,f,g,h,theta1,phi1,k,l,m,n,o,
 $             p,theta2,phi2,s,theta3,phi3,
 $             r1,x1,y1,r2,x2,y2,r3,x3,y3,z1,z2,z3 

其读取的行是

1   255.11211   0.2876  165.11404   90  4   8   0.19173 90  165.11404   0.09587 90  345.11404   4   4   0.0764  89.99915    -64.51149   0.11131 90.0015 24.23892    470.10565   -454.32263  120.7902    264.91144   114.00389   -239.12589  322.2894    293.87778   132.3114    0.01236 0.00697 0.00006 0.42619 -0.19278

所以整数和实数的混合,但我认为这是可以的,因为我使用*格式描述符而不是指定的格式。

我正在使用gcc编译器。

1 个答案:

答案 0 :(得分:3)

列表中的第11项是0.09587,是真实的。您正在使用列表定向输入,使用F编辑描述符(Fortran 2008 Cl.10.10.3第4段)将实数解释为数值。与F编辑描述符对应的输入列表项必须是实数或复数(Fortran 2008 Cl.10.7.2.3.1第1段)。

要解决此问题,您需要将k定义为实数变量。您在注释中注意到您正在使用隐式类型(其中以i-n开头的变量是整数类型,其余的是默认情况下是实数)。要明确地将k声明为真实,请使用:

real :: k

最佳做法是禁用隐式输入(implicit none)并明确键入所有变量。