Ndown v4.1 with vertical refinement : No interpolation

Discuss the nesting capability within the model itself and any problems you might have run into.

Ndown v4.1 with vertical refinement : No interpolation

Postby enzo_lbdc » Mon May 20, 2019 8:21 am

Hello everyvody !

I recently tried to move from version 3.9.1 to version 4.1 of WPS / WRF.

Both compiled successfully with Intel compilers on the IDRIS supercomputing center.

I am struggling with Ndown.exe:
After having my 3 first domains running successfully (nothing funny detected in the outputs, no error messages) with 46 vertical levels I try to use ndown.exe to increase the vertical refinement.

Ndown seems to run successfully and It ends with the outputs below:
Code: Select all
 
  module_io.F: in wrf_iosync
  output_wrf: back from wrf_iosync
   output_wrf: end, fid =            2
  module_io.F: in wrf_ioclose
  module_io.F: in wrf_ioexit
  Entering ext_gr1_ioexit
  ndown_em: SUCCESS COMPLETE NDOWN_EM INIT


However when I look at the outputs generated (wrflowinp and wrfinput) the number of vertical layers has been increased from 46 to 91. But the 46 levels that are the closest to the ground have the same values as the inputs used by ndown and the 46 levels on the top (added by ndown) are just filled with 0.

It seems to me that the first 46 vertical levels have been copy pasted from original files to the ndown outputs and that no interpolation has been made.

I am using the following namelist :

Code: Select all
!***************
! TIME CONTROL
!***************
 &time_control
 run_days                            = 0,
 run_hours                           = 12,
 run_minutes                         = 0,
 run_seconds                         = 0,
 start_year                          = 2015, 2015,
 start_month                         = 02,   02,
 start_day                           = 07,   07,
 start_hour                          = 00,   00,
 start_minute                        = 00,   00,
 start_second                        = 00,   00,
 end_year                            = 2015, 2015,
 end_month                           = 02,   02,
 end_day                             = 07,   07,
 end_hour                            = 12,   12,
 end_minute                          = 00,   00,
 end_second                          = 00,   00,
 interval_seconds                    = 3600,
 input_from_file                     = .true., .true.,
 history_interval                    = 60,   60,
 frames_per_outfile                  = 1,   1,
 restart                             = .false.,
 restart_interval_h                  = 6,
 write_hist_at_0h_rst                = .true.,
 auxinput4_inname                    = "wrflowinp_d<domain>",
 auxinput4_interval                  = 360,
 io_form_history                     = 2,
 io_form_restart                     = 2,
 io_form_input                       = 2,
 io_form_boundary                    = 2,
 io_form_auxinput4                   = 2,
!B: Added by ELB
 io_form_auxinput2           = 2,
 auxinput2_inname                    = "wrflowinp_d<domain>",
 auxinput2_interval                  = 360,
 auxinput2_end_h                     = 13,
!E:
!B: Added by ELB
 io_form_auxinput5           = 2,
 auxinput5_inname                    = "wrflowinp_d<domain>",
 auxinput5_interval                  = 360,
 auxinput5_end_h                     = 13,
!E:
 debug_level                         = 1000,
 /

!***************
! DOMAINS
!***************
 &domains
 time_step                           = 1,
 time_step_fract_num                 = 0,
 time_step_fract_den                 = 1,
 max_dom                             = 2,
 s_we                                =     1,   1,
 e_we                                = 280, 280,
 s_sn                                =   1,   1,
 e_sn                                = 280, 280,
 s_vert                              = 1,     1,
 e_vert                              = 46,  46,
 p_top_requested                     = 5000,
 eta_levels                          = 1.00000, 0.994387, 0.988381, 0.981957, 0.975089,
                                        0.96775, 0.959911, 0.951543, 0.942615, 0.933096,
                                        0.922952, 0.912151, 0.900658, 0.888439, 0.875458,
                                        0.86168, 0.84707, 0.831593, 0.815215, 0.797902,
                                        0.779624, 0.76035, 0.740052, 0.718705, 0.696289,
                                        0.672785, 0.648181, 0.622466, 0.595639, 0.567703,
                                        0.538666, 0.508546, 0.477364, 0.445154, 0.411953,
                                        0.377808, 0.342774, 0.306913, 0.270296, 0.232999,
                                        0.195106, 0.156707, 0.117896, 0.0787729, 0.0394393,
                                        0.000000
 vert_refine_fact            = 2, ! Ndown is restricted to integer refinement
 num_metgrid_soil_levels             = 4,
 num_metgrid_levels                  = 38,
 dx                                  = 1000, 333.333,
 dy                                  = 1000, 333.333,
 grid_id                             = 1,   2,
 parent_id                           = 0,   1,
 i_parent_start                      = 1,      91,
 j_parent_start                      = 1,      91,
 parent_grid_ratio                   = 1,       3,
 parent_time_step_ratio              = 1,       3,
 feedback                            = 0,
 smooth_option                       = 0,
 /

!***************
! PHYSICS
!***************
 &physics
 mp_physics                          = 10,    10,
 mp_zero_out                         = 2,
 mp_zero_out_thresh                  = 1.e-12,
 ra_lw_physics                       = 1,     1,
 ra_sw_physics                       = 1,     1,
 paerlev                             = 29,
 levsiz                              = 59,
 cam_abs_dim1                        = 4,
 cam_abs_dim2                        = 36,
 radt                                = 1, 1,   ! IF =0, you run EVERY TIME STEP (is not really recommended...).
                        ! can be fraction (of minutes, i.e. 0.5 = 30s)
 swint_opt                           = 0,                  ! Interpolation of short-wave radiation based on
                        ! the updated solar zenith angle between SW call

 sf_sfclay_physics                   = 1,    1,
 iz0tlnd                             = 1,
 sf_surface_physics                  = 2,     2,
 sf_urban_physics                    = 0,     0,
 bl_pbl_physics                      = 1,     1,
 bldt                                = 0,     0,
 grav_settling                       = 2,     2,
 cu_physics                          = 5,     0,
 kfeta_trigger                       = 0,
 cudt                                = 0,     0,
 cu_diag                             = 1,     0,
 ishallow                            = 1,
 isfflx                              = 1,
 ifsnow                              = 1,
 icloud                              = 1,
 surface_input_source                = 1,
 num_soil_layers                     = 4,
 num_land_cat                        = 28,
 num_soil_cat                        = 16,
 sst_update                          = 1, ! Mod by ELB
 usemonalb                           = .true.,
 tmn_update                          = 1,
 sst_skin                            = 1,
 slope_rad                           = 1,    1,    ! Be careful, in Exp. 110 was 1, 0, 0
 topo_shading                        = 1,    1,    ! Be careful, in Exp. 110 was 1, 0, 0
 shadlen                             = 25000.,
 /

!***************
! NUDGING
!***************
 &fdda
 grid_fdda                           = 0,       0, ! Mod by ELB
 gfdda_inname                        = "wrffdda_d<domain>",
 gfdda_interval_m                    = 360,     360,
 gfdda_end_h                         = 192,     192,
 io_form_gfdda                       = 2,
 fgdt                                = 0,       0,
!*********************
! GRID NUDGING OPTIONS
! if_no_pbl_nudging_uv                = 1,       1,       1,
! if_no_pbl_nudging_t                 = 1,       1,       1,
! if_no_pbl_nudging_q                 = 1,       1,       1,
! if_zfac_uv                          = 0,       0,       1,
!  k_zfac_uv                          = 13,      13,      35,
! if_zfac_t                           = 0,       0,       1,
!  k_zfac_t                           = 13,      13,      47,
! if_zfac_q                           = 0,       0,       1,
!  k_zfac_q                           = 13,      13,      47,
! guv                                 = 0.0003,  0.0003,  0.0003,
! gt                                  = 0.0003,  0.0003,  0.0003,
! gq                                  = 0.00001, 0.00001, 0.00001,
 if_ramping                          = 1,
 dtramp_min                          = 60.0,

!*************************
! SPECTRAL NUDGING OPTIONS (grid_fdda = 2):
 fgdtzero                            = 0,      0,      0,       ! 1= nudging tendencies are set to zero in between fdda calls
 if_no_pbl_nudging_ph                = 0,      0,      0,       ! 1= no nudging of ph in the pbl, 0= nudging in the pbl.
                          !!!! NB: if 0, ==> check **if_zfac_xxx** switch...
 if_no_pbl_nudging_uv                = 0,      0,      0,       ! 1= no nudging of ph in the pbl, 0= nudging in the pbl
 if_no_pbl_nudging_t                 = 0,      0,      0,       ! 1= no nudging of ph in the pbl, 0= nudging in the pbl

 if_zfac_ph                          = 0,      0,      1,       ! 0= nudge ph in all layers, 1= limit nudging above k_zfac_ph
  k_zfac_ph                          = 0,      0,      20,      ! 10= model level below which nudging is switched off for ph
  dk_zfac_ph                         = 0,      0,      15,      ! The strength of nudging increases linearly from k_zfac to kzfac + dk_zfac
                                                                ! to full strength. Default value is one.
 if_zfac_uv                          = 0,      0,      1,   
  k_zfac_uv                          = 0,      0,      20,   
  dk_zfac_uv                         = 0,      0,      15,   

 if_zfac_t                           = 0,      0,      1,     
  k_zfac_t                           = 0,      0,      20,   
  dk_zfac_t                          = 0,      0,      15,     

 gph                                 = 0.0003, 0.0003, 0.0003,
 xwavenum                            = 4,      2,      1,      ! top wave number to nudge in x direction (Domain size dependent)
 ywavenum                            = 4,      2,      1,      ! top wave number to nudge in y direction
 /

!***************
! DYNAMICS
!***************
 &dynamics
 w_damping                           = 0,
 diff_opt                            = 2,      2,      2, 2, 2,
 mix_full_fields                     = .true.,
 km_opt                              = 4,      4,      4, 4, 4,
 mix_isotropic                       = 0,      0,      0, 0, 0,
 c_k                                 = 0.10,
 diff_6th_opt                        = 0,      0,      0, 0, 0,
 diff_6th_factor                     = 0.12,   0.12,   0.12, 0.12, 0.12,
 damp_opt                            = 3,
 zdamp                               = 6000.,  6000.,  6000., 6000., 6000.,
 dampcoef                            = 0.2,    0.2,    0.2, 0.2, 0.2,
 smdiv                               = 0.1,    0.1,    0.1, 0.1, 0.1,
 emdiv                               = 0.01,   0.01,   0.01, 0.01, 0.01,
 epssm                               = 0.9,    0.9,    0.9, 0.9, 0.9,
 time_step_sound                     = 10,     10,     10, 10, 10,
 non_hydrostatic                     = .true., .true., .true., .true., .true.,
 h_mom_adv_order                     = 5,      5,      5, 5, 5,
 v_mom_adv_order                     = 5,      5,      5, 5, 5,
 h_sca_adv_order                     = 5,      5,      5, 5, 5,
 v_sca_adv_order                     = 5,      5,      5, 5, 5,
 momentum_adv_opt                    = 3,      3,      3, 3, 3,
 moist_adv_opt                       = 4,      4,      4, 4, 4,
 scalar_adv_opt                      = 4,      4,      4, 4, 4,
 chem_adv_opt                        = 4,      4,      4, 4, 4,
 tracer_adv_opt                      = 4,      4,      4, 4, 4,
 tke_adv_opt                         = 4,      4,      4, 4, 4,
 gwd_opt                             = 1,
 /

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

 &grib2
 /

 &namelist_quilt
 nio_tasks_per_group = 0,
 nio_groups = 1,
 /

 &chem
 kemit                               = 1,
 chem_opt                            = 0,      0,      0, 0, 0,
 chemdt                              = 0.25,   0.05,   0.0166, 0.016, 0.016,
 vertmix_onoff                       = 1,      1,      1, 1, 1,
 chem_conv_tr                        = 1,      0,      0,  0, 0,
 have_bcs_chem                       = .false.,.false.,.false.,.false.,.false.,
 /


Using the same namelist did produce normal input files (Vertical interpolation was done in order to double the number of vertical layers) with version 3.9.

Has anyone successfully used ndown.exe 4.1 with vertical refinement ?

Any help appreciated,

Best,

Enzo
enzo_lbdc
 
Posts: 16
Joined: Mon Mar 25, 2019 12:43 pm

Re: Ndown v4.1 with vertical refinement : No interpolation

Postby enzo_lbdc » Fri May 24, 2019 8:44 am

Hi everybody,

This is a known bug as you can see here from the github answer:

https://github.com/wrf-model/WRF/issues/917

It will be fixed at some point !

Best,

Enzo
enzo_lbdc
 
Posts: 16
Joined: Mon Mar 25, 2019 12:43 pm


Return to Nesting

Who is online

Users browsing this forum: No registered users and 3 guests