Install your own WRF (DM+SM)

Updated: 28 February 2024


1. Load required modules and set environment variables

Paste the below lines into your terminal. (Putting these in ~/.bashrc is not recommended.)

module purge module load cpeIntel/23.09 module load cray-hdf5-parallel/1.12.2.7 module load cray-netcdf-hdf5parallel/4.9.0.7 module load cray-parallel-netcdf/1.12.3.7 module load libpng/1.6.39-cpeIntel-23.09 module load JasPer/1.900.1-cpeIntel-23.09 module load ADIOS2/2.9.1-cpeIntel-23.09 export WRF_EM_CORE=1 # Explicitly select ARW core developed by NCAR export WRF_NMM_CORE=0 # Not NMM core export WRF_DA_CORE=0 # Not WRFDA export WRF_CHEM=0 # Not WRF-Chem export NETCDF=${CRAY_NETCDF_HDF5PARALLEL_PREFIX} export NETCDFPAR=${CRAY_NETCDF_HDF5PARALLEL_PREFIX} export PNETCDF=${CRAY_PARALLEL_NETCDF_PREFIX} export HDF5=${CRAY_HDF5_PARALLEL_PREFIX} export JASPERINC=${EBROOTJASPER}/include # (Optional) export JASPERLIB=${EBROOTJASPER}/lib # (Optional) export ADIOS2=${EBROOTADIOS2} export WRFIO_NCD_LARGE_FILE_SUPPORT=1 # (Optional) export PNETCDF_QUILT=1 # (Optional) ### Common mistake :: insert spaces before or after =

2. Set install location directory (DIR)

Let set an install path, DIR.

# While being in your desired install location directory, execute export DIR=$(pwd)

3. Download WRF source code

An example for WRF 4.5.2 is as shown below.

cd $DIR wget https://github.com/wrf-model/WRF/releases/download/v4.5.2/v4.5.2.tar.gz tar xzf v4.5.2.tar.gz mv WRFV4.5.2 WRF

For other version, check the WRF stable branches on the GitHub repository or WRF official website.

4. Enable GRIB2 IO (Optional)

Must set JASPERINC and JASPERLIB in Step 1

  • Open ${DIR}/WRF/arch/Config.pl (or Config_new.pl) using a text editor such as vi

    • Change the parameter $I_really_want_to_output_grib2_from_WRF from "FALSE" to "TRUE"

5. Configure

5.1 Run ./configure

5.2 Edit configure.wrf

  • Open ${DIR}/WRF/configure.wrf using a text editor such as vi

    • Remove -fpp -auto from OMPCC

    • Change all icc to cc -Wno-implicit-function-declaration -Wno-implicit-int

    • Append -Wno-implicit-function-declaration -Wno-implicit-int to existing cc.

    • Prepend -fp-model precise to FCBASEOPTS_NO_G.

-Wno-implicit-function-declaration -Wno-implicit-int could be omitted when compiling WRF 4.5.2 or later.

6. Compile WRF

7. Example: Job submission script

For DM+SM run, it is essential to specify -c or --cpus-per-tasks options for srun to prevent a potential decrease in performance due to improper CPU binding.


Contact Us
ThaiSC support service : thaisc-support@nstda.or.th