该流程基于已经在Linux下安装好WRF和WPS
1 WPS 前处理:在模拟之前先确定模拟域(即模拟范围),并进行数据预处理(插值陆面数据,比如地形,土壤等数据;差插值气象数据到模拟域)
![](https://img-blog.csdnimg.cn/img_convert/0353c5b187ddd3d19f0892b1ed1ceba2.png)
Step 1 geogrid.exe
用以确定模拟区域,并将陆面数据插值到模拟区域。
首先需要进入WPS目录下,修改其中的namelist.wps,确定模拟区域:
cd WPS-4.4/
vi namelist.wps
namelist.wps内的主要内容为:
一共包括四个部分:share, geogrid, ungrib和metgrid
-
share 部分为一些基础信息,需要修改的主要包括嵌套层数(max_dom),模拟事件的开始结束时间(start_date, end_date),初始场数据的间隔时间(interval_seconds,单位为s),geogrid输出文件格式(io_form_geogrid,默认为2,表示netcdf)。
-
geogrid部分是嵌套地理信息,包括经纬度、格点数、投影方式等,其中有些数据是需要根据嵌套层数来进行修改和添加的,如parent_id(母区域ID,如第一层的母区域是它自己,即为1,第二层母区域为第一层,则也为1,第三层母区域为第二层,则为2),parent_grid_ratio(每一层区域之间的格距比例),i/j_parent_start(每一层在上一层中x/y方向的起始格点)、e_we/sn(每一层x/y方向的总格点数)等。‘geog_data_res’为地形数据精度 。
关于这部分的理解,可以参照下图:
![](https://img-blog.csdnimg.cn/img_convert/11f53310d03ca7076b68273589fa680b.png)
d02:e_we=(d01:e_we - d02:i_parent_start - d02:i_parent_end)*d02:parent_grid_ratio +1
d01: ,d02:表示模拟域对应的值。i_parent_end可根据需要进行设置,即图中?所表示的宽度。
eg:想设置 D02 和 D01 左侧的距离为 50, 右侧的距离为 50,那么 d02:e_we = (241 - 50 - 50)*3 + 1 = 424,当然也可以设置左侧距离为30,右侧距离为 20, 那么 d02:e_we = (241 - 30 - 20)*3 + 1 = 574。
Tips:每个模拟域之间的网格数不要小于5
该部分其他需要设置的参数如下图所示:
![](https://img-blog.csdnimg.cn/img_convert/a7781791275e76c1becfb100594f24cb.png)
-
ungrib部分是从grib文件中提取模式所需气象场数据,并写入中间格式文件,该部分为中间文件的格式和文件路径和前缀,可不修改
-
metgrid是将ungrib提取的气象场数据水平插值到geogrid定义的模拟域中。io_form_metgrid与io_form_geogrid一样,但是metgrid输出文件格式,默认为2,表示netcdf。metgrid部分一般不需要修改。
以上设置好后,保存namelist.wps:
首先退出输入模式:esc键,然后输入命令 :wq (冒号+wq)
执行geogrid.exe生成静态数据
./geogrid.exe
当出现“Successful completion of geogrid”即运行成功
在wps目录中生成geo_em.d0*.nc文件
Step 2 ungrib.exe
将气象数据提取并写入中间文件
首先是在Step 1中namelist.wps文件的&ungrib部分的设置。
设置保存后,将初始场文件对应的Vtable文件链接到WPS目录下:
ln -s ungrib/Variable_Tables/Vtable.GFS Vtable
链接好 Vtable 文件之后,要根据模拟的起止时间链接相应的初始场文件
执行ungirb.exe提取气象场数据
./ungrib.exe
当出现“Successful completion of ungirb.”即运行成功
生成FILE为前缀的文件
Step 3 metgrid.exe
水平插值气象场至模拟区域,合并静态数据
该部分用到namelist.wps中的&share和&metgrid部分,已经在Step 1中介绍,不再赘述。
执行metgrid.exe进行水平插值
./metgrid.exe
当出现“Successful completion of metgrid.”即运行成功
生成met_em.*文件
至此,WPS部分的操作完成
2 WRF操作
![](https://img-blog.csdnimg.cn/img_convert/5a694f9e68f4b10a8862eee8dbcf3d44.png)
从WPS文件夹进入home目录下的WRF文件夹中run文件夹:
cd ../WRF/run/
将生成的met_em.*文件复制到现在的run目录下:
cp ../WPS/met_em.* ./
修改namelist.input文件
vi namelist.input
namelist.input包括三个部分:&time_control,&domain,&physics
&time_control部分:
run_days = 0,
run_hours = 0,
run_minutes = 0,
run_seconds = 0,
start_year = 2007 , 2007 ,
start_month = 09 , 09 ,
start_day = 02 , 02 ,
start_hour = 00 , 00 ,
start_minute = 00, 00,
start_second = 00, 00,
end_year = 2007 , 2007 ,
end_month = 09 , 09 ,
end_day = 03 , 03 ,
end_hour = 12 , 12 ,
end_minute = 00, 00,
end_second = 00, 00,
# start*,end*每个区域一列
interval_seconds = 10800 #同 namelist.wps中的interval——second
input_from_file = .true., .true.,
history_interval = 60, 60, #结果文件输出频率,每个区域一列,单位为min
frames_per_outfile = 6, 6, #每个结果文件中保存多少时次的数据
restart = .false., #是否重启运行
restart_interval = 5000, #输出重启文件的间隔
&domain部分,与namelist.wps中设置要一致
time_step = 360,
time_step_fract_num = 0,
time_step_fract_den = 1,
max_dom = 1,
s_we = 1, 1, 1,
e_we = 100, 259, 94,
s_sn = 1, 1, 1,
e_sn = 76, 199, 91,
s_vert = 1, 1, 1,
e_vert = 31, 31, 31,
num_metgrid_levels = 27
dx = 60000, 12000, 333,
dy = 60000, 12000, 333,
grid_id = 1, 2, 3,
parent_id = 0, 1, 2,
i_parent_start = 0, 53, 30,
j_parent_start = 0, 65, 30,
parent_grid_ratio = 1, 3, 3,
parent_time_step_ratio = 1, 3, 3,
time_step:模型集成的时间步长,以秒为单位
&physics部分,参数化方案
Microphysics (mp) scheme每个区域必须一致,但cumulus (cu) schemes各个区域可以不同;
不同的组合结果可能不同,但也可能一些组合模式无法运行,需要多多尝试;
mp_physics = 1 , 1 , #[微物理]
ra_lw_physics = 1 , 1 , #[长波辐射]
ra_sw_physics = 1 , 1 , #[短波辐射]
radt = 60 , 10 , #[辐射时间步长; min]
sf_sfclay_physics = 1 , 1 , #[Surface layer]
sf_surface_physics = 1 , 1 , #[Surface]
bl_pbl_physics = 1 , 1 , #[边界层]
bldt = 0, 0, #[边界层时间步长; min]
cu_physics = 1 , 0 , #[积云方案]
cudt = 5 , #[c积云时间步长; min]
isfflx = 1,
ifsnow = 0,
icloud = 1,
surface_input_source = 1,
num_soil_layers = 5 ,
mp_zero_out = 0 ,
写脚本,运行real.exe
脚本不同服务器可能不同,服务器管理会提供。
其中重要的是:
mpirun -np 2 real.exe
利用服务器提交脚本命令(如 qsub)提交作业,执行real.exe,得到wrfbdy_d01* 和 wrfinput_d01*文件。
期间可通过以下命令查看运行情况:
tail –f rsl.out.0000
修改脚本,运行wrf.exe
将执行real.exe的脚本mpirun命令修改为
mpirun -np 2 wrf.exe
提交作业,执行wrf.exe得到结果,该过程时间示模拟区域大小和时间长短决定。得到wrfout_d01*、rsl.out/rsl.error*文件。
3 后处理
根据结果画图
以上参考
内部培训PPT WRF运行及后处理介绍-2021
老师上课讲解