Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt
hiddentrue
nameExample 1: Run WRF

ตัวอย่างการใช้งาน WRF เบื้องต้น

การใช้งาน Weather Research and Forecasting (WRF) model เบื้องต้นมีขั้นตอนดังนี้

Table of Contents

...

Tip
  1. ต้องลง WRF เรียบร้อยแล้ว

  2. ต้องลง WPS เรียบร้อยแล้ว

  3. ต้องดาวน์โหลด Geography data for WPS geogrid.exe เรียบร้อยแล้ว

  4. ต้องลง NCL เรียบร้อยแล้ว (สำหรับหัวข้อ 2.2)

1. Prepare global model output

...

Code Block
languagebash
#!/bin/bash

#SBATCH -p devel                    # Partition or machine type [devel/compute/memory]
#SBATCH -N 1 --ntasks-per-node=54    # Number of nodes and Number of core per node
#SBATCH -t 02:00:00                 # Total run time limit (hour:minute:second)
#SBATCH -J WPS_Ex1                  # Job name (short)
#SBATCH -A projxxxx                 # Your project account *** {USER EDIT} ***

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

export JASPERINC=$EBROOTJASPER/include
export JASPERLIB=$EBROOTJASPER/lib

ulimit -s unlimited         # MUST have otherwise ERROR

srun -n4 --exclusive ./geogrid.exe    & srun -n1 --exclusive ./ungrib.exe &
wait
srun -n4 ./metgrid.exe
Note

ungrid.exe ต้องรันแบบ Single processor/Serial execution เท่านั้น

สามารถปรับให้ Submit WPS และ WRF พร้อมกันได้ (See Single WRF Job Submission)

2.4 Submit WPS job

สามารถ Submit job ได้โดยใช้คำสั่ง sbatch แล้วติดตามด้วยคำสั่ง sacct หรือ squeue -u USERNAME (ใช้เวลาประมาณ 1 นาที เมื่อได้รันบน Devel node)

Code Block
languagebash
sbatch submitWPS.sh

3. Run WRF

3.1 Edit ./em_real/namelist.input

ไฟล์ namelist.input ในโฟลเดอร์ em_real เป็นไฟล์ที่ควบคุมการทำงานทั้งหมดของ WRF ซึ่งต้องกำหนดวันเวลา ตำแหน่งและขนาดพื้นที่ ให้สอดคล้องกับไฟล์ ./WPS/namelist.wps พร้อมระบุ Dynamics/Physics schemes ที่ต้องการใช้งาน

Panel
panelIconId1f4d8
panelIcon:blue_book:
panelIconText📘
bgColor#DEEBFF

See also: WRF Namelist.input and Duplicate ./test/em_real

สำหรับตัวอย่างนี้ ให้แก้ไขไฟล์ namelist.input ดังนี้

Code Block
languagetext
# Edit namelist.input 
# in ./WRF/test/em_real or your duplicated em_real folder
# as follows while leave the others unchanged

### Time_control ###
  run_days   # Run geogrid.exe using 4 CPU cores (-n4)  
srun -n1 ./ungrib.exe       # ungrib.exe MUST run in serial (-n1)
srun -n4 ./metgrid.exe      # Run metgrid.exe using 4 CPU cores	(-n4)

# It is more efficient to run geogrid.exe, metgrid.exe and real.exe using a few CPU cores and enough memory.
Note

ungrid.exe ต้องรันแบบ Single processor/Serial execution เท่านั้น

สามารถปรับให้ Submit WPS และ WRF พร้อมกันได้ (See Single WRF Job Submission)

2.4 Submit WPS job

สามารถ Submit job ได้โดยใช้คำสั่ง sbatch แล้วติดตามด้วยคำสั่ง sacct หรือ squeue -u USERNAME (ใช้เวลาประมาณ 1 นาที เมื่อได้รันบน Devel node)

Code Block
languagebash
sbatch submitWPS.sh

3. Run WRF

3.1 Edit ./em_real/namelist.input

ไฟล์ namelist.input ในโฟลเดอร์ em_real เป็นไฟล์ที่ควบคุมการทำงานทั้งหมดของ WRF ซึ่งต้องกำหนดวันเวลา ตำแหน่งและขนาดพื้นที่ ให้สอดคล้องกับไฟล์ ./WPS/namelist.wps พร้อมระบุ Dynamics/Physics schemes ที่ต้องการใช้งาน

Panel
panelIconId1f4d8
panelIcon:blue_book:
panelIconText📘
bgColor#DEEBFF

See also: WRF Namelist.input and Duplicate ./test/em_real

สำหรับตัวอย่างนี้ ให้แก้ไขไฟล์ namelist.input ดังนี้

Code Block
languagetext
# Edit namelist.input 
# in ./WRF/test/em_real or your duplicated em_real folder
# as follows while leave the others unchanged

### Time_control ###
  run_days                            = 0,
  run_hours                           = 12,
  run_minutes                         = 0,
  run_hours seconds                          = 120,
  runstart_minutesyear                          = 2022, 02022,
  runstart_secondsmonth                         = 05,   005,
  start_yearday                           = 202219,   202219,
  start_monthhour                          = 0500,   0500,
  startend_dayyear                            = 192022,   192022,
  startend_hourmonth                           = 0005,   0005,
  end_yearday                             = 202219,   202219,
  end_monthhour                            = 0512,   0512,
  endframes_per_dayoutfile                  = 6, 6,

### Domains ###
  time_step  = 19,   19,   end_hour                  = 80,
  e_we       = 12,   12,   frames_per_outfile                  = 6, 6,

### Domains ###
  time_step120,    121,
  e_sn                                = 150,   = 80151, 
  e_we  vert                              = 12050,     12150,
  dx  e_sn                                = 15036000,
   151,dy    e_vert                              = 5036000,
  grid_id  50,   dx                                  = 360001,   dy    2,
  parent_id                           = 360000,   grid_id  1,
    i_parent_start                      = 1,     243,
  j_parent_idstart                      = 1,    = 053,

### Physics ###
1,   i_parent_startphysics_suite                       = 1,'tropical'

### Bdy_control ###
43,   j_parent_startspecified                      = 1,    = 53.true.,  .false.,
### Physics ###nested   physics_suite                       = 'tropical'  ### Bdy_control ###
  specified                = .false.,  .true.,

3.2 Link met_em* from WPS

ทำการลิ้งหรือคัดลอกไฟล์ที่เตรียมจาก WPS มายังโฟลเดอร์ em_real

Code Block
languagebash
ln -s Path_to_WPS/met_em* .   # Path to WPS folder containing met_em files *** {USER EDIT} *** 
         = .true.,  .false.,   nested               # Link ./WPS/met_em*             = .false.,  .true.,

3.2 Link met_em* from WPS

...

to ./WRF/test/em_real/ or your duplicated em_real folder 

3.3 WRF job submission script

ในการรัน WRF model จะต้องรัน real.exe ก่อน wrf.exe

Example WRF script ด้านล่างนี้ คือตัวอย่างที่ใช้ในการ Submit job บน TARA compute node (40 CPU cores) โดยสามารถคัดลอกสคริปต์นี้ได้โดยใช้คำสั่งด้านล่าง แล้วแก้ไข Project account

Code Block
languagebash
lncp -s Path_to_WPS/met_em*r /tarafs/data/project/common/WRF/Example1/submitWRF.sh .   # PathCopy tothe WPSscript folderto containingyour metem_emreal filesdirectory
*** {USER EDIT} ***nano submitWRF.sh                                  # Link ./WPS/met_em* to ./WRF/test/em_real/ or your duplicated em_real folder 

3.3 WRF job submission script

ในการรัน WRF model จะต้องรัน real.exe ก่อน wrf.exe

...

 # Specify your project account *** {USER EDIT} **

Example WRF script

Code Block
languagebash
cp -r /tarafs/data/project/common/WRF/Example1/submitWRF.sh .   # Copy the script to your em_real directory
nano submitWRF.sh    #!/bin/bash
#SBATCH -p compute                  # Partition or machine type [devel/compute/memory]
#SBATCH -N 1                        # Number of nodes
#SBATCH --ntasks-per-node=40        # Number of MPI processes per node
#SBATCH --cpus-per-task=1           # Number of OpenMP threads per MPI process
#SBATCH -t 24:00:00             # Specify your project account# *** {USER EDIT} **

Example WRF script

Code Block
languagebash
#!/bin/bash
Total run time limit (hour:minute:second)
#SBATCH -pJ computeWRF_Ex1                  # PartitionJob orname machine(short)
type [devel/compute/memory]
#SBATCH -N 1 --ntasks-per-node=40#SBATCH -A projxxxx      # Number of nodes and Number of core per node #SBATCH -t 24:00:00                 # Total run time limit (hour:minute:second)
#SBATCH -J WRF_Ex1    # Your project account *** {USER EDIT} ***

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

export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}
export JASPERINC=$EBROOTJASPER/include
export JASPERLIB=$EBROOTJASPER/lib

ulimit -s unlimited              # Job name (short)# #SBATCHMUST -Ahave projxxxxotherwise ERROR

srun -n8 ./real.exe            # Your project account *** {USER# EDIT} ***

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

export JASPERINC=$EBROOTJASPER/include
export JASPERLIB=$EBROOTJASPER/lib

ulimit -s unlimited

srun ./real.exe & wait
srun ./wrf.exeRun real.exe using 8 CPU cores (-n8)
srun -n${SLURM_NTASKS} -c${SLURM_CPUS_PER_TASK} ./wrf.exe

# It is more efficient to run geogrid.exe, metgrid.exe and real.exe using a few CPU cores (but enough memory).

สามารถปรับให้ Submit WPS และ WRF พร้อมกันได้ (See Single WRF Job Submission)

...

Code Block
languagebash
sbatch submitWRF.sh
tail -F rsl.out.0000        # (Optional) see the progress

RETURN: WRF model

...

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