Fortran Coder

标题: 修改软件代码出错 [打印本页]

作者: HYK    时间: 2022-3-8 21:21
标题: 修改软件代码出错
科研需要,得修改软件代码,但是刚学几天Fortran,实在是不知道怎么改。

8a946f531f7d1b20474cca040f38af4.png (270.58 KB, 下载次数: 185)

8a946f531f7d1b20474cca040f38af4.png

作者: vvt    时间: 2022-3-9 08:20
图片中能看到的第一个错误
(可能之前还有错误,但图片中没有显示,如果是这样,你需要从编译的第一个错误开始修改)

unclassifiable statement 语句不合适,需结合代码判断。

a=1 b=2 c=3 不能这样写,需加上回车,或分号间隔:a=1; b=2; c=3......
作者: HYK    时间: 2022-3-9 12:41
感谢您的帮助,这是我的代码,和出现的错误,您能再帮我看看吗
C:\Users\HYK\Desktop\1.png
C:\Users\HYK\Desktop\2.png

2.png (276.98 KB, 下载次数: 177)

2.png

1.png (309.61 KB, 下载次数: 184)

1.png

作者: HYK    时间: 2022-3-9 12:45
HYK 发表于 2022-3-9 12:41
感谢您的帮助,这是我的代码,和出现的错误,您能再帮我看看吗

所有的错误都是Unclassifiable statement at (1) 并且都是energy那两行的错误
作者: fcode    时间: 2022-3-10 08:36
write(1,"(12e20.10)") energy(list(ll),1) ; rate_scatt(1,ll)
改成逗号
write(1,"(12e20.10)") energy(list(ll),1) , rate_scatt(1,ll)
作者: HYK    时间: 2022-3-10 15:46
谢谢您,但是之前是逗号不行我才改成分号的,还有什么别的原因吗
作者: 风平老涡    时间: 2022-3-11 13:16
一个语句分成多行需要续行符(&),分号改逗号。
         write(1,"(12e20.10)")  &
energy(list(ll),1), rate_scatt(1,ll),。。。 &
energy(list(ll),4), rate_scatt(4,ll),。。。
作者: HYK    时间: 2022-3-12 14:41
太感谢您了,编译成功了,但是又出了问题

cb8939bcc18e1015e00069973fe79a5.png (299.32 KB, 下载次数: 186)

cb8939bcc18e1015e00069973fe79a5.png

作者: 风平老涡    时间: 2022-3-12 22:44
用断点跟踪法去找出错的地方,俗称 debug。可以用debug软件,比如gb或valgrind找出错的地方。也可以在源程序中的不同部位插入print语句,编译并运行,逐步找到程序停止的地方。
作者: HYK    时间: 2022-3-13 17:03
好的谢谢您,我在学习valgrind了




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