Fortran 运行时错误"bad integer for item 11 in list input"



我收到一个运行时错误"bad integer for item 11 in list input"引用下面一行代码。

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

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

清单中的第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)并显式地键入所有变量。

最新更新