在Fortran中从Makefile确定变量

时间:2019-03-18 10:15:12

标签: macros fortran c-preprocessor

我想将数据与!DIR$ ATTRIBUTES ALIGN:NBYTE::X对齐,其中NBYTE在编译时已定义。 我目前在每个源文件的顶部都有

 #ifndef NBYTE
  #define NBYTE 64
 #endif

但是,如果只能在各处使用NBYTE变量,就不能定义它。 所以我的两个问题是:

  1. 是否可以仅定义一次宏并将其在各处使用,而无需在每个源文件中包含文件或宏?

  2. 我可以在Makefile中定义变量并将其用于我的Fortran代码中吗?

1 个答案:

答案 0 :(得分:2)

大多数编译器允许您使用C类型的预处理器预处理源。同时,它们允许您通过编译器的命令行传递预处理器宏。在gfortran中,您可以使用以下语法:

  

-Dname=definition:对定义的内容进行标记和处理,就好像它们出现在#define指令的第三翻译阶段中一样。特别是,该定义将被嵌入的换行符截断。