附录 B 错误消息代码说明
对应原文印刷页码 B-1 至 B-4。
AERMOD 路径标识、关键字、消息代码、模块名称和模型原始输出保留英文。
B.1 引言
在 AERMOD 开始执行大量计算,以求取用户指定的预测结果(例如浓度和沉降)之前,模型会对输入控制文件进行一系列检查,以识别可能导致 AERMOD 无法成功完成运行的问题。
检查内容包括但不限于:
- 控制文件的结构和语法;
- 关键字或参数是否使用正确;
- 是否使用了未定义的关键字或参数;
- 是否缺少必需关键字;
- 是否指定了相互冲突的选项。
AERMOD 的程序设计还尽可能消除了运行期间发生错误的可能性,例如“除以零”,并会识别值得怀疑的输入数据。
模型以两种方式向用户报告错误和其他消息:
- 在主结果输出文件中提供消息汇总;
- 根据用户选择,生成单独的详细消息文件。
消息汇总
无论用户是否选择生成详细消息文件,AERMOD 都会在结果输出文件中输出消息汇总。
消息汇总表包括:
- 每种消息类型的数量;
- 所有致命错误的详细清单;
- 所有警告消息的详细清单。
在模型设置处理期间,如果没有产生错误或警告,模型会直接报告:
SETUP Finishes Successfully.
即“设置阶段成功完成”。
详细消息文件
AERMOD 可以把模型产生的全部消息保存到单独的输出文件中。
用户可以在 CO 控制路径中指定 ERRORFIL 关键字,并在其后提供文件名,以启用该选项。
例如,以下控制语句会将全部错误消息保存到名为 errormsg.out 的 ASCII 文本文件中:
CO STARTING
ERRORFIL errormsg.out
CO FINISHED
B.2 输出消息汇总
AERMOD 的标准输出文件中包含两处消息汇总。
第一处消息汇总:设置处理完成后
第一处消息汇总位于:
- 输入控制文件内容回显之后;
- 输入数据汇总之前。
该汇总采用哪一种形式,取决于:
- 设置处理期间是否产生致命错误或非致命警告;
- 用户在
CO RUNORNOT语句中选择了RUN还是NOT。
如果满足以下条件:
- 设置处理期间没有产生错误或警告;
- 用户选择了
RUN;
模型仅报告:
SETUP Finishes Successfully.
如果出现以下任一种情况:
- 设置处理期间产生了致命错误;
- 设置处理期间产生了警告;
- 用户选择了
NOT,即只检查而不执行计算;
模型会输出更详细的汇总。该汇总包括:
- 每种消息类型的数量;
- 每一条致命错误消息;
- 每一条警告消息。
第二处消息汇总:完整模型运行结束后
第二处消息汇总表位于标准结果输出文件的最后。
它汇总完整模型运行期间产生的消息,包括:
- 设置处理阶段;
- 模型计算运行阶段。
图 B-1 AERMOD 消息汇总示例
*** Message Summary For The AERMOD Model Setup ***
--------- Summary of Total Messages ---------
A Total of 0 Fatal Error Message(s)
A Total of 0 Warning Message(s)
A Total of 0 Information Message(s)
******** FATAL ERROR MESSAGES ********
*** NONE ***
******** WARNING MESSAGES ********
*** NONE ***
***********************************
*** SETUP Finishes Successfully ***
***********************************
该示例表示:
- 致命错误数量为 0;
- 警告数量为 0;
- 信息消息数量为 0;
- 模型设置阶段成功完成。
B.3 消息布局说明
在处理输入控制文件语句和执行模型计算时,AERMOD 可以产生三类消息。
1. 错误消息(E)
错误消息会停止后续处理,但模型仍可能继续检查输入,以识别更多错误条件。
消息类型标识:
E
2. 警告消息(W)
警告不会停止处理,但表示可能存在错误或可疑条件。
消息类型标识:
W
3. 信息消息(I)
信息消息可能对用户有参考价值,但不会直接影响结果的有效性。
消息类型标识:
I
B.3.1 消息的统一结构
AERMOD 消息采用统一结构,包括:
- 产生消息的路径 ID;
- 消息类型;
- 三位数字消息代码;
- 输入控制文件行号;
- 对于运行时消息,则为气象文件小时序号;
- 产生消息的程序模块名称,例如子程序名称;
- 与消息代码对应的详细说明;
- 最多 8 个字符的简短提示,用于帮助用户判断问题来源。
示例
以下是一条由 CO 路径产生的详细消息:
CO E1008 EXPATH: Invalid Pathway Specified. The Troubled Pathway is FF
其含义为:
CO:控制路径;E:错误消息;100:数字消息代码;8:输入控制文件的第 8 行;EXPATH:产生该消息的代码模块;Invalid Pathway Specified.:指定了无效路径;The Troubled Pathway is FF:提示出问题的路径为FF。
B.3.2 消息字段与列位置
原文用以下通用形式表示消息布局:
PW Txxx LLLL mmmmmm: MESSAGE Hints
各字段的位置和含义如下:
| 字段 | 列位置 | 含义 |
|---|---|---|
PW | 1–2 | 路径 ID;可为 CO、SO、RE、ME、EV 或 OU。气象数据提取消息使用 MX,模型计算消息使用 CN |
T | 4 | 消息类型:E、W 或 I |
xxx | 5–7 | 三位数字消息代码 |
LLLL | 9–12 | 设置阶段消息对应输入控制文件的行号;运行时消息对应气象文件的小时序号 |
mmmmmm | 14–19 | 产生消息的代码模块名称 |
MESSAGE | 22–71 | 与该消息代码对应的详细消息 |
Hints | 73–80 | 用于判断错误性质和发生位置的简短提示,例如关键字或路径 |
按列位置展开,可表示为:
列: 1 2 4 5 6 7 9 10 11 12 14------19 22----------------71 73----80
P W T x x x L L L L m m m m m m 详细消息 简短提示
B.3.3 INCLUDED 外部文件中的行号
如果错误发生在外部引入文件的处理过程中,例如:
SO INCLUDED
或:
RE INCLUDED
消息中的行号表示外部引入文件中的行号,而不是主控制文件中的行号。
处理逻辑为:
- 开始读取外部数据前,模型保存主控制文件当前行号;
- 处理外部文件时,消息报告外部文件内部的行号;
- 返回主控制文件后,模型恢复此前保存的主文件行号。
三种消息类型分别使用以下字母表示:
| 标识 | 类型 |
|---|---|
E | 错误(Error) |
W | 警告(Warning) |
I | 信息(Informational) |