Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt
hiddentrue
nameCompiling WRF

วิธีการติดตั้ง WRF model พื้นฐาน เหมาะสำหรับการพยากรณ์อากาศ เช่น อุณหภูมิ ลมและฝน เบื้องต้น

...

Table of Contents
minLevel1
maxLevel7
stylecircle

...

1. Load required modules

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

Code Block
languagebash
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
Info

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

2. Download WRF source code

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

Code Block
languagebash
gitwget clone https://github.com/wrf-model/WRF/releases/download/v4.4/v4.4.tar.gz
tar xzf v4.4.tar.gz

ln # Version 4.40 at the time-s WRFV4.4/ WRF
rm v4.4.tar.gz
Info

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

...

3. Set environment variables

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

Code Block
languagebash
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 (RecommendOptional)
export JASPERINC=$EBROOTJASPER/include                   # For GRIB2 IO (RecommendOptional)
export JASPERLIB=$EBROOTJASPER/lib                       # For GRIB2 IO (RecommendOptional)
export WRFIO_NCD_LARGE_FILE_SUPPORT=1                    # Enable large file support (RecommendOptional)
### Common mistake :: insert spaces before or after =

4. Enable GRIB2 IO (Optional

...

)

Note

Must set JASPERINC and JASPERLIB in Step 3

...

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

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

Code Block
languagebash
cdnano ./WRF
nano ./arch/Config.pl
# Change $I_really_want_to_output_grib2_from_WRF = "FALSE" ; 
#   to   $I_really_want_to_output_grib2_from_WRF = "TRUE" ;
Expand
titleFor nano editor
  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 ใหม่)

Code Block
languagebash
cd ./WRF
./configure
# Type 20, then press Enter <-- (dmpar) INTEL (ifort/icc): Xeon (SNB with AVX mods))
# Type 1, then press Enter  <-- Basic nesting (mostly)

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)

...

Expand
titleFor nano editor
  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)

Code Block
languagebash
./compile em_real >2>& compile.wrf.log

สามารถติดตามการแจ้งระหว่างทำการติดตั้งโดย

...

เข้าระบบ TARA อีกหน้าต่างหนึ่ง (ไม่ต้องทำขั้นตอน 1 หรือ 3 ใหม่)

...

มายังโฟลเดอร์ WRF

...

1 | tee compile.wrf.log

7. Check

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

Code Block
languagebash
ls -ls ./main/*.exe             
# Check if ndown.exe, real.exe, tc.exe and wrf.exe are present

NEXT: WPS and Duplicate ./test/em_real

...

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

...