Excerpt | ||||
---|---|---|---|---|
| ||||
ตัวอย่างการใช้งาน WRF เบื้องต้น |
การใช้งาน Weather Research and Forecasting (WRF) model เบื้องต้นมีขั้นตอนดังนี้
Table of Contents |
---|
...
Tip |
---|
|
1. Prepare global model output
...
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 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# Run geogrid.exe &using 4 waitCPU sruncores (-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 | ||
---|---|---|
| ||
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 ) 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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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_hoursseconds = 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, 2022 19, 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_step 120, 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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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# accountTotal *** {USER EDIT} ** |
Example WRF script
Code Block | ||
---|---|---|
| ||
#!/bin/bashrun 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 | ||
---|---|---|
| ||
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