Skip to content

Multiple LBC files for ARW, run-time option#990

Merged
davegill merged 12 commits intowrf-model:developfrom
davegill:LBC
Jan 28, 2020
Merged

Multiple LBC files for ARW, run-time option#990
davegill merged 12 commits intowrf-model:developfrom
davegill:LBC

Conversation

@davegill
Copy link
Contributor

@davegill davegill commented Sep 26, 2019

TYPE: enhancement

KEYWORDS: LBC files

SOURCE: Kevin Manning and Jim Bresch (MMM/NCAR), internal

DESCRIPTION OF CHANGES:
For real-time users, the ability to start the WRF model before the
GFS model finishes allows the WRF model to complete a regional
simulation earlier (because of not delaying the model start). However, this
only works if the lateral boundary files from subsequent times are able to be
ingested by the model. As a compile-time option, this split LBC capability has
existed for years. Now that capability from the compile-time option is run-time
selectable from the namelist.

  1. WRF model

Modify the compile-time option in WRF that provides the capability for split
LBC files, and now make that capability a namelist-driven run-time option.
By default, the multi_bdy_files option is FALSE.

  1. real program

The user may now set the namelist.input file as follows in real:

 &time_control
 start_year                          = 2000, 2000, 2000,
 start_month                         = 01,   01,   01,
 start_day                           = 24,   24,   24,
 start_hour                          = 12,   12,   12,
 end_year                            = 2000, 2000, 2000,
 end_month                           = 01,   01,   01,
 end_day                             = 25,   25,   25,
 end_hour                            = 12,   12,   12,
 interval_seconds                    = 21600
 bdy_inname                          = "wrfbdy_d<domain>_<date>"
 /

 &bdy_control
 multi_bdy_files                     = .true.
 /

and receive the following files with a single run of the real program.

wrfbdy_d01_2000-01-24_12:00:00
wrfbdy_d01_2000-01-24_18:00:00
wrfbdy_d01_2000-01-25_00:00:00
wrfbdy_d01_2000-01-25_06:00:00

ISSUE:
Fixes #656 "Multi-file lateral boundary conditions"

LIST OF MODIFIED FILES:
modified: Registry/Registry.EM_COMMON
modified: main/real_em.F
modified: run/README.namelist
modified: share/mediation_integrate.F
modified: share/module_check_a_mundo.F
modified: test/em_real/examples.namelist

TESTS CONDUCTED:

  1. Checked 24-h Jan 2000 simulation with SPLIT LBC vs traditional LBC: bit-for-bit results.
  2. The lateral boundary files and the initial condition files are bit-wise identical whether the
    the original two-time-levels of multiple runs of the real program were used or if the new
    single-run of the real program is used.
  3. Tried inconsistent namelist settings. They are detected:
 &time_control
 blah 
 /
 bdy_inname = "wrfbdy_d<domain>_<date>"

 &bdy_control
 multi_bdy_files = .true.
 /

Yields:

  --- ERROR: Need bdy_inname = "wrfbdy_d<domain>_<date>"
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:    2035
NOTE:       1 namelist settings are wrong. Please check and reset these options
-------------------------------------------

And the other way:

 &time_control
 bdy_inname = "wrfbdy_d<domain>_<date>"
 /

 &bdy_control
 blah
 /
 multi_bdy_files = .true.

Yields:

  --- ERROR: Remove bdy_inname = "wrfbdy_d<domain>_<date>"
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:    2035
NOTE:       1 namelist settings are wrong. Please check and reset these options
-------------------------------------------
  1. Code benignly builds with NMM.

RELEASE NOTE: A run-time capability for multiple LBC files is now available. This supersedes and replaces the compile-time option. This is run-time option is accessed through &bdy_control namelist logical variable multi_bdy_files. This option requires that the lateral boundary file names in &time_control include a date: bdy_inname = "wrfbdy_d<domain>_<date>". All other functionality of the capability is identical to the compile-time option.

TYPE: new feature

KEYWORDS: LBC files

SOURCE: Kevin Manning and Jim Bresch (MMM/NCAR), internal

DESCRIPTION OF CHANGES:
Modify the compile-time option that provides the capability for split
LBC files, and make that capability a namelist-driven run-time option.

For real-time users, the ability to start the WRF model prior to the
GFS model (for example) completely finishing allows the WRF model to
complete a regional simualtion earlier. However, this only works if
the lateral boundary files from subsequent times are able to be ingested
by the model.

As a compile-time option, this split LBC capability has existed for years.
Now that capability from the compile-time option is run-time selectable
from the namelist.

ISSUE:
Fixes wrf-model#656 "Multi-file lateral boundary conditions"

LIST OF MODIFIED FILES:
modified:   Registry/Registry.EM_COMMON
modified:   run/README.namelist
modified:   share/mediation_integrate.F
modified:   share/module_check_a_mundo.F
modified:   test/em_real/examples.namelist

TESTS CONDUCTED:
1. Did 24-h Jan 2000 test with SPLIT LBC and with traditional LBC.
Bit for bit results from the model output.

RELEASE NOTE: Run-time capability for multi_bdy_file is now available. This replaces the compile-time option.
@davegill davegill requested review from a team as code owners September 26, 2019 01:21
@davegill
Copy link
Contributor Author

@jimbresch @kwman44
Folks,
Would you please take a look at this PR, perhaps test it out. The substantive changes are only in the Registry and mediation_integrate. You could jam those mods into your systems.

Tired of all of the drudgery of splitting LBCs in the
real prgram via two-time-level processing?

Featuring the RONCO split-o-matic.

modified:   main/real_em.F
modified:   share/module_check_a_mundo.F
@davegill davegill requested a review from a team as a code owner September 27, 2019 00:10
@davegill
Copy link
Contributor Author

@weiwangncar @jimbresch @kwman44 @dudhia
Folks,
Per some prodding from Jimy yesterday, I have updated this PR to include mods to the real program. Now with a single real program run, you get all of the split files.

@davegill
Copy link
Contributor Author

@weiwangncar @jimbresch @kwman44 @dudhia
Folks,
Also: vote on your preferred name for this option:

multi_bdy_files
multi_bc_files

Or any other suggestion would be welcome.

@dudhia
Copy link
Collaborator

dudhia commented Sep 27, 2019 via email

The lateral BC option to allow multiple files (one time period per
file) needs to be in the NMM Registry also. This option is likely
to not be used by NMM, but the WRF code does not compile without
this variable being declared as part of the namelist config_flags.

Optionally, an EM_ONLY ifdef could have been put around the code to
protect it during an NMM build.

modified:   Registry/Registry.NMM
@davegill
Copy link
Contributor Author

Also, regtest results:

Tue Oct 22 13:36:31 MDT 2019
SUCCESS_RUN_WRF_d01_em_real_32_em_real_03FD vs SUCCESS_RUN_WRF_d01_em_real_33_em_real_03FD status = 0
SUCCESS_RUN_WRF_d01_em_real_32_em_real_03FD vs SUCCESS_RUN_WRF_d01_em_real_34_em_real_03FD status = 0
SUCCESS_RUN_WRF_d01_em_real_32_em_real_10 vs SUCCESS_RUN_WRF_d01_em_real_33_em_real_10 status = 0
SUCCESS_RUN_WRF_d01_em_real_32_em_real_10 vs SUCCESS_RUN_WRF_d01_em_real_34_em_real_10 status = 0
SUCCESS_RUN_WRF_d01_em_real_32_em_real_11 vs SUCCESS_RUN_WRF_d01_em_real_33_em_real_11 status = 0
SUCCESS_RUN_WRF_d01_em_real_32_em_real_11 vs SUCCESS_RUN_WRF_d01_em_real_34_em_real_11 status = 0
SUCCESS_RUN_WRF_d01_em_real_32_em_real_20NE vs SUCCESS_RUN_WRF_d01_em_real_33_em_real_20NE status = 0
SUCCESS_RUN_WRF_d01_em_real_32_em_real_20NE vs SUCCESS_RUN_WRF_d01_em_real_34_em_real_20NE status = 0
SUCCESS_RUN_WRF_d01_nmm_real_32_nmm_nest_01 vs SUCCESS_RUN_WRF_d01_nmm_real_34_nmm_nest_01 status = 0
SUCCESS_RUN_WRF_d01_nmm_real_32_nmm_nest_03 vs SUCCESS_RUN_WRF_d01_nmm_real_34_nmm_nest_03 status = 0
SUCCESS_RUN_WRF_d01_nmm_real_32_nmm_nest_04a vs SUCCESS_RUN_WRF_d01_nmm_real_34_nmm_nest_04a status = 0
SUCCESS_RUN_WRF_d01_nmm_real_32_nmm_nest_06 vs SUCCESS_RUN_WRF_d01_nmm_real_34_nmm_nest_06 status = 0
SUCCESS_RUN_WRF_d01_em_real_32_em_chem_1 vs SUCCESS_RUN_WRF_d01_em_real_34_em_chem_1 status = 0
SUCCESS_RUN_WRF_d01_em_real_32_em_chem_2 vs SUCCESS_RUN_WRF_d01_em_real_34_em_chem_2 status = 0
SUCCESS_RUN_WRF_d01_em_real_32_em_chem_5 vs SUCCESS_RUN_WRF_d01_em_real_34_em_chem_5 status = 0
Tue Oct 22 13:36:31 MDT 2019

@davegill davegill merged commit 3ec085a into wrf-model:develop Jan 28, 2020
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.

4 participants