Skip to content
Snippets Groups Projects
Commit 0039f2a3 authored by lkugler's avatar lkugler
Browse files

capability for spinned-up run

parent f70774c9
No related branches found
No related tags found
No related merge requests found
import os, sys, warnings, glob import os, sys, warnings, glob
import datetime as dt import datetime as dt
import numpy as np
from config.cfg import exp, cluster from config.cfg import exp, cluster
from utils import copy, clean_wrfdir, try_remove 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): ...@@ -42,16 +43,21 @@ def create_wrfrst_in_WRF_rundir(time, prior_init_time, prior_path_exp):
print('removing', f) print('removing', f)
try_remove(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""" """Same as create_wrfout_in_archivedir, but output is `wrfinput` in WRF run directory"""
print('writing updated wrfout to WRF run directory as wrfinput') print('writing updated wrfout to WRF run directory as wrfinput')
for iens in range(1, exp.n_ens+1): for iens in range(1, exp.n_ens+1):
prior_wrfout = prior_path_exp + prior_init_time.strftime('/%Y-%m-%d_%H:%M/') \ 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') +str(iens)+time.strftime('/wrfout_d01_%Y-%m-%d_%H:%M:%S')
post_wrfout = cluster.wrf_rundir(iens) + '/wrfinput_d01' new_start_wrfinput = cluster.wrf_rundir(iens) + '/wrfinput_d01'
copy(prior_wrfout, post_wrfout) copy(prior_wrfout, new_start_wrfinput)
print(post_wrfout, 'created.') 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__': if __name__ == '__main__':
...@@ -59,8 +65,12 @@ 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_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') prior_valid_time = dt.datetime.strptime(sys.argv[3], '%Y-%m-%d_%H:%M')
use_wrfout_as_wrfinput = False if len(sys.argv) == 5:
if use_wrfout_as_wrfinput: # to start new simulation at different time than prior_valid_time
create_updated_wrfinput_from_wrfout(prior_valid_time, prior_init_time, prior_path_exp) 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: else:
# restart
create_wrfrst_in_WRF_rundir(prior_valid_time, prior_init_time, prior_path_exp) create_wrfrst_in_WRF_rundir(prior_valid_time, prior_init_time, prior_path_exp)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment