[Wrf-users] Using diff_opt=2 in complex terrain

Witcraft, Nick nick.witcraft at ncdenr.gov
Mon Sep 13 11:38:31 MDT 2010


Let me briefly chime in.  The crashing issue may be partly due to the shallowness of the first vertical layer (vertical CFL).   Vertical CFL errors seem to get more common as the first sigma layer approaches .997.  Adaptive time stepping doesn't seem to take vertical CFL into account.  An ultra-low time step usually will allow the model to run, but not always.  Another option is to adjust the first sigma layer to .9965 or .996.  This solution increased the first layer from ~20m to ~25 -30m, but allowed the time step to be set to more typical values of ~6*dx.  In a 200m nest I am running over Mt Mitchell, I could never avoid a CFL error using first level sigma=.997.  Increasing the first level to .996 seems to work.

Nick

Nicholas Witcraft, Meteorologist I
NC DENR, Division of Air Quality
Planning Section, Attainment Planning Branch
1641 Mail Service Center
Raleigh, NC 27699-1641
Phone:  919-715-2106
Fax  :  919-715-7476
Email:  Nick.Witcraft at ncdenr.gov
Web  :  http://www.ncair.org

*****************************************************************************************
E-mail correspondence to and from this address may be subject to the
North Carolina Public Records Law and may be disclosed to third parties.
*****************************************************************************************

From: wrf-users-bounces at ucar.edu [mailto:wrf-users-bounces at ucar.edu] On Behalf Of Don Morton
Sent: Monday, September 13, 2010 12:23 PM
To: Daniel Steinhoff
Cc: wrf-users at ucar.edu
Subject: Re: [Wrf-users] Using diff_opt=2 in complex terrain

Dan, I'm a computer scientist who pretends to know weather modeling, but have done quite a few simulations in the rugged terrain of Alaska.  There have been some cases where, with a 1km nest, I've had to start off with sub-second timesteps (I remember going down to 1/20 of a second in one case).  It seems like my problems may have been related more to instabilities during initialization, and I was able to kick up the delta_t after a while.

Have you considered adaptive time stepping, whereby you might be able to start at an obscenely small timestep and gradually increase its size?  Maybe it's worth your effort (and thousands and thousands of cpu-hours!) to give it a try and see what happens?

There was a discussion in this venue maybe 6 or so months ago, relating to use of the epssm namelist option, though that was more related to dealing with flow over rugged terrain.

I don't fully understand many of the options you refer to, but in the back of my mind I keep thinking of what was drilled in to me during my School of Hard Knocks days in numerical methods (petroleum engineering back then) - there are all sorts of methods for "smoothing" solutions, allowing for larger timesteps, but sometimes you just gotta get back to basics and try the fine temporal and horizontal resolutions to truly capture the processes you're interested in.  But, this is more "opinion" on my part!
On Sat, Sep 11, 2010 at 10:54 PM, Daniel Steinhoff <steinhoff.9 at buckeyemail.osu.edu<mailto:steinhoff.9 at buckeyemail.osu.edu>> wrote:
Dear wrf-users,

I am running simulations over the McMurdo Dry Valleys in Antarctica, a region of complex terrain (mountain peaks approaching 4000 m, deep valleys, coastal).  In order to properly simulate cold pools and other features in the valleys, I'd like to treat diffusion truly horizontally, as Zangl (2002) did in Alpine simulations with MM5.  I've seen in the model documentation and tutorial presentation that diff_opt=2 should only be used with grid spacing < 2 km and without PBL parameterization.  Running a 32-8-2 km, 40 vertical levels nested simulation, I'd like to keep the PBL scheme.  Has anyone had success using diff_opt=2 for real data cases with a PBL scheme?

When I try diff_opt=2, with km_opt=2, 3, or 4, the simulations are more sensitive than otherwise to CFL violations or NaN errors at points on steep slopes (this is after extensive terrain smoothing of a 200 m terrain dataset).  km_opt=2 runs the longest before crashing (about a half hour), whereas the other options crash within minutes.  Interestingly, these CFL violations and NaN errors are more prevalent in the outer grids (for example, either the 32 km or 8 km grids along steep slopes).  Might I be better off running the 32 km and 8 km outer grids with diff_opt=1, and then using ndown for an inner grid of 2 km and using diff_opt=2?  Or is an extremely short timestep required?  I've been down to 60 sec on the 32 km grid.  I have similar problems to above with a 27-9-3-1 km nested grid, 51 vertical levels (default spacing) setup also.

If anyone has any ideas or advice I'd appreciate it.  I am running WRF 3.2.1 on NCAR bluefire.  I've pasted the namelist below from the 32-8-2 km simulations.

Dan


&time_control
 run_days                            = 0,
 run_hours                           = 60,
 run_minutes                         = 0,
 run_seconds                         = 0,
 start_year                          = 2006, 2006, 2006,
 start_month                         = 04, 04, 04,
 start_day                           = 15, 15, 15,
 start_hour                          = 12, 12, 12,
 start_minute                        = 00,   00,   00,
 start_second                        = 00,   00,   00,
 end_year                            = 2006, 2006, 2006,
 end_month                           = 04, 04, 04,
 end_day                             = 18, 18, 18,
 end_hour                            = 00, 00, 00,
 end_minute                          = 00,   00,   00,
 end_second                          = 00,   00,   00,
 interval_seconds                    = 21600,
 input_from_file                     = .true.,.true.,.true.,
 history_interval                    = 360,   360,   360,
 frames_per_outfile                  = 1, 1, 1,
 restart                             = .False.,
 restart_interval                    = 720,
 reset_simulation_start              = .false.,
 auxinput4_inname                    = "wrflowinp_d<domain>",
 auxinput4_interval                  = 360, 360, 360,
 io_form_history                     = 2,
 auxinput4_interval                  = 360, 360, 360,
 io_form_history                     = 2,
 io_form_restart                     = 2,
 io_form_input                       = 2,
 io_form_boundary                    = 2,
 io_form_auxinput4                   = 2,
 nocolons                            = .false.,
 debug_level                         = 0,
 auxhist2_outname                    = "surface_d<domain>_<date>",
 auxhist2_interval                   = 0, 0, 60,
 io_form_auxhist2                    = 2,
 /

 &domains
 time_step                           = 120,
 time_step_fract_num                 = 0,
 time_step_fract_den                 = 1,
 max_dom                             = 3,
 e_we                                = 200, 161,  193,
 e_sn                                = 200, 121,  165,
 s_vert                              = 1,   1,     1,
 e_vert                              = 40,  40,  40,
 dx                                  = 32000, 8000,  2000,
 dy                                  = 32000, 8000,  2000,
 grid_id                             = 1,   2,   3,
 parent_id                           = 0,   1,   2,
 i_parent_start                      = 1,  68,  54,
 parent_id                           = 0,   1,   2,
 i_parent_start                      = 1,  68,  54,
 j_parent_start                      = 1, 105,  42,
 parent_grid_ratio                   = 1,   4,   4,
 parent_time_step_ratio              = 1,   4,   4,
 feedback                            = 0,
 smooth_option                       = 0,
 num_metgrid_levels                  = 38,
 num_metgrid_soil_levels             = 4,
 eta_levels                          = 1.00000 , 0.99629 , 0.99258 , 0.98767 , 0.98275 ,
                                      0.97636 , 0.96996 , 0.96184 , 0.95372 , 0.93357 ,
                                      0.90913 , 0.87957 , 0.84531 , 0.80683 , 0.76467 ,
                                      0.71940 , 0.67163 , 0.62198 , 0.57108 , 0.51956 ,
                                      0.46803 , 0.42030 , 0.37613 , 0.33532 , 0.29764 ,
                                      0.26290 , 0.23092 , 0.20152 , 0.17452 , 0.14978 ,
                                      0.12714 , 0.10646 , 0.08761 , 0.07045 , 0.05466 ,
                                      0.03981 , 0.02580 , 0.01677 , 0.00903 , 0.00000 ,
 p_top_requested                     = 5000,
 interp_type                         = 2,
 extrap_type                         = 2,
 t_extrap_type                       = 2,
 use_levels_below_ground             = .true.,
 use_surface                         = .true.,
 lagrange_order                      = 1,
 lowest_lev_from_sfc                 = .false.,
 smooth_cg_topo                      = .false.,
 force_sfc_in_vinterp                = 1,
 smooth_cg_topo                      = .false.,
 force_sfc_in_vinterp                = 1,
 zap_close_levels                    = 0.,
 sfcp_to_sfcp                        = .false.,
 use_adaptive_time_step              = .false.,
 /

 &dfi_control
 /

 &physics
 mp_physics                          = 6,     6,     6,
 mp_zero_out                         = 0,
 no_mp_heating                       = 0,
 ra_lw_physics                       = 1,     1,     1,
 ra_sw_physics                       = 1,     1,     1,
 radt                                = 30,    10,    10,
 levsiz                              = 59,
 paerlev                             = 29,
 cam_abs_dim1                        = 4,
 cam_abs_dim2                        = 35,
 sf_sfclay_physics                   = 5,     5,     5,
 sf_surface_physics                  = 2,     2,     2,
 sf_urban_physics                    = 0,     0,     0,
 bl_pbl_physics                      = 5,     5,     5,
 bldt                                = 0,     0,     0,
 grav_settling                       = 1,     1,     1,
 bldt                                = 0,     0,     0,
 grav_settling                       = 1,     1,     1,
 cu_physics                          = 3,     0,     0,
 cudt                                = 5,
 cugd_avedx                          = 1,
 isfflx                              = 1,
 ifsnow                              = 0,
 icloud                              = 1,
 swrad_scat                          = 1.,
 surface_input_source                = 1,
 num_soil_layers                     = 4,
 num_land_cat                        = 24,
 num_soil_cat                        = 16,
 usemonalb                           = .false.,
 rdmaxalb                            = .false.,
 rdlai2d                             = .false.,
 sst_update                          = 1,
 seaice_threshold                    = 0.0,
 tmn_update                          = 0,
 bucket_mm                           = -1.,
 maxiens                             = 1,
 maxens                              = 3,
 maxens2                             = 3,
 maxens3                             = 16,
 ensdim                              = 144,
 slope_rad                           = 1,
 topo_shading                        = 1,
 slope_rad                           = 1,
 topo_shading                        = 1,
 shadlen                             = 25000.,
 omlcall                             = 0,
 oml_hml0                            = 50.,
 oml_gamma                           = 0.14,
 isftcflx                            = 0,
 fractional_seaice                   = 1,
 seaice_thickness                    = 1,
 tice2tsk_if2cold                    = .true.
 /

 &fdda
 grid_fdda                           = 1,     0,     0,
 gfdda_inname                        = "wrffdda_d<domain>",
 gfdda_interval_m                    = 360,   0,     0,
 gfdda_end_h                         = 60,   0,     0,
 io_form_gfdda                       = 2,
 fgdt                                = 0,
 if_no_pbl_nudging_uv                = 0,     0,     0,
 if_no_pbl_nudging_t                 = 0,     0,     0,
 if_no_pbl_nudging_q                 = 0,     0,     0,
 if_zfac_uv                          = 1,     0,     0,
 k_zfac_uv                          = 13,
 if_zfac_t                           = 1,     0,     0,
 k_zfac_t                           = 13,
 if_zfac_q                           = 1,     0,     0,
 k_zfac_t                           = 13,
 if_zfac_q                           = 1,     0,     0,
 k_zfac_q                           = 40,
 guv                                 = 0.0003,0.0000,0.0000,
 gt                                  = 0.0003,0.0000,0.0000,
 gq                                  = 0.0000,0.0000,0.0000,
 if_ramping                          = 0,
 dtramp_min                          = 60.0,
 grid_sfdda                          = 0,     0,     0,
 rinblw                              = 250.0,
 obs_nudge_opt                       = 0,     0,     0,
 /

 &scm
 /

 &dynamics
 rk_ord                              = 3,
 diff_opt                            = 2,
 km_opt                              = 2,
 diff_6th_opt                        = 1,     1,     1,
 diff_6th_factor                     = 0.06,  0.06,  0.06,
 damp_opt                            = 3,
 zdamp                               = 5000.,  5000.,  5000.,
 dampcoef                            = 0.03,   0.03,   0.03,
 w_damping                           = 0,
 base_temp                           = 268.,
 w_damping                           = 0,
 base_temp                           = 268.,
 base_pres                           = 100000.,
 base_lapse                          = 50.,
 khdif                               = 0,      0,      0,
 kvdif                               = 0,      0,      0,
 smdiv                               = 0.1,    0.1,    0.1,
 emdiv                               = 0.01,   0.01,   0.01,
 epssm                               = 0.1,    0.1,    0.1,
 non_hydrostatic                     = .true., .true., .true.,
 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,
 time_step_sound                     = 4,     4,     4,
 moist_adv_opt                       = 1,     1,     1,
 scalar_adv_opt                      = 1,     1,     1,
 tke_adv_opt                         = 1,     1,     1,
 gwd_opt                             = 0,
 /

 &bdy_control
 spec_bdy_width                      = 5,
 spec_zone                           = 1,
 relax_zone                          = 4,
 specified                           = .true., .false.,.false.,
 spec_exp                            = 0.,
 specified                           = .true., .false.,.false.,
 spec_exp                            = 0.,
 periodic_x                          = .false.,.false.,.false.,
 symmetric_xs                        = .false.,.false.,.false.,
 symmetric_xe                        = .false.,.false.,.false.,
 open_xs                             = .false.,.false.,.false.,
 open_xe                             = .false.,.false.,.false.,
 periodic_y                          = .false.,.false.,.false.,
 symmetric_ys                        = .false.,.false.,.false.,
 symmetric_ye                        = .false.,.false.,.false.,
 open_ys                             = .false.,.false.,.false.,
 open_ye                             = .false.,.false.,.false.,
 nested                              = .false.,.true.,.true.,
 /

 &grib2
 /

 &tc
 /

 &fire
 /

 &namelist_quilt
 nio_tasks_per_group = 0,
 nio_groups = 1,
                                                                                 201,2         99%
 nio_tasks_per_group = 0,
 nio_groups = 1,
 /


Daniel Steinhoff
Polar Meteorology Group
Byrd Polar Research Center
The Ohio State University
steinhoff.9 at buckeyemail.osu.edu<mailto:steinhoff.9 at buckeyemail.osu.edu>





_______________________________________________
Wrf-users mailing list
Wrf-users at ucar.edu<mailto:Wrf-users at ucar.edu>
http://mailman.ucar.edu/mailman/listinfo/wrf-users



--
Arctic Region Supercomputing Center
http://weather.arsc.edu/
http://www.arsc.edu/~morton/<http://www.arsc.edu/%7Emorton/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/wrf-users/attachments/20100913/e543be3d/attachment-0001.html 


More information about the Wrf-users mailing list