Skip to content
Snippets Groups Projects
Commit 899e4643 authored by lkugler's avatar lkugler
Browse files

sp. var. ss inflation

parent 44b6c1bb
No related branches found
No related tags found
No related merge requests found
......@@ -445,6 +445,52 @@ def get_obsseq_out(time):
return oso
def prepare_inflation_2(time, prior_init_time):
"""Prepare inflation files
Recycles inflation files from previous assimilations
or takes default files from archive.
Args:
time (datetime): time of assimilation
prior_init_time (datetime): time of prior assimilation
"""
dir_priorinf = cluster.archivedir + prior_init_time.strftime("/%Y-%m-%d_%H:%M/assim_stage0/")
f_default = cluster.archive_basedir + "/input_priorinf_mean.nc"
f_prior = dir_priorinf + time.strftime("/%Y-%m-%d_%H:%M_output_priorinf_mean.nc")
f_new = cluster.dartrundir+'/input_priorinf_mean.nc'
if os.path.isfile(f_prior):
copy(f_prior, f_new)
print(f_prior, 'copied to', f_new)
else:
warnings.warn(f_prior + ' does not exist. Using default file instead.')
copy(f_default, f_new)
f_default = cluster.archive_basedir + "/input_priorinf_sd.nc"
f_prior = dir_priorinf + time.strftime("/%Y-%m-%d_%H:%M_output_priorinf_sd.nc")
f_new = cluster.dartrundir+'/input_priorinf_sd.nc'
if os.path.isfile(f_prior):
copy(f_prior, f_new)
print(f_prior, 'copied to', f_new)
else:
warnings.warn(f_prior + ' does not exist. Using default file instead.')
copy(f_default, f_new)
def archive_inflation_2(time):
f_output = cluster.dartrundir + time.strftime('/%Y-%m-%d_%H:%M/assim_stage0/output_priorinf_sd.nc')
f_archive = cluster.archivedir + time.strftime("/%Y-%m-%d_%H:%M_output_priorinf_sd.nc")
copy(f_output, f_archive)
print(f_archive, 'saved')
f_output = cluster.dartrundir + time.strftime('/%Y-%m-%d_%H:%M/assim_stage0/output_priorinf_mean.nc')
f_archive = cluster.archivedir + time.strftime("/%Y-%m-%d_%H:%M_output_priorinf_mean.nc")
copy(f_output, f_archive)
print(f_archive, 'saved')
def main(time, prior_init_time, prior_valid_time, prior_path_exp):
"""Assimilate observations
as defined in config/cfg.py
......@@ -497,11 +543,17 @@ def main(time, prior_init_time, prior_valid_time, prior_path_exp):
print(" 2.3) reject observations? ")
qc_obs(time, oso, osf_prior)
if exp.prior_inflation == 2:
prepare_inflation_2(time, prior_init_time)
print(" 3) run filter ")
set_DART_nml()
filter(nproc=nproc)
archive_filteroutput(time)
if exp.prior_inflation == 2:
archive_inflation_2(time)
print(" 4) evaluate posterior observations for all observations (incl rejected)")
write_list_of_inputfiles_posterior(time)
if getattr(exp, "reject_smallFGD", False):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment