NCAR / DART

Data Assimilation Research Testbed
https://dart.ucar.edu/
Apache License 2.0
189 stars 142 forks source link

bug: setting convert_all_obs_verticals_first = .false. prevents QC=8 from being recorded #426

Open nancycollins opened 1 year ago

nancycollins commented 1 year ago

Describe the bug

if convert_all_obs_verticals_first is set to .false. in the &assim_tools_nml namelist, any failed vertical conversions fail to set QC=8 in the output obs_seq.final file.

to reproduce: on cheyenne in /glade/scratch/nancy/do_vert_first_test, copy model_mod.f90 to your bgrid_solo dir and copy the input.nml to your bgrid work dir.
build and run.
look at the DART QCs in the obs_seq.final file. every other one should be 8 and is not. set convert_all_obs_verticals_first to .true. in the input.nml and rerun. the output is as expected.

Version of DART

release 10.5.5.

the bug with skipping posterior forward operators and not seeing QC=8 is an unrelated problem and that fix doesn't change these results.

Have you modified the DART code?

i haven't changed the code. my recommended modification is to require convert_all_obs_verticals_first to remain true. it eventually should be removed from the namelist but that's quite disruptive. the default is already true and i suspect hardly anyone is actually changing this to false. but to prevent unexpected behavior, i suggest adding a test and error out if it has been set to false, including a message that this namelist item is deprecated and will be removed at some future time.

Build information

i ran this on cheyenne with the intel compiler.

nancycollins commented 1 year ago

the alternative to removing this option is to fix the code in the assimilation loop so it calls convert_vertical_obs() explicitly before doing the broadcast of values and setting QC=8 if the convert fails at that point.