Unified Post Processor (UPP)小记
转载请表明出处:https://www.jianshu.com/p/62793047a76f
此篇为初稿,详细版本后续更新~~~
UPP是一个用于处理模式输出的软件包,可以产生丰富的后处理产品。目前支持的数值模式包括:WRF-NMM, WRF-ARW, Nonhydrostatic Multi-scale Model on the B grid (NMMB), Global Forecast System (GFS),和 Climate Forecast System (CFS)。
UPP的依赖库
-
NETCDF库
UPP的FAQS页面上说目前不支持NETCDF4,应该是较久之前的问答。V3.1之后的版本亲测支持NETCDF4.
export /WORK/app/netcdf/4.1.3/00-CF-14
-
WRF I/O API (UPPV4.0之后不再需要,安装包自带)
export WRF_DIR=/WORK/sysu_dhwang_4/MHWPS/source/WRFV4-TH
-
GRIB2数据所需要的JasPer, PNG 和 Zlib库。 ===> 传送门
export JASPERLIB=/WORK/app/jasper/1.900.1/01-CF-15-libpng/lib
export JASPERINC=/WORK/app/jasper/1.900.1/01-CF-15-libpng/include
注意:这些库使用的编译器必须与UPP相同。
编译器环境
1.module load intel-compilers/15.0.1
2.module load MPI/Intel/MPICH/3.2-icc14-dyn
编译
- 去DTC官网下载压缩包,并解压。(建议使用最新版本,旧版本bug比较多)
- 进入主目录,执行
./configure
[xxxxx@ln1%tianhe2-C UPPV4.0]$ ./configure
Will use NETCDF in dir: /WORK/app/netcdf/4.3.3.1/01-CF-15
wrfdir /WORK/sysu_dhwang_4/MHWPS/source/UPPV4.0/src/lib/wrf_io
bindir /WORK/sysu_dhwang_4/MHWPS/source/UPPV4.0/bin
incmod /WORK/sysu_dhwang_4/MHWPS/source/UPPV4.0/include
libdir /WORK/sysu_dhwang_4/MHWPS/source/UPPV4.0/lib
JASPER Environent found :: GRIB2 library ::
grib2lib = -L/WORK/app/jasper/1.900.1/01-CF-15-libpng/lib -lpng -lz -ljasper
grib2inc = -I/WORK/app/jasper/1.900.1/01-CF-15-libpng/include
-------------------------------------------------------------------------
Please select from among the following supported platforms.
1. Linux x86_64, PGI compiler (serial)
2. Linux x86_64, PGI compiler (dmpar)
3. Linux x86_64, Intel compiler (serial)
4. Linux x86_64, Intel compiler (dmpar)
5. Linux x86_64, Intel compiler, SGI MPT (serial)
6. Linux x86_64, Intel compiler, SGI MPT (dmpar)
7. Linux x86_64, gfortran compiler (serial)
8. Linux x86_64, gfortran compiler (dmpar)
9. Linux x86_64, Intel compiler, IBM POE (serial)
10. Linux x86_64, Intel compiler, IBM POE (dmpar)
11. Linux x86_64, gfortran compiler: -f90=gfortran (serial)
12. Linux x86_64, gfortran compiler: -f90=gfortran (dmpar)
13. Linux x86_64, PGI compiler: -f90=pgf90 (serial)
14. Linux x86_64, PGI compiler: -f90=pgf90 (dmpar)
这里选择4
- 执行
./compile >& compile_upp.log &
。 查看编译进度:tail -f compile_upp.log
题外话:之前在天河机器上安装UPP,所有环境变量均设置正确,选择3可以编译通过,但是选择4总是编译不通过,报错的内容里包括有gfortran,error等字段。后来在小明同学的帮助下发现,一开始加载的mpif90不是MPI/Intel/MPICH下的,而是conda包里面ncl环境下的一个可执行二进制文件(/WORK/app/conda/mini/envs/ncl_stable/bin/mpif90),那个文件应该是gfortran编译的,因此报错。修正后一切正常。
[xxxxx@ln1%tianhe2-C UPPV4.0]$ which mpif90
/WORK/app/MPI/Intel/MPICH/3.2-icc14-dyn/bin/mpif90
简单使用(以WRFOUT为例)
1.创建一个新目录,mkdir testupp; cd testupp
2.链接运行需要用到的一些文件
ln -sf ${uppdir}/bin/unipost.exe . #可执行二进制文件
ln -sf ${scripts_dir}/config/wrf_cntrl.parm_ens fort.14 #配置文件
ln -sf ${scripts_dir}/config/wrf_cntrl.parm_ens wrf_cntrl.parm
ln -sf ${wrfdir}/run/ETAMPNEW_DATA nam_micro_lookup.dat
ln -sf ${wrfdir}/run/ETAMPNEW_DATA.expanded_rain hires_micro_lookup.dat
- 新建itag文件,内容如下:
PATH_TO_WRFOUT/wrfout_d01_2019-03-15_03:00:00
netcdf
2019-03-15_03:00:00
NCAR
- 执行
./unipost.exe
详细使用方法参考:
-
Grib1 Output Table (编写wrf_cntrl.parm文件参考)
最后还有一点,在使用UPP的过程中碰到解决不了的问题,要及时与UPP-help(upp-help@ucar.edu)联系,说不定就是代码的bug,前两天刚发现一个bug,官方一天内就返回了修复的代码。