首页 文章

如何在fortran的make文件中使用if语句编译代码?

提问于
浏览
1

我使用fortran代码编写我的代码 . 我在循环中使用子程序 . 并且子程序的名称对于我的各种运行是不同的(我已经编写了所有子程序) . 因此,每当我想为不同的情况运行我的代码时,我必须相应地更改子程序的名称 . 我不想一次又一次地修改我的代码 . 我想要两个写一个全局代码 . 我可以在我的代码中使用所有子例程和“If语句” . 在这种情况下,我不必每次都修改我的代码 . 但是通过这种方式,每个步骤都会运行一个额外的if语句 . 是否有可能以某种方式编写代码,以便我给出一些参数的值,并且代码仅使用我想要的子程序编译任何额外的循环或语句 . 或者我们可以通过在make文件中使用if语句来实现 . 谢谢

2 回答

  • 2

    你有几个选择 .

    • 这不符合您的问题直接要求,但是如果选择正确子程序的if语句通常成本可以忽略不计 . 使用确定要使用的子例程的输入文件是拥有一个可处理多个案例的可执行文件的好方法 .

    • 有Fortran预处理器;使用诸如fpp之类的预处理器是使编译代码以定位特定子例程的正确方法 .

    • 对于脚本语言来说,这是一个很大的问题;如果你不喜欢处理字符串,这可能是你的机会!我写了一个程序bake,因为我遇到了类似你的问题 . 制作一个程序来管理我的Fortran代码给了我很好的编写Python的经验,这就是我现在每天都在使用的 . 欢迎您使用烘焙,但您可能想制作自己的烘焙食品 .

  • 1

    Linux上的GNU Fortran曾经有能力使用条件 #define#ifdef 和类似的方式运行C预处理器

    为此,您必须将Fortran代码扩展设置为.F或.F90(注意大写 F ) .

    UPDATE

    它(C preproscessor)可用于任何具有显式GNU fortran选项-cpp的扩展名的fortran文件

相关问题