Fortran Coder

标题: 用fortran读取txt文件,只要txt文件里有回车,就会运行失败 [打印本页]

作者: wsnqs    时间: 2021-7-2 22:36
标题: 用fortran读取txt文件,只要txt文件里有回车,就会运行失败
代码如下
DO nSource=1,SourceNumber(1)
        READ(UNIT=10,FMT=*) SourcePositionOfMain(nSource,1),SourcePositionOfMain(nSource,2),SourcePositionOfMain(nSource,3),SourcePositionOfMain(nSource,4),SourcePositionOfMain(nSource,5),SourcePositionOfMain(nSource,6)
    END DO

txt文件是别人的,别人也用了回车符,但是如果是我自己输入回车,就会报错。

这是txt文件,只有一行的时候可以,然后回车运行就会出问题

错误是list-directed I/O syntax error,我查了一下是输入数据不正确。例如从文件或字符串中读取整型或浮点数数据,而遇到非数字的符号,比如“abc”
但是我只是输入了一个回车符,我试验过了,就是回车符的问题
很疑惑,求解答,谢谢!

作者: fcode    时间: 2021-7-4 09:47
DO nSource=1,SourceNumber(1)
        READ(UNIT=10,FMT=*) SourcePositionOfMain(nSource,1),SourcePositionOfMain(nSource,2),SourcePositionOfMain(nSource,3),SourcePositionOfMain(nSource,4),SourcePositionOfMain(nSource,5),SourcePositionOfMain(nSource,6)
    END DO

可简写为
   DO nSource=1,SourceNumber(1)
        READ(UNIT=10,FMT=*) SourcePositionOfMain(nSource,1:6)
    END DO


请给出你的 txt 的文件内容。
作者: wsnqs    时间: 2021-7-5 23:04
fcode 发表于 2021-7-4 09:47
DO nSource=1,SourceNumber(1)
        READ(UNIT=10,FMT=*) SourcePositionOfMain(nSource,1),SourcePosit ...

txt文件内容我已经贴出来了,就在上面主贴,我不会在回复里贴图,回复贴图要用链接,麻烦您看一眼主楼
作者: fcode    时间: 2021-7-6 19:10


这张图里,第一行的内容,也是文件的内容吗?
SourcePositionOfMain(SUM(SourceNumber(1:3))+1:SUM(SourceNumber(1:4)),6)

如果是,你的代码里,是否有语句读取或跳过这一行?
作者: wsnqs    时间: 2021-7-8 22:16
fcode 发表于 2021-7-6 19:10
这张图里,第一行的内容,也是文件的内容吗?
SourcePositionOfMain(SUM(SourceNumber(1:3))+1:SUM(Sourc ...

有的
READ(UNIT=10,FMT="(A200)") ParemeterCardTemp
    DO nSource=1,SourceNumber(1)
        READ(UNIT=10,FMT=*) SourcePositionOfMain(nSource,1),SourcePositionOfMain(nSource,2),SourcePositionOfMain(nSource,3),SourcePositionOfMain(nSource,4),SourcePositionOfMain(nSource,5),SourcePositionOfMain(nSource,6)
    END DO
    READ(UNIT=10,FMT="(A200)") ParemeterCardTemp
前后都有,因为我是在unix系统并行机上计算的,所以我在怀疑是不是并行机的系统的问题
作者: fcode    时间: 2021-7-9 08:38
从你给的信息看不出问题来。
你可以把代码缩减,比如仅提取读取该文件的部分,让代码尽可能简短,且能重现问题。

然后,把简短的全部代码给出来,文件传上来。以便他人分析。
(你可以点下方的大橘色按钮“回复”,或者快捷回复框右上角的“高级模式”,来上传附件。普通快捷回复无法上传。)




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