将预处理指令引入Cray编译器的Fortran代码的正确方法

鲍勃·萨卡门托

我正在尝试使用Cray编译器编译Fortran代码。我在代码中有一个标准的预处理ifdef块:

#ifdef DEBUG
!  print extra info
#endif

克雷根本不喜欢这样。告诉我

#ifdef DEBUG
^            
ftn-100 crayftn: ERROR BALANCE_DATA, File = balance_data.f90, Line = 9, Column = 1 
  This statement must begin with a label, a keyword, or an identifier.
#endif
^      
ftn-100 crayftn: ERROR BALANCE_DATA, File = balance_data.f90, Line = 11, Column = 1 
  This statement must begin with a label, a keyword, or an identifier.

有谁知道我怎样才能使Cray编译器满意?(此代码BTW使用intel和gcc可以正常编译。)

弗拉基米尔F

这些宏不是标准Fortran的一部分。编译器必须以某种方式告诉执行预处理器(cppfpp什么的习惯,他们不同)。

对于Cray,您应该-e Z在文件扩展名中使用或使用大写字母F。对于任何新的编译器,请始终查阅手册。但是,crayftn的手册页非常不完整,它确实提到了该选项,但是只是间接地。必须阅读完整的文档,例如在RussF提供链接中

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

哪个gfortran编译器标志与警告“非法预处理器指令”相关联?

如何区分预处理器和编译器指令?

C用于指定ARM或Thumb模式的预处理器/编译器指令?

编译器未找到预处理器指令(定义)

如何使用VS编译器将预处理后的文件编译为目标文件

使用 CMake 时处理编译器标志的正确方法

编译器开关还是预处理器开关?

具有预处理器的C ++“编译器”

如何从预处理程序宏识别平台/编译器?

强制编译器在预处理期间进行算术计算

用不同的编译器指令编译DELPHI代码

使用预处理器指令从C代码进行AST

通过在实际的C / C ++源文件中包括预处理器构建指令的方式来编译C / C ++代码

Fortran代码(.f95)在Windows g95编译器中可正常编译,但在Ubuntu gfortran中可正确编译

Clang编译器错误:预处理器表达式开头的令牌无效

编译器是否使用C预处理器输出中的行标记?

Dart中有编译器预处理器吗?

为什么引入`std :: launder`而不是让编译器来处理呢?

使用编译器目标Java 8编译Java 9中引入的方法

以某种方式告诉编译器“不处理代码行”

如何获得触发内部编译器错误的预处理行?

Python编译器如何使用声明的编码预处理源文件?

如何在整个编译过程中遵循预处理器指令

C预处理器包含指令

为什么C#编译器将il代码留给条件方法?

预处理器,汇编器和链接器是否是编译器的一部分?

IF运算符的不正确的预处理器指令错误

Inno Setup-如何在[代码]中使用预处理器指令?

从编译器获取参数时,有没有办法避免预处理器宏?