arw2arl : output time interval not constant

Post questions and find resources to convert meteorological data into a format HYSPLIT can read.
Post Reply
dodive
Posts: 6
Joined: March 17th, 2015, 10:39 pm
Registered HYSPLIT User: Yes
Location: Seoul, Korea
Contact:

arw2arl : output time interval not constant

Post by dodive »

hello everyone.

I tried convert WRF file to arl. but I couldn't get any result in GUI
and I also ran it on the command.

../exec/arw2arl -i../working/wrfout_d01_2012-01-01_00:00:00 -o../working/arlout_d01_2012-01-01_00:00:00.bin

error message was,

Output time interval not constant
Initial delta (min): 60.000004
Delta at period: 60.000008 4

The last date in arw2arl.f is 17 Mar 2015. "17 Mar 2015 (RRD) - test for difference field"

here's my WRFDATA.CFG

&SETUP
num3dv = 7,
arw3dv = 'P','T','U','V','W','X','QVAPOR',
cnv3dv = 0.01, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
arl3dv = 'PRES','TEMP','UWND','VWND','WWND','DIFW','SPHU',
num2dv = 12,
arw2dv = 'HGT','PSFC','RAIN','X','PBLH','UST','SWDOWN','HFX','LH','T2','U10','V10',
cnv2dv = 1.0, 0.01, 0.001, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
arl2dv = 'SHGT','PRSS','TPP1','DIFR','PBLH','USTR ','DSWF','SHTF','LHTF','T02M','U10M','V10M',

and here's my WRF name list file. everything is same except date.

&time_control
run_days = 10
run_hours = 0,
run_minutes = 0,
run_seconds = 0,
start_year = 2012, 2012, 2012, 2012,
start_month = 12, 12, 12, 12,
start_day = 31, 31, 31, 31,
start_hour = 00, 00, 00, 00,
start_minute = 00, 00, 00, 00,
start_second = 00, 00, 00, 00,
end_year = 2013, 2013, 2013, 2013,
end_month = 01, 01, 01, 01,
end_day = 10, 10, 10, 10,
end_hour = 00, 00, 00, 00,
end_minute = 00, 00, 00, 00,
end_second = 00, 00, 00, 00,
interval_seconds = 21600
input_from_file = .true.,.true.,.true.,.true.,
history_interval = 60, 60, 60, 60,
frames_per_outfile = 240, 240, 240, 240,
restart = .false.,
restart_interval = 4320
io_form_history = 2
io_form_restart = 2
io_form_input = 2
io_form_boundary = 2
debug_level = 9999
auxinput1_inname = "metoa_em.d<domain>.<date>"
auxinput11_interval = 360, 360, 360, 360,
auxinput11_end_h = 666, 666, 666, 666,
/

&domains
time_step = 60,
time_step_fract_num = 0,
time_step_fract_den = 1,
max_dom = 4,
e_we = 124, 73, 70, 91,
e_sn = 131, 85, 73, 73,
e_vert = 31, 31, 31, 31,
p_top_requested = 5000,
num_metgrid_levels = 27,
num_metgrid_soil_levels = 4,
dx = 27000, 9000, 3000, 1000,
dy = 27000, 9000, 3000, 1000,
grid_id = 1, 2, 3, 4,
parent_id = 1, 1, 2, 3,
i_parent_start = 1, 56, 19, 15,
j_parent_start = 1, 44, 48, 25,
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.978,
0.964, 0.946, 0.922, 0.894, 0.860,
0.817, 0.766, 0.707, 0.644, 0.576,
0.507, 0.444, 0.380, 0.324, 0.273,
0.228, 0.188, 0.152, 0.145, 0.121,
0.093, 0.069, 0.048, 0.029, 0.014,
0.000,

/
&physics
mp_physics = 3, 3, 3, 3,
ra_lw_physics = 1, 1, 1, 1,
ra_sw_physics = 1, 1, 1, 1,
radt = 27, 9, 3, 1,
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 = 1, 1, 0, 0,
cudt = 5, 5, 5, 5,
isfflx = 1,
ifsnow = 0,
icloud = 1,
surface_input_source = 1,
num_soil_layers = 4,
sf_urban_physics = 0, 0, 0, 0,
maxiens = 1,
maxens = 3,
maxens2 = 3,
maxens3 = 16,
ensdim = 144,
/
&fdda
grid_fdda = 1, 1, 1, 1,
gfdda_inname = "wrffdda_d<domain>",
gfdda_end_h = 24, 24, 24, 24,
gfdda_interval_m = 360, 360, 360, 360,
io_form_gfdda = 2,
fgdt = 0, 0, 0, 0,
if_no_pbl_nudging_uv = 0, 0, 0, 0,
if_no_pbl_nudging_t = 1, 1, 1, 1.
if_no_pbl_nudging_q = 1, 1, 1, 1,
if_zfac_uv = 1, 1, 1, 1,
k_zfac_uv = 10, 10, 10, 10,
if_zfac_t = 0, 0, 0, 0,
k_zfac_t = 10, 10, 10, 10,
if_zfac_q = 0, 0, 0, 0,
k_zfac_q = 10, 10, 10, 10,
guv = 0.0003, 0.0003, 0.0003, 0.0003,
gt = 0.0003, 0.0003, 0.0003, 0.0003,
gq = 0.0003, 0.0003, 0.0003, 0.0003,
if_ramping = 1,
dtramp_min = 60.0,

grid_sfdda = 1, 1, 1, 1,
sgfdda_inname = "wrfsfdda_d<domain>",
sgfdda_interval_m = 360, 360, 360, 360,
sgfdda_end_h = 24, 24, 24, 24,
io_form_sgfdda = 2,
guv_sfc = 0.0003, 0.0003, 0.0003, 0.0003,
gt_sfc = 0.0003, 0.0003, 0.0003, 0.0003,
gq_sfc = 0.0003, 0.0003, 0.0003, 0.0003,
rinblw = 250,

obs_nudge_opt = 1, 1, 1, 1,
max_obs = 150000,
fdda_start = 0., 0., 0., 0.,
fdda_end = 9999., 9999., 9999., 9999.,
obs_nudge_wind = 1, 1, 1, 1,
obs_coef_wind = 6.E-4, 6.E-4, 6.E-4, 6.E-4,
obs_nudge_temp = 1, 1, 1, 1,
obs_coef_temp = 6.E-4, 6.E-4, 6.E-4, 6.E-4,
obs_nudge_mois = 1, 1, 1, 1,
obs_coef_mois = 6.E-4, 6.E-4, 6.E-4, 6.E-4,
obs_rinxy = 240., 240., 180., 180.,
obs_rinsig = 0.1,
obs_twindo = 0.666667, 0.666667, 0.666667, 0.666667,
obs_npfi = 10,
obs_ionf = 1, 1, 1, 1,
obs_idynin = 1,
obs_dtramp = 40.
obs_prt_max = 1000,
obs_ipf_errob = .true.
obs_ipf_nudob = .true.
obs_ipf_in4dob = .true.
obs_ipf_init = .true.
/

&dynamics
w_damping = 0,
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.2, 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,
/
&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,
/

any help would be highly appreciated.
regards,

Doyoon Kim
ariel.stein
Posts: 660
Joined: November 7th, 2012, 3:14 pm
Registered HYSPLIT User: Yes

Re: arw2arl : output time interval not constant

Post by ariel.stein »

It seems that your wrf run is generating a data at an output timestep that is not an integer number. For some reason (beyond our knowledge) is calculating a DELT of 60.000008.
To solve this problem please modify your arw2arl.f code as highlighted in red.



DELT=0.0
DO n=1,ntp
IF(diag) WRITE(*,*)'xmin=',xmin(n),' ',tvar(n)
IF(n.EQ.1)THEN
CONTINUE
ELSEIF(n.EQ.2)THEN
DELT=FLOAT(NINT(XMIN(2)-XMIN(1)))
ELSE
IF(FLOAT(NINT(XMIN(n)-XMIN(n-1))).NE.DELT)THEN
WRITE(*,*)'Output time interval not constant'
WRITE(*,*)'Initial delta (min): ',DELT
WRITE(*,*)'Delta at period: ',(XMIN(n)-XMIN(n-1)),n
STOP
END IF
END IF
END DO
dodive
Posts: 6
Joined: March 17th, 2015, 10:39 pm
Registered HYSPLIT User: Yes
Location: Seoul, Korea
Contact:

Re: arw2arl : output time interval not constant

Post by dodive »

It works. Thank you Stein!! ^^
dodive
Posts: 6
Joined: March 17th, 2015, 10:39 pm
Registered HYSPLIT User: Yes
Location: Seoul, Korea
Contact:

Re: arw2arl : output time interval not constant

Post by dodive »

I ran it again with different WRF file, and I got different error message.

Output time interval not constant
Initial delta (min): 60.000000
Delta at period: -1380.0001 25

I use WRF output file which consist of several time periods

ncrcat -F -O /root/scratch/20150502/../20150501/wrf/wrfout_d02_2015-05-01_00:00:00 /root/scratch/20150502/../20150501/wrf/wrfout_d02_2015-05-01_06:00:00 /root/scratch/20150502/../20150501/wrf/wrfout_d02_2015-05-01_12:00:00 /root/scratch/20150502/../20150501/wrf/wrfout_d02_2015-05-01_18:00:00 wrfout_d02_2015-05-02_00:00:00 wrfout_d02_2015-05-02_06:00:00 wrfout_d02_2015-05-02_12:00:00 wrfout_d02_2015-05-02_18:00:00 wrfout_d02_2015-05-03_00:00:00 /home/baekdusan/results/20150501/wrfout_d02.nc

I saw some options(?) in arw2arl.f (about time periods) but I don't know how to use :cry:
any help would be greatly appreciated.

regards,

Doyoon Kim
Air Pollution Modeling & Climate Change laboratory
Konkuk Univ., Seoul, South Korea.
Post Reply

Return to “Conversion programs”