Skip to content

New gen_be_v3 for generating ep (ensemble perturbation) and be (background error)#912

Merged
liujake merged 3 commits intowrf-model:developfrom
jamiebresch:new_gen_be_v3
May 17, 2019
Merged

New gen_be_v3 for generating ep (ensemble perturbation) and be (background error)#912
liujake merged 3 commits intowrf-model:developfrom
jamiebresch:new_gen_be_v3

Conversation

@jamiebresch
Copy link
Copy Markdown
Contributor

@jamiebresch jamiebresch commented May 16, 2019

TYPE: new feature

KEYWORDS: WRFDA, ep, be, cv_options=7, cloud_cv_options=2, bin_type=5

SOURCE: Jamie Bresch (NCAR)

DESCRIPTION OF CHANGES:

Add a stand-alone program for

  1. generating ep (ensemble perturbation)
  2. generating be (background error statistics) for cv_options=7 and cloud_cv_options=2 (bin_type=5 only).
    See var/gen_be_v3/README.gen_be_v3 for more info.

This PR complements PR #900.

ISSUE: none

LIST OF MODIFIED FILES:
new file: var/gen_be_v3/README.gen_be_v3
new file: var/gen_be_v3/compile_casper
new file: var/gen_be_v3/compile_cheyenne
new file: var/gen_be_v3/gen_be_v3.F90
new file: var/gen_be_v3/util/combine_be_cv7.f90

TESTS CONDUCTED:
Lots of various tests...

RELEASE NOTE: New stand-alone gen_be_v3 for generating ep (ensemble perturbation) and be
(background error) for WRFDA alphacv_method=2, alpha_hydrometeors=true, cv_options=7 and
cloud_cv_options=2 applications. The major advantage of gen_be_v3 is that it is much much more
efficient than the existing gen_be package.

new file:   var/gen_be_v3/README.gen_be_v3
new file:   var/gen_be_v3/compile_casper
new file:   var/gen_be_v3/compile_cheyenne
new file:   var/gen_be_v3/gen_be_v3.F90
new file:   var/gen_be_v3/util/combine_be_cv7.f90
modified:   var/gen_be_v3/README.gen_be_v3
@liujake
Copy link
Copy Markdown
Contributor

liujake commented May 16, 2019

@jamiebresch I am glad you commit this into develop for broader use. Can you add some text in RELEASE NOTE part, then I will merge it in. Putting code into develop and future official release does not mean you (and/or others) have to provide support, but it will be easier to maintain.

@liujake liujake merged commit eaee632 into wrf-model:develop May 17, 2019
@jamiebresch jamiebresch deleted the new_gen_be_v3 branch May 17, 2019 22:30
jjguerrette pushed a commit that referenced this pull request May 20, 2019
TYPE: new feature

KEYWORDS: WRFDA, ep, ep_format

SOURCE: Jamie Bresch (NCAR)

DESCRIPTION OF CHANGES:

ep_format=1:  (default) original format, double precision, each ep file is for one variable and one member, as the output from the current gen_be_ep2.
ep_format=11: same as ep_format=1 except data are in single precision
ep_format=2:  single precision, each ep file is for one variable and all members
ep_format=3:  single precision, each ep file is for one variable and all members but on decomposed patch domain

No impact on existing ep reading results.
New WRFDA code should work without any changes from the user when ep files are generated using the existing very inefficient gen_be_ep2 program.
New utility for generating ep in new formats (ep_format=1, 11, 2, 3 through namelist option) is proposed in PR #912.

LIST OF MODIFIED FILES:

modified:   Registry/registry.var
modified:   var/build/depend.txt
modified:   var/da/da_main/da_solve.inc
modified:   var/da/da_main/da_wrfvar_top.f90
modified:   var/da/da_setup_structures/da_setup_flow_predictors.inc
new file:   var/da/da_setup_structures/da_setup_flow_predictors_ep_format2.inc
new file:   var/da/da_setup_structures/da_setup_flow_predictors_ep_format3.inc
modified:   var/da/da_setup_structures/da_setup_structures.f90

TESTS CONDUCTED:

A case with 80-member 414x324x50 running with nproc=216.
The ep reading time:

| EP Format     | Time (s)  |   
| -------------:|----------:|
|     1         |   52.0    |
|     11        |   45.0    |
|     2         |   24.0    |
|     3         |    0.3    |

ep_format=1   ~ 52 sec
ep_format=11  ~ 45 sec
ep_format=2   ~ 24 sec
ep_format=3   ~ 0.3 sec 
Another major benefit to ep_format=3 is the reduced memory requirement.
New ep_format=11,2,3 produce identical analysis results.

RELEASE NOTE: New DA ep_format option to read in ensemble perturbation (ep) generated by existing gen_be_ep2 and new gen_be_v3 utilities.
liujake pushed a commit that referenced this pull request Feb 11, 2020
…ting tool (#1088)

TYPE: enhancement

KEYWORDS: WRFDA, gen_be_v3, memory, be.dat for cloud_cv_options=2

SOURCE: Jamie Bresch (NCAR)

DESCRIPTION OF CHANGES:
1. 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

2. For reformatting individual be_[varname].dat into be.dat that WRFDA reads:
PR #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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants