-
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
QCEFF Table #553
QCEFF Table #553
Conversation
…ning size of table
… them to the variables in the qcf_table_data_type
…o that these type structs are only used in algorithm_info_mod
… read in correctly; removed rowheaders argument from subroutines where not needed
…bs_inc_info subroutine
…bs_error_info subroutine
…ools_mod to filter_main in filter_mod
…e top of algorithm_info_mod
…ork with log_qcf_info
Currently the when lower_bound=.false. the lower bound is set the value lower_bound rather MISSING_R8
…ameters replace kind with qty
whitespace tidy for readability
@mjs2369 great thanks Marlee, can you go ahead and commit the changes to all_eakf_algorithm_info_mod and state_eakf_tracer_bnrhf_algorithm_info_mod to the quantile_methods branch. You should be able to push to that branch now. |
Todo:
|
todo: check perfect_model_obs and filter call algorithm info mod, but only filter calls initalize with the qcf_table_filename. |
moved QCEFF out of getting started. replaced Quantile Conserving and Probit Transform Filtering Tools with Quantile Conserving Ensemble Filtering Framework because the docs refer to QCEFF
fix_bound_violations = .false., use_logit_instead_of_probit = .false., do_inverse_check = .false., removed duplicate &probit_transform_nml from lorenz_96_tracer_advection input.nml
defaults: filter_kind EAKF, dist_type NORMAL_DISTRIBUTION code changed to match Jeffs edits.
update error message (filter_kind not a namelist option)
The offical name: Quantile-Conserving Ensemble Filter Framework
currently failing
currently failing, need to_upper on all string inputs in algorithm_info_mod
changed if statements to case, so to_upper called once before the case statement
This is so perfect_model_obs and filter_mod can use the algorithm_info_mod remove obsolete use_algorithm_info_mod namelist option from perfect_model_obs perfect model obs initialize and end algorithm_info_mod qceff_table_filename removed from filter_nml algorithm_info_mod example.nml update example.nmls to match latest options (removed filter_kind) adding algorithm_info_nml to model input.nmls The developer_tests/qceff will not work with this (passing in a filename)
@hkershaw-brown retested with all changes - bitwise identical with quantile_methods for all four lorenz_96_tracer_advection examples I did one final review as well for both the code and docs and I think it is ready to merge! |
Description:
This PR is a duplicate of #545 but with correctly revised git history.
The python script for converting from a YAML file to the table will be moved to a separate PR.
Previously the QCF code required an algorithm_info_mod specific to the model, which meant editing algorithm_info_mod.f90 to specify which distribution should be used for which quantity.
This code implements a QCF input table, which reads in the algorithm info choices (QCF options) at runtime and stores them in algorithm_info_mod module storage.
This replaces the former functionality of algorithm_info_mod if statements with the table information.
The observation, state, and inflation variables are read in from a single table. Each field keeps its own column, having 28 total in the table.
The full list of QCF input options and information of the structure of the table can be found in the documentation at DART/guide/qcf_table.rst
More info on the background of the issue can be read in the specification here: https://docs.google.com/document/d/1MnvEFfgj5SfFbnIahGHwjy1XJ5IWBvPS8NB1nrIjc8k/edit
Fixes issue
Fixes #503
Types of changes
Documentation changes needed?
While I have included new documentation on how to use the input table at DART/guide/qcf_table.rst , Jeff’s documentation at https://docs.dart.ucar.edu/en/quantile_methods/models/lorenz_96_tracer_advection/work/readme.html needs updated to reflect the difference in workflow for the tests listed, and in general the documentation for quantile methods should be highlighted and linked to on the main DART documentation page.
Tests
Compiled and ran filter with full debugging flags with Intel, CCE, gfortran
Bitwise identical to quantile_methods, tested with Intel
Information on how to use the QCF input table with the quantile code is in the documentation at DART/guide/qcf_table.rst
build_everything now passes for all models:
Checklist for merging
Checklist for release
Testing Datasets