Moving a model from EMS to WRF

Compiling NMM/ARW code for EMS system, upgrading WRF cores on your own, changing EMS scripts to suit your particular needs, and other modifications to original EMS distribution goes in this forum. These are officially unsupported actions.
JMeans
Posts: 15
Joined: Wed Jan 16, 2013 7:34 am

Moving a model from EMS to WRF

Post by JMeans » Thu Jul 02, 2015 5:54 pm

I have read about some new diagnostics available in WRF 3.6.1 that I would like to use with one of my models. I don't have any experience running regular WRF, just WRF-EMS. I did manage to get WRF 3.7 installed and I was wondering how hard it would be to move my model from EMS to regular WRF. Since I've already run the model in EMS, I already have met_em files and various namelists, can those be pulled over into WRF?

Alternatively, does anyone know when WRF 3.6.1 will be incorporated into EMS?

Thanks,

Jim

meteoadriatic
Posts: 1512
Joined: Wed Aug 19, 2009 10:05 am

Re: Moving a model from EMS to WRF

Post by meteoadriatic » Thu Jul 02, 2015 7:37 pm

Yes you can use domain files from EMS but you will need to do all scripting to automate system, yourself. I guess it will be much easier to update EMS installation to use your WRF binaries.

JMeans
Posts: 15
Joined: Wed Jan 16, 2013 7:34 am

Re: Moving a model from EMS to WRF

Post by JMeans » Fri Jul 03, 2015 4:38 am

Thank you meteoadriatic. I have looked at the thread on that subject and it isn't very clear--I think even you say you haven't been able to run 3.6.1 in EMS 3.4. Have you since been successful with this approach? Is it more straightforward than that thread implies?

meteoadriatic
Posts: 1512
Joined: Wed Aug 19, 2009 10:05 am

Re: Moving a model from EMS to WRF

Post by meteoadriatic » Fri Jul 03, 2015 9:20 am

I never used EMS UPP version with upgraded WRF, I don't know if it will work. For postprocessing I use original UPP. Other than that, it is easy to upgrade. Basically...

- replace wrfems/bin/wrfm_arw.exe wrfm_nmm.exe with your versions
- replace all tables in wrfems/data/tables/wrf with new from run directory in WRF tarball
- add new stuff you want to use in wrfems/data/tables/wrf/namelist.arw and delete anything you don't want from it (keep original backed up)
(optionally) - if everything is compiled statically you don't have to bother with libraries, if not you need to take care to put those libs somewhere and set environment for them correctly through wrfems/etc profile file

You're basically done, if something doesn't work most probably there is issue in namelist.arw (something inside not compatible with new WRF so you need to find what and kick it out).

But if postprocessing isn't how you expect, then you will have to use your own UPP code... not sure really what will you get. Try and see :)

JMeans
Posts: 15
Joined: Wed Jan 16, 2013 7:34 am

Re: Moving a model from EMS to WRF

Post by JMeans » Mon Jul 06, 2015 2:13 pm

Thanks for the instructions Meteoadriatic. First attempt failed in a segmentation fault. I'll have to debug and try again.

smartie
Posts: 94
Joined: Sat May 21, 2011 7:34 am

Re: Moving a model from EMS to WRF

Post by smartie » Mon Jul 06, 2015 7:37 pm

I have successfully used ifort compiled binaries for 3.5.x. 3.6.x and 3.7.0 in WRF-EMS.
Make sure you copy over the new vegparm table and use the EMS 3.4 WPS binaries.

meteoadriatic
Posts: 1512
Joined: Wed Aug 19, 2009 10:05 am

Re: Moving a model from EMS to WRF

Post by meteoadriatic » Mon Jul 06, 2015 8:25 pm

I did upgrade WPS also.

JMeans
Posts: 15
Joined: Wed Jan 16, 2013 7:34 am

Re: Moving a model from EMS to WRF

Post by JMeans » Thu Jul 09, 2015 7:07 pm

I moved over all the tables (not just vegparm) and tried to follow the instructions. When I run there is a problem. Here is what run_real.log says:

Code: Select all

  ------ ERROR while reading namelist physics ------
  ------ ERROR while reading namelist physics ------
  ------ ERROR while reading namelist scm ------
  ------ ERROR while reading namelist scm ------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:   10207
ERRORS while reading one or more namelists from namelist.input.
-------------------------------------------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:   10207
ERRORS while reading one or more namelists from namelist.input.
-------------------------------------------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:   10207
ERRORS while reading one or more namelists from namelist.input.
-------------------------------------------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:   10207
ERRORS while reading one or more namelists from namelist.input.
This seems to happen even with the old namelist.arw.

Any ideas? Thanks.

meteoadriatic
Posts: 1512
Joined: Wed Aug 19, 2009 10:05 am

Re: Moving a model from EMS to WRF

Post by meteoadriatic » Thu Jul 09, 2015 8:40 pm

Sure, your namelist is incorrect. I think there is something compatible ONLY with EMS WRF build inside original master namelist file.

Here you are, tested, cleaned-up, working version for 3.7 ARW, from myself:

Code: Select all

&time_control
 start_year                          = 2003
 start_month                         = 02
 start_day                           = 30
 start_hour                          = 12
 start_minute                        = 00
 start_second                        = 00
 end_year                            = 2003
 end_month                           = 02
 end_day                             = 31
 end_hour                            = 12
 end_minute                          = 00
 end_second                          = 00
 interval_seconds                    = 10800
 input_from_file                     = T
 history_interval                    = 60
 history_outname                     = "wrfout_d<domain>_<date>"
 frames_per_outfile                  = 1
 io_form_history                     = 2
 io_form_input                       = 2
 io_form_restart                     = 2
 io_form_boundary                    = 2
 io_form_auxinput2                   = 2
 restart                             = F
 restart_interval                    = 100000
 auxhist1_outname                    = "auxhist1_d<domain>_<date>"
 auxhist1_interval                   = 0
 frames_per_auxhist1                 = 1
 io_form_auxhist1                    = 5
 auxhist2_outname                    = "auxhist2_d<domain>_<date>"
 auxhist2_interval                   = 0

 output_diagnostics                  = 0
 auxhist3_outname                    = "wrfxtrm_d<domain>_<date>"
 auxhist3_interval                   = 0
 frames_per_auxhist2                 = 1
 io_form_auxhist2                    = 2

 auxinput4_inname                    = "wrflowinp_d<domain>"
 auxinput4_interval                  = 360
 io_form_auxinput4                   = 2

 fine_input_stream                   = 2
 adjust_output_times                 = T
 reset_simulation_start              = F
 cycling                             = F

 iofields_filename                   = "my_iofields_list.txt"
 ignore_iofields_warning             = T

 diag_print                          = 0
 debug_level                         = 0
/

&domains
 time_step                           = 180
 time_step_fract_num                 = 0
 time_step_fract_den                 = 1
 time_step_dfi                       = 60
 max_dom                             = 1
 s_we                                = 1
 e_we                                = 151
 s_sn                                = 1
 e_sn                                = 151
 s_vert                              = 1
 e_vert                              = 45
 dx                                  = 6000
 dy                                  = 6000
 grid_id                             = 1
 parent_id                           = 0
 i_parent_start                      = 1
 j_parent_start                      = 1
 parent_grid_ratio                   = 3
 parent_time_step_ratio              = 1
 feedback                            = 1
 smooth_option                       = 1
 grid_allowed                        = T
 max_dz                              = 1000.

 tile_sz_x                           = 0,
 tile_sz_y                           = 0,
 numtiles                            = 1,
 nproc_x                             = -1,
 nproc_y                             = -1,

 num_metgrid_soil_levels             = 4
 num_metgrid_levels                  = 27
 interp_type                         = 2
 extrap_type                         = 2
 t_extrap_type                       = 2
 use_levels_below_ground             = T
 use_surface                         = T
 lagrange_order                      = 1
 zap_close_levels                    = 500
 lowest_lev_from_sfc                 = F
 force_sfc_in_vinterp                = 1
 sfcp_to_sfcp                        = F
 smooth_cg_topo                      = T
 use_tavg_for_tsk                    = F
 aggregate_lu                        = F
 p_top_requested                     = 5000
 eta_levels                          =

 use_adaptive_time_step              = F
 step_to_output_time                 = T
 target_cfl                          = 1.2,1.2,1.2
 target_hcfl                         = 0.84,0.84,0.84
 max_step_increase_pct               = 5, 51, 51
 starting_time_step                  = -1,-1,-1
 max_time_step                       = -1,-1,-1
 min_time_step                       = -1,-1,-1

 hypsometric_opt                     = 2
 interp_theta                        = F
/

&physics
 cu_physics                          = 1
 cudt                                = 0
 kfeta_trigger                       = 1
 cu_rad_feedback                     = T
 mp_physics                          = 2
 bl_pbl_physics                      = 1
 bldt                                = 0
 grav_settling                       = 0
 topo_wind                           = 0
 sf_sfclay_physics                   = 0
 sf_surface_physics                  = 2
 sf_surface_mosaic                   = 1
 num_land_cat                        = 24
 num_soil_cat                        = 16
 num_soil_layers                     = 4
 rdlai2d                             = F
 ra_lw_physics                       = 1
 ra_sw_physics                       = 2
 radt                                = 30
 icloud                              = 1
 sst_skin                            = 0
 sst_update                          = 0
 tmn_update                          = 0
/


&noah_mp
  dveg                               = 2
  opt_crs                            = 1
  opt_sfc                            = 1
  opt_btr                            = 1
  opt_run                            = 1
  opt_frz                            = 1
  opt_inf                            = 1
  opt_rad                            = 1
  opt_alb                            = 2
  opt_snf                            = 1
  opt_tbot                           = 2
  opt_stc                            = 1
/


&dynamics
 non_hydrostatic                     = T
 gwd_opt                             = 0
 rk_ord                              = 3
 h_mom_adv_order                     = 5
 h_sca_adv_order                     = 5
 v_mom_adv_order                     = 3
 v_sca_adv_order                     = 3
 moist_adv_opt                       = 1
 scalar_adv_opt                      = 1
 chem_adv_opt                        = 1
 tke_adv_opt                         = 1
 diff_opt                            = 1
 km_opt                              = 4
 w_damping                           = 1
 diff_6th_opt                        = 0
 diff_6th_factor                     = 0.12
 damp_opt                            = 3
 zdamp                               = 5000.
 dampcoef                            = 0.2
 khdif                               = 0
 kvdif                               = 0
 smdiv                               = 0.1
 emdiv                               = 0.01
 epssm                               = 0.1
/

&bdy_control
 spec_bdy_width                      = 5
 spec_zone                           = 1
 relax_zone                          = 4
 specified                           = T, F, F
 nested                              = F, T, T
/

&namelist_quilt
 nio_tasks_per_group                 = 0 
 nio_groups                          = 1 
/

If it still won't work, try this one, nice short and clean, operationally running MeteoAdriatic models with 3.6.1 ARW:

Code: Select all

&time_control
 start_year                          = 2003
 start_month                         = 02
 start_day                           = 30
 start_hour                          = 12
 start_minute                        = 00
 start_second                        = 00
 end_year                            = 2003
 end_month                           = 02
 end_day                             = 31
 end_hour                            = 12
 end_minute                          = 00
 end_second                          = 00
 interval_seconds                    = 10800
 input_from_file                     = T
 history_interval                    = 60
 history_outname                     = "wrfout_d<domain>_<date>"
 frames_per_outfile                  = 1
 io_form_history                     = 2
 io_form_input                       = 2
 io_form_restart                     = 2
 io_form_boundary                    = 2
 io_form_auxinput2		     = 2
 restart                             = F
 restart_interval                    = 100000
 auxhist1_outname                    = "auxhist1_d<domain>_<date>"
 auxhist1_interval                   = 0
 frames_per_auxhist1                 = 1
 io_form_auxhist1                    = 5
 auxhist2_outname                    = "auxhist2_d<domain>_<date>"
 auxhist2_interval                   = 0
 frames_per_auxhist2                 = 1
 io_form_auxhist2                    = 5
 fine_input_stream                   = 0
 adjust_output_times                 = T
 debug_level                         = 0
 iofields_filename                   = "myoutfields.txt", "myoutfields.txt"
 ignore_iofields_warning             = T
/

&domains
 time_step                           = 180
 time_step_fract_num                 = 0
 time_step_fract_den                 = 1
 max_dom                             = 1
 s_we                                = 1
 e_we                                = 151
 s_sn                                = 1
 e_sn                                = 151
 s_vert                              = 1
 e_vert                              = 45
 dx                                  = 6000
 dy                                  = 6000
 grid_id                             = 1
 parent_id                           = 0
 i_parent_start                      = 1
 j_parent_start                      = 1
 parent_grid_ratio                   = 3
 parent_time_step_ratio              = 1
 feedback                            = 1
 smooth_option                       = 1
 grid_allowed                        = T
 max_dz                              = 1000.

 tile_sz_x                           = 0,
 tile_sz_y                           = 0,
 numtiles                            = 8,
 nproc_x                             = -1,
 nproc_y                             = -1,

 num_metgrid_soil_levels             = 4
 num_metgrid_levels                  = 27
 interp_type                         = 2
 extrap_type                         = 2
 t_extrap_type                       = 2
 use_levels_below_ground             = T
 use_surface                         = T
 lagrange_order                      = 1
 zap_close_levels                    = 500
 lowest_lev_from_sfc                 = F
 force_sfc_in_vinterp                = 1
 sfcp_to_sfcp                        = F
 smooth_cg_topo                      = F
 use_tavg_for_tsk                    = F
 p_top_requested                     = 5000
 eta_levels                          =

 use_adaptive_time_step              = F
 step_to_output_time                 = T
 target_cfl                          = 1.2,1.2,1.2
 max_step_increase_pct               = 5, 51, 51
 starting_time_step                  = -1
 max_time_step                       = -1
 min_time_step                       = -1

 hypsometric_opt		     = 2
 interp_theta			     = F
 lagrange_order			     = 2
/


&physics
 mp_physics                          = 3, 6
 cu_physics                          = 1
 cugd_avedx                          = 3
 kfeta_trigger                       = 2
 cudt                                = 5
 sf_sfclay_physics                   = 1
 sf_surface_physics                  = 2
 num_soil_layers                     = 4
 num_land_cat                        = 21
 num_soil_cat                        = 16
 bl_pbl_physics                      = 1
 topo_wind                           = 2, 2
 bldt                                = 0
 ra_lw_physics                       = 1
 ra_sw_physics                       = 1
 radt                                = 12
 sst_skin                            = 1
 rdlai2d                             = F
 sf_lake_physics                     = 0
 icloud                              = 1
 cu_rad_feedback                     = T
 swint_opt                           = 1
 grav_settling                       = 2, 2
 sf_surface_mosaic                   = 1
/


&dynamics                
rk_ord                   = 3
w_damping                = 1
diff_opt                 = 1
km_opt                   = 4
diff_6th_opt             = 2
diff_6th_factor          = 0.12
base_temp                = 290.
damp_opt                 = 3
zdamp                    = 5000, 5000
dampcoef                 = 0.2, 0.2
khdif                    = 0
kvdif                    = 0
smdiv                    = 0.1
emdiv                    = 0.01
epssm                    = 0.2
non_hydrostatic          = T
gwd_opt                  = 1
h_mom_adv_order          = 5
h_sca_adv_order          = 5
v_mom_adv_order          = 3
v_sca_adv_order          = 3
moist_adv_opt            = 1
scalar_adv_opt           = 1
chem_adv_opt             = 0
tke_adv_opt              = 0
/

&bdy_control             
spec_bdy_width           = 5
spec_zone                = 1
relax_zone               = 4
specified                = T, F, F
nested                   = F, T, T
/


&namelist_quilt          
nio_tasks_per_group      = 0
nio_groups               = 1
/

As always, after model begin to work, double check resulting namelist.input inside runs/domain (or runs/domain/static/namelist.wrfm) to see final resulting namelist file. It might not be exactly what you want, so some additional hacks of perl configuration files (strc/ems_run/Models/WRF/ARWconf/NLphysics.pm) might be neccessary to get exatly what you want.

JMeans
Posts: 15
Joined: Wed Jan 16, 2013 7:34 am

Re: Moving a model from EMS to WRF

Post by JMeans » Fri Jul 10, 2015 4:11 am

Thank you again Meteoadriatic. I tried both, but neither seemed to work. The longer one gave a bunch of warnings

W A R N I N G : Problem opening my_iofields_list.txt

Which seemed odd because I have a my_iofields_list.txt

It finished at

real_em: SUCCESS COMPLETE REAL_EM INIT
Timing for output 0 s.
Timing for loop # 6 = 1 s.
real_em: SUCCESS COMPLETE REAL_EM INIT

When I ran the shorter one, then run_real.log had the following error 4 times:

-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 139
--- ERROR: Both km_opt and diff_opt need to be set in the namelist.input file.

I didn't understand that because they do seem to be set in the namelist.arw file.

I need to study up WRF...unfortunately this is all completely confusing to me

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests