Fortran Coder

标题: Fortran runtime error: Bad value during floating point read [打印本页]

作者: zhea5    时间: 2023-8-14 13:58
标题: Fortran runtime error: Bad value during floating point read
文件错误为:At line 39 of file /public/LINUX/compiled/lib/gamma_cs_read.f90 (unit = 1, file = '/public/LINUX/compiled/xsection/gammalib/GTOTAL.XS')Fortran runtime error: Bad value during floating point read
原文为:read(1,30) (temp1,temp2,j=1,ns)
             30    format(6e11.0)

读取文件如下:
1.500000+7 4.240370-2 1.549190+7 4.168060-2 1.697060+7 3.950670-2
2.000000+3 3.968220+0              0               0                 0               0
0.000000+0 0.000000+0              0               0                 1            457
             267                2                                            
1.000000+4 1.648240+0 1.014860+4 1.630220+0 1.088670+4 1.566840+0


请大佬们不吝赐教 感谢大家的支持

作者: kyra    时间: 2023-8-14 15:44
read(1,30) (temp1,temp2,j=1,ns)
改成
read(1,*) (temp1,temp2,j=1,ns)
试试?

99%的情况下,read不需要用格式。直接表控格式就行了。
作者: zhea5    时间: 2023-8-16 14:50
kyra 发表于 2023-8-14 15:44
read(1,30) (temp1,temp2,j=1,ns)
改成
read(1,*) (temp1,temp2,j=1,ns)

之前改过啦 然后运行之后会报 Segmentation fault (core dumped) 错误
作者: kyra    时间: 2023-8-16 20:01
本帖最后由 kyra 于 2023-8-16 20:03 编辑

那需要更多代码才能判断问题。
一定不能抱着这种态度:欸,出错了。这里改改试试。哎呀,改了这里好像有点变化。
正确的态度应该是:欸,出错了。错误引起的原因是什么?应该如何改?这样改了之后为何能解决问题?

作者: 风平老涡    时间: 2023-8-16 23:49
需要知道temp1和temp2的定义,如果是数组,大小是多少。
作者: zhea5    时间: 2023-8-17 16:45
kyra 发表于 2023-8-16 20:01
那需要更多代码才能判断问题。
一定不能抱着这种态度:欸,出错了。这里改改试试。哎呀,改了这里好像有点 ...

谢谢 目前解决了 问题找到了 内存分配不足的原因
作者: zhea5    时间: 2023-8-17 16:46
风平老涡 发表于 2023-8-16 23:49
需要知道temp1和temp2的定义,如果是数组,大小是多少。

感谢帮助 目前解决了 内存分配不足的原因




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2