请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

新浪微博登陆

只需一步, 快速开始

QQ登录

只需一步,快速开始

搜索
查看: 568|回复: 11

WRF/DART同化流程

[复制链接] |关注本帖

新浪微博达人勋

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 今朝几朵白云生 于 2019-3-11 21:55 编辑

前段时间做了一些集合同化的工作,现在整理出来给刚接触WRF/DART的朋友一些参考。如有不当或错误的地方,敬请指正。
资料同化研究试验台(Data AssimilationResearch Testbed -DART)是美国国家大气研究中心(NCAR)资料同化研究部(Data Assimilation Research Section -DAReS)开发和维护的用于集成资料同化的开放平台。该平台提供基于集合滤波方法的多种模式接口,这里以我用的WRF模式为例说明WRF/DART的同化流程。DART支持的其他模式和各种观测类型可以查看Manhattan发行版的文档。
1.       DART下载与安装
官方推荐的安装方式是通过SVN来管理你的文件,但是绝大多数计算机群处于安全的考虑都不会允许普通用户通过网络和服务器交换数据。因此他们还提供下载压缩包用于本地安装的方法。DART压缩包的下载地址在这里,我用的版本为DART_Manhattan_r12989.tar.gz。解压之后(设置当前路径为$DART)第一步就是要配置$DART/build_templates/mkmf.template文件。具体内容是要指定netcdf库的路径和使用何种编译器,根据自己机器的实际情况进行配置即可。之后就是编译同化过程中要用到的可执行文件。进入$DART/models/wrf/work,将模板文件input.nml拷贝到当前目录,执行批量编译脚本quickbuild.csh,完成之后共有27个可执行文件。至此,DART安装完成。
2.       Testdata的说明
DART提供的Testdata下载地址在这里,解压之后(设置当前路径为$WORKDIR)要用到的子文件夹有icbc, obs_diag, rundir, scripts, output, perts, 和template。对于部分目录有必要做一些说明:
icbc(initial condition and boundary condition)包含提供初边界条件的grib文件,这里面提供GFS 2017042700-2017043018一日四次每个时刻00时和06时的预报文件。
rundir 集合同化的工作目录,add_bank_perts.ncl用于添加扰动;{input/output}_list_d01.txt记录背景/分析场文件名;input.nml记录控制滤波过程的namelist;new_advance_model.csh主要完成相邻两次观测时刻的模拟过程,将WRFOUT转换为DART格式的状态向量,为下次滤波过程提供prior文件。
output 包含各个时刻的观测文件,也是将来保存同化结果的目录。
perts 扰动库文件,共100个。add_bank_perts.ncl会随机调用这里的扰动库文件来生成集合样本。
template 包含WRF、WRF-3DVAR、集合滤波的namelist
3.       同化步骤(以下内容可以从WRF/DART tutorial页面找到)
1)       启动
将$DART/models/wrf/shell_scripts 下的所有脚本复制到$WORKDIR/scripts下
将WRF/run目录下除namelist.input之外的所有文件复制到$WORKDIR/rundir/WRF_RUN/
将WRFDA/var/run/be.dat.cv3(复制到目标路径下后记得改名为be.dat)以及da_wrfvar.exe也都复制到$WORKDIR/rundir/WRF_RUN/,如果用WRFDARANDOM生成扰动样本需要这样做,Testdata里用扰动库文件生成集合样本,可以略过这一步。
将之前编译好的DART可执行文件复制到rundir
2)       初始条件
根据scripts/param.csh脚本的描述修改变量,以适应自己机器的配置。
运行gen_retro_icbc.csh产生初边界条件
运行init_ensemble_var.csh产生集合样本,并输出为prior文件,为集合同化提供输入文件。
3)       准备观测资料
观测资料要处理成DART能够读取的格式,DART提供多种观测资料转换程序。后续有时间的话,我再把这部分内容补全。这里我们直接使用处理好的观测序列文件obs_seq.out
4)       循环同化
scripts/driver.csh是驱动循环同化的脚本,它里面调用了为滤波准备初始条件的prep_ic.csh脚本;产生滤波分析场的assimilate.csh脚本;产生集合平均的assim_advance_mem.csh脚本。注意:第一次运行集合滤波的时候,filter会读取inflation信息,一种是用fill_inflation_restart产生input_priorinf_{mean/sd}.nc,另一种是在input.nml里设置inf_initial_from_restart=false和inf_sd_initial_from_restart=false,即从input.nml读取inflation的相关信息。这里建议使用后者会方便一些,但是接的在之后的cycle里要将前两条改回true。

作为一个WRF/DART的粗略介绍,这里面没有包含资料处理和分析同化结果的内容,需要了解这部分内容的朋友可以从以上的链接中获取帮助。20190311

已有2人关注本帖

问题少女qqqin
密码修改失败请联系qq:937062711

新浪微博达人勋

 成长值: 3945
发表于 2019-3-10 21:54:41 | 显示全部楼层 |取消关注该作者的回复

回帖奖励 +10

围观dart~
密码修改失败请联系qq:937062711
回复

使用道具 举报

新浪微博达人勋

发表于 2019-3-13 09:58:28 | 显示全部楼层 |取消关注该作者的回复
chouchou{:5_213:}
密码修改失败请联系qq:937062711

新浪微博达人勋

发表于 2019-3-13 10:10:38 | 显示全部楼层 |取消关注该作者的回复
正在学习怎么运行WRF,来学习学习
密码修改失败请联系qq:937062711

新浪微博达人勋

发表于 2019-3-14 09:40:06 | 显示全部楼层 |取消关注该作者的回复

回帖奖励 +10

{:5_235:}
密码修改失败请联系qq:937062711
回复

使用道具 举报

新浪微博达人勋

发表于 2019-3-15 08:49:30 | 显示全部楼层 |取消关注该作者的回复

回帖奖励 +10

同围观dart~
密码修改失败请联系qq:937062711

新浪微博达人勋

发表于 2019-3-15 14:26:38 | 显示全部楼层 |取消关注该作者的回复

回帖奖励 +10

先收藏备用,感谢楼主~~~
密码修改失败请联系qq:937062711

新浪微博达人勋

发表于 2019-4-15 10:53:51 | 显示全部楼层 |取消关注该作者的回复

回帖奖励 +10

太赞了~!太赞了~!太赞了~!
密码修改失败请联系qq:937062711
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-4-25 15:55:53 | 显示全部楼层 |取消关注该作者的回复
您好~请问一下 我在quickbuild.csh时,报错
[@ln01 work]$ ./quickbuild.csh
rm: No match.
ls: No match.

---------------------------------------------------
wrf build number 1 is preprocess
....... Makefile is ready.
pgf90 -O -I/gpfsnewhome/zhangsw2/software/netcdf/netcdf-3.6.3/include  -c        ../../../assimilation_code/modules/utilities/types_mod.f90
pgf90 -O -I/gpfsnewhome/zhangsw2/software/netcdf/netcdf-3.6.3/include  -c        ../../../assimilation_code/modules/utilities/utilities_mod.f90
PGF90-F-0004-Corrupt or Old Module file /gpfsnewhome/zhangsw2/software/netcdf/netcdf-3.6.3/include/netcdf.mod (../../../assimilation_code/modules/utilities/utilities_mod.f90: 137)
PGF90/x86-64 Linux 10.6-0: compilation aborted
make: *** [utilities_mod.o] Error 2

我的$DART/build_templates/mkmf.template文件已经改了编译器为PGI netcdf路径也设置了
MPIFC = mpif90
MPILD = mpif90
FC = pgf90
LD = pgf90
不知道是为什么。请教您一下,十分感谢了!!
密码修改失败请联系qq:937062711
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-4-28 22:23:48 | 显示全部楼层 |取消关注该作者的回复
本帖最后由 今朝几朵白云生 于 2019-4-29 18:48 编辑
halakaka 发表于 2019-4-25 15:55
您好~请问一下 我在quickbuild.csh时,报错
[@ln01 work]$ ./quickbuild.csh
rm: No match.

我看不出你出现错误的原因。如果你已经按照WRF/DART tutorial的说明步骤,并且将input.nml拷贝到了$DART/models/wrf/work目录下面。建议尝试Intel编译器,我是用的Intel13一次编译通过。
密码修改失败请联系qq:937062711
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表