zhea5 发表于 2023-8-14 13:58:47

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:33

read(1,30) (temp1,temp2,j=1,ns)
改成
read(1,*) (temp1,temp2,j=1,ns)
试试?

99%的情况下,read不需要用格式。直接表控格式就行了。

zhea5 发表于 2023-8-16 14:50:32

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:14

本帖最后由 kyra 于 2023-8-16 20:03 编辑

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

风平老涡 发表于 2023-8-16 23:49:04

需要知道temp1和temp2的定义,如果是数组,大小是多少。

zhea5 发表于 2023-8-17 16:45:45

kyra 发表于 2023-8-16 20:01
那需要更多代码才能判断问题。
一定不能抱着这种态度:欸,出错了。这里改改试试。哎呀,改了这里好像有点 ...

谢谢 目前解决了 问题找到了 内存分配不足的原因

zhea5 发表于 2023-8-17 16:46:27

风平老涡 发表于 2023-8-16 23:49
需要知道temp1和temp2的定义,如果是数组,大小是多少。

感谢帮助 目前解决了 内存分配不足的原因
页: [1]
查看完整版本: Fortran runtime error: Bad value during floating point read