diff --git a/dartwrf/prep_IC_prior.py b/dartwrf/prep_IC_prior.py
index d1ef6a432450aec19fed49a19d2d637aa2f11a2b..84e1c6a42bdea0dfa03dd38a6b7776eeaaf5b722 100755
--- a/dartwrf/prep_IC_prior.py
+++ b/dartwrf/prep_IC_prior.py
@@ -1,5 +1,6 @@
 import os, sys, warnings, glob
 import datetime as dt
+import numpy as np
 
 from config.cfg import exp, cluster
 from utils import copy, clean_wrfdir, try_remove
@@ -42,16 +43,21 @@ def create_wrfrst_in_WRF_rundir(time, prior_init_time, prior_path_exp):
             print('removing', f)
             try_remove(f)
 
-def create_updated_wrfinput_from_wrfout(time, prior_init_time, prior_path_exp):
+def create_updated_wrfinput_from_wrfout(time, prior_init_time, prior_path_exp, new_start_time):
     """Same as create_wrfout_in_archivedir, but output is `wrfinput` in WRF run directory"""
 
     print('writing updated wrfout to WRF run directory as wrfinput')
     for iens in range(1, exp.n_ens+1):
         prior_wrfout = prior_path_exp + prior_init_time.strftime('/%Y-%m-%d_%H:%M/') \
                        +str(iens)+time.strftime('/wrfout_d01_%Y-%m-%d_%H:%M:%S')
-        post_wrfout = cluster.wrf_rundir(iens) + '/wrfinput_d01' 
-        copy(prior_wrfout, post_wrfout)
-        print(post_wrfout, 'created.')
+        new_start_wrfinput = cluster.wrf_rundir(iens) + '/wrfinput_d01' 
+        copy(prior_wrfout, new_start_wrfinput)
+        print(new_start_wrfinput, 'created.')
+
+        template_time = prior_path_exp + new_start_time.strftime('/%Y-%m-%d_%H:%M/') \
+                       +str(iens)+new_start_time.strftime('/wrfout_d01_%Y-%m-%d_%H:%M:%S')
+        os.system('ncks -A -v XTIME,Times '+template_time+' '+new_start_wrfinput)
+        print('overwritten times from', template_time)
 
 
 if __name__ == '__main__':
@@ -59,8 +65,12 @@ if __name__ == '__main__':
     prior_init_time = dt.datetime.strptime(sys.argv[2], '%Y-%m-%d_%H:%M')
     prior_valid_time = dt.datetime.strptime(sys.argv[3], '%Y-%m-%d_%H:%M')
 
-    use_wrfout_as_wrfinput = False
-    if use_wrfout_as_wrfinput:
-        create_updated_wrfinput_from_wrfout(prior_valid_time, prior_init_time, prior_path_exp)
+    if len(sys.argv) == 5:
+        # to start new simulation at different time than prior_valid_time
+        new_start_time = dt.datetime.strptime(sys.argv[4], '%Y-%m-%d_%H:%M')
+
+        # use_wrfout_as_wrfinput
+        create_updated_wrfinput_from_wrfout(prior_valid_time, prior_init_time, prior_path_exp, new_start_time)
     else:
+        # restart 
         create_wrfrst_in_WRF_rundir(prior_valid_time, prior_init_time, prior_path_exp)