inline HYSPLIT

HYSPLIT was originally designed to run offline utilizing meteorological data such as are provided by WRF-ARW. A new model framework has been developed that the revised HYSPLIT model is coupled inline with WRF-ARW to take advantage of the higher temporal frequency of the meteorological variables produced by the meteorological model, as well as using WRF-ARW's vertical coordinate scheme. The inline coupling approach is a more consistent depiction of the state of the atmosphere available to the dispersion model through the elimination of the need to interpolate the meteorological fields temporally and vertically. This forum was created to foster discussion on the use of the In-line WRF-HYSPLIT coupling.
Fantine
Posts: 20
Joined: November 8th, 2012, 3:41 pm

inline HYSPLIT

Postby Fantine » February 3rd, 2016, 6:00 pm

The inline version of HYSPLIT (coupled with WRF-ARW) is now available.
More details on http://www.arl.noaa.gov/WRF_inline.php

genito
Posts: 3
Joined: August 4th, 2016, 12:16 pm
Registered HYSPLIT User: Yes

Re: inline HYSPLIT

Postby genito » September 9th, 2016, 6:10 am

Dear members,
I am testing WRF-HYSPLIT for a trajectory run over Southern Africa with a 9km x 9km grid.
The model is producing wrfout files with the following variables :
float HYOLAT(Time, maxpar) ;
float HYOLON(Time, maxpar) ;
float HYOHGT(Time, maxpar) ;
float HYCSUM(Time, south_north, west_east) ;

However, none of them contains other values but zeros. Could you kindly help me spot what I'm doing wrong?
Below are my CONTROL and namelist.input files for reference.
Thanks in advance,
Genito Maure

Code: Select all

!! CONTROL
16 08 15 00 00
1
-31.6745 24.3 17.0
72
0
10000.0
26
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f000.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f003.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f006.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f009.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f012.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f015.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f018.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f021.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f024.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f027.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f030.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f033.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f036.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f039.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f042.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f045.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f048.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f051.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f054.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f057.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f060.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f063.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f066.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f069.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f072.grib2
/mnt/lustre/users/gmaure1/models/data/gfs0p25/20160815/
gfs.0p25.2016081500.f075.grib2
1
GMTEST
67000.0
6.0
16 08 15 00 00
1
-31.6745 24.3
0.25 0.25
15.0 25.0
./
cdump
1
100
16 08 15 00 00
16 08 18 00 00
00 03 00
1
0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0
0.0
0.0


Code: Select all

!! namelist.input
 &time_control
 run_days                            = 0,
 run_hours                           = 0,
 run_minutes                         = 0,
 run_seconds                         = 0,
 start_year                          = 2016, 2016, 1983, 1983, 1983,
 start_month                         = 08,   08,   09,   09,
 start_day                           = 15,   15,   15,   25,
 start_hour                          = 00,   00,   00,   00,
 start_minute                        = 00,   00,   00,   00,
 start_second                        = 00,   00,   00,   00,
 end_year                            = 2016, 2016, 1983, 1983,
 end_month                           = 08,   08,   09,   09,
 end_day                             = 20,   20,   28,   28,
 end_hour                            = 21,   21,   06,   06,
 end_minute                          = 00,   00,   00,   00,
 end_second                          = 00,   00,   00,   00,
 interval_seconds                    = 10800
 input_from_file                     = .true.,.true.,.true.,.true.,
 history_interval                    = 60,  60,  60,  60,
 frames_per_outfile                  = 1,  1,   1,     1,
 restart                             = .false.,
 restart_interval                    = 9999,
 io_form_history                     = 2
 io_form_restart                     = 2
 io_form_input                       = 2
 io_form_boundary                    = 2
 io_form_auxinput2                   = 2
 debug_level                         = 300
 iofields_filename                   = "addfields.txt"
 /

 &domains
 time_step                           = 60,
 time_step_fract_num                 = 0,
 time_step_fract_den                 = 1,
 max_dom                             = 2,
 e_we                                = 700, 1288,
 e_sn                                = 700, 1213,
 e_vert                              = 30,  30, 28,   28,
 p_top_requested                     = 10000,
 num_metgrid_levels                  = 32,
 dx                                  = 9000, 3000, 1000,
 dy                                  = 9000, 3000, 1000,
 grid_id                             = 1,     2,     3,     4,
 parent_id                           = 1,     1,     2,     3,
 i_parent_start                      = 1,   117,   33,    45,
 j_parent_start                      = 1,   110,    75,
 parent_grid_ratio                   = 1,     3,     3,     3,
 parent_time_step_ratio              = 1,     3,     3,     3,
 feedback                            = 1,
 smooth_option                       = 0
 eta_levels                          = 1.000, 0.996, 0.990, 0.980, 0.970,
                                       0.960, 0.950, 0.940, 0.930, 0.920,
                                       0.910, 0.895, 0.880, 0.865, 0.850,
                                       0.825, 0.800, 0.775, 0.750, 0.720,
                                       0.660, 0.570, 0.475, 0.370, 0.250,
                                       0.200, 0.180, 0.145, 0.045, 0.000
 /

 &physics
 mp_physics                          = 3,     3,     3,     3,
 ra_lw_physics                       = 1,     1,     1,     1,
 ra_sw_physics                       = 1,     1,     1,     1,
 radt                                = 30,    30,    30,   30,
 sf_sfclay_physics                   = 1,     1,     1,     1,
 sf_surface_physics                  = 2,     2,     2,     2,
 bl_pbl_physics                      = 1,     1,     1,     1,
 bldt                                = 0,     0,     0,     0,
 cu_physics                          = 3,     3,     3,     3,
 cudt                                = 5,     5,     5,     5,
 isfflx                              = 1,
 ifsnow                              = 0,
 icloud                              = 1,
 surface_input_source                = 1,
 num_soil_layers                     = 4,
 sf_urban_physics                    = 0,
 maxiens                             = 1,
 maxens                              = 3,
 maxens2                             = 3,
 maxens3                             = 16,
 ensdim                              = 144,
 /

&hysplit
run_hysplit                         = 1,     0,     0,
run_traj                            = 1,     0,     0,
numpar                              = 1,
maxpar                              = 10,
numloc                              = 1,
/

 &fdda
 /

 &dynamics
 w_damping                           = 1,
 diff_opt                            = 1,
 km_opt                              = 4,
 diff_6th_opt                        = 0,      0,      0,        0,
 diff_6th_factor                     = 0.12,   0.12,   0.12,  0.12,
 base_temp                           = 290.
 damp_opt                            = 0,
 zdamp                               = 5000.,  5000.,  5000., 5000.,
 dampcoef                            = 0.01,    0.2,    0.2,   0.2,
 khdif                               = 0,      0,      0,       0,
 kvdif                               = 0,      0,      0,       0,
 non_hydrostatic                     = .true., .true., .true., .true.,
 moist_adv_opt                       = 1,      1,      1,       1,
 scalar_adv_opt                      = 1,      1,      1,       1,
 do_avgflx_em                        = 1,      1,      1,       1,
 do_avgflx_cugd                      = 1,      1,      1,       1,
 iso_temp                            = 0,
 /

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

 &grib2
 /

 &namelist_quilt
 nio_tasks_per_group = 0,
 nio_groups = 1,
 /

Fantine
Posts: 20
Joined: November 8th, 2012, 3:41 pm

Re: inline HYSPLIT

Postby Fantine » September 9th, 2016, 9:46 am

Since you turn on the trajectory run, there is no dispersion calculation (zero values for HYCSUM).

Search the WRF log file (rsl.out.0000) with "traj=". You should see the print out of lat/lon/height for the trajectory at each WRF time step. If not, the trajectory was not calculated. A lot of diagnose print out in the rsl.out.0000. Would you please send your rsl.out.0000?

genito
Posts: 3
Joined: August 4th, 2016, 12:16 pm
Registered HYSPLIT User: Yes

Re: inline HYSPLIT

Postby genito » September 9th, 2016, 12:34 pm

The search for "traj" (there's no "traj=") in rsl.error.0000 gives me the following warning:

Code: Select all

--- WARNING: traj_opt is zero, but num_traj is not zero; setting num_traj to zero.

My rsl.error.000o is too big to be attached here. so I sent it via email.
Genito

Fantine
Posts: 20
Joined: November 8th, 2012, 3:41 pm

Re: inline HYSPLIT

Postby Fantine » September 9th, 2016, 3:07 pm

The HYSPLIT calculaton is not called at the WRF's initialization step. Because some required met data for HYSPLIT calculation is not available at that time step. And we usually start the WRF model before the HYSPLIT for spin-up during the 1st few hours.
In your simulation, the HYSPLIT starting time was set to Aug 15th 00 UTC. The 1st WRF loop (Aug 15th 00 UTC+ 60 sec) has passed HYSPLIT's starting time. No trajectory calculation was done that is why you found zero values for HYOLAT, HYOLON and HYOHGT.

The solution is to set the trajectory to start at a later time (after Aug 15th 00 UTC in your case) or begin the WRF prior to desired trajectory starting time.

genito
Posts: 3
Joined: August 4th, 2016, 12:16 pm
Registered HYSPLIT User: Yes

Re: inline HYSPLIT

Postby genito » September 12th, 2016, 10:46 am

Thanks a lot!
Your help is really appreciated. I managed to get HYOLAT, HYOLON and HYOHGT in my wrfout file.
Kind regards,
GMaure


Return to “In-line WRF-HYSPLIT coupling”

Who is online

Users browsing this forum: No registered users and 0 guests