WRF setup - adelgadop/SOPRO GitHub Wiki

Summary run

  1. WPS
  2. ./real in WRF
  3. MEGAN
  4. ANTHRO
  5. FINN
  6. ./real in WRF
  7. MOZBC using CAM-Chem as chemical initial and boundary conditions for wrfbdy_d01, wrfinput_d01, wrfinput_d02. It is necessary to link "met_em" files before to run MOZBC.
  8. ./wrf.exe

Coordinates of the center of the modeling domain area

Two modeling domain projects for Porto and Lisbon. Each project has the follow features:

Porto:

lat: 41.218163°, lon: -8.567008° d01: 9 km d02: 3 km

A3 (Lisbon):

lat: 38.743236°, lon: -9.172996° d01: 9 km d02: 3 km

WPS (namelist.wps)

The namelist.wps for Porto is:

&share
 wrf_core = 'ARW',
 max_dom = 2,
 start_date = '2017-08-30_00:00:00', '2017-08-30_00:00:00', '2017-08-30_00:00:00', '2017-08-30_00:00:00',
 end_date   = '2017-09-10_00:00:00', '2017-09-10_00:00:00', '2017-09-10_00:00:00', '2017-09-10_00:00:00',
 interval_seconds = 21600
 io_form_geogrid = 2,
/

&geogrid
 parent_id         =     0,     1,     1,     2,
 parent_grid_ratio =     1,     3,     5,     5,
 i_parent_start    =     1,    23,    52,    60,
 j_parent_start    =     1,    20,    60,    70,
 e_we              =    70,    79,   151,   151,
 e_sn              =    70,    79,   151,   151,
 geog_data_res     = '30s', '30s', '30s', '30s',
 dx = 9000,
 dy = 9000,
 map_proj = 'lambert',
 ref_lat   =  41.22,    ! Porto
 ref_lon   =  -8.57,    ! Porto
 truelat1  =  39.99,
 truelat2  =  39.99,
 stand_lon =  -8.78,
 geog_data_path = '/scr2/alejandro/WRF/DATA/GEOG/'
/

&ungrib
 out_format = 'WPS',
 prefix = 'FILE',
/

&metgrid
 fg_name = 'FILE'
 io_form_metgrid = 2,
/

The namelist.wps for Lisboa is:

&share
 wrf_core = 'ARW',
 max_dom = 2,
 start_date = '2017-08-30_00:00:00', '2017-08-30_00:00:00', '2017-08-30_00:00:00', '2017-08-30_00:00:00',
 end_date   = '2017-09-10_00:00:00', '2017-09-10_00:00:00', '2017-09-10_00:00:00', '2017-09-10_00:00:00',
 interval_seconds = 21600
 io_form_geogrid = 2,
/

&geogrid
 parent_id         =     0,     1,     1,     2,
 parent_grid_ratio =     1,     3,     5,     5,
 i_parent_start    =     1,    26,    52,    60,
 j_parent_start    =     1,    23,    60,    70,
 e_we              =    70,    79,   151,   151,
 e_sn              =    70,    79,   151,   151,
 geog_data_res     = '30s', '30s', '30s', '30s',
 dx = 9000,
 dy = 9000,
 map_proj = 'lambert',
 ref_lat   =  38.74,
 ref_lon   =  -9.17,
 truelat1  =  39.99,
 truelat2  =  39.99,
 stand_lon =  -8.78,
 geog_data_path = '/scr2/alejandro/WRF/DATA/GEOG/'
/

&ungrib
 out_format = 'WPS',
 prefix = 'FILE',
/

&metgrid
 fg_name = 'FILE'
 io_form_metgrid = 2,
/
  • To see the area modeling domain, write ncl util/plotgrids_new.ncl.
  • Ungrib the Global files downloaded from the ds083.03:
    • ./link_grib.csh $DATA/met/NCEP_GDAS/gdas1*(AMANAN)
    • ./link_grib.csh $LBC/NCEP_GDAS/sep/gdas1* (Svante2)
    • ./ungrib.exe
    • ./geogrid.exe
    • Run metgrid.exe. This program will horizontally interpolate the WRF Intermediate format (FILE: 2012-09-06_00) data into the grid define in the experiment design. We will see files named as met_em.d01.<date>.nc and met_em.d02.<date>.nc.

The met_em path locations are:

  • /scr2/alejandro/WRF/sopro/porto/met_em
  • /scr2/alejandro/WRF/sopro/lisboa/met_em

WRF (namelist.input)

Edit the path in the namelist.input in the WRF directory:

auxinput1_inname                    = '/scr2/alejandro/WRF/sopro/porto/met_em/met_em.d<domain>.<date>',

Change the namelist.input in the WRF directory, and run ./real.exe.

Emission data

EDGAR-HTAP

cd /scr2/alejandro/WRF/DATA/util/ANTHRO/src

Create the anthro_emis.inp file. The content shown below corresponds to Lisboa:

&CONTROL
 wrf_dir= '/scr2/alejandro/WRF/sopro/lisboa/WRF-4.2.1/test/em_real'
 anthro_dir = '/scr2/alejandro/WRF/DATA/util/EDGAR-HTAP/MOZCART'
 domains    = 2
 src_file_prefix = 'EDGAR_HTAP_emi_'
 src_file_suffix = '_2010.0.1x0.1.nc'
 src_names = 'CO(28)',
             'NOx(30)',
             'BIGALK(72)',
             'BIGENE(56)',
             'C2H4(28)',
             'C2H5OH(46)',
             'C2H6(30)',
             'C3H6(42)',
             'C3H8(44)',
             'CH2O(30)',
             'CH3CHO(44)',
             'CH3COCH3(58)',
             'CH3OH(32)',
             'MEK(72)',
             'SO2(64)',
             'TOLUENE(92)',
             'NH3(17)',
             'OC(12)',
             'BC(12)',
             'PM2.5(1)',
             'PM10(1)'

 sub_categories = 'emis_tot'
 emis_map = 'CO->CO',
            'NO->0.9*NOx',
            'NO2->0.1*NOx',
            'BIGALK->BIGALK',
            'C2H4->C2H4',
            'C2H5OH->C2H5OH',
            'C2H6->C2H6',
            'C3H6->C3H6',
            'C3H8->C3H8',
            'HCHO->CH2O',
            'ALD->CH3CHO',
            'CH3COCH3->CH3COCH3',
            'CH3OH->CH3OH',
            'MEK->MEK',
            'SO2->SO2',
            'TOLUENE->TOLUENE',
            'NH3->NH3',
            'OC(a)->OC',
            'BC(a)->BC',
            'PM_25(a)->PM2.5',
            'PM_10(a)->PM10',
!           'CH3COOH->CH3COOH'

 serial_output     = .false.
 start_output_time = '2017-08-30_00:00:00'
 stop_output_time  = '2017-09-10_00:00:00'
 output_interval   = 86400
 data_yrs_offset   = +7

Thereafter, run anthro_emis < anthro_emis.inp. These will create wrfchemi_<time>_<domain> (e.g., wrfchemi_00z_d01) files.

Go to $WRF/DATA/util/wes_coldens directory and run wesely < wesely.inp and exo_coldens < exo_coldens.inp changing previously the path. The wesely.inp file only has three lines:

&control
wrf_dir = '/scr2/alejandro/WRF/sopro/lisboa/WRF'
domains = 2,

/

The output will be wrf_season_wes_usgs_d01.nc, wrf_season_wes_usgs_d02.nc, exo_coldens_d01, exo_coldens_d02.

The namelist.input file for Porto:

&time_control
run_days                            = 0,
run_hours                           = 0,
run_minutes                         = 0,
run_seconds                         = 0,
start_year                          = 2017, 2017, 2017, 2017,
start_month                         = 08,     08,   08,   08,
start_day                           = 30,     30,   30,   30,
start_hour                          = 00,     00,   00,   00,
start_minute                        = 00,     00,   00,   00,
start_second                        = 00,     00,   00,   00,
end_year                            = 2017, 2017, 2017, 2017,
end_month                           = 09, 09,  09,  09,
end_day                             = 10, 10,   10,    10,
end_hour                            = 00,   00,   00,   00,
end_minute                          = 00,   00,   00,    00,
end_second                          = 00,   00,   00,  00,
interval_seconds                    = 21600
input_from_file                     = .true.,.true.,.true., .true.,
history_interval                    = 60,  60,   60, 60,
!history_outname                     = "/scr1/rnoeliab/RESULTS/wrfout/2_dominio/cbmz_iag_ysu/20190604/wrfout_d<domain>_<date>"
frames_per_outfile                  = 24, 24, 24, 24,
restart                             = .false.,
restart_interval                    = 7200,
io_form_auxinput4                   = 0,
io_form_auxinput2                   = 2,
io_form_auxinput5                   = 2,
io_form_auxinput6                   = 0,
io_form_auxinput7                   = 0,
io_form_auxinput8                   = 0,
io_form_auxinput12                  = 0,
io_form_history                     = 2
io_form_restart                     = 2
io_form_input                       = 2
io_form_boundary                    = 2
auxinput1_inname                    = '/scr2/alejandro/WRF/sopro/porto/met_em/met_em.d<domain>.<date>',
auxinput5_inname                    = 'wrfchemi_d<domain>_<date>',
auxinput6_inname                    = 'wrfbiochemi_d<domain>',
auxinput7_inname                    = 'wrffirechemi_d<domain>_<date>',
auxinput8_inname                     = 'wrfchemi_gocart_bg_d<domain>_<date>',
auxinput12_inname                    = 'wrf_chem_input',
auxinput5_interval_m                 = 60, 60, 60, 60,
auxinput7_interval_m                 = 60, 60, 60, 60,
auxinput8_interval_m                 = 1440, 1440, 0,
frames_per_auxinput5                = 12,   12,  12,   12,
frames_per_auxinput7                = 1,       1,   1,   1,
frames_per_auxinput8                = 1,       1,  1,    1,
debug_level                         = 0,
force_use_old_data                  = .true.,
/

&domains
time_step                           = 27,
time_step_fract_num                 = 0,
time_step_fract_den                 = 1,
max_dom                             = 1,
e_we                                = 70,    79,   151,   151,
e_sn                                = 70,    79,  151,    151,
e_vert                              = 35,    35,    35,     35,
dx                                  = 9000, 3000,  1000,    1000,
dy                                  = 9000, 3000,  1000,    1000,
p_top_requested                     = 5000,
num_metgrid_levels                  = 32,
num_metgrid_soil_levels             = 4,
eta_levels                          = 1.000, 0.993, 0.983, 0.970, 0.954,
                                      0.934, 0.909, 0.880, 0.845, 0.807,
                                      0.765, 0.719, 0.672, 0.622, 0.571,
                                      0.520, 0.468, 0.420, 0.376, 0.335,
                                      0.298, 0.263, 0.231, 0.202, 0.175,
                                      0.150, 0.127, 0.106, 0.088, 0.070,
                                      0.055, 0.040, 0.026, 0.013, 0.000

grid_id                             = 1,     2,     3,  4,
parent_id                           = 0,     1,     2,  2,
i_parent_start                      = 1,     23,    70,  60,
j_parent_start                      = 1,     20,    135,  70,
parent_grid_ratio                   = 1,     3,     5,    5,
parent_time_step_ratio              = 1,     3,     5,    5,
feedback                            = 1,
smooth_option                       = 0
/

&physics
mp_physics                          = 10,    10,     10,   10,
progn                               = 1,    1,     1,   1,
naer                                = 1e9
ra_lw_physics                       = 4,    4,     1,   1,
ra_sw_physics                       = 4,    4,     1,   1,
radt                                = 9,    3,     5,   5,
sf_sfclay_physics                   = 1,    1,     1,   1,
sf_surface_physics                  = 2,    2,     2,   2,
bl_pbl_physics                      = 1,    1,     1,   1,
bldt                                = 0,    0,     0,   0,
cu_physics                          = 5,    5,     1,   1,
cudt                                = 0,    0,     0,   0,
cugd_avedx                          = 1,
cu_diag                             = 1,     1,
topo_wind                           = 2,
isfflx                              = 1,
ifsnow                              = 0,
icloud                              = 1,
surface_input_source                = 1,
num_soil_layers                     = 4,
num_land_cat                        = 21,
sf_urban_physics                    = 0,     0,     0,    0,
maxiens                             = 1,
maxens                              = 3,
maxens2                             = 3,
maxens3                             = 16,
ensdim                              = 144,
cu_rad_feedback                     = .false., .false., .true., .true.,
/

&fdda
/
&dynamics
w_damping                           = 0,
diff_opt                            = 1,      1,      1,   1,
km_opt                              = 4,      4,      4,   4,
diff_6th_opt                        = 0,      0,      0,   0,
diff_6th_factor                     = 0.12,   0.12,   0.12,  0.12,
base_temp                           = 290.
damp_opt                            = 0,
zdamp                               = 5000.,  5000.,  5000.,  5000.,
dampcoef                            = 0.2,    0.2,    0.2,    0.2
khdif                               = 0,      0,      0,      0,
kvdif                               = 0,      0,      0,      0,
non_hydrostatic                     = .true., .true., .true.,  .true.,
moist_adv_opt                       = 1,      1,      1,      1,
scalar_adv_opt                      = 1,      1,      1,      1,
chem_adv_opt                        = 1,      2,      2,      2,
/

&bdy_control
spec_bdy_width                      = 5,
spec_zone                           = 1,
relax_zone                          = 4,
specified                           = .true., .false.,.false., .false.,
nested                              = .false., .true., .true.,  .true.,
/

&grib2
/

&chem
kemit                               = 1,
chem_opt                            = 112,  112,   112,  112,
bioemdt                             = 15,     5,     5,    5,
photdt                              = 15,     5,     5,    5,
chemdt                              = 0.,  0,   1.5,  1.5,
io_style_emissions                  = 1,                      ! 1 =  si usamos 00z y 12z wrfchemi
emiss_inpt_opt                      = 111,  111,   111,  111,
emiss_opt                           = 8,      8,     8,    8,    ! 4 = CBMZ/MOSAIC
chem_in_opt                         = 0,      0,      0,    0,
phot_opt                            = 3,      3,     3,    3,
gas_drydep_opt                      = 1,      1,     1,    1,
aer_drydep_opt                      = 1,      1,     1,    1,
aer_op_opt                          = 1,
opt_pars_out                        = 1,
bio_emiss_opt                       = 0,      0,     0,    0,
dust_opt                            = 0,
dmsemis_opt                         = 0,
seas_opt                            = 0,
gas_bc_opt                          = 1,      1,     1,    1,
gas_ic_opt                          = 1,      1,     1,    1,
aer_bc_opt                          = 1,      1,     1,    1,
aer_ic_opt                          = 1,      1,     1,    1,
gaschem_onoff                       = 1,      1,     1,    1,
aerchem_onoff                       = 1,      1,     1,    1,
wetscav_onoff                       = 0,      0,     0,    0,
cldchem_onoff                       = 0,      0,     0,    0,
vertmix_onoff                       = 1,      1,     1,    1,
chem_conv_tr                        = 0,      0,     0,    0,
biomass_burn_opt                    = 0,      0,     0,    0,
plumerisefire_frq                   = 180,  180,   180,    180,
aer_ra_feedback                     = 0,      0,    0,      0,
ne_area                             = 158,
scale_fire_emiss                    = .false.,        ! true es solo para MOZCART
have_bcs_chem                       = .true., .true., .true., .true.,
chemdiag                            = 1,
/

&namelist_quilt
nio_tasks_per_group = 0,
nio_groups = 1,
/ 
  • Before running, verify if somebody is using the noh1, write in the terminal ssh noh1 then top. If nobody is using it, so we can run the WRF with the following code: mpirun -np 16 -machinefile host_jano ./wrf.exe &
  • To verify if the WRF is running adequately, write tail -f rsl.out.0000.
⚠️ **GitHub.com Fallback** ⚠️