Compile WRF

การติดตั้งโปรแกรมหลักของ Weather Research and Forecasting (WRF) มีขั้นตอนดังนี้

ต้องใช้หน้าต่างเดียวกันเท่านั้น (ไม่เช่นนั้นต้องทำขั้นตอน 1 และ 3 ใหม่ทุกรอบ)


1. Load required modules

ทำการล้างโมดูลที่โหลดไว้ก่อนหน้าทั้งหมด แล้วโหลดโมดูลที่ WRF จำเป็นต้องใช้ โดยใช้คำสั่ง

module purge module load netCDF-Fortran/4.5.2-iimpi-2019b module load libpng/1.6.37-GCCcore-8.3.0 module load JasPer/1.900.1-intel-2019b # (MUST) JasPer version <2.0

These dependencies should be compiled with the same set of compilers.

2. Download WRF source code

ดาวน์โหลด WRF เวอร์ชั่นล่าสุดจาก GitHub มายัง Directory ปัจจุบัน

wget https://github.com/wrf-model/WRF/releases/download/v4.4/v4.4.tar.gz tar xzf v4.4.tar.gz ln -s WRFV4.4/ WRF rm v4.4.tar.gz

For older version, check the WRF stable branches on the GitHub repository and its official website.

3. Set environment variables

ทำการตั้งค่า Environment variables โดยใช้คำสั่งซึ่งมีรายละเอียดดังนี้

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=${EBROOTNETCDFMINFORTRAN:-${EBROOTNETCDF}} # Required export HDF5=${EBROOTHDF5} # To enable HDF5 (Optional) export JASPERINC=$EBROOTJASPER/include # For GRIB2 IO (Optional) export JASPERLIB=$EBROOTJASPER/lib # For GRIB2 IO (Optional) export WRFIO_NCD_LARGE_FILE_SUPPORT=1 # Enable large file support (Optional) ### Common mistake :: insert spaces before or after =

4. Enable GRIB2 IO (Optional)

  • แก้ไขไฟล์ Config.pl ในโฟลเดอร์ ./WRF/arch ด้วย Text editor เช่น nano, vi

  • ทำการเปลี่ยนบรรทัด $I_really_want_to_output_grib2_from_WRF จาก "FALSE" ให้เป็น "TRUE"

  1. Press Ctrl + W # To search

  2. Type “I_really“, then press Enter # Search using keyword “I_really“

  3. Change $I_really_want_to_output_grib2_from_WRF = "FALSE" ;
    to $I_really_want_to_output_grib2_from_WRF = "TRUE" ;

  4. Press Ctrl + O, then press Enter # Save file

  5. Press Ctrl + X # Exit nano

5. Set configure file

5.1 Run ./configure

  • ใช้คำสั่ง ./configure ขณะอยู่ในโฟลเดอร์ WRF

  • พิมพ์เลข 20 แล้วกด Enter เพื่อเลือกการคำนวณขนานแบบ Distributed memory (dmpar) ด้วย INTEL (ifort/icc): Xeon (SNB with AVX mods)

  • พิมพ์เลข 1, 2 หรือ 3 แล้วกด Enter เพื่อเลือกระบบ Nesting โดย

    • 1 (Basic/Static) จะกำหนดให้ตำแหน่งของ Nested/Child domains ไม่สามารถเคลื่อนที่ได้ [แนะนำ]

    • 2 (Present moves) จะสามารถใช้ชุดคำสั่งกำหนดการเคลื่อนที่ของ Nested/Child domains ได้

    • 3 (Vortex following) จะปรับตำแหน่ง Nested/Child domains ตามจุดศูนย์กลางพายุซึ่งคำนวณจาก Mean sea level pressure และลมระดับพื้นผิว (เหมาะสำหรับพายุที่ก่อตัวขึ้นชัดเจนแล้วเท่านั้น)

  • ตรวจสอบ Options/Compiler flags ที่แสดง

  • (ใช้คำสั่ง ./clean -a ก่อน ถ้าหากต้องเริ่ม configure ใหม่)

5.2 Edit configure.wrf

  • แก้ไขไฟล์ configure.wrf ในโฟลเดอร์ WRF ด้วย Text editor เช่น nano, vi

  • ทำการเปลี่ยนจาก DM_FC = mpif90 -f90=$(SFC) เป็น DM_FC = mpiifort -f90=$(SFC)

  • ทำการเปลี่ยนจาก DM_CC = mpicc -cc=$(SCC) เป็น DM_CC = mpiicc -cc=$(SCC)

  1. Press Ctrl + W # To search

  2. Type “mpif90“, then press Enter # Search using keyword “mpif90“

  3. For the DM_FC, change mpif90 to mpiifort

  4. For the DM_CC, change mpicc to mpiicc

  5. Press Ctrl + O, then press Enter # Save file

  6. Press Ctrl + X # Exit nano

6. Compile WRF

เริ่มทำการติดตั้ง WRF โดยบันทึกการแจ้งต่างๆลงในไฟล์ compile.wrf.log ด้วย (ใช้เวลาประมาณ 1 ชั่วโมงบน TARA front-end)

7. Check

ใช้คำสั่ง ls -ls ./main/*.exe เพื่อตรวจหา ndown.exe, real.exe, tc.exe และ wrf.exe


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