1) Cấu trúc chung của namelist.wps.all_options
File này gồm các block chính:
Trong thực tế chạy WPS cho WRF ARW, quan trọng nhất là:
Còn:
2) Block &share
Đây là nơi khai báo thông tin chung cho toàn bộ WPS.
Ví dụ trong file mẫu có:
&share
wrf_core = 'ARW',
max_dom = 2,
start_date = '2006-08-16_12:00:00','2006-08-16_12:00:00',
end_date = '2006-08-16_18:00:00','2006-08-16_12:00:00',
interval_seconds = 21600
active_grid = .true., .true.,
subgrid_ratio_x = 1
subgrid_ratio_y = 1
io_form_geogrid = 2,
opt_output_from_geogrid_path = './',
debug_level = 0
/
Ý nghĩa từng tham số
wrf_core
Chọn lõi mô hình.
max_dom
Số domain.
start_date, end_date
Thời gian bắt đầu và kết thúc của mỗi domain.
interval_seconds
Khoảng cách thời gian của dữ liệu đầu vào khí tượng.
Ví dụ:
active_grid
Có kích hoạt domain đó không.
Ít khi phải sửa.
subgrid_ratio_x, subgrid_ratio_y
Liên quan đến subgrid tiling, rất ít khi cần cho bài toán chuẩn.
Thường để 1.
io_form_geogrid
Định dạng output của geogrid.
opt_output_from_geogrid_path
Thư mục ghi file geo_em*
debug_level
Mức debug.
Cách xác định tham số trong &share
Với bạn
Ví dụ
Nếu bạn dùng GFS 6 giờ một lần, chạy từ 00 UTC ngày 1/5/2026 đến 00 UTC ngày 6/5/2026, 2 miền:
max_dom = 2,
start_date = '2026-05-01_00:00:00','2026-05-01_00:00:00',
end_date = '2026-05-06_00:00:00','2026-05-06_00:00:00',
interval_seconds = 21600,
3) Block &geogrid
Đây là block quan trọng nhất để thiết kế domain.
Ví dụ trong file:
&geogrid
parent_id = 1, 1,
parent_grid_ratio = 1, 3,
i_parent_start = 1, 31,
j_parent_start = 1, 17,
s_we = 1, 1,
e_we = 74, 112,
s_sn = 1, 1,
e_sn = 61, 97,
geog_data_res = 'default','default',
dx = 30000,
dy = 30000,
map_proj = 'lambert',
ref_lat = 34.83,
ref_lon = -81.03,
ref_x = 37.0,
ref_y = 30.5,
truelat1 = 30.0,
truelat2 = 60.0,
stand_lon = -98.0,
geog_data_path = '/glade/work/wrfhelp/WPS_GEOG/'
opt_geogrid_tbl_path = 'geogrid/'
/
Ý nghĩa từng tham số
parent_id
Domain cha của mỗi domain.
Ví dụ 2 miền:
Nếu có d03 nằm trong d02 thì d03 sẽ có parent_id = 2
parent_grid_ratio
Tỷ lệ độ phân giải giữa domain con và domain cha.
Ví dụ:
Nếu dx của d01 là 27 km thì d02 sẽ là 9 km.
i_parent_start, j_parent_start
Vị trí bắt đầu của domain con bên trong domain cha.
Đây là chỉ số lưới, không phải lat/lon.
Chúng quyết định d02 nằm ở đâu bên trong d01.
s_we, s_sn
Điểm bắt đầu theo hướng tây-đông và nam-bắc.
Gần như luôn để:
e_we, e_sn
Điểm cuối theo hướng tây-đông và nam-bắc.
Thực chất là số điểm lưới của mỗi domain.
Miền càng rộng thì e_we, e_sn càng lớn.
geog_data_res
Chọn bộ dữ liệu static dùng cho geogrid.
Trong file mẫu có thêm ví dụ:
geog_data_res = 'modis_lakes+10m','modis_lakes+2m',
geog_data_res = 'usgs_lakes+10m','usgs_lakes+2m',
Nhưng đó chỉ là ví dụ, không phải dùng cùng lúc.
dx, dy
Độ phân giải ngang của domain ngoài cùng, đơn vị mét.
Ví dụ:
Với domain con, WPS tự tính từ parent_grid_ratio.
map_proj
Phép chiếu bản đồ.
Thường dùng:
Với Việt Nam, thường:
ref_lat, ref_lon
Vĩ độ, kinh độ tham chiếu của domain.
Thường gần với tâm miền.
ref_x, ref_y
Tọa độ lưới tham chiếu tương ứng với ref_lat, ref_lon.
Nhiều trường hợp có thể để mặc định hoặc không cần đụng sâu nếu thiết lập chuẩn.
truelat1, truelat2
Hai vĩ độ chuẩn của Lambert.
Chúng ảnh hưởng đến méo hình của phép chiếu.
stand_lon
Kinh tuyến chuẩn.
geog_data_path
Đường dẫn tới thư mục WPS geographical data.
Đây là thư mục chứa trực tiếp các thư mục con như topo, landuse, soil, lai...
opt_geogrid_tbl_path
Đường dẫn tới GEOGRID.TBL.
Thường để:
Cách xác định tham số trong &geogrid
Đây là phần quan trọng nhất.
A. Xác định mục tiêu domain
Trước tiên bạn phải tự trả lời:
Ví dụ:
B. Chọn dx, dy
Cho S2S, domain ngoài thường không cần quá mịn.
Gợi ý thực tế:
C. Chọn e_we, e_sn
Đây là kích thước miền.
Miền phải đủ rộng để:
D. Chọn ref_lat, ref_lon
Đặt gần tâm vùng bạn muốn mô phỏng.
Ví dụ Việt Nam thường có thể bắt đầu với:
E. Chọn map_proj
Với Việt Nam:
Ví dụ:
truelat1 = 10.0
truelat2 = 20.0
stand_lon = 108.0
F. Chọn nest
Nếu có d02:
Đây chính là lý do bạn muốn chạy geogrid.exe riêng để kiểm tra miền trước.
4) Block &ungrib
Ví dụ:
&ungrib
out_format = 'WPS',
prefix = 'FILE',
ec_rec_len = 26214508,
pmin = 100.
/
Ý nghĩa
out_format
Định dạng output của ungrib.
prefix
Tiền tố file output.
Nếu để:
prefix = 'FILE'
thì output sẽ là:
FILE:YYYY-MM-DD_HH
ec_rec_len
Ít khi phải sửa. Liên quan tới một số định dạng ECMWF.
pmin
Áp suất tối thiểu để đọc dữ liệu mức áp.
Ít khi phải đụng.
Cách xác định
Trong đa số case thực tế:
&ungrib
out_format = 'WPS',
prefix = 'FILE',
/
là đủ.
5) Block &metgrid
Ví dụ:
&metgrid
fg_name = 'FILE'
constants_name = './TAVGSFC'
io_form_metgrid = 2,
opt_output_from_metgrid_path = './',
opt_metgrid_tbl_path = 'metgrid/',
process_only_bdy = 5,
/
Ý nghĩa
fg_name
Tên prefix của dữ liệu khí tượng đầu vào do ungrib.exe sinh ra.
Nếu ungrib dùng:
prefix = 'FILE'
thì metgrid phải đọc:
fg_name = 'FILE'
constants_name
Tên file constant fields bổ sung.
Ít dùng trong case cơ bản.
io_form_metgrid
Định dạng output của metgrid.
opt_output_from_metgrid_path
Thư mục ghi met_em*
opt_metgrid_tbl_path
Đường dẫn tới METGRID.TBL
process_only_bdy
Chỉ xử lý một phần biên trong vài trường hợp đặc biệt.
Case chuẩn thường không cần đụng.
Cách xác định
Với case chuẩn, thường chỉ cần:
&metgrid
fg_name = 'FILE',
io_form_metgrid = 2,
/
6) Block &mod_levs
Ví dụ:
&mod_levs
press_pa = 201300 , 200100 , 100000 , ...
/
Ý nghĩa
Block này dùng để quy định các mức áp suất mục tiêu trong một số workflow đặc biệt.
Trong phần lớn bài toán real-case WRF thông thường, bạn không cần dùng.
7) Block &plotfmt
Ví dụ:
&plotfmt
ix = 100
jx = 100
ioff = 30
joff = 30
/
Ý nghĩa
Liên quan tới một số định dạng plot/output cũ.
Hiện nay gần như không phải block quan trọng cho workflow chuẩn.
8) Những tham số nào bạn thực sự cần quan tâm?
Trong thực tế, với WPS chuẩn, bạn chủ yếu tập trung vào:
&share
&geogrid
&ungrib
&metgrid
9) Cách xác định tham số theo tư duy đúng
Tôi khuyên bạn không học thuộc từng dòng, mà học theo logic sau:
Bước 1: xác định case
→ quyết định start_date, end_date, interval_seconds
Bước 2: xác định miền
→ quyết định max_dom, dx, dy, e_we, e_sn, ref_lat, ref_lon, parent_grid_ratio, i_parent_start, j_parent_start
Bước 3: xác định static data
→ quyết định geog_data_res, geog_data_path
Bước 4: xác định nguồn khí tượng đầu vào
→ quyết định prefix, fg_name
10) Một namelist.wps thực tế thường đơn giản hơn rất nhiều
Ví dụ với 1 domain cơ bản:
&share
wrf_core = 'ARW',
max_dom = 1,
start_date = '2026-05-01_00:00:00',
end_date = '2026-05-06_00:00:00',
interval_seconds = 21600,
io_form_geogrid = 2,
/
&geogrid
parent_id = 1,
parent_grid_ratio = 1,
i_parent_start = 1,
j_parent_start = 1,
e_we = 120,
e_sn = 100,
geog_data_res = 'default',
dx = 15000,
dy = 15000,
map_proj = 'lambert',
ref_lat = 16.0,
ref_lon = 108.0,
truelat1 = 10.0,
truelat2 = 20.0,
stand_lon = 108.0,
geog_data_path = '/work/tanpv/WPS_GEOG'
/
&ungrib
out_format = 'WPS',
prefix = 'FILE',
/
&metgrid
fg_name = 'FILE',
io_form_metgrid = 2,
/
Bạn thấy là nó ngắn hơn namelist.wps.all_options rất nhiều.
11) Lời khuyên thực tế nhất cho bạn
Khi nhìn namelist.wps.all_options, hãy xem nó như:
Bạn chỉ nên:
12) Cách học chắc nhất
Tôi khuyên bạn chia tham số thành 4 nhóm:
Nhóm thời gian
Nhóm domain
Nhóm dữ liệu địa lý
Nhóm dữ liệu khí tượng
1) &share
|
Tham số |
Mức độ |
Ý nghĩa |
Cách xác định |
|---|---|---|---|
|
wrf_core |
Bắt buộc |
Chọn lõi mô hình |
Hầu như luôn dùng 'ARW' |
|
max_dom |
Bắt buộc |
Số domain |
1 nếu chỉ có d01; 2 nếu có d01+d02 |
|
start_date |
Bắt buộc |
Thời gian bắt đầu của từng domain |
Theo thời gian case; mỗi domain một giá trị |
|
end_date |
Bắt buộc |
Thời gian kết thúc của từng domain |
Theo thời gian case |
|
interval_seconds |
Bắt buộc |
Khoảng cách thời gian dữ liệu đầu vào khí tượng |
GFS/FNL 6h → 21600; 3h → 10800; 1h → 3600 |
|
io_form_geogrid |
Thường dùng |
Format output của geogrid |
Gần như luôn để 2 |
|
active_grid |
Có thể bỏ qua |
Bật/tắt từng domain |
Thường để mặc định |
|
opt_output_from_geogrid_path |
Có thể bỏ qua |
Thư mục ghi geo_em* |
Thường để './' |
|
debug_level |
Ít khi cần |
Mức debug |
Thường để 0 |
|
subgrid_ratio_x, subgrid_ratio_y |
Ít khi cần |
Dùng cho subgrid đặc biệt |
Thường để 1 |
Ghi nhớ
Trong &share, thứ bạn thật sự phải tự quyết là:
2) &geogrid
Đây là block quan trọng nhất.
|
Tham số |
Mức độ |
Ý nghĩa |
Cách xác định |
|---|---|---|---|
|
parent_id |
Bắt buộc |
Domain cha của mỗi domain |
d01 luôn là 1; d02 trong d01 thì là 1; d03 trong d02 thì là 2 |
|
parent_grid_ratio |
Bắt buộc nếu có nest |
Tỷ lệ độ phân giải giữa con và cha |
Thường dùng 3 |
|
i_parent_start, j_parent_start |
Bắt buộc nếu có nest |
Vị trí bắt đầu domain con trong domain cha |
Chỉnh sau khi kiểm tra domain |
|
e_we, e_sn |
Bắt buộc |
Số điểm lưới theo tây-đông, nam-bắc |
Quyết định kích thước miền |
|
geog_data_res |
Bắt buộc thực tế |
Chọn bộ địa lý tĩnh |
Thường để 'default' |
|
dx, dy |
Bắt buộc |
Độ phân giải ngang của domain ngoài cùng |
Ví dụ 27000, 15000, 9000 m |
|
map_proj |
Bắt buộc |
Phép chiếu bản đồ |
Việt Nam thường lambert hoặc mercator |
|
ref_lat, ref_lon |
Bắt buộc |
Tâm tham chiếu của miền |
Chọn gần tâm khu vực nghiên cứu |
|
truelat1, truelat2 |
Bắt buộc nếu dùng Lambert/Mercator |
Vĩ độ chuẩn |
Chọn theo vùng nghiên cứu |
|
stand_lon |
Bắt buộc nếu dùng Lambert |
Kinh tuyến chuẩn |
Gần kinh độ trung tâm miền |
|
geog_data_path |
Bắt buộc |
Đường dẫn tới WPS geog data |
Trỏ tới thư mục chứa trực tiếp các thư mục topo/soil/landuse... |
|
opt_geogrid_tbl_path |
Thường dùng |
Đường dẫn GEOGRID.TBL |
Thường để 'geogrid/' |
|
s_we, s_sn |
Thường giữ mặc định |
Điểm bắt đầu lưới |
Gần như luôn là 1 |
|
ref_x, ref_y |
Ít khi cần |
Tọa độ lưới tham chiếu |
Thường không cần chỉnh tay |
Ghi nhớ
Trong &geogrid, bạn phải thật sự hiểu và tự quyết:
3) &ungrib
|
Tham số |
Mức độ |
Ý nghĩa |
Cách xác định |
|---|---|---|---|
|
out_format |
Bắt buộc thực tế |
Định dạng output của ungrib |
Gần như luôn 'WPS' |
|
prefix |
Bắt buộc thực tế |
Tiền tố file output |
Thường để 'FILE' |
|
ec_rec_len |
Ít khi cần |
Dùng cho một số dữ liệu ECMWF |
Chỉ đụng khi có yêu cầu đặc biệt |
|
pmin |
Ít khi cần |
Áp suất tối thiểu khi xử lý dữ liệu mức áp |
Hầu như không sửa |
Ghi nhớ
Trong &ungrib, thường chỉ cần nhớ 2 dòng:
out_format = 'WPS',
prefix = 'FILE',
4) &metgrid
|
Tham số |
Mức độ |
Ý nghĩa |
Cách xác định |
|---|---|---|---|
|
fg_name |
Bắt buộc thực tế |
Tên prefix của dữ liệu từ ungrib |
Nếu prefix='FILE' thì fg_name='FILE' |
|
io_form_metgrid |
Thường dùng |
Format output của metgrid |
Gần như luôn 2 |
|
opt_output_from_metgrid_path |
Có thể bỏ qua |
Thư mục ghi met_em* |
Thường để './' |
|
opt_metgrid_tbl_path |
Có thể bỏ qua |
Đường dẫn METGRID.TBL |
Thường để mặc định |
|
constants_name |
Ít khi cần |
File constant fields bổ sung |
Case đặc biệt mới dùng |
|
process_only_bdy |
Ít khi cần |
Chỉ xử lý biên |
Hiếm dùng |
Ghi nhớ
Trong &metgrid, thường chỉ cần:
fg_name = 'FILE',
io_form_metgrid = 2,
5) &mod_levs
|
Tham số |
Mức độ |
Ý nghĩa |
Cách xác định |
|---|---|---|---|
|
press_pa |
Ít khi cần |
Danh sách mức áp suất mục tiêu |
Chỉ dùng trong workflow đặc biệt |
Ghi nhớ
Block này phần lớn có thể bỏ qua với real-case chuẩn.
6) &plotfmt
|
Tham số |
Mức độ |
Ý nghĩa |
Cách xác định |
|---|---|---|---|
|
ix, jx, ioff, joff |
Ít khi cần |
Các tùy chọn liên quan plot/format cũ |
Thường không cần dùng |
7) Tóm tắt rất ngắn: cái gì là “phải tự quyết”?
Bạn phải tự quyết
Đây là các tham số cốt lõi:
Thời gian
Domain
Địa lý tĩnh
Đầu vào khí tượng
8) Cái gì thường để mặc định?
Thường để mặc định
9) Cái gì ít khi đụng?
Ít khi đụng
10) Một mẫu “namelist.wps tối thiểu” thực tế
Đây là kiểu bạn thường sẽ dùng:
&share
wrf_core = 'ARW',
max_dom = 1,
start_date = '2026-05-01_00:00:00',
end_date = '2026-05-06_00:00:00',
interval_seconds = 21600,
io_form_geogrid = 2,
/
&geogrid
parent_id = 1,
parent_grid_ratio = 1,
i_parent_start = 1,
j_parent_start = 1,
e_we = 120,
e_sn = 100,
geog_data_res = 'default',
dx = 15000,
dy = 15000,
map_proj = 'lambert',
ref_lat = 16.0,
ref_lon = 108.0,
truelat1 = 10.0,
truelat2 = 20.0,
stand_lon = 108.0,
geog_data_path = '/work/tanpv/WPS_GEOG'
/
&ungrib
out_format = 'WPS',
prefix = 'FILE',
/
&metgrid
fg_name = 'FILE',
io_form_metgrid = 2,
/
11) Cách nhớ đơn giản nhất
&share
khi nào và bao nhiêu miền
&geogrid
miền nằm ở đâu, rộng bao nhiêu, dữ liệu địa lý ở đâu
&ungrib
đọc dữ liệu khí tượng thô ra tên gì
&metgrid
lấy dữ liệu đó để tạo met_em*
12) Khuyến nghị dành riêng cho bạn
Với mục tiêu hiểu đúng rồi mới chạy, tôi khuyên bạn học theo 3 lớp:
Lớp 1: thuộc nhóm tham số
Lớp 2: biết tham số nào là bắt buộc
không cố nhớ tất cả trong file all_options
Lớp 3: khi chạy thật
chỉ mở rộng thêm nếu case đặc biệt đòi hỏi