Excerpt |
---|
hidden | true |
---|
name | Example 1: Run WRF |
---|
|
ตัวอย่างการใช้งาน WRF เบื้องต้น |
การใช้งาน Weather Research and Forecasting (WRF) model เบื้องต้นมีขั้นตอนดังนี้
...
1. Prepare global model output
...
Code Block |
---|
|
./link_grib.csh Path_to_your_data # Path to the folder containing the GFS data *** {USER INPUTEDIT} *** |
...
ไฟล์ namelist.wps ในโฟลเดอร์ WPS เป็นไฟล์ที่ควบคุมการทำงานหลักของ WPS ซึ่งกำหนดวันเวลา ตำแหน่งและขนาดพื้นที่ที่ WRF model จำลอง
สำหรับตัวอย่างนี้ ให้แก้ไขไฟล์ namelist.wps ดังนี้
Code Block |
---|
|
# Edit namelist.wps
Panel |
---|
panelIconId | 1f4d8 |
---|
panelIcon | :blue_book: |
---|
panelIconText | 📘 |
---|
bgColor | #DEEBFF |
---|
|
See also: WRF namelist.wps |
สำหรับตัวอย่างนี้ ให้แก้ไขไฟล์ namelist.wps ดังนี้
Code Block |
---|
|
# Edit namelist.wps
# as follows while leave the others unchanged
### Share ###
start_date = '2022-05-09_00:00:00', '2022-05-09_00:00:00',
end_date = '2022-05-09_12:00:00', '2022-05-09_12:00:00',
### Geogrid ###
i_parent_start = 1, 43,
j_parent_start = 1, 53,
e_we = 120, 121,
e_sn = 150, 151,
dx = 36000,
dy = 36000,
map_proj = 'mercator',
ref_lat = 13.208,
ref_lon = 101,
truelat1 = 13.208,
truelat2 = 0,
stand_lon = 100.861,
geog_data_path = '../WPS_GEOG' # *** {USER INPUTEDIT} *** |
Info |
---|
สำหรับการตั้งค่า geog_data_path ในบรรทัดที่ 17 ดู Geography data --- for WPS geogrid.exe |
Panel |
---|
panelIconId | 1f4d8 |
---|
panelIcon | :blue_book: |
---|
panelIconText | 📘 |
---|
bgColor | #DEEBFF |
---|
|
See also: https://www2.mmm.ucar.edu/wrf/users/namelist_best_prac_wps.html |
2.2 Check domains (2.2 Check domains (Optional, require NCL6.2 or later)
...
Code Block |
---|
|
cp -r /tarafs/data/project/common/WRF/Example1/submitWPS.sh . # Copy the script to WPS directory
nano submitWPS.sh # Specify your project account *** {USER INPUTEDIT} ** |
Example WPS script
Code Block |
---|
|
#!/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 no$node
#SBATCH -t 02:00:00 # Total run time limit (hour: minute: secon$second)
#SBATCH -J WPS_Ex1 # Job name (short)
#SBATCH -A projxxxx # Your project account *** {USER INPUTEDIT} ***
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 --exclusive ./metgrid.exe |
Note |
---|
ungrid.exe ต้องรันแบบ Single processor/Serial execution เท่านั้น |
สามารถรวม Job submission script ของ WPS และ WRF เพื่อ Submit job เพียงครั้งเดียวได้
2.4 Submit WPS job
สามารถ Submit job ได้โดยใช้คำสั่ง sbatch แล้วติดตามด้วยคำสั่ง sacct หรือ squeue -u USERNAME
Code Block |
---|
|
sbatch submitWPS.sh |
3. Run WRF
3.1 Edit ./em_real/namelist.input
ไฟล์ namelist.input ในโฟลเดอร์ em_real เป็นไฟล์ที่ควบคุมการทำงานทั้งหมดของ WRF ซึ่งต้องกำหนดวันเวลา ตำแหน่งและขนาดพื้นที่ ให้สอดคล้องกับไฟล์ ./WPS/namelist.wps
ในไฟล์ namelist.input จะเพิ่มการ
สำหรับตัวอย่างนี้ ให้แก้ไขไฟล์ namelist.input ดังนี้
Code Block |
---|
|
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 |
---|
|
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 |
---|
panelIconId | 1f4d8 |
---|
panelIcon | :blue_book: |
---|
panelIconText | 📘 |
---|
bgColor | #DEEBFF |
---|
|
See also: WRF Namelist.input and Duplicate ./test/em_real |
สำหรับตัวอย่างนี้ ให้แก้ไขไฟล์ namelist.input ดังนี้
Code Block |
---|
|
# 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_seconds = 0,
start_year = 2022, 2022,
start_month = 05, 05,
start_day = 19, 19,
start_hour = 0,
run_hours 00, 00,
end_year = 2022, 2022,
end_month = 05, = 1205,
run_minutesend_day = 19, 019,
run_secondsend_hour = 12, 012,
startframes_per_yearoutfile = 6, 6,
### Domains ###
= 2022, 2022,
time_step start_month = 0580,
e_we 05, start_day = 19120, 19121,
start_houre_sn = 00150, 00151,
ende_yearvert = 2022, 2022, 50, 50,
dx end_month = 0536000,
09,dy end_day = 06, = 0636000,
endgrid_hourid = 001, 00 2,
frames_per_outfileparent_id = 60, 6, time_step1,
i_parent_start = 901, time_step_fract_num 43,
j_parent_start = 0, time_step_fract_den = 1, 53,
### Physics =###
1, maxphysics_domsuite = 'tropical'
### Bdy_control ###
=specified 2, e_we = .true., .false.,
nested = 120, 121, e_sn = .false., .true., |
3.2 Link met_em* from WPS
ทำการลิ้งหรือคัดลอกไฟล์ที่เตรียมจาก WPS มายังโฟลเดอร์ em_real
Code Block |
---|
|
ln -s Path_to_WPS/met_em* . # Path =to 150,WPS folder containing met_em 151,files e_vert *** {USER EDIT} ***
= 34, # 34,
dzstretch_s = 1.1
p_top_requestedLink ./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
Example WRF script ด้านล่างนี้ คือตัวอย่างที่ใช้ในการ Submit job บน TARA compute node (40 CPU cores) โดยสามารถคัดลอกสคริปต์นี้ได้โดยใช้คำสั่งด้านล่าง แล้วแก้ไข Project account
Code Block |
---|
|
cp -r /tarafs/data/project/common/WRF/Example1/submitWRF.sh . # Copy the script to your em_real directory
nano submitWRF.sh = 5000,
num_metgrid_levels # Specify your project account = 34,
num_metgrid_soil_levels *** {USER EDIT} ** |
Example WRF script
Code Block |
---|
|
#!/bin/bash
#SBATCH -p compute = 4, dx # Partition or machine type [devel/compute/memory]
#SBATCH -N 1 = 36000, dy# Number of nodes
#SBATCH --ntasks-per-node=40 # Number of MPI processes per node
#SBATCH --cpus-per-task=1 # =Number 36000,of OpenMP grid_idthreads per MPI process
#SBATCH -t 24:00:00 # Total run time limit = 1, (hour:minute:second)
#SBATCH -J WRF_Ex1 2, parent_id # Job name (short)
#SBATCH -A projxxxx = 0, 1, i_parent_start# 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= 1, 43,
j_parent_start ${SLURM_CPUS_PER_TASK}
export JASPERINC=$EBROOTJASPER/include
export JASPERLIB=$EBROOTJASPER/lib
ulimit -s unlimited # =MUST 1,have otherwise ERROR
53,
|
Panel |
---|
panelIconId | 1f4d8 |
---|
panelIcon | :blue_book: |
---|
panelIconText | 📘 |
---|
bgColor | #DEEBFF |
---|
|
See also: https://www2.mmm.ucar.edu/wrf/users/namelist_best_prac_wrf.html |
3.2 WRF job submission script
Code Block |
---|
#!/bin/bash
#SBATCH -p devel
#SBATCH -N 1 --ntasks-per-node=40
#SBATCH -t 02:00:00
#SBATCH -J WRF
#SBATCH -A thaisc
module purge
module load HDF5/1.10.5-iimpi-2019b
module load JasPer/1.900.1-intel-2019b
module load libpng/1.6.37-GCCcore-10.3.0
export JASPERINC=$EBROOTJASPER/include
export JASPERLIB=$EBROOTJASPER/lib
export NETCDF=/tarafs/data/project/thaisc/skanoksi/Libraries/NET$export LD_LIBRARY_PATH=${NETCDF}/lib:${LD_LIBRARY_PATH}
export PATH=${NETCDF}/bin:${PATH}
ulimit -s unlimited
srun ./real.exe &
wait
srun ./wrf.exe |
...
srun -n8 ./real.exe # Run 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)
3.4 Submit WRF job
สามารถ Submit job ได้โดยใช้คำสั่ง sbatch แล้วติดตามการทำงานด้วยการอ่านไฟล์ rsl.out.xxxx หรือใช้คำสั่ง sacct และ squeue -u USERNAME ตามปกติ (ใช้เวลาประมาณ 10 นาที เมื่อได้รันบน Compute node)
Code Block |
---|
|
sbatch submitWRF.sh
tail -F rsl.out.0000 # (Optional) see the progress |
...
Contact Us
ThaiSC support service : thaisc-support@nstda.or.th