预处理器错误警告的常见原因
Usual causes for bad preprocessor warning
我不熟悉导致以下警告的原因:
warning #5117: Bad # preprocessor line
#include "rtt_alloc_rad.interface"
我已经查看了明显的问题,例如 #include
向左冲洗。我很想获得一些关于在哪里寻找可能原因的提示。
我使用的是 Intel 编译器:ifort 版本 15.0.1
该代码带有链接到外部库的大型气候模型。
很难知道要 post 做什么,但警告来自以下代码段:
MODULE rtt_interface
use rtt_types, only : rtt_options, rtt_coefs, profile_Type, &
transmission_Type, radiance_Type,rtt_coef_scatt_ir,rtt_optpar_ir, &
rtt_chanprof, rtt_emissivity, rtt_reflectance
use rtt_const, only : errorstatus_success, errorstatus_fatal, &
platform_name,inst_name
use rtt_unix_env, only : rtt_exit
use cosp_kinds, only : wp,wi,wl
IMPLICIT NONE
real(wp), parameter :: tmin_baran = 193.1571_wp
#include "rtt_alloc_rad.interface"
#include "rtt_alloc_transmission.interface"
#include "rtt_alloc_prof.interface"
#include "rtt_dealloc_coefs.interface"
#include "rtt_direct.interface"
#include "rtt_print_opts.interface"
! snip...
END MODULE rtt_interface
我用标志编译:f90flags=-g -fp-model precise -traceback -r8 -O0
留言
warning #5117: Bad # preprocessor line
可能有点误导。它表明代码已经通过了预处理器,而预处理器不满意。情况并非总是如此:当源文件中出现预处理器指令但未调用预处理器时,ifort 也会生成此警告消息。
要确保预处理器是 运行,您有几个选择:
- 在编译命令中添加标志
-fpp
(或-cpp
);
- 使用后缀
.F90
(注意大写)命名自由格式源文件。
我不熟悉导致以下警告的原因:
warning #5117: Bad # preprocessor line
#include "rtt_alloc_rad.interface"
我已经查看了明显的问题,例如 #include
向左冲洗。我很想获得一些关于在哪里寻找可能原因的提示。
我使用的是 Intel 编译器:ifort 版本 15.0.1
该代码带有链接到外部库的大型气候模型。 很难知道要 post 做什么,但警告来自以下代码段:
MODULE rtt_interface
use rtt_types, only : rtt_options, rtt_coefs, profile_Type, &
transmission_Type, radiance_Type,rtt_coef_scatt_ir,rtt_optpar_ir, &
rtt_chanprof, rtt_emissivity, rtt_reflectance
use rtt_const, only : errorstatus_success, errorstatus_fatal, &
platform_name,inst_name
use rtt_unix_env, only : rtt_exit
use cosp_kinds, only : wp,wi,wl
IMPLICIT NONE
real(wp), parameter :: tmin_baran = 193.1571_wp
#include "rtt_alloc_rad.interface"
#include "rtt_alloc_transmission.interface"
#include "rtt_alloc_prof.interface"
#include "rtt_dealloc_coefs.interface"
#include "rtt_direct.interface"
#include "rtt_print_opts.interface"
! snip...
END MODULE rtt_interface
我用标志编译:f90flags=-g -fp-model precise -traceback -r8 -O0
留言
warning #5117: Bad # preprocessor line
可能有点误导。它表明代码已经通过了预处理器,而预处理器不满意。情况并非总是如此:当源文件中出现预处理器指令但未调用预处理器时,ifort 也会生成此警告消息。
要确保预处理器是 运行,您有几个选择:
- 在编译命令中添加标志
-fpp
(或-cpp
); - 使用后缀
.F90
(注意大写)命名自由格式源文件。