在Cray编译器的Fortran代码中引入预处理指令的正确方法
我试图用Cray编译器编译Fortran代码。我在代码中有一个标准预处理ifdef块:在Cray编译器的Fortran代码中引入预处理指令的正确方法,fortran,preprocessor,cray,Fortran,Preprocessor,Cray,我试图用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 lab
#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.
有人知道我怎样才能让克雷编译器开心吗?(顺便说一句,这段代码可以用intel和gcc编译。)这些宏不是标准Fortran的一部分。必须以某种方式告知编译器执行预处理器(
cpp
或fpp
或自定义的东西,它们确实不同)
对于Cray,您应该在文件扩展名中使用-ez
或大写F。对于任何新的编译器,请务必查阅手册。然而,crayftn的手册页非常不完整,它确实提到了该选项,但只是间接提到。必须查阅完整的文档,例如RussF提供的文档 这里有一个链接。