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

Don Morton Don.Morton at alaska.edu
Mon Sep 13 10:22:39 MDT 2010


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> 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
>
>
>
>
>
> _______________________________________________
> Wrf-users mailing list
> 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/657aa18f/attachment-0001.html 


More information about the Wrf-users mailing list