2.1 输入与输出文件控制
本节介绍 AERMOD 使用的各种输入和输出文件,并说明在 Microsoft Windows 个人计算机环境中如何控制输入与输出(I/O)。其中大部分内容同样适用于其他运行环境。
2.1.1 AERMOD 输入文件说明
运行 AERMOD 所需的两类基本输入文件为:
- 输入控制文件,其中包含模拟选项、污染源数据和受体数据;
- 气象数据文件,包括地表参数文件和独立的多层廓线参数文件。
此外,AERMOD 还可使用第三类文件,即以前一次运行保存的中间结果初始化模型,以便重新启动计算。
2.1.1.1 输入控制文件
输入控制文件包含用户指定的 AERMOD 运行选项,默认文件名为 AERMOD.INP。该文件还包括:
- 污染源参数数据;
- 污染源组信息;
- 受体位置定义;
- 气象数据文件的位置及相关参数;
- 输出选项。
控制文件中使用的关键字和参数详见第 3 章及附录 A。
2.1.1.2 气象数据文件
AERMOD 从两个独立文件中读取输入气象资料:
- 一个文件对应地表标量参数;
- 另一个文件对应多层气象廓线数据。
气象文件名和格式通过控制文件 ME 路径中的 SURFFILE 和 PROFFILE 关键字指定。
AERMOD 接受经过气象预处理程序 AERMET(EPA,2023c)处理的数据。数据以格式化 ASCII 文件存储,每条记录对应一个小时,并按时间顺序排列。
2.1.1.3 模型重新启动的初始化文件
AERMOD 可选择将中间结果保存到非格式化文件(有时称为二进制文件),以便在断电或用户中断运行后重新启动模型。因此,该非格式化文件也可作为初始化模型的输入文件。
这一功能由 CO 路径中的两个关键字控制:
SAVEFILE:将中间结果保存到文件;INITFILE:使用以前保存的文件初始化结果数组。
使用重新启动功能初始化模型时,用户应在 INITFILE 关键字后指定非格式化结果文件的名称。如果未提供文件名,默认使用 TMP.FIL。
2.1.2 AERMOD 输出文件说明
AERMOD 可以生成多种输出文件,包括:
- 模型结果主输出文件;
- 用于以后重新启动模型的中间结果非格式化文件;
- 面向特定用途的若干数据输出文件。
以下分别说明这些文件。
2.1.2.1 主输出文件
默认情况下,AERMOD 生成名为 AERMOD.OUT 的标准模型结果输出文件。用户也可以在命令提示符下执行 AERMOD 时指定其他文件名。该文件的内容和组织结构见图 2-5。
除非控制文件中出现 NO ECHO,主输出文件会复制输入控制文件的内容。控制文件中位于 NO ECHO 之前的内容仍会复制到输出文件中,而其后的内容不再复制。
输入内容回显之后,主输出文件依次给出:
- 控制文件设置消息汇总;
- 输入数据汇总;
- 模型计算结果;
- 各平均时间和污染源组的高值汇总表;
- 整次模型运行的消息汇总。
输入数据汇总按照控制文件各功能路径的顺序,包括:
- 模拟选项汇总;
- 污染源数据汇总;
- 受体数据汇总;
- 气象数据汇总。
如果模型实际执行了计算,随后将输出模型结果。结果汇总的具体内容及顺序取决于所选择的输出选项。
2.1.2.2 详细错误消息文件
用户可以通过 CO 路径中的 ERRORFIL 关键字,要求模型将详细错误消息及其他消息保存到单独文件中。
消息的格式和语法见附录 B。文件中的消息按照模型生成它们的先后顺序排列,并包含该次运行产生的所有消息类型。
2.1.2.3 模型重新启动的中间结果文件
AERMOD 可以选择将中间结果保存到非格式化文件,以便在断电或用户中断后重新启动模型。该文件随后可作为输入文件,对模型进行初始化。
这一功能由 CO 路径中的 SAVEFILE 和 INITFILE 关键字控制。
保存重新启动所需的中间结果时,用户在 SAVEFILE 关键字后指定非格式化结果文件的名称。用户可以:
- 指定一个文件名;
- 指定两个文件名,以交替保存;
- 不指定文件名。
未指定文件名时,默认文件名为 TMP.FIL。
如果只使用一个文件,每次保存时都会覆盖该文件。若程序恰好在文件打开并写入时中断,则该文件可能损坏或丢失。如果指定两个文件,模型会在相邻两次保存时交替写入两个文件,从而始终保留上一次较新的有效保存结果。
2.1.2.4 最大值/阈值文件
用户可要求 AERMOD 生成一个或多个文件,列出达到或超过用户指定阈值的浓度值。该功能由 OU 路径中的 MAXIFILE 关键字控制。
用户可以针对需要列出阈值超限结果的每一种“平均时间—污染源组”组合分别指定文件。每个文件首先包含若干标题记录,用于说明:
- 平均时间;
- 污染源组;
- 阈值。
随后,凡该平均时间和污染源组的结果达到或超过阈值,文件均生成一条记录。每条记录包括:
- 平均时间;
- 污染源组 ID;
- 阈值超限日期,即该平均时段的结束小时;
- 超限位置受体的
x、y、z坐标; - 旗杆受体高度;
- 浓度值。
阈值超限文件的结构详见附录 C。
模型以格式化文件方式显式打开用户选择的每个文件。文件名通过输入控制文件命令给出。用户可通过 MAXIFILE 记录中的可选参数 FUNIT 指定 Fortran 文件单元号。
用户指定的文件单元号必须不小于 34,通常建议不大于 100。若文件数量很多,或需要确保不存在文件单元冲突,可从 10,000 开始逐个递增。
如果未指定文件单元号,模型按下式在内部确定:
$$ \mathrm{IMXUNT}=100+\mathrm{IGRP}\times 10+\mathrm{IAVE} $$
其中:
IMXUNT为 Fortran 文件单元号;IGRP为污染源组序号,即该组在控制文件中定义的顺序;IAVE为平均时间序号,即其在 CO 路径AVERTIME记录中的顺序。
当污染源组不超过 9 个、短期平均时间不超过 9 个时,该公式不会与模型使用的其他文件单元发生冲突。
2.1.2.5 用于后处理的顺序结果文件
用户可以要求 AERMOD 生成适用于后处理的一个或多个浓度结果文件。该功能由 OU 路径中的 POSTFILE 关键字控制。
用户可针对需要后处理的每一种“平均时间—污染源组”组合分别指定文件。对于每个请求的文件,可以选择:
- 适合后处理的非格式化文件;
- 便于将
x、y坐标和浓度值导入绘图软件的绘图格式文件。
采用非格式化文件时,每个文件由一系列顺序非格式化记录组成,记录所有计算平均时段、所有受体位置的结果。
采用绘图格式时,每个文件由格式化记录组成,列出每个受体的:
x坐标;y坐标;- 同期浓度值。
某些应用中,这些文件可能非常大,因此应仅在确有需要时使用,尤其是绘图格式。
两类后处理文件的结构详见附录 C。模型根据所选选项,以非格式化或格式化方式显式打开各文件。文件名通过输入控制文件命令给出。用户可以通过 POSTFILE 记录中的可选 FUNIT 参数指定文件单元号。
文件单元号的要求与前述相同:不小于 34,通常建议不大于 100;文件很多时可从 10,000 开始递增。
如果未指定文件单元号,模型按下式确定:
短期平均值:
$$ \mathrm{IPSUNT}=200+\mathrm{IGRP}\times 10+\mathrm{IAVE} $$
PERIOD 全时段平均值:
$$ \mathrm{IAPUNT}=300+\mathrm{IGRP}\times 10-5 $$
其中 IPSUNT 和 IAPUNT 为 Fortran 文件单元号,IGRP 和 IAVE 的含义同上。对于不超过 9 个污染源组和 9 个短期平均时间的情况,这些公式不会与模型其他文件单元冲突。
2.1.2.6 用于绘图的高值汇总文件
用户可要求 AERMOD 生成一个或多个文件,列出每个受体位置的最高浓度值,以便导入绘图软件绘制等值线图。该功能由 OU 路径中的 PLOTFILE 关键字控制。
用户可以针对每一种需要绘图的“平均时间—污染源组—高值名次”组合分别指定文件。
每个文件首先包含若干标题记录,说明:
- 平均时间;
- 污染源组;
- 高值名次。
随后,每个受体对应一条记录,包括:
- 受体位置的
x、y坐标; - 该位置对应名次的高值;
- 平均时间;
- 污染源组;
- 高值名次。
绘图文件的结构详见附录 C。模型以格式化方式显式打开每个绘图文件。用户可通过 PLOTFILE 记录中的可选 FUNIT 参数指定文件单元号。
如未指定文件单元号,模型使用以下公式:
短期平均值:
$$ \mathrm{IPLUNT}=(\mathrm{IVAL}+3)\times 100+\mathrm{IGRP}\times 10+\mathrm{IAVE} $$
PERIOD 全时段平均值:
$$ \mathrm{IPPUNT}=300+\mathrm{IGRP}\times 10 $$
其中:
IPLUNT、IPPUNT为 Fortran 文件单元号;IVAL为高值名次,最高值为 1,第二高值为 2,依此类推;IGRP为污染源组序号;IAVE为平均时间序号。
当污染源组和短期平均时间均不超过 9 个时,不会与其他文件单元冲突。
2.1.2.7 TOXX 模型输入文件
用户可要求 AERMOD 生成一个或多个非格式化文件,列出超过用户指定阈值的浓度值,供 TOXST 中的 TOXX 模型组件使用。该功能由 OU 路径中的 TOXXFILE 关键字控制。
用户可以针对每个需要阈值超限文件的平均时间分别指定文件。每个文件包含:
- 标题;
- 平均时间;
- 阈值;
- 受体网络信息;
- 任一污染源组结果达到或超过阈值的全部事件记录。
同时还会输出用于识别相应浓度值的:
- 平均时段,即一年中的小时序号;
- 污染源组编号;
- 受体编号。
用于 TOXST 的 TOXX 组件的阈值超限文件结构详见附录 C。模型将这些文件作为非格式化文件显式打开。用户可通过 TOXXFILE 记录中的可选 FUNIT 参数指定文件单元号。
若未指定文件单元号,则:
$$ \mathrm{ITXUNT}=300+\mathrm{IAVE} $$
其中 ITXUNT 为 Fortran 文件单元号,IAVE 为平均时间序号。对于最多 4 个短期平均时间的情况,该公式不会引起文件单元冲突。
用户还可要求 AERMOD 生成供 TOXLT 中 RISK 模型组件使用的输出。该功能同样由 TOXXFILE 关键字控制。用户可针对每一种“长期平均时间—污染源组”组合指定独立的 TOXXFILE。
在 AERMOD 中,TOXXFILE 也可用于 PERIOD 平均值。其输出结构与长期 PLOTFILE 很相似,区别是会对指定污染源组中的每个单独污染源分别输出结果。长期 TOXXFILE 的结构详见附录 C。
这些文件以格式化方式显式打开。如果没有指定文件单元号,模型使用:
长期平均值:
$$ \mathrm{ITXUNT}=500+\mathrm{IAVE}\times 10+\mathrm{IGRP} $$
PERIOD 全时段平均值:
$$ \mathrm{IPXUNT}=700+\mathrm{IGRP}\times 10 $$
其中:
ITXUNT、IPXUNT为 Fortran 文件单元号;IAVE为长期平均时间序号,按月、季节或季度及年度的顺序排列;IGRP为污染源组在 SO 路径中的定义顺序。
当污染源组不超过 9 个时,上述公式不会与模型使用的其他文件单元冲突。
2.1.3 文件输入与输出控制
2.1.3.1 在个人计算机上控制 I/O
AERMOD 默认将主输入控制文件和主打印输出文件分别设为:
AERMOD.INP
AERMOD.OUT
在命令提示符下执行模型时,用户也可通过命令行参数指定自定义的输入控制文件名和主输出文件名。
使用默认文件名时,典型运行命令为:
C:\>AERMOD
其中 C:\> 表示命令提示符;不同系统的提示符可能不同,也可能包含子目录。有关在命令提示符下运行 AERMOD 时指定自定义文件名的方法,见第 2.4.8 节。