nagfor预处理器的用户定义错误

时间:2015-04-13 15:32:30

标签: compilation fortran preprocessor nag-fortran

如果使用不受支持的fortran编译器,我试图中止编译。 nagfor预处理器定义了宏NAGFOR,因此我编写了以下测试程序:

program foo

  implicit none

#ifdef NAGFOR
  PRINT *, "Hello from nagfor"
#else
#error "Compiler not supported"
#endif

end program foo

当我使用gfortran或ifort编译时,我收到了预期的错误消息

$ gfortran foo.F90
foo.F90:8:2: error: #error "Compiler not supported"

$ ifort foo.F90
foo.F90(8): #error:  "Compiler not supported"

但是nagfor给出了不同的错误

$ nagfor foo.F90
NAG Fortran Compiler Release 5.3.1(907)
"foo.F90", line 8: error: unknown fpp directive.

我无法在nagfor fpp documentation中找到如何创建错误的提及,因此#error可能不存在。在这种情况下,是否有另一种方法可以获得相同的效果?

1 个答案:

答案 0 :(得分:1)

我在NAG编译器上工作。 fpp在操作(和功能)方面非常轻量级。它起源于太阳;我们使用的是基于http://netlib.org/fortran/fdfpp.tgz的netlib版本的版本。

fpp手册(http://www.nag.co.uk/nagware/np/r60_doc/fpp.html)未将#error文档视为您所支持的文档。

正如francescalus建议的那样,实现你想要的东西的最好方法是使用

的内容。
program foo

  implicit none

#ifdef NAGFOR
  PRINT *, "Hello from nagfor"
#else
  error "Compiler not supported"
#endif

end program foo