diff --git a/dartwrf/assim_synth_obs.py b/dartwrf/assim_synth_obs.py index b67196dd856344202e94d54f33a60436c78eb3d8..738ac1b63f9f5c05ff32a3e0910b347690521c8d 100755 --- a/dartwrf/assim_synth_obs.py +++ b/dartwrf/assim_synth_obs.py @@ -534,22 +534,25 @@ def main(time, prior_init_time, prior_valid_time, prior_path_exp): os.system("rm -f input.nml obs_seq.in obs_seq.out obs_seq.out-orig obs_seq.final") set_DART_nml() + do_QC_here = getattr(exp, "reject_smallFGD", False) # True: triggers additional evaluations of prior & posterior + print("prepare nature") prepare_nature_dart(time) # link WRF files to DART directory print("prepare prior ensemble") prepare_prior_ensemble(time, prior_init_time, prior_valid_time, prior_path_exp) - print(" 1) get observations with specified obs-error") + print(" get observations with specified obs-error") oso = get_obsseq_out(time) - print(" 2.1) evaluate prior for all observations (incl rejected)") - osf_prior = evaluate(time, output_format="%Y-%m-%d_%H:%M_obs_seq.final-eval_prior_allobs") + if do_QC_here: + print(" (optional) evaluate prior for all observations (incl rejected)") + osf_prior = evaluate(time, output_format="%Y-%m-%d_%H:%M_obs_seq.final-eval_prior_allobs") - print(" 2.2) assign observation-errors for assimilation ") + print(" assign observation-errors for assimilation ") set_obserr_assimilate_in_obsseqout(oso, osf_prior, outfile=cluster.dartrundir + "/obs_seq.out") - if getattr(exp, "reject_smallFGD", False): + if do_QC_here: print(" 2.3) reject observations? ") qc_obs(time, oso, osf_prior) @@ -564,12 +567,13 @@ def main(time, prior_init_time, prior_valid_time, prior_path_exp): 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): + if do_QC_here: + print(" 4) evaluate posterior observations for all observations (incl rejected)") + write_list_of_inputfiles_posterior(time) + copy(cluster.archivedir+'/obs_seq_out/'+time.strftime('%Y-%m-%d_%H:%M_obs_seq.out-beforeQC'), cluster.dartrundir+'/obs_seq.out') - evaluate(time, output_format="%Y-%m-%d_%H:%M_obs_seq.final-eval_posterior_allobs") + evaluate(time, output_format="%Y-%m-%d_%H:%M_obs_seq.final-eval_posterior_allobs") if __name__ == "__main__":