Improve memory usage for DA gen_be_v3 and add another output reformatting tool#1088
Merged
liujake merged 2 commits intowrf-model:developfrom Feb 11, 2020
Merged
Improve memory usage for DA gen_be_v3 and add another output reformatting tool#1088liujake merged 2 commits intowrf-model:developfrom
liujake merged 2 commits intowrf-model:developfrom
Conversation
…ally modified: var/gen_be_v3/README.gen_be_v3 modified: var/gen_be_v3/gen_be_v3.F90
…ptions=2 modified: var/gen_be_v3/README.gen_be_v3 new file: var/gen_be_v3/util/combine_be_cv7_ccv2.f90
liujake
approved these changes
Feb 11, 2020
davegill
pushed a commit
that referenced
this pull request
Feb 19, 2020
…species (#1083) TYPE: new feature KEYWORDS: reflectivity operator, TL/AD, direct assimilation, ice (dry/wet) phase. SOURCE: Shizhang Wang (NUIST), Jake Liu (NCAR) DESCRIPTION OF CHANGES: 1. Implement a radar reflectivity operator and its TL/AD for direct assimilation of reflectivity. It accounts for contributions of rainwater, dry/wet snow, and dry/wet graupel and enables the analysis of rain/snow/graupel mixing ratios. This operator follows Jung et al., 2008, but the tangent linear and adjoint operators are newly developed. 2. To turn on this capability, set "use_radar_rf=true" and "radar_rf_opt = 2" in namelist (\wrfvar4) along with cloud_cv_options=2 or 3. Additional tunable parameters include: * rf_qthres=2e-5: determine the minimum value of mixing ratio to be adjusted. Mixing ratios (qrain,qsnow,qgaupel) smaller than this value will be adjusted according to background temperature. * radar_rf_rscl and radar_rv_rscl: Tuning the weight between reflectivity term and radial velocity term in the cost function. Default value is 1.0 meaning equal weight. * rfmin (default 0): reflectivity value below rfmin is considered to be no-rain echo with specific treatment. 3. Now there are 3 options for radar reflectivity DA, corresponding namelist settings are given below: * Option 1: direct reflectivity DA with the old rain-only radar operator using total water as analysis variable radar_rf_opt = 1, use_radar_rf = T, use_radar_rhv = F, use_radar_rqv = F, cloud_cv_options = 1, * Option 2: direct reflectivity DA with the new radar operator using separate hydrometeor analysis variable radar_rf_opt = 2, use_radar_rf = T, use_radar_rhv = F, use_radar_rqv = F, cloud_cv_options = 2, ! or 3 * Option 3: retrieved hydrometeors DA using separate hydrometeor analysis variables radar_rf_opt = 1, ! no effect for this option use_radar_rf = F, use_radar_rhv = T, use_radar_rqv = T, ! can be false cloud_cv_options = 2, ! or 3 4. For option 2 and 3 with cloud_cv_options=2, be.dat file needs to be generated using GENBE_2.0 from https://github.com/wrf-model/GENBE_2.0 (master branch), or gen_be_v3 (see PR #1088). LIST OF MODIFIED FILES: M Registry/registry.var M var/build/depend.txt M var/da/da_define_structures/da_define_structures.f90 M var/da/da_main/da_solve.inc M var/da/da_minimisation/da_minimisation.f90 M var/da/da_obs/da_fill_obs_structures_radar.inc M var/da/da_obs/da_obs.f90 M var/da/da_obs_io/da_read_obs_radar.inc M var/da/da_radar/da_get_innov_vector_radar.inc M var/da/da_radar/da_radar.f90 M var/da/da_radar/da_radar_rf.inc A var/da/da_radar/da_radzicevar.inc A var/da/da_radar/da_radzicevar_adj.inc A var/da/da_radar/da_radzicevar_cal_tl_fw4wetice.inc A var/da/da_radar/da_radzicevar_calc_ice_abc.inc A var/da/da_radar/da_radzicevar_dryice_adj.inc A var/da/da_radar/da_radzicevar_dryice_tl.inc A var/da/da_radar/da_radzicevar_parameter_zrx.inc A var/da/da_radar/da_radzicevar_parameter_zxx.inc A var/da/da_radar/da_radzicevar_pkx.inc A var/da/da_radar/da_radzicevar_prepare_interceptpara.inc A var/da/da_radar/da_radzicevar_prepare_mixingratios.inc A var/da/da_radar/da_radzicevar_prepare_zmm_adj.inc A var/da/da_radar/da_radzicevar_pxabk.inc A var/da/da_radar/da_radzicevar_rain_adj.inc A var/da/da_radar/da_radzicevar_rain_tl.inc A var/da/da_radar/da_radzicevar_rhoair_tl.inc A var/da/da_radar/da_radzicevar_sigma_in_abc.inc A var/da/da_radar/da_radzicevar_tl.inc A var/da/da_radar/da_radzicevar_upper_f.inc A var/da/da_radar/da_radzicevar_virtual.inc A var/da/da_radar/da_radzicevar_waterfraction.inc A var/da/da_radar/da_radzicevar_wetice_adj.inc A var/da/da_radar/da_radzicevar_wetice_tl.inc M var/da/da_radar/da_transform_xtoy_radar.inc M var/da/da_radar/da_transform_xtoy_radar_adj.inc M var/da/da_setup_structures/da_setup_be_regional.inc TESTS CONDUCTED: 1. New radar reflectivity DA scheme is tested with a case over CONUS. 2. WRFDA regression tests passed with this change. RELEASE NOTE: New capability for directly assimilating radar reflectivity using a new observation operator and its TL/AD operator considering snow and graupel. Wang, S. and Liu, Z.: A radar reflectivity operator with ice-phase hydrometeors for variational data assimilation (version 1.0) and its evaluation with real radar data, Geosci. Model Dev., 2019, 12, 4031–4051.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TYPE: enhancement (to the not-yet-released code)
KEYWORDS: WRFDA, gen_be_v3, memory, be.dat for cloud_cv_options=2
SOURCE: Jamie Bresch (NCAR)
DESCRIPTION OF CHANGES:
For memory issue:
For applications that are for large number of cases and large domain sizes,
the gen_be_v3 program needs to run on a large-memory node.
To deal with the memory issue, add a namelist option pert1_read_opt
to choose how the program accesses pert1 data (output of do_pert_calc=true) internally.
pert1_read_opt=1: (default, original behavior) read and store all cases in memory at once.
pert1_read_opt=2: read from pert1 file when need it.
This option writes out additional vertical-mode-projected fields when do_eof_transform=.true.
Users can set pert1_read_opt=2 if memory insufficiency occurs.
With pert1_read_opt=2, the program runs slower than pert1_read_opt=1 but the memory usage is reduced
For reformatting individual be_[varname].dat into be.dat that WRFDA reads:
PR New gen_be_v3 for generating ep (ensemble perturbation) and be (background error) #912 already includes var/gen_be_v3/util/combine_be_cv7.f90 that handles basic variables.
This PR adds another var/gen_be_v3/util/combine_be_cv7_ccv2.f90 that reformat GEN_BE_V3 output
into the same format as GENBE_2.0 for cloud_cv_options=2 applications.
LIST OF MODIFIED FILES:
M var/gen_be_v3/README.gen_be_v3
M var/gen_be_v3/gen_be_v3.F90
A var/gen_be_v3/util/combine_be_cv7_ccv2.f90
TESTS CONDUCTED:
The results are identical with pert1_read_opt=1 and pert1_read_opt=2.