预处理Fortran代码时保留行号

时间:2018-02-19 01:23:40

标签: fortran preprocessor

我继承了使用fpx3进行预处理的10K行Fortran代码。此时我应该说我没有太多的Fortran经验,这是我第一次处理具有预处理器的代码。

代码工作正常,但预处理运行时,会创建不保留行总数的辅助Fortran文件(例如,main.f90创建t.main.f90)。当然,原因是在预处理(IF-ELSE子句,预处理指令等)时会丢失一些代码。

这很好,除了当我在代码中遇到错误时,我从错误中得到的行号是指预编译的代码(例如,t.main.90)而不是原始代码。 / p>

这不是一个主要问题,但对于几乎所有的bug我必须检查一行(比如t.main.f90的第80行)并手动尝试找到原来的这一行(让我们说它最终是main.f90的第92行。我试图通过告诉fpx3对未使用的行进行评论而不是将其丢弃来试图找到解决方法,但我在fpx3在线找不到太多信息。

最好的解决方法是什么?

P.S。:我不知道它是否重要,但我正在使用ifort进行编译。

1 个答案:

答案 0 :(得分:0)

尝试-fixed为.f90文件假定为-free(自由格式),并且已修复保留前几列和第6列中的延续。

如果右侧有数字,那么不是-132,而是-72或-80。不包括数字为"可编辑"码。我使用-132,所以你必须查找正确的开关。