WRF

简介

WRF(Weather Research and Forecasting Model)模式是有美国环境预报中心(NCEP), 美国国家大气研究中心(NCAR)以及多个大学、研究所和业务部门联合研发的一种统一的中尺度天气预报模式。 WRF模式适用范围很广,从中小尺度到全球尺度的数值预报和模拟都有广泛的应用。

WPS是预处理WRF运行数据的工具。

安装环境

序号

集群

平台

版本

位置

安装方式

1

hpckapok1

cpu

4.5.2

/share/software/Build_WRF/WRFV4.5.2

编译安装

.

4.5

/share/software/Build_WRF/WPS-4.5

编译安装

使用方法

  1. 加载环境

    module load wrf
    
  2. 把WRF和WPS拷贝到本地目录使用

    #新建本地目录,把wrf和wps拷贝过去,本例新建wrftest目录,可按实际使用情况修改目录名称
    mkdir -p ~/wrftest
    cd ~/wrftest
    cp -r ${WRFPATH} .
    cp -r ${WPSPATH} .
    
  3. 相关命令在WRF及WPS目录内,可以通过slurm脚本进行调用

    #WPS的几个命令
    cd ~/wrftest/WPS-4.5
    ls *.exe
    geogrid.exe  metgrid.exe  ungrib.exe
    
    #WRF的几个命令
    cd ~/wrftest/WRFV4.5.2/run/
    ls *.exe
    ndown.exe  real.exe  tc.exe  wrf.exe
    
  4. geog静态地理数据路径

    /share/software/Build_WRF/WPS_GEOG
    

WRF案例运行

Matthew案例资料

准备工作

  1. 加载环境

    module load wrf
    
  2. 把WRF和WPS拷贝到本地目录

    #新建本地目录,把wrf和wps拷贝过去,本例新建wrf目录,可按实际使用情况修改目录名称
    mkdir -p ~/wrftest
    cd ~/wrftest
    cp -r ${WRFPATH} .
    cp -r ${WPSPATH} .
    
  3. 创建静态地理数据连接

    #静态地理数据约30g,创建软连接指向相应目录
    cd ~/wrftest
    ln -s ${GEOGPATH} .
    
  4. 修改目录信息,指向刚才创建的软连接

    #进入WPS目录,修改namelist.wps文件下的'geog_data_path'项,把路径改为刚才创建的软连接
    cd ~/wrftest/WPS-4.5
    vim namelist.wps
    

    修改前:

    ../../../_images/wrf1.jpg

    修改后:

    ../../../_images/wrf2.jpg

用WPS处理数据

运行ungrib.exe

  1. 在wrftest目录下创建data目录

    cd ~/wrftest
    mkdir -p data
    
  2. 下载Matthew案例气象数据到data目录,并解压

    cd ~/wrftest/data
    wget https://www2.mmm.ucar.edu/wrf/TUTORIAL_DATA/matthew_1deg.tar.gz        #下载气象数据
    tar zxf matthew_1deg.tar.gz                                                 #解压资料
    ll matthew
    

    解压后会得到matthew目录,目录内是9个以fnl为开头的文件

    ../../../_images/wrf3.jpg
  3. 链接到GFS Vtable

    cd ~/wrftest/WPS-4.5
    ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable
    
  4. 使用脚本link_grib.csh链接GRIB数据

    cd ~/wrftest/WPS-4.5
    ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable
    ./link_grib.csh ../data/matthew/fnl_2016100*
    ll GRIBFILE*
    

    运行后会创建一系列以GRIBFILE命名的文件,指向matthew的气象数据文件

    ../../../_images/wrf4.jpg
  5. 修改namelist.wps配置文件

    cd ~/wrftest/WPS-4.5
    vim namelist.wps
    
    #修改以下几项即可
    max_dom = 1
    start_date = '2016-10-06_00:00:00',
    end_date = '2016-10-08_00:00:00',
    interval_seconds = 21600,
    

    修改前:

    ../../../_images/wrf5.jpg

    修改后:

    ../../../_images/wrf6.jpg
  6. 创建ungrib.exe的slurm调用脚本,并提交任务

    cd ~/wrftest/WPS-4.5
    cat ungrib_slurm.slurm
    #=========================
    #!/bin/bash
    #SBATCH --job-name=ungrib
    #SBATCH --partition=cpuXeon6458
    #SBATCH -N 1
    #SBATCH --cpus-per-task=40
    #SBATCH --output=job.%j.out
    #SBATCH --error=job.%j.err
    
    ./ungrib.exe
    #=========================
    
    sbatch ungrib_slurm.slurm
    
  7. 执行结束后,生成若干以FILE为开头的文件即运行成功

    ../../../_images/wrf7.jpg

运行geogrid.exe

  1. 修改namelist.wps配置文件

    cd ~/wrftest/WPS-4.5
    vim namelist.wps
    
    #修改以下项目
    parent_id = 1,
    parent_grid_ratio = 1,
    i_parent_start = 1,
    j_parent_start = 1,
    e_we = 91,
    e_sn = 100,
    geog_data_res = 'default',
    dx = 27000,
    dy = 27000,
    map_proj = 'mercator',
    ref_lat = 28.00,
    ref_lon = -75.00,
    truelat1 = 30.0,
    truelat2 = 60.0,
    stand_lon = -75.0,
    

    修改前:

    ../../../_images/wrf8.jpg

    修改后:

    ../../../_images/wrf9.jpg
  2. 创建geogrid.exe的slurm调用脚本,并提交任务

    cd ~/wrftest/WPS-4.5
    cat geogrid_slurm.slurm
    #=========================
    #!/bin/bash
    #SBATCH --job-name=geogrid
    #SBATCH --partition=cpuXeon6458
    #SBATCH -N 1
    #SBATCH --cpus-per-task=40
    #SBATCH --output=job.%j.out
    #SBATCH --error=job.%j.err
    
    ./geogrid.exe
    #=========================
    
    sbatch geogrid_slurm.slurm
    
  3. 执行结束后,会生成geo_em.d01.nc文件,即运行成功

    ../../../_images/wrf10.jpg

运行metgrid.exe

  1. 确认namelist.wps配置文件下,'fg_name'配置项的值为'FILE'

    cd ~/wrftest/WPS-4.5
    cat namelist.wps|grep fg_name
    
    ../../../_images/wrf11.jpg
  2. 创建metgrid.exe的slurm调用脚本,并提交任务

    cd ~/wrftest/WPS-4.5
    cat metgrid_slurm.slurm
    #=========================
    #!/bin/bash
    #SBATCH --job-name=metgrid
    #SBATCH --partition=cpuXeon6458
    #SBATCH -N 1
    #SBATCH --cpus-per-task=40
    #SBATCH --output=job.%j.out
    #SBATCH --error=job.%j.err
    
    ./metgrid.exe
    #=========================
    
    sbatch metgrid_slurm.slurm
    
  3. 执行结束后,会生成若干met_em为开头的文件,即运行成功

    ../../../_images/wrf13.jpg

WRF运行

运行real.exe

  1. 进入WRF的run目录,链接到刚才创建的met_em文件

    cd ~/wrftest/WRFV4.5.2/run
    ln -sf ../../WPS-4.5/met_em.d01.2016-10-0* .
    

    确认创建相关软链接

    ../../../_images/wrf14.jpg
  2. 修改namelist.input配置文件

    cd ~/wrftest/WRFV4.5.2/run
    vim namelist.input
    
    #修改以下项目
    run_days = 0,
    run_hours = 48,
    run_minutes = 0,
    run_seconds = 0,
    start_year = 2016,
    start_month = 10,
    start_day = 06,
    start_hour = 00,
    end_year = 2016,
    end_month = 10,
    end_day = 08,
    end_hour = 00,
    interval_seconds = 21600
    input_from_file = .true.,
    history_interval = 180,
    frames_per_outfile = 1,
    restart = .false.,
    restart_interval = 1440,
    time_step = 150,
    max_dom = 1,
    e_we = 91,
    e_sn = 100,
    e_vert = 45,
    num_metgrid_levels = 32,
    dx = 27000,
    dy = 27000,
    

    修改前:

    ../../../_images/wrf15.jpg

    修改后:

    ../../../_images/wrf16.jpg
  3. 创建real.exe的slurm调用脚本,并提交任务

    cd ~/wrftest/WRFV4.5.2/run
    cat real_slurm.slurm
    #=========================
    #!/bin/bash
    #SBATCH --job-name=real
    #SBATCH --partition=cpuXeon6458
    #SBATCH -N 1
    #SBATCH --cpus-per-task=40
    #SBATCH --output=job.%j.out
    #SBATCH --error=job.%j.err
    
    ./real.exe
    #=========================
    
    sbatch real_slurm.slurm
    
  4. 执行成功后,会生成wrfbdy_d01和wrfinput_d01两个文件

    ../../../_images/wrf12.jpg

运行wrf.exe

  1. 进入WRF的run目录,创建slurm脚本

    cd ~/wrftest/WRFV4.5.2/run
    cat wrf_slurm.slurm
    #以下脚本内容供参考,编写时以实际为准
    #==================================
    #!/bin/bash
    #SBATCH --job-name=wrf
    #SBATCH --partition=cpuXeon6458
    #SBATCH -N 2
    #SBATCH --cpus-per-task=40
    #SBATCH --output=job.%j.out
    #SBATCH --error=job.%j.err
    
    ulimit -s unlimited
    srun --mpi=pmix wrf.exe
    #==================================
    
  2. 提交slurm脚本,等待执行完成

    cd ~/wrftest/WRFV4.5.2/run
    sbatch wrf_slurm.slurm
    
  3. 计算完成后会创建若干wrfout为开头的文件,即执行成功

    ../../../_images/wrf17.jpg

参考资料

WRF官网

WRF模式案例运行体验

Contributor:肥恩


最后更新: 2025 年 06 月 30 日