-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: add QC flag instead of filter crash, when the ensemble member beyond the bounds setting in qceff_table.csv file. #681
Comments
Hi @hgrhgy I think this may be a bug, do you have a test case you can share that reproduces this error? Also can you let us know:
Do you have input state that has 'out of bounds values'? |
There is a fix_bound_violations namelist option in probit_transform_nml &probit_transform_nml Try this and see if it affects your run of filter. fix_bound_violations will correct bounds violations in the transform_to_probit but only for small round off errors. However at first glance -3.100498191521694E-004 appears to be a fairly large bound violation. |
Thanks for replying. @hkershaw-brown I had tried setting |
if In qceff table file, I set the lower bound to zero for obs_error_info, probit_inflation, probit_state and obs_inc_info. |
thanks for the update @hgrhgy I think if the negative values are discarded, this would be a fail in the forward operator, and so that particular forward operator would not be part of the extended state (it would be skipped). I think either:
|
out-of-bounds forward operator
reproducer: |
…perator values to filter_assim forward operators that produced out-of-bounds values are given the QC value DARTQC_OUT_OF_BOUNDS tested with forcing lorenz_96_tracer_advection to give out-of-bounds values in model_interpolate see NCAR#681 for user reported problem.
…perator values to filter_assim forward operators that produced out-of-bounds values are given the QC value DARTQC_OUT_OF_BOUNDS tested with forcing lorenz_96_tracer_advection to give out-of-bounds values in model_interpolate see #681 for user reported problem.
hi @hgrhgy the branch Can you give this a try and let me know if this solves your problem. edit @hkershaw-brown double check bitwise on this |
Hi @hkershaw-brown , I have merged the commit CASE 1: The inflation probit out of bounds. CASE 2: Then I disabled the inflation probit lower bound condition, and debug with the same break point , the error changed to : I supposed the tag Let me know if any other information is needed. The gdb logs: |
the Is your code available on GitHub? If so, please provide the repository. before going further into this, I'd like to make sure this is something that we can reproduce with DART. |
It's the same input gave the first reported problem, the The code is clone from the DART tag v11.0.1, then some forward operator from https://github.com/apmizzi/DART_Chem and GEOS-Chem model code are merged, so some log is in Arthur's log style. The code is not currently on github. |
Hi @hgrhgy For the scientific options of the QCEFF, dart@ucar.edu is the best place to ask about this. |
I understand that the limited for private code. I have tried the branch |
Use case
Add new qc flag to the obs_seq.final, when the ensemble member beyond the bounds setting in qceff_table.csv file.
Is your feature request related to a problem?
when there are some member values out of the bounds configured in qceff_table.csv, the filter program crash with the error
Smallest ensemble member less than lower bound -3.100498191521694E-004 0.000000000000000E+000
.Describe your preferred solution
Maybe the observations related to update this member are not assimilated instead of filter crash. And add a new QC flag to the obs_seq.final to tell the user why the observations are not assimilated.
Describe any alternatives you have considered
Or add a control options in the namelist file to tell the filter keep running when error occurs.
The text was updated successfully, but these errors were encountered: