gpt4 book ai didi

compilation - gfortran 中的条件编译

转载 作者:行者123 更新时间:2023-12-01 13:39:50 40 4
gpt4 key购买 nike

我想知道是否可以选择 Fortran 95 例程的不同部分进行编译。

例如,如果我将某个标志传递给 gfortran,那么编译器会选择将哪个部分用于某个函数。我知道我可以在例程中使用 if 来做到这一点,但缺点是由于速度问题,我不希望程序一直运行 if。我想解决方案应该类似于 this one

我正在专门使用一个程序来计算多体系统(例如,一百万)中的能量。然后我不想每次在编译时需要使用不同的能量定义时都放一个 if

我希望这是可能的,我的问题很清楚。

最佳答案

您可以使用类似 C 的预处理器。 -cpp 命令行选项到您的命令行。默认情况下不启用该选项。 (根据下面的 Vladimir F 评论)

关于该选项的详细信息:

https://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html

然后你可以像你指出的那样做,所以:

#ifdef <some-var>
code when <some-var> is true
#elsif <other-var>
code when <other-var> is true
#endif

按要求。

this page 上有更多带有实际代码的示例。

此外,与 C/C++ 一样,您可以在命令行上使用 -D 选项定义宏:
gfortran -DCASE1=3 ...

这将使用值 CASE1 定义 3 。如果未指定值,则 1 将自动分配给宏。这记录在同一页面上。

关于compilation - gfortran 中的条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41233923/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com