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: 150
Joined: November 8th, 2012, 3:41 pm

inline HYSPLIT

Post by Fantine »

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

Post by genito »

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: 150
Joined: November 8th, 2012, 3:41 pm

Re: inline HYSPLIT

Post by Fantine »

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

Post by genito »

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: 150
Joined: November 8th, 2012, 3:41 pm

Re: inline HYSPLIT

Post by Fantine »

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

Post by genito »

Thanks a lot!
Your help is really appreciated. I managed to get HYOLAT, HYOLON and HYOHGT in my wrfout file.
Kind regards,
GMaure
maciej.kryza
Posts: 3
Joined: August 17th, 2016, 7:24 am
Registered HYSPLIT User: Yes

Re: inline HYSPLIT

Post by maciej.kryza »

Hi there,
My problems seems to be similiar, but I can not solve them by tempering with start date. I get HYOLAT, HYOLON, HYOHGT variables, but there are only zeros. Could you please give me some hints what is happening? I'm attaching my namelist.input, CONTROL and rsl.out.0000 files (there are no traj= lines).
Thank you in advance for any suggestions
Fantine
Posts: 150
Joined: November 8th, 2012, 3:41 pm

Re: inline HYSPLIT

Post by Fantine »

It sounds the trajectory calculation was not started at all. Would you please show your namelist.input and CONTROL file?
maciej.kryza
Posts: 3
Joined: August 17th, 2016, 7:24 am
Registered HYSPLIT User: Yes

Re: inline HYSPLIT

Post by maciej.kryza »

Thank you for reply. Yes of course - I tried to attach control, namelist.input and rsl.out.0000 as zip file, but it seems it doesn't work.
Here is the control file:

Code: Select all

16 04 02 00 00
1
51.1 17.1 17.0
12
0
10000.0
6
/lustre/scratch/makr/WRFV3.7.1/inline-HYSPLIT/WRFV3/test/test_pl/gdas_data
20160401_gdas0p5
/lustre/scratch/makr/WRFV3.7.1/inline-HYSPLIT/WRFV3/test/test_pl/gdas_data
20160402_gdas0p5
/lustre/scratch/makr/WRFV3.7.1/inline-HYSPLIT/WRFV3/test/test_pl/gdas_data
20160403_gdas0p5
/lustre/scratch/makr/WRFV3.7.1/inline-HYSPLIT/WRFV3/test/test_pl/gdas_data
20160404_gdas0p5
/lustre/scratch/makr/WRFV3.7.1/inline-HYSPLIT/WRFV3/test/test_pl/gdas_data
20160405_gdas0p5
/lustre/scratch/makr/WRFV3.7.1/inline-HYSPLIT/WRFV3/test/test_pl/gdas_data
20160406_gdas0p5
1
PMCH
67000.0
6.0
16 04 02 00 00
1
51.1 17.1
0.25 0.25
5.0 5.0
/lustre/scratch/makr/WRFV3.7.1/inline-HYSPLIT/WRFV3/test/test_pl/
cdump
1
100
16 04 01 18
16 04 02 18
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
Some lines from the namelist.input file that I use:

Code: Select all

 &time_control
 run_days                            = 0,
 run_hours                           = 0,
 run_minutes                         = 0,
 run_seconds                         = 0,
start_year = 2016, 2016, 2003,
start_month = 04, 04, 06,
start_day = 01, 01, 29,
start_hour                          = 00,   00, 00,
start_minute                        = 00,   00, 00,
start_second                        = 00,   00, 00,
end_year = 2016, 2016, 2003,
end_month = 04, 04, 08,
end_day = 06, 09, 01,
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                    = 60,  60, 60
 frames_per_outfile                  = 250, 24, 24,
 restart                             = .false.,
 restart_interval                    = 804000,
 io_form_history                     = 2
 io_form_restart                     = 2
 io_form_input                       = 2
 io_form_boundary                    = 2
 debug_level                         = 0,
 auxinput1_inname                    = "wps/met_em.d<domain>.<date>",
io_form_auxinput2 =2,
 ignore_iofields_warning = T
iofields_filename = "mylist.txt","mylist.txt","mylist.txt",
/
 &domains
 time_step                           = 75,
 time_step_fract_num                 = 0,
 time_step_fract_den                 = 1,
 max_dom                             = 1,
 parent_grid_ratio = 1,3,3,
parent_time_step_ratio = 1, 3, 3,
 i_parent_start    = 1,133,45,
 j_parent_start    = 1,109,30,
 e_we          = 285,250,223,
 e_sn          = 332,232,163,
 s_vert                              = 1,        1, 1, 
 e_vert                              = 30,    35, 35,
 num_metgrid_levels                  = 27,
 num_metgrid_soil_levels             = 4,
 dx                                  = 12000, 4000, 1333.333
 dy                                  = 12000, 4000, 1333.333
 grid_id                             = 1,     2, 3,
 parent_id                           = 0,     1, 2,
 feedback                            = 0,
 p_top_requested                     = 10000,
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,
 /
&hysplit
 run_hysplit                         = 1,     0,     0,
 run_traj                            = 1,     0,     0,
 numpar                              = 1,
 maxpar                              = 10,
 numloc                              = 1,
 /
Of course I have other sections too and the WRF model output seems to be ok.
The rsl.output.0000 have lots of lines similar to this section:

Code: Select all

Timing for main: time 2016-04-02_00:00:00 on domain   1:    0.22819 elapsed seconds
Timing for Writing wrfout_d01_2016-04-02_00:00:00 for domain        1:    4.10098 elapsed seconds
 @@@ reset hycsum for wrfout!           1
d01 2016-04-02_00:00:00 Input data processed for aux input  10 for domain   1
Timing for processing lateral boundary for domain        1:    0.16268 elapsed seconds
D01 3-D analysis nudging reads new data at time =   1440.000 min.
D01 3-D analysis nudging bracketing times =  1440.00 1800.00 min.
 aaa hysp/hymain  ====================================================
 aaa time_step=          75   75.00000    
 bbb in hysp/metini grid%id=           1
 bbb ccdate=2016-04-02_00:00:00 
 bbb stdate=2016-04-01_00:00:00 
 bbb endate=2016-04-06_00:00:00 
 bbb sec=           0           0           0
 aaa in hysp/tminit        18262       36524
 bbb FIRST%MACC=    61142401    61142400          75
 bbb HYFL%FIRST=          16           4           2           0           1
 bbb macc=    61142401    61140960    61148160          24
 bbb ssac=  3.6685440E+09
 bbb ssac=            3668544060            3668457600            3668889600
 bbb pole_lat=   54.50000       13.60000       54.50000    
 bbb  ref_lon=   13.60000       12.00000      0.0000000E+00
 bbb tang_lat=   54.50000       142.5000       166.0000    
 bbb sync_lat=   54.50000       13.60001    
 bbb latlon= F F   12.00000     F
 bbb KDEF=           0           1           2
 bbb KZMIX=           0   1.000000    
 bbb end of metini => return back to hymain!
 ccc hysp/metdum
           1         285           1         332           1          30
          -4          55          -4          49           1          30
           1          48           1          42           1          30
 ccc hyeta=          30   1.000000      0.9980000      0.9930000    
  0.9850000      0.9750000      0.9650000      0.9550000      0.9450000    
  0.9350000      0.9250000      0.9150000      0.9025000      0.8875000    
  0.8725000      0.8575000      0.8375000      0.8125000      0.7875000    
  0.7625000      0.7350000      0.6900001      0.6150000      0.5225000    
  0.4225000      0.3100000      0.2250000      0.1900000      0.1625000    
  9.4999999E-02  2.2500001E-02
 ccc size=          60          30          54
 ccc isfc=           3           4   116.6281    
 ccc isfc=           3
 yyy hysp/prfcom tkerd=  0.1800000      0.1800000               3
 yyy mixd= T           0         250           1
 yyy uflx= T F F T F
 yyy size=          60          30          54
 yyy jms=          -4          49           1          42
 yyy ktop=          30 T           0
 yyy end of prfcom => return back to metdum!
 ccc end of metdum => return back to hymain!
 aaa hymacc=    61142400           0           1
 www hysp/hyconc hycount=        1153   75.00000    
 www mpi=  1140850688           0           0
 www skip HYSPLIT jet=            3668544000            3668544060
 www end of hyconc => return back to hymain!
 aaa end of hymain => return back to WRF!
Fantine
Posts: 150
Joined: November 8th, 2012, 3:41 pm

Re: inline HYSPLIT

Post by Fantine »

It probably is because time_step=75 caused the mis-match of clock between HYSPLIT and WRF that no trajectory calculation was started. Refer to the post viewtopic.php?f=32&t=1158
The problem can be solved by changing time_step=60.
Post Reply

Return to “In-line WRF-HYSPLIT coupling”