Working with WRF CHEM part62 WRF KatrinaNesting
2014-08-12
##Trail for WRF-CHEM, WRF simulation with Katrina case and one-way Nesting-Ndown.exe## 1. Based on this to run compiled wrf in serial mode to execute the Katrina case with the nested model run by Ndown.exe based one-way nesting.
###WPS: Ungrib###
- As per this page, the WPS ungrib stage was carried out.
- Unzipped the tar file provided with the tutorial. Copied WPS folder both under a shared folder named as katrina_nesting.
- The vtable was linked inside the WPS folder by
ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable
. Linked the GFS files in the tar folder with WPS folder by
./link_grib.csh /home/swl-sacon-dst/wrf/WRF341/katrina/GFS_data/
. Following files with links were created by this step inside WPS folder.GRIBFILE.AAA -> ../katrina/GFS_data/avn_050828_00_00 GRIBFILE.AAB -> ../katrina/GFS_data/avn_050828_00_06 GRIBFILE.AAC -> ../katrina/GFS_data/avn_050828_00_12 GRIBFILE.AAD -> ../katrina/GFS_data/avn_050828_00_18 GRIBFILE.AAE -> ../katrina/GFS_data/avn_050828_00_24 GRIBFILE.AAF -> ../katrina/GFS_data/avn_050828_00_30 GRIBFILE.AAG -> ../katrina/GFS_data/avn_050828_00_36 GRIBFILE.AAH -> ../katrina/GFS_data/avn_050828_00_42 GRIBFILE.AAI -> ../katrina/GFS_data/avn_050828_00_48
For ungrib part of WPS a minimal namelist.wps suggested by this page as part of the tutorial is used. The namelist.wps in WPS folder edited and the file becomes
&share max_dom = 1, start_date = '2005-08-28_00:00:00','2005-08-28_00:00:00', end_date = '2005-08-30_00:00:00','2005-08-28_00:00:00', interval_seconds = 21600, io_form_geogrid = 2, / &metgrid fg_name = 'FILE' io_form_metgrid = 2, /
With this setup ungrib was run using this command
./ungrib.exe >& ungrib_data.log
, the log file says successful completion of the ungrib. With the earlier version of file ungrib, given error of namelist read and namelist was edited then ungrib run without error.In the tutorial, the remaining steps with SST data, based on this was not carried out. Only the long simulations require SST data.
###WPS:Geogrid###
- Based on the page
For the geogrid part of WPS, following namelist.wps was used based on this and edited as per the instruction in the page. The namelist.wps becomes
&share max_dom = 2, start_date = '2005-08-28_00:00:00','2005-08-28_00:00:00', end_date = '2005-08-30_00:00:00','2005-08-28_00:00:00', interval_seconds = 21600, io_form_geogrid = 2, / &geogrid parent_id = 1, 1, parent_grid_ratio = 1, 3, i_parent_start = 1, 35, j_parent_start = 1, 23, e_we = 98, 118, e_sn = 70, 103, geog_data_res = '10m','2m', dx = 30000, dy = 30000, map_proj = 'mercator', ref_lat = 25.00, ref_lon = -89.00, truelat1 = 0.0, truelat2 = 0.0, stand_lon = -89.0, geog_data_path = '/home/hoopoe/ems/wrfems/data/geog/' / &metgrid fg_name = 'FILE' io_form_metgrid = 2, /
In namelist.wps, the line
geog_data_path
was edited with geog folder as per the EMS namlist.wps to refer the huge file required for this purpose.There is a step stating the requirement of ncl language to visualize the domain. Used the m2lab virtual box having ncl language preinstalled. The VM ubuntu folder was shared with the host computer using the command
sudo mount -t vboxsf -o uid=1000,gid=1000 share ~/host
The VB ubuntu gives an error of the wrong password. Edited the password following this. Copied the namelist.wps into VB ubuntu and from there it was copied in WRF/WPS folder by reentering the command. As per m2lab chapter 4 instruction to run the plotgrid.ncl using the command, then executed.
cd WRF/MYTEST/WPS ncl util/plotgrids.ncl
It correctly visualized the domain as given in the tutorial. The tutorial instruction to visualize the domain by running
./util/plotgrids.exe
was not carried out, since there is no plotgrids.exe in WPS util folder.Executed the geogrid by
./geogrid.exe
, after its successful completion following files got created as per the pagegeo_em.d01.nc geo_em.d02.nc
###WPS:Metgrid###
14. This part of the trail based on the page
15. For the metgrid part of WPS, as per the tutorial page the content was checked for namelist.wps and kept as such of geogrid.exe namelist.
16. Then the metgrid was executed by ./metgrid.exe
and it ended with successful completion and creation of nc both domain 1 and 2 files as per the tutorial page.
metem.d01.2005-08-2800:00:00.nc
metem.d01.2005-08-2806:00:00.nc
metem.d01.2005-08-2812:00:00.nc
metem.d01.2005-08-2818:00:00.nc
metem.d01.2005-08-2900:00:00.nc
metem.d02.2005-08-2800:00:00.nc
###WRF:real.exe###
17. This part of tutorial is based on the page
18. For making WRF run the folder content from WRFV3_serial/test/em_real
was used as such and all the met files are linked inside the em_real folder using the command
ln -sf /home/swl-sacon-dst/wrf/WRF341/katrina/kWPS/met_em* .
For the real.exe part of WRF WITH NESTING NDOWN, following namelist.input was used based on this and edited as per the tutorial page to suit the Katrina case with nesting domain and the namelsit.input becomes
&time_control run_days = 0,0, run_hours = 12,12, run_minutes = 0,0, run_seconds = 0,0, start_year = 2005,2005, start_month = 08,08, start_day = 28,28, start_hour = 00,00, start_minute = 00,00, start_second = 00,00, end_year = 2005,2005, end_month = 08,08, end_day = 30,30, end_year = 2005,2005, end_month = 08,08, end_day = 30,30, end_hour = 00,00 end_minute = 00,00, end_second = 00,00, interval_seconds = 21600 input_from_file = .true.,.true., history_interval = 180,180, frames_per_outfile = 1000,1000, restart = .false., restart_interval = 720, io_form_history = 2 io_form_restart = 2 io_form_input = 2 io_form_boundary = 2 debug_level = 0 / &domains time_step = 180, max_dom = 2, e_we = 98,118, e_sn = 70,103, e_vert = 30,30, num_metgrid_levels = 27 dx = 30000,9000, dy = 30000, 9000, grid_id = 1, parent_id = 1, i_parent_start = 1,35, j_parent_start = 1, 23, parent_grid_ratio = 1, parent_time_step_ratio = 1, feedback = 1, / &physics mp_physics = 3, ra_lw_physics = 1, ra_sw_physics = 1, radt = 30, sf_sfclay_physics = 1, sf_surface_physics = 1, num_soil_layers = 5, bl_pbl_physics = 1, bldt = 0, cu_physics = 1, cudt = 5, / &dynamics w_damping = 0, diff_opt = 1, km_opt = 4, diff_6th_opt = 0, diff_6th_factor = 0.12, base_temp = 290. damp_opt = 0, zdamp = 5000., dampcoef = 0.2, khdif = 0, kvdif = 0, non_hydrostatic = .true., moist_adv_opt = 1, scalar_adv_opt = 1, / &bdy_control spec_bdy_width = 5, spec_zone = 1, relax_zone = 4, specified = .true., nested = .false., /
Gives error that
-------------- FATAL CALLED --------------- FATAL CALLED FROM FILE: <stdin> LINE: 9304 ERRORS while reading one or more namelists from namelist.input. -------------------------------------------
with this general error pointing, it was challenging to find the exact error in about 200 lines of namelist.input, so editing with different lines deemed to be erratic mistakes, still it was not rectified. So a search was made to collect the namelist for this tutorial case, but there is no direct namelist.input was available with the tutorial. So searched directly with error what was given and found a forum mail with direct relevance of the namelist.input for the same test case. Based on this and answer provided, edited the namelist and found working. The learning from this iteration is namelist will not consider formats as of python.
The content is essential but difficult to rectify with the provided error list from the running the executables. The main problem found with the provided namelist is of first few lines mentioning run days in time control section of namelist in which it was single value but the name list used is giving value for each domain. Other notable pages cited in this search was this for more detailed and comprehensive WRF installation and running, this2 for namelist editing tool. The working namelist.input for nesting was as follows
&time_control
run_days = 0,
run_hours = 12,
run_minutes = 0,
run_seconds = 0,
start_year = 2005, 2005, 2000,
start_month = 08, 08, 01,
start_day = 28, 28, 24,
start_hour = 00, 00, 12,
start_minute = 00, 00, 00,
start_second = 00, 00, 00,
end_year = 2005, 2005, 2000,
end_month = 08, 08, 01,
end_day = 29, 29, 25,
end_hour = 00, 00, 12,
end_minute = 00, 00, 00,
end_second = 00, 00, 00,
interval_seconds = 21600
input_from_file = .true.,.true.,.true.,
fine_input_stream = 0, 0,
history_interval = 180, 60, 60,
frames_per_outfile = 1000, 1000, 1000,
restart = .false.,
restart_interval = 5000,
io_form_history = 2
io_form_restart = 2
io_form_input = 2
io_form_boundary = 2
debug_level = 0
io_form_auxinput4 = 2
/
&domains
time_step = 180,
time_step_fract_num = 0,
time_step_fract_den = 1,
max_dom = 2,
e_we = 98, 118, 94,
e_sn = 70, 103, 91,
e_vert = 30, 30, 30,
p_top_requested = 5000,
num_metgrid_levels = 27,
num_metgrid_soil_levels = 4,
dx = 30000, 10000, 3333.33,
dy = 30000, 10000, 3333.33,
grid_id = 1, 2, 3,
parent_id = 1, 1, 2,
i_parent_start = 1, 35, 30,
j_parent_start = 1, 23, 30,
parent_grid_ratio = 1, 3, 3,
parent_time_step_ratio = 1, 3, 3,
feedback = 1,
smooth_option = 0
/
&physics
mp_physics = 3, 3, 3,
ra_lw_physics = 1, 1, 1,
ra_sw_physics = 1, 1, 1,
radt = 30, 30, 30,
sf_sfclay_physics = 1, 1, 1,
sf_surface_physics = 2, 2, 2,
bl_pbl_physics = 1, 1, 1,
bldt = 0, 0, 0,
cu_physics = 1, 1, 0,
cudt = 5
isfflx = 1,
ifsnow = 1,
icloud = 1,
surface_input_source = 1,
num_soil_layers = 4,
sf_urban_physics = 0, 0, 0,
/
&fdda
/
&dynamics
w_damping = 0,
diff_opt = 1,
km_opt = 4,
diff_6th_opt = 0, 0, 0,
diff_6th_factor = 0.12, 0.12, 0.12,
base_temp = 290.
damp_opt = 0,
zdamp = 5000., 5000., 5000.,
dampcoef = 0.2, 0.2, 0.2
khdif = 0, 0, 0,
kvdif = 0, 0, 0,
non_hydrostatic = .true., .true., .true.,
moist_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
/
&bdy_control
spec_bdy_width = 5,
spec_zone = 1,
relax_zone = 4,
specified = .true., .false.,.false.,
nested = .false., .true., .true.,
/
&grib2
/
mind o &namelistquilt niotaskspergroup = 0, nio_groups = 1, /
- Executed the real.exe by
./real.exe
and it completed without any error and successfully ended with the creation of three files as per the tutorial.
wrfinput_d01
wrfinput_d02
wrfbdy_d01
With file size of 13.6MB, 24.2 MB and 12.6 MB respectively. ###WRF:wrf.exe###
- The file
wrfinput_d02
was renamed intowrfndi_d02
and executed./wrf.exe
after editing namelist.input contentmax_dom=2
intomax_dom=1
. the WRF was executed correctly and produced one file with file name ofwrfout_d01_2005-08-28_00:00:00
with file size of 67.6 MB.
###WRF:ndown.exe###
14. This part of trail is based on the page
15. Added a following line in namelist.input under &time_control section io_form_auxinput2 = 2
.
16. Executed ./ndown.exe
and it run for several seconds and ends in error. The error was on,
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 353
program ndown: opening too many files
-------------------------------------------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 353
program ndown: opening too many files
-------------------------------------------
But created the files wrfinputd02 and wrfbdyd02 as per the tutorial page. The created file size was 24.8 MB and 8.2 MB, respectively.
- Made a google search with this error and found two mail list pages describing this error page1 and page2 page 1 only described the error, page2 having detailed answer for the error.
- Based on page2, the error is due to the lack of necessary ‘additional input’ content in
wrfinput_d02
input file created by real.exe. The page2 suggest run real.exe for other domain separately as the main domain using a freshly edited namelist.input and renamed metfiles. Which will make real.exe to include the ‘additional input’ into the file wrfndi_d02. For more clarity, this page contains more details for one way nesting, and it gives a stepwise explanation for the mail answered in page2. - Thus ndown.exe was rerun with additional steps explained in the point above. The metfiles created in WPS was renamed from
met_em.d02.2005-08-28_00:00:00.nc
tomet_em.d01.2005-08-28_00:00:00.nc
and the same name file for domain 01 was renamed intomet_em.d01.2005-08-28_00:00:00_DO1.nc
. The files created in last real.exe was renamed fromwrfinput_d01, wrfinput_d02, wrfbdy_d01
intowrfinput_d01_DO1, wrfinput_d02_DO1, wrfbdy_d01_DO1
and also for the namelist.input used for real.exe run. For fresh real.exe with only higher resolution domain, coarser resolution domain entries in namelist was removed and maintained an entry for higher resolution domain and changed
max_dom=2
frommax_dom=1
. Based on below namelist rea/.exe was executed.&time_control run_days = 0, run_hours = 0, run_minutes = 0, run_seconds = 0, start_year = 2005, 2005, start_month = 08, 08, start_day = 28, 28, start_hour = 00, 00, start_minute = 00, 00, start_second = 00, 00, end_year = 2005, 2005, end_month = 08, 08, end_day = 29, 29, end_hour = 00, 00, end_minute = 00, 00, end_second = 00, 00, interval_seconds = 21600 input_from_file = .true.,.true., history_interval = 180, 60, frames_per_outfile = 1000, 1000, restart = .false., restart_interval = 5000, io_form_history = 2 io_form_restart = 2 io_form_input = 2 io_form_boundary = 2 debug_level = 0 / &domains time_step = 180, time_step_fract_num = 0, time_step_fract_den = 1, max_dom = 1, s_we = 1, 1, e_we = 118, 117, s_sn = 1, 1, e_sn = 103, 102, s_vert = 1, 1, e_vert = 28, 28, num_metgrid_levels = 27 dx = 10000, 40000, dy = 10000, 10000, grid_id = 2, 2, parent_id = 1, 1, i_parent_start = 35, 35, j_parent_start = 23, 23, parent_grid_ratio = 1, 3, parent_time_step_ratio = 3, 3, feedback = 1, smooth_option = 0 / &physics mp_physics = 3, 3, 3, ra_lw_physics = 1, 1, 1, ra_sw_physics = 1, 1, 1, radt = 30, 30, 30, sf_sfclay_physics = 1, 1, 1, sf_surface_physics = 2, 2, 2, bl_pbl_physics = 1, 1, 1, bldt = 0, 0, 0, cu_physics = 1, 1, 0, cudt = 5 isfflx = 1, ifsnow = 1, icloud = 1, surface_input_source = 1, num_soil_layers = 4, sf_urban_physics = 0, 0, 0, / &fdda / &dynamics w_damping = 0, diff_opt = 1, km_opt = 4, diff_6th_opt = 0, 0, 0, diff_6th_factor = 0.12, 0.12, 0.12, base_temp = 290. damp_opt = 0, zdamp = 5000., 5000., 5000., dampcoef = 0.2, 0.2, 0.2 khdif = 0, 0, 0, kvdif = 0, 0, 0, non_hydrostatic = .true., .true., .true., moist_adv_opt = 1, 1, 1, scalar_adv_opt = 1, 1, 1, / &bdy_control spec_bdy_width = 5, spec_zone = 1, relax_zone = 4, specified = .true., .false.,.false., nested = .false., .true., .true., / &grib2 / &namelist_quilt nio_tasks_per_group = 0, nio_groups = 1, /
Ends in an error saying that
the DX DY of the namelist is not matching with input files
, multiple searches were made to find the cause of the error and namelist.input was edited. The input files referred in error was viewed to ascertain the DX and DY readings usingncdump -h
command and found no mistake in namelist.input domain section. Finally, the cause for error found from notification, and it is because in namelist.input start day and end day was having mention of 29th August 2005 and so it was referring met01* files of domain 1, where DX and DY is wrong. So startday and endday was edited to same day and then run real.exe, it created a file wrfinputd01 and renamed into wrfndid02, the file size is around 22.9MB.With this, the ndown.exe was ready to execute based on this page. The namelist.input was again edited and kept details to run coarser and high-resolution domain. The namelist.input was
&time_control run_days = 0, run_hours = 12, run_minutes = 0, run_seconds = 0, start_year = 2005, 2005, 2000, start_month = 08, 08, 01, start_day = 28, 28, 24, start_hour = 00, 00, 12, start_minute = 00, 00, 00, start_second = 00, 00, 00, end_year = 2005, 2005, 2000, end_month = 08, 08, 01, end_day = 28, 28, 25, end_hour = 00, 00, 12, end_minute = 00, 00, 00, end_second = 00, 00, 00, interval_seconds = 10800 input_from_file = .true.,.true.,.true., fine_input_stream = 0, 0, history_interval = 180, 60, 60, frames_per_outfile = 1000, 1000, 1000, restart = .false., restart_interval = 5000, io_form_history = 2 io_form_restart = 2 io_form_input = 2 io_form_boundary = 2 debug_level = 0 io_form_auxinput4 = 2 io_form_auxinput2 = 2 / &domains time_step = 180, time_step_fract_num = 0, time_step_fract_den = 1, max_dom = 2, e_we = 98, 118, 94, e_sn = 70, 103, 91, e_vert = 30, 30, 30, p_top_requested = 5000, num_metgrid_levels = 27, num_metgrid_soil_levels = 4, dx = 30000, 10000, 3333.33, dy = 30000, 10000, 3333.33, grid_id = 1, 2, 3, parent_id = 1, 1, 2, i_parent_start = 1, 35, 30, j_parent_start = 1, 23, 30, parent_grid_ratio = 1, 3, 3, parent_time_step_ratio = 1, 3, 3, feedback = 1, smooth_option = 0 / &physics mp_physics = 3, 3, 3, ra_lw_physics = 1, 1, 1, ra_sw_physics = 1, 1, 1, radt = 30, 30, 30, sf_sfclay_physics = 1, 1, 1, sf_surface_physics = 2, 2, 2, bl_pbl_physics = 1, 1, 1, bldt = 0, 0, 0, cu_physics = 1, 1, 0, cudt = 5 isfflx = 1, ifsnow = 1, icloud = 1, surface_input_source = 1, num_soil_layers = 4, sf_urban_physics = 0, 0, 0, / &fdda / &dynamics w_damping = 0, diff_opt = 1, km_opt = 4, diff_6th_opt = 0, 0, 0, diff_6th_factor = 0.12, 0.12, 0.12, base_temp = 290. damp_opt = 0, zdamp = 5000., 5000., 5000., dampcoef = 0.2, 0.2, 0.2 khdif = 0, 0, 0, kvdif = 0, 0, 0, non_hydrostatic = .true., .true., .true., moist_adv_opt = 1, 1, 1, scalar_adv_opt = 1, 1, 1, / &bdy_control spec_bdy_width = 5, spec_zone = 1, relax_zone = 4, specified = .true., .false.,.false., nested = .false., .true., .true., / &grib2 / &namelist_quilt nio_tasks_per_group = 0, nio_groups = 1, /
and the ndown.exe was executed by
./ndown.exe
. However, it ends with an error saying the too many files to open. Related to the error, In page, specifically mentioned about changing the interval_seconds in namelist.input. Majorly to consider the time interval between the coarser and high-resolution grid domains. So the namelist.input was edited withinterval_seconds =21600
intointerval_seconds =0
, this time ndown.exe exited withFloating point exception (core dumped)
. Again interval seconds was edited intointerval_seconds =3600
and run./ndown.exe
, this time error was more understandable of this kind,-------------- FATAL CALLED --------------- FATAL CALLED FROM FILE: <stdin> LINE: 371 Found 2005-08-28_03:00:00 before I found 2005-08-28_01:00:00. ------------------------------------------- -------------- FATAL CALLED --------------- FATAL CALLED FROM FILE: <stdin> LINE: 371 Found 2005-08-28_03:00:00 before I found 2005-08-28_01:00:00. -------------------------------------------
indicating the interval seconds of input file is 3 hours. So edited the interval seconds into
interval_seconds =10800
and run./ndown.exe
. This time ndown.exe was run without any error and produced wrfinputd02 and wrfbdyd02 files.
###WRF:wrf.exe###
1. This is based on this page and this page.
2. The files produced in ndown.exe wrfinputd02 and wrfbdyd02 was renamed into wrfinputd01 and wrfbdyd01, respectively. The output produced in earlier wrf.exe for coarse domain wrfoutd01
&domains
time_step = 60,
time_step_fract_num = 0,
time_step_fract_den = 1,
max_dom = 1,
s_we = 1, 1,
e_we = 118, 117,
s_sn = 1, 1,
e_sn = 103, 102,
s_vert = 1, 1,
e_vert = 30, 28,
num_metgrid_levels = 27
dx = 10000, 40000,
dy = 10000, 10000,
grid_id = 2, 2,
parent_id = 1, 1,
i_parent_start = 35, 35,
j_parent_start = 23, 23,
parent_grid_ratio = 1, 3,
parent_time_step_ratio = 3, 3,
feedback = 1,
smooth_option = 0
/
&physics
mp_physics = 3, 3, 3,
ra_lw_physics = 1, 1, 1,
ra_sw_physics = 1, 1, 1,
radt = 30, 30, 30,
sf_sfclay_physics = 1, 1, 1,
sf_surface_physics = 2, 2, 2,
bl_pbl_physics = 1, 1, 1,
bldt = 0, 0, 0,
cu_physics = 1, 1, 0,
cudt = 5
isfflx = 1,
ifsnow = 1,
icloud = 1,
surface_input_source = 1,
num_soil_layers = 4,
sf_urban_physics = 0, 0, 0,
/
&fdda
/
&dynamics
w_damping = 0,
diff_opt = 1,
km_opt = 4,
diff_6th_opt = 0, 0, 0,
diff_6th_factor = 0.12, 0.12, 0.12,
base_temp = 290.
damp_opt = 0,
zdamp = 5000., 5000., 5000.,
dampcoef = 0.2, 0.2, 0.2
khdif = 0, 0, 0,
kvdif = 0, 0, 0,
non_hydrostatic = .true., .true., .true.,
moist_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
/
&bdy_control
spec_bdy_width = 5,
spec_zone = 1,
relax_zone = 4,
specified = .true., .false.,.false.,
nested = .false., .true., .true.,
/
&grib2
/
&namelist_quilt
nio_tasks_per_group = 0,
nio_groups = 1,
/
With this namelist, wrf.exe
was executed and it ran for several minutes and created a wrfoutd01
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 822
... May have run out of valid boundary conditions in file wrfbdy_d01
-------------------------------------------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 822
... May have run out of valid boundary conditions in file wrfbdy_d01
- The error shows that it is related to incorrect startday or endday in wrfbdy01 in ndown.exe or real.exe. So the error was omitted to run nesting with Coimbatore domain. The various steps followed in Katrina nesting is as per this image.
.