从 fortran 代码中清除预处理器条件

Posted

技术标签:

【中文标题】从 fortran 代码中清除预处理器条件【英文标题】:Clean preprocessor conditionals from fortran code 【发布时间】:2018-10-24 01:31:23 【问题描述】:

我使用一个非常长的 Fortran 代码,其中充满了预处理器 (#if) 条件,有没有办法编译它并仅使用满足条件的部分代码获取源文件?

【问题讨论】:

为什么不直接运行预处理器呢? 为什么你想这样做? 【参考方案1】:

正如 chw21 所说,您可以直接运行预处理器。 cpp(带有正确的标志)或fpp 命令,取决于您的编译器。

因为你可能不确定正确的标志,你也可以让编译器为你做这件事。在 GCC (gfortran) 中,它是 -E 标志,它将强制编译器在预处理后停止。您必须将标准输出重定向到文件,因为预处理后的代码会返回到标准输出。

【讨论】:

谢谢你们,Vladimir 和 chw21。 fpp -P src.F src_clean.F 完成了这项工作。 如果您对@VladimirF 的回答感到满意,请接受。

以上是关于从 fortran 代码中清除预处理器条件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Fortran 中将 OpenACC 与 cublasDgetrfBatched 接口?

力学 Fortran 预处理器

将 Fortran 转换为 C 或 C++

Fortran 预处理器指令用法

C #include语句在Fortran代码中做了什么? [关闭]

预处理器和使用关联