Versions Compared

Key

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

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

...

ทำการล้างโมดูลที่โหลดไว้ก่อนหน้าทั้งหมด แล้วโหลดโมดูลที่ 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

...

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

Code Block
languagebash
git clone https://github.com/wrf-model/WRF      # Version 4.40 at the time

...

ทำการตั้งค่า 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 (Recommend)
export JASPERINC=$EBROOTJASPER/include                   # For GRIB2 IO (Recommend)
export JASPERLIB=$EBROOTJASPER/lib                       # For GRIB2 IO (Recommend)
export WRFIO_NCD_LARGE_FILE_SUPPORT=1                    # Enable large file support (Recommend)
### Common mistake :: insert spaces before or after =

...

  • ใช้คำสั่ง ./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
./configure
# Type 20, then press Enter <-- (dmpar) INTEL (ifort/icc): Xeon (SNB with AVX mods))
# Type 1, then press Enter  <-- Basic nesting (mostly)

...

  • แก้ไขไฟล์ 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)

Code Block
languagebash
nano configure.wrf
# Change  DM_FC = mpif90 -f90=$(SFC)  to  DM_FC = mpiifort -f90=$(SFC)
# Change  DM_CC = mpicc  -cc=$(SCC)   to  DM_CC = mpiicc   -cc=$(SCC)

...

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

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

...

ใช้คำสั่ง 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

...