nagfor 预处理器的用户定义错误
User-defined errors with nagfor preprocessor
如果使用了不受支持的 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
不存在。在这种情况下,是否有其他方法可以达到相同的效果?
我在 NAG 编译器上工作。 fpp 旨在在操作(和功能)方面非常轻量级。它起源于Sun;我们使用的是基于来自 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
如果使用了不受支持的 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
不存在。在这种情况下,是否有其他方法可以达到相同的效果?
我在 NAG 编译器上工作。 fpp 旨在在操作(和功能)方面非常轻量级。它起源于Sun;我们使用的是基于来自 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