WRF-Chem run with MOZART-GOCART: missing radicals

544 views
Skip to first unread message

Aoxing Zhang

unread,
Aug 14, 2020, 12:33:38 PM8/14/20
to wrf-chem-run
Hello all,

I am running MOZART-GOCART (chem_opt=112) with WRF-Chem V3.9. The aerosol part works fine but it seems the photolysis is not working well: in my output there are distributions of NO, NO2 and O3, but no concentration (all 1E-16) for o and o1d radicals, so it seems that the reactions NO2+hv->NO+O, and O3+hv->O1D + O2 are not working. I tried changing NO emissions but O3 is not changing with it. Here attached my namelist.input. Did anyone have similar problems, or any hints on fixing or debugging it? Thanks!

Aoxing


namelist.input
&time_control
 run_days                            = 11,
 run_hours                           = 0,
 run_minutes                         = 0,
 run_seconds                         = 0,
 start_year                          = 2016, 2016,
 start_month                         = 11,   11,   
 start_day                           = 07,   07,   
 start_hour                          = 00,   00,   
 start_minute                        = 00,   00,   
 start_second                        = 00,   00,   
 end_year                            = 2016, 2016, 
 end_month                           = 11,   11,   
 end_day                             = 18,   18,   
 end_hour                            = 00,   00,   
 end_minute                          = 00,   00,   
 end_second                          = 00,   00,   
 interval_seconds                    = 21600,
 input_from_file                     = .true.,.true.,.false.,
 history_interval                    = 60,  60,   60,
 frames_per_outfile                  = 24, 24,
 restart                             = .false.,
 restart_interval                    = 0,
 io_form_history                     = 2,
 io_form_restart                     = 2,
 io_form_input                       = 2,
 io_form_boundary                    = 2,
 debug_level                         = 0,
 auxinput5_inname                    = 'wrfchemi_d<domain>_<date>',
 auxinput6_inname                    = 'wrfbiochemi_d<domain>',
 auxinput7_inname                    = 'wrffirechemi_d<domain>_<date>',
 auxinput5_interval_m                = 60,60,60,
 auxinput6_interval_m                = 86400, 
 auxinput7_interval_m                = 60,60,60,
 io_form_auxinput5                   = 2,
 io_form_auxinput6                   = 2,
 io_form_auxinput7                   = 2,
 frames_per_auxinput7                = 1, 1, 1,
 frames_per_auxinput5                = 1, 1, 1,
 /
 &dfi_control
/
 &domains
 time_step                           = 60,
 time_step_fract_num                 = 0,
 time_step_fract_den                 = 1,
 max_dom                             = 1,
 s_we                                =   1,    1,
 e_we                                = 80,   130,
 s_sn                                =   1,    1,
 e_sn                                = 67,   103,
 e_vert                              = 33,    33,
 num_metgrid_levels                  = 32,
 num_metgrid_soil_levels             = 4,
 dx                                  = 12000, 4000,
 dy                                  = 12000, 4000,
 grid_id                             = 1,     2,    
 parent_id                           = 0,     1,    
 i_parent_start                      = 1,     17,    
 j_parent_start                      = 1,     17,   
 parent_grid_ratio                   = 1,     3,    
 parent_time_step_ratio              = 1,     3,    
 p_top_requested                     = 5000,
 feedback                            = 1,
 smooth_option                       = 0,
 zap_close_levels                    = 50
 interp_type                         = 1
 t_extrap_type                       = 2
 force_sfc_in_vinterp                = 0
 use_levels_below_ground             = .true.
 use_surface                         = .true.
 lagrange_order                      = 1
 use_adaptive_time_step              = .true.
 step_to_output_time                 = .true.
 target_cfl                          = 1.2, 1.2,
 max_step_increase_pct               = 5, 5,
 starting_time_step                  = -1, -1, 
 max_time_step                       = -1, -1, 
 min_time_step                       = -1, -1, 
 adaptation_domain                   = 1,
 /

 &physics
 mp_physics                          = 8,     8,     
 progn                               = 0,
 ra_lw_physics                       = 4,     4,     
 ra_sw_physics                       = 4,     4,     
 radt                                = 30,    30,    
 sf_sfclay_physics                   = 1,     1,     
 sf_surface_physics                  = 2,     2,     
 bl_pbl_physics                      = 1,     1,     
 bldt                                = 0,     0,     
 cu_physics                          = 5,     5,     
 cu_diag                             = 1,     1,
 cudt                                = 0,     0,     
 ishallow                            = 0,
 isfflx                              = 1,
 ifsnow                              = 1,
 icloud                              = 1,
 surface_input_source                = 1,
 num_soil_layers                     = 4,
 sf_urban_physics                    = 0,     0,     0,
 mp_zero_out                         = 2,
 mp_zero_out_thresh                  = 1.e-12
 maxiens                             = 1,
 maxens                              = 3,
 maxens2                             = 3,
 maxens3                             = 16,
 ensdim                              = 144,
 cu_rad_feedback                     = .true.,
 num_land_cat      = 24,
 /

 &fdda
 /

 &dynamics
 rk_ord                              = 3,
 w_damping                           = 0,
 diff_opt                            = 1,      1,      1,
 km_opt                              = 4,      4,      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.01,    0.01,    0.01,
 khdif                               = 0,      0,      0,
 kvdif                               = 0,      0,      0,
 non_hydrostatic                     = .true., .true., .true.,
 moist_adv_opt                       = 2,      2,      0,     
 scalar_adv_opt                      = 2,      2,      0,     
 gwd_opt                             = 1,
 tke_adv_opt                         = 2, 2, 0,
 time_step_sound                     = 4, 4, 4
 h_mom_adv_order                     = 5,      5,      5,
 v_mom_adv_order                     = 3,      3,      3,
 h_sca_adv_order                     = 5,      5,      5,
 v_sca_adv_order                     = 3,      3,      3,
 /

 &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,
 /
&chem
 kemit                               = 1,
 chem_opt                            = 112,     112,
 bioemdt                             = 3.00,
 photdt                              = 20,      20,
 chemdt                              = 3.00,
 io_style_emissions                  = 2,
 emiss_opt                           = 8,          8,
 emiss_inpt_opt                      = 111,       111,
 chem_in_opt                         = 0,          0,
 phot_opt                            = 4,          4,
 gas_drydep_opt                      = 1,          1,
 aer_drydep_opt                      = 1,          1,
 bio_emiss_opt                       = 3,          0,
 ne_area                             = 215,
 dust_opt                            = 1,
 dmsemis_opt                         = 1,
 seas_opt                            = 1,
 depo_fact                           = 0.25,
 gas_bc_opt                          = 112,          112,
 gas_ic_opt                          = 112,          112,
 aer_bc_opt                          = 112,          112,
 aer_ic_opt                          = 112,          112,
 gaschem_onoff                       = 1,          1,
 aerchem_onoff                       = 1,          1,
 wetscav_onoff                       = 1,          1,
 cldchem_onoff                       = 0,          0,
 vertmix_onoff                       = 1,          1,
 chem_conv_tr                        = 1,          1,
 conv_tr_wetscav                     = 1,          1,
 conv_tr_aqchem                      = 1,          1,
 biomass_burn_opt                    = 2,          2,
 plumerisefire_frq                   = 30,         30,
 have_bcs_chem                       = .true., .true., .true.,
 aer_ra_feedback                     = 1,
 aer_op_opt                          = 1,
 opt_pars_out                        = 1  ,
 diagnostic_chem                     = 1 ,1
 chemdiag                            = 1, 1
 pht_cldfrc_opt                      = 2,
 cld_od_opt                          = 2,
 have_bcs_upper                      = .false., .false.
 is_full_tuv                         = .false., .false.
/

Mary Barth

unread,
Aug 14, 2020, 7:23:06 PM8/14/20
to wrf-ch...@ucar.edu

Hello Aoxing,

Try setting photdt = 15 minutes. I'm wondering if the 20 minute photdt does not work because it's not a factor of the chem_dt (3 minutes)

Cheers,
Mary

Aoxing Zhang

unread,
Aug 17, 2020, 11:15:32 AM8/17/20
to wrf-chem-run, bar...@ucar.edu
Thanks Mary! It makes sense that photdt should be a factor of chemdt. I tried setting photdt = 15 but it seems not working for my issue :(. But here are some updates: ]
Not only o and o1d, but also many intermediate radicals are missing (alko2, aco3, meko2, mekooh, mco3...) The common thing among them is that they are not set for initial and boundary condition in mozbc (in which i\I used a mozart file downloaded from ACOM website as an input). Then I put a rough constant number for o radical to mozbc as ic and bc, rerun the model. This species is no longer 1e-16, but still seems not related to any other precursors. For example, in my 24 hours run, it did not decrease at night and increase in daytime; when NO2 has significant hotspots NO2.PNG, o does not: O.PNG. So I guess the issue is still there that no chemistry is happening... I am not sure if the ic and bc are all critical for every species, but seems there are some other bugs behind it. Sorry for the frustrating issue, I will be excited to see any hints or suggestions for you!

Thanks,
Aoxing


Mary Barth

unread,
Aug 17, 2020, 11:40:27 AM8/17/20
to Aoxing Zhang, wrf-chem-run

Hello Aoxing,

There is no need to initialize the radicals with the mozbc preprocessor as the chemistry should quickly control their concentrations.

Have you done a short run with a higher debug_level so that you can check whether the simulation is calling the routines properly?

Also, maybe use one of the example sets of namelist variables given in the WRF Users Guide (v3.9, p. 72-73) to start with a combination that should work.

-- Mary

-- 
^--^--^--^--^--^--^--^--^--^--^--^--^--^--^--^--^--^--^--^--^--^
Mary Barth                                Phone:  303-497-8186
Senior Scientist                          email: bar...@ucar.edu

National Center for Atmospheric Research                        
P.O. Box 3000                  
Boulder, CO 80307           

https://staff.ucar.edu/users/barthm  
DC3 Web Site:  http://www2.acom.ucar.edu/dc3/
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Aoxing Zhang

unread,
Aug 17, 2020, 1:55:29 PM8/17/20
to Mary Barth, wrf-chem-run

Thanks, Mary.

My current setting is as the example 3 in WRF-Chem user guide. I also tried including or excluding ‘has_o3_exo_coldens = .true.’, which didn’t solve the problem. I opened a debug-level=200 to check its routine callings, there are callings for photolysis such as:

 

d01 2016-11-07_00:00:00 calling optical driver

d01 2016-11-07_00:00:00 optical driver: process aerosols true

d01 2016-11-07_00:00:00 optical averaging

d01 2016-11-07_00:00:00 optical driver: call optical averaging

d01 2016-11-07_00:00:00 optical driver: after call optical averaging

d01 2016-11-07_00:00:00 calling photolysis driver

photolysis_driver: called for domain            1

d01 2016-11-07_00:00:00 calling ftuv_driver

d01 2016-11-07_00:00:00 no aerosols initialization yet

no aerosols initialization yet

d01 2016-11-07_00:00:00 calling conv transport for chemical species

d01 2016-11-07_00:00:00 calling calc_het_n2o5

d01 2016-11-07_00:00:00 chem_driver(01): Calling dchm_tstep_init

d01 2016-11-07_00:00:00 no gocart so2-so4 conversion

d01 2016-11-07_00:00:00 wetscav_driver calling wetscav_mozcart

d01 2016-11-07_00:00:00 washout: max rls @ (i,j,k)    0   0   0 =    0.000000

d01 2016-11-07_00:00:00 sum_pm_driver: calling sum_pm_gocart

d01 2016-11-07_00:00:00 done tileloop in chem_driver

d01 2016-11-07_00:00:00 calculate optical output stuff

d01 2016-11-07_00:00:48 module_integrate: back from solve interface

d01 2016-11-07_00:00:48  DEBUG wrf_timetoa():  returning with str = [2016-11-07_00:00:48]

Some packages related to chemistry called… I’m not sure whether they are enough, but I didn’t see any “kpp” or routines that look related to "reactions", not sure if calling kpp reactions should be a thing that need to show up in log file… I will follow up if any other find pop up.

Thanks!

Aoxing

Aoxing Zhang

unread,
Aug 17, 2020, 4:51:37 PM8/17/20
to Mary Barth, wrf-chem-run

And here attached a log file with debug information.

 

Thanks,

Aoxing

 

From: Mary Barth <bar...@ucar.edu>
Sent: Monday, August 17, 2020 11:40 AM
To: Aoxing Zhang <axzha...@gmail.com>; wrf-chem-run <wrf-ch...@ucar.edu>
Subject: Re: [WRF-Chem Run] WRF-Chem run with MOZART-GOCART: missing radicals

 

Hello Aoxing,

rsl.out.0000

Mary Barth

unread,
Aug 17, 2020, 5:02:59 PM8/17/20
to Aoxing Zhang, wrf-chem-run

Hello Aoxing,

What version of WRF-Chem are you running?

The TUV photolysis option became available in WRFv3.9. Any version before that would need photolysis_option <=3.

The reason I ask is that the output that you put in bold below says that the photolysis driver is calling FTUV (and not TUV). So, you may want to either stay with your current version of WRF and switch to using settings for FTUV (check the user's guide), or switch to WRFv4.0 or greater and use the TUV photolysis option.

It's also useful for you to follow the logic of the code to see where these debug statements are printed out.

-- Mary

Mary Barth

unread,
Aug 17, 2020, 5:25:46 PM8/17/20
to Aoxing Zhang, wrf-chem-run

Aoxing,

I see from the rsl.* file that it is version 3.9.1 that you are running. So now I am confused as to why the photolysis driver is calling ftuv and not tuv. You can track the debug write statements in photolysis_driver.F

Mary

Aoxing Zhang

unread,
Aug 17, 2020, 5:29:32 PM8/17/20
to Mary Barth, wrf-chem-run

Thanks Mary, for your suggestion. I am using WRFv3.9, and I tried both FTUV (phot_opt=3) and the new TUV (phot_opt=4) scheme (https://www2.acom.ucar.edu/sites/default/files/wrf-chem/Instructions_phot_opt_4.pdf). I was thinking that matters for my problem but it seems not. And sure I will have a detailed look at the photolysis code. Will update once I found the issue.

 

Cheers,

Aoxing Zhang

unread,
Aug 18, 2020, 12:36:58 AM8/18/20
to Mary Barth, wrf-chem-run

<Problem Solved>

I finally found that even the whole chemistry is not there then realized I didn’t put the KPP parameters in my environment variables so KPP is not compiled >< Sorry to bother by this, it seems stupid… Thanks Mary so much for the help on this and suggestions on debugging!

 

Cheers,

Xin Zhang

unread,
Aug 18, 2020, 12:42:20 AM8/18/20
to Aoxing Zhang, Mary Barth, wrf-chem-run
Hi Aoxing,

Glad you figured out the problem.

Since you're using TUV, this PR may be useful for you if the model spends too much time writing the TUV.diags:

Regards,
Xin
--
Xin Zhang
Ph.D. Student

Nanjing University of Information Science & Technology (NUIST)
  No.219, Ningliu Road, Nanjing, Jiangsu, P.R.China

phone: +86-15895938361
email: xinzha...@gmail.com



--
To unsubscribe from this group and stop receiving emails from it, send an email to wrf-chem-run...@ucar.edu.
Reply all
Reply to author
Forward
0 new messages