Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Difference between simulations

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.

neel14

Member
Hi,
I have observed big differences in all-sky surface and TOA radiative forcings between WRF only simulation and WRF-Chem simulation with aer_rad_feedback=0. Differences are close to 10-12 Wm-2. However clear sky radiative forcings are similar which implies difference in cloud simulation. What could be the possible reason for this difference as otherwise both simulation use the same physics options? Are clouds simulated slightly differently with Chem than in WRF only simulation? Shouldn't such pair of simulations provide similar model outputs?

Code:
 &physics
 mp_physics                          = 10,10,10,10,
 progn                               = 1,1,1,1,
 ra_lw_physics                       = 4,4,4,4,
 ra_sw_physics                       = 4,4,4,4,
 radt                                = 10,10,10,10,
 sf_sfclay_physics                   = 5,5,5,5,
 sf_surface_physics                  = 2,2,2,2,
 bl_pbl_physics                      = 6,6,6,6,
 bldt                                = 0,0,0,0,
 cu_physics                          = 3,3,3,0,
 shcu_physics                        = 0,0,0,0,
 cudt                                = 0,0,0,0,
 cugd_avedx                          = 1,
 ishallow                            = 0,
 cu_diag                             = 1,1,1,0,
 shcu_aerosols_opt                   = 2,2,2,2,
 isfflx                              = 1,
 ifsnow                              = 1,
 icloud                              = 1,
 surface_input_source                = 3,
 num_land_cat                        = 21,
 sf_urban_physics                    = 0,0,0,0,
 maxiens                             = 1,
 maxens                              = 3,
 maxens2                             = 3,
 maxens3                             = 16,
 ensdim                              = 144,
 cu_rad_feedback                     = .true.,.true,.false.,.false.,
 sst_update                          = 1,
 sst_skin                            = 1,
 usemonalb                           = .true.,
 rdmaxalb                            = .true.,
 rdlai2d                             = .true.,
 slope_rad                           = 1,1,1,1,
 topo_shading                        = 1,1,1,1,
 shadlen                             = 25000,
 /
 
Hi, please see the namelist.


&time_control
run_days = 0,
run_hours = 00,
run_minutes = 0,
run_seconds = 0,
start_year = 2018,2018,2018,2018,
start_month = 04,04,04,04,
start_day = 09,07,07,07,
start_hour = 00,00,00,00,
end_year = 2018,2018,2018,2018,
end_month = 04,04,04,04,
end_day = 20,21,21,13,
end_hour = 01,00,00,00,
interval_seconds = 3600,
input_from_file = .true.,.true.,.true.,.true.,
history_interval = 60,180,180,180,
frames_per_outfile = 24,1000,1000,1000,
restart = .true.,
restart_interval = 360,
rst_outname = '/scratch/neeldip/OUTPUT/wrfrst_d<domain>_<date>',
write_hist_at_0h_rst = .true.
io_form_auxhist1 = 2,
auxhist1_interval = 60,60,180,180,
frames_per_auxhist1 = 1000,1000,1000,1000,
auxhist1_outname = '/scratch/neeldip/OUTPUT/wrf_trad_fields_d<domain>_<date>',
io_form_history = 2,
io_form_restart = 2,
io_form_input = 2,
io_form_boundary = 2,
auxinput4_inname = 'wrflowinp_d<domain>',
auxinput4_interval = 60, ! minutes generally matches time given by interval_seconds
io_form_auxinput4 = 2,
io_form_auxinput5 = 2,
auxinput5_interval_m = 720,180,180,180,
auxinput5_inname = 'wrfchemi_d<domain>_<date>',
frames_per_auxinput5 = 1,1,1,1,
auxinput6_inname = 'wrfbiochemi_d<domain>',
auxinput6_interval_m = 10000000,1000000,1000000,100000,!interval should be > simulation time
io_form_auxinput6 = 2,
frames_per_auxinput6 = 1,1,1,1,
io_form_auxinput7 = 2,
auxinput7_inname = 'wrffirechemi_d<domain>_<date>',
auxinput7_interval_m = 60,60,60,60,
frames_per_auxinput7 = 1,1,1,1,
force_use_old_data = .true.,
history_outname = '/scratch/neeldip/OUTPUT/wrfout_d<domain>_<date>',
debug_level = 0,
! use_netcdf_classic = .true.,
! io_form_auxinput2 = 2,
iofields_filename = "d01.txt"
ignore_iofields_warning = .true.,
/

&domains
time_step = 40,
time_step_fract_num = 0,
time_step_fract_den = 1,
max_dom = 1,
e_we = 300,349,691,
e_sn = 232,313,415,
e_vert = 45,40,40,40,
dx = 10000,3000,1000,
dy = 10000,3000,1000,
p_top_requested = 8700,
max_dz = 900,
dzbot = 40,
dzstretch_s = 1.1,
dzstretch_u = 1.20,
num_metgrid_levels = 138,
num_metgrid_soil_levels = 4,
grid_id = 1,2,3,4,
parent_id = 1,1,2,3,
i_parent_start = 1,75,70,60,
j_parent_start = 1,64,55,101,
parent_grid_ratio = 1,3,3,3,
parent_time_step_ratio = 1,3,4,4,
feedback = 1,
smooth_option = 2,
smooth_cg_topo = .true.,
max_ts_locs = 100,
ts_buf_size = 1000,
max_ts_level = 45,
tslist_unstagger_winds = .true.,
nproc_x = 12,
nproc_y = 18,
/

&physics
mp_physics = 10,10,10,10,
progn = 1,1,1,1,
ra_lw_physics = 4,4,4,4,
ra_sw_physics = 4,4,4,4,
radt = 10,10,10,10,
sf_sfclay_physics = 5,5,5,5,
sf_surface_physics = 2,2,2,2,
bl_pbl_physics = 6,6,6,6,
bldt = 0,0,0,0,
cu_physics = 3,3,3,0,
shcu_physics = 0,0,0,0,
cudt = 0,0,0,0,
cugd_avedx = 1,
ishallow = 0,
cu_diag = 1,1,1,0,
shcu_aerosols_opt = 2,2,2,2,
isfflx = 1,
ifsnow = 1,
icloud = 1,
surface_input_source = 3,
num_land_cat = 21,
sf_urban_physics = 0,0,0,0,
maxiens = 1,
maxens = 3,
maxens2 = 3,
maxens3 = 16,
ensdim = 144,
cu_rad_feedback = .true.,.true,.false.,.false.,
sst_update = 1,
sst_skin = 1,
usemonalb = .true.,
rdmaxalb = .true.,
rdlai2d = .true.,
slope_rad = 1,1,1,1,
topo_shading = 1,1,1,1,
shadlen = 25000,
mp_zero_out = 2,
/

&fdda
grid_fdda = 2,0,0,0,
gfdda_inname = "wrffdda_d<domain>",
gfdda_interval_m = 60,180,180,180,
gfdda_end_h = 10000,10000,10000,10000,
io_form_gfdda = 2,
fgdt = 0,0,0,0,
fgdtzero = 1,0,0,0,
if_no_pbl_nudging_uv = 1,1,1,1,
if_no_pbl_nudging_t = 1,1,1,1,
if_no_pbl_nudging_ph = 1,1,1,1,
if_no_pbl_nudging_q = 1,1,1,1,
guv = 0.0003,0.0003,0.0003,0.0003,
gt = 0.0000,0.0003,0.0003,0.0003,
gq = 0.0000,0.00001,0.00001,0.00001,
gph = 0.0000,0.0003,0.0003,0.0003,
ktrop = 0,
xwavenum = 2,1,1,1,
ywavenum = 2,1,1,1,
/

&dynamics
hybrid_opt = 2,
w_damping = 1,
diff_opt = 2,2,2,2,
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 = 3,
zdamp = 5000.,5000.,5000.0,5000.0,
dampcoef = 0.2,0.2,0.2,0.2,
khdif = 1000,300,100,
kvdif = 100,100,100,
non_hydrostatic = .true.,.true.,.true.,.true.,
moist_adv_opt = 2,2,2,2,
scalar_adv_opt = 2,2,2,2,
chem_adv_opt = 2,2,2,2,
tke_adv_opt = 2,2,2,2,
gwd_opt = 1,
etac = 0.1,
epssm = 0.9,0.9,0.9,0.9,
tracer_opt = 2,2,2,2,
tracer_adv_opt = 1,1,1,1,
/

&bdy_control
spec_bdy_width = 9,
spec_zone = 1,
relax_zone = 8,
specified = .true.,
! have_bcs_moist = .true.,.true.,.true., !turn off while ndown
! have_bcs_scalar = .true.,.true.,.true., !turn off while ndown
/

&grib2
/

&chem
kemit = 1,
chem_opt = 201,201,201,201,
bioemdt = 30,30,30,30,
photdt = 30,30,30,30,
chemdt = 0,0,0,0,
io_style_emissions = 2,
emiss_inpt_opt = 102,102,102,102,
emiss_opt = 10,10,10,10,
chem_in_opt = 1,1,1,1,
phot_opt = 1,1,1,1,
gas_drydep_opt = 1,1,1,1,
aer_drydep_opt = 1,1,1,1,
bio_emiss_opt = 3,3,3,3,
dust_opt = 13,
dmsemis_opt = 0,
seas_opt = 2,
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 = 1,1,1,1,
cldchem_onoff = 0,0,0,0,
vertmix_onoff = 1,1,1,1,
chem_conv_tr = 1,1,1,1,
conv_tr_wetscav = 1,1,1,1,
conv_tr_aqchem = 0,0,0,0,
n2o5_hetchem = 1,
ne_area = 357,
opt_pars_out = 1,
biomass_burn_opt = 2,2,2,2,
aer_ra_feedback = 1,1,1,1,
aer_op_opt = 5,5,1,1,
have_bcs_chem = .true.,.true.,.false.,.false.,
have_bcs_upper = .false.,.false.,.false.,
scale_fire_emiss = .true.,
chemdiag = 0,
diagnostic_dep = 1,
! ndepvel = 358,
/

&namelist_quilt
nio_tasks_per_group = 0,
nio_groups = 1,
/

&diags
diag_nwp2 = 1
/
 
Hi,

I see now that you have progn = 1, meaning you are using prognostic cloud droplet number in the MP scheme. Set = 0 and you should get the same result as WRF only.

Jordan
 
Do the progn switch have any effect with chem_opt =201 as it does not include cloud droplet activation?

chemics_init.F only give this:

!!! TUCCELLA
progn_sanity_check : SELECT CASE(config_flags%chem_opt)
CASE (RADM2SORG_AQ, RADM2SORG_AQCHEM, RACMSORG_AQ, RACMSORG_AQCHEM_KPP, RACM_ESRLSORG_AQCHEM_KPP, &
RACM_SOA_VBS_AQCHEM_KPP, CBMZ_MOSAIC_4BIN_AQ, CBMZ_MOSAIC_8BIN_AQ, CBMZ_MOSAIC_DMS_4BIN_AQ, &
CBMZ_MOSAIC_DMS_8BIN_AQ,CBMZSORG_AQ,CRI_MOSAIC_8BIN_AQ_KPP, CRI_MOSAIC_4BIN_AQ_KPP, &
MOZART_MOSAIC_4BIN_AQ_KPP,SAPRC99_MOSAIC_8BIN_VBS2_AQ_KPP, &
CB05_SORG_AQ_KPP, CB05_SORG_VBS_AQ_KPP)
if( config_flags%progn /= 1 ) &
call wrf_error_fatal( &
"ERROR: When using a ..._AQ chemistry package, progn must be 1")
END SELECT progn_sanity_check


but not the other way around.
 
Top