专栏名称: 锐多宝
遥感技术教程、资讯与前沿论文
目录
相关文章推荐
国民弟弟的跨境十年  ·  嘉信证券开户全流程实操指南(超详细版) ·  昨天  
国民弟弟的跨境十年  ·  嘉信证券开户全流程实操指南(超详细版) ·  昨天  
中汇信达深圳税务师事务所  ·  中国人民银行 ... ·  2 天前  
中汇信达深圳税务师事务所  ·  中国人民银行 ... ·  2 天前  
51好读  ›  专栏  ›  锐多宝

mozbc安装、使用与自定义气体的教程

锐多宝  · 公众号  ·  · 2025-03-09 19:25

正文

mozbc安装、使用与自定义气体的教程

简介

mozbc用于生成气象化学模型 WRF-CHEM化学初始场wrfinput和边界条件wrfbdy 的NCAR官方工具。

简单来说,就是一个插值和填充wrfinput和wrfbdy的NC数据的工具。那为什么要用mozbc?不就是把初始场的值插值到边界上吗?也可以自己写插值代码啊,但一般比不上mozbc。

因为mozbc还考虑了:

  • mozbc 能自动计算并填充这些趋势项,确保边界条件的完整性;
  • mozbc 可以根据模拟时间段进行时间插值;
  • mozbc 能根据压力层数据,处理全球模型与 WRF 模型之间的垂直坐标转换;
  • 能处理多种全球模型和化学物种,在mozbc.inp设置各化学要素的自定义计算。

安装

软件下载地址:https://www.acom.ucar.edu/wrf-chem/download.shtml

在bashrc中根据编译器设置export FC=ifort  或者 export FC=gfortran,然后指定NETCDF_DIR的安装路径路径,使用csh进行安装:

csh make_mozbc

这时,可能会有一个报错:

In function nf_put_att_text_': nf_attio.F90:(.text+0x1b5): undefined reference to nc_put_att_text'

修改: 打开make_mozbc,将

set ar_libs = -lnetcdf




    

if( -e ${NETCDF_DIR}/lib/libnetcdff.a ) then
  set ar_libs = "${ar_libs} -lnetcdff"
endif

改为:

set ar_libs = ""
if( -e ${NETCDF_DIR}/lib/libnetcdff.a ) then
  set ar_libs = "-lnetcdff"
endif
set ar_libs = "${ar_libs} -lnetcdf -ldl -lm -lz"

然后就可以正常安装了。

下载化学初始场数据

(1)CAM-Chem,网址:https://www.acom.ucar.edu/cam-chem/cam-chem.shtml

可以下载的时间范围为 January 1, 2001 to December 31, 2020.

CAM-Chem主要是对流层和平流层的化学和气候

(2)WACCM,网址:https://www.acom.ucar.edu/waccm/download.shtml

可以下载的时间范围为 from 20 August 2019 until 2 weeks ago.

WACCM则扩展到整个大气层,包括中层和高空大气。注意WACCM最多只能下载31天的数据,每一天的数据大概是200M。请求的数据越多,获得下载链接的速度也就越慢。我请求的6天,花了16分钟。

插值

配置参数文件,可以使用这个方便的脚本:

https://github.com/anikfal/atmospheric_science/tree/main/wrfchem_tools/mozbc

可以快速地生成mozbc.inp配置文件。

./set_mozbc_input.sh

然后生成了mozbc.inp的运行脚本

&control

do_bc     = .true.
do_ic     = .true.
domain = 3
dir_wrf = '...test/em_real/'
dir_moz = '.../mozbc_install/mozbc/'
fn_moz  = 'waccm-20250305003830868585.nc'
moz_var_suffix  = ''

spc_map =
/
~      

fn_moz可以是但个文件也可以是多个文件开始文件,如果单个时间没有覆盖wrfbdy的全部时间,则会自动添加序列号进行fn_moz文件读取,因此需要保证插值的文件的时间范围完全覆盖初始场和背景场的整个时间段。

然后再运行:

./mozbc < mozbc.inp > mozbc.out

mozbc的插值过程







请到「今天看啥」查看全文