NCAR / DART

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

bug: cam-fv and cam-se can't assimilate radiance obs #438

Open nancycollins opened 1 year ago

nancycollins commented 1 year ago

:bug: cam assimilations can't handle radiance obs

Describe the bug

both cam models (se and fv) on the current main branch cannot assimilate radiance obs if the default setting for 'no_assim_above_model_level' is used.

the interpolation routine rejects locations called from the rttov forward operator code which is contructing columns of values for various fields.

(there may be other reasons radiance obs fail, i.e. if the cam state doesn't include enough variables for what rttov needs.)

Error Message

all radiance obs fail with QC=4.

Which model(s) are you working with?

cam-se and cam-fv

Version of DART

main branch

Have you modified the DART code?

Yes - i pushed a branch no_assim_high_cam_obs with the minor changes needed in both cam model_mods. this fix requires the rest of the QC=8 issues to be addressed but it is a separate issue once those are fixed.

this change results in the high obs returning with a QC of 8 (failed vertical convert) which is a non-zero QC code so the observation is not assimilated. that means the namelist item is still correctly named. it should be documented somewhere why these obs fail the vert convert (because they're too high, not because of any other reason.) note that the test for high obs moved from interpolate to the obs vertical conversion routine, not get_close.

i realize everyone is working on AGU and AMS right now, plus it is the holiday season, so i don't expect this to be addressed for a while. but i had already made these changes and i didn't want to lose them or this issue in the meantime.

this code change is an offshoot from discussion #436 but that discussion has wound around many other issues. this is addressing one facet of those issues.

Build information

any, but i built it with gfortran on my laptop.

nancycollins commented 1 year ago

additional info:

i have not tried to run cam with the rttov libs and radiance obs, so i have no idea what other changes are needed in either the cam setup (e.g. outputting more fields) or the dart namelist (e.g. reading more fields into the state) or in the model_mod (e.g. interpolating a different obs type which might need special treatment).

this code change is needed whether or not the input obs are run through the cam_dart_obs_preprocess program. if the input obs_seq is run through that program it removes all the high obs and they won't show up in the output. if the input is not run through that program, high obs will be in the output but marked QC=8 and they won't be assimilated, so the results should be the same.

either way, without this code change radiance obs will still be rejected because they fail in the interpolate routine.