Skip to content
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

Add a new E-epsilon PBL scheme: #1303

Merged
merged 4 commits into from
Feb 26, 2021

Conversation

ChunxiZhang-NOAA
Copy link
Contributor

@ChunxiZhang-NOAA ChunxiZhang-NOAA commented Oct 21, 2020

TYPE: new feature

KEYWORDS: E-epsilon, EEPS, TKE, PBL

SOURCE: Chunxi Zhang: 1: (past) International Pacific Research Center, University of Hawai‘i at Mānoa
2: (past) Center for Analysis and Prediction of Storms, University of Oklahoma
3: (current) I. M. System Group, Inc. (IMSG); NOAA/EMC
Yuqing Wang International Pacific Research Center, and Department of Atmospheric Sciences, University of Hawai‘i at Mānoa

DESCRIPTION OF CHANGES:

  1. the file module_bl_eepsilon.F includes the module for this scheme
  2. standard procedures for a new scheme in WRF: changed init, addtendc and driver
  3. three more variables are declared in registry.EM_COMMON. e.g.,
    pep_pbl (TKE dissipation rate, state)
    pek_adv (TKE advection, scalar)
    pep_adv (PEP advection, scalar)
    the files module_first_rd_step_part1.F and start_em.F are revised accordingly
    this scheme is denfied as eepsscheme bl_pbl_physics == 16
  4. add module_bl_eepsilon in Makefile

LIST OF MODIFIED FILES:
phys/module_bl_eepsilon.F
phys/module_pbl_driver.F
phys/module_physics_init.F
phys/module_physics_addtendc.F
phys/Makefile
Registry/Registry.EM_COMM
dyn_em/module_first_rk_step_part1.F
dyn_em/start_em.F
run/README.namelist

TESTS CONDUCTED:

  1. Automated jenkins testing is all PASS.
  2. The performances of the newly implemented EEPS scheme and the existing Yonsei University (YSU) scheme, the University of Washington (UW) scheme, and Mellor–Yamada–Nakanishi–Niino (MYNN) scheme are evaluated over the stratocumulus dominated southeast Pacific (SEP) and over the Southern Great Plains (SGP) where strong PBL diurnal variation is common. The simulations by these PBL parameterizations are compared with various observations from two field campaigns: the Variability of American Monsoon Systems Project (VAMOS) Ocean–Cloud–Atmosphere–Land Study (VOCALS) in 2008 over the SEP and the Land–Atmosphere Feedback Experiment (LAFE) in 2017 over the SGP. Results show that the EEPS and YSU schemes perform comparably over both regions, while the MYNN scheme performs differently in many aspects, especially over the SEP. The EEPS (MYNN) scheme slightly (significantly) underestimates liquid water path over the SEP. Compared with observations, the UW scheme produces the best PBL height over the SEP. The MYNN produces too high PBL height over the western part of the SEP while both the YSU and EEPS schemes produce too low PBL and cloud-top heights. The differences among the PBL schemes in simulating the PBL features over the SGP are relatively small.
  3. See published paper:
    Zhang, C., Y. Wang, and M. Xue, 2020: Evaluation of an E–ε and Three Other Boundary Layer Parameterization Schemes in the WRF Model over the Southeast Pacific and the Southern Great Plains. Mon. Wea. Rev., 148, 1121–1145, https://doi.org/10.1175/MWR-D-19-0084.1.

RELEASE NOTE: The turbulence kinetic energy (TKE) and TKE dissipation rate (ε) based 1.5-order closure PBL parameterization (E–ε, EEPS) in the Weather Research and Forecasting (WRF) Model (Zhang et al. 2020, MWR). Works with surface layer options, 1, 91, 2 and 5.

1) the file module_bl_eepsilon.F includes the module for this scheme
2) standard procedures for a new scheme in WRF: changed init, addtendc and driver
3) three more variables are declared in registry.EM_COMMON. e.g.,
   pep_pbl (TKE dissipation rate, state)
   pek_adv (TKE advection,        scalar)
   pep_adv (PEP advection,        scalar)
   the files module_first_rd_step_part1.F and start_em.F are revised accordingly
   this scheme is denfied as eepsscheme bl_pbl_physics == 16
4) add module_bl_eepsilon in Makefile
@ChunxiZhang-NOAA ChunxiZhang-NOAA requested review from a team as code owners October 21, 2020 19:04
@davegill
Copy link
Contributor

@ChunxiZhang-NOAA
It looks like all of the NMM tests failed

@ChunxiZhang-NOAA
Copy link
Contributor Author

I only made this scheme work in ARW

@ChunxiZhang-NOAA
It looks like all of the NMM tests failed

I only made this scheme work in ARW.

@dudhia
Copy link
Collaborator

dudhia commented Oct 21, 2020 via email

@weiwangncar
Copy link
Collaborator

@ChunxiZhang-NOAA If you never compiled NMM, following the instruction near the end of this page: https://github.com/davegill/wrf-coop/blob/master/README_user.md. There are ways to make your code compile with NMM: you can declare your new array optional in module_pbl_driver, and ifdef your call to the new PBL with something like #if (EM_CORE==1) ... endif (you can find examples inside the pbl driver). This may be the easiest way.

@ChunxiZhang-NOAA
Copy link
Contributor Author

@ChunxiZhang-NOAA If you never compiled NMM, following the instruction near the end of this page: https://github.com/davegill/wrf-coop/blob/master/README_user.md. There are ways to make your code compile with NMM: you can declare your new array optional in module_pbl_driver, and ifdef your call to the new PBL with something like #if (EM_CORE==1) ... endif (you can find examples inside the pbl driver). This may be the easiest way.

Thank you Wei! I will make the changes accordingly. After the changes I made to module_pbl_driver.F, shall I resend a pull request?

@davegill
Copy link
Contributor

NMM compile troubles:

module_physics_init.f90:3069:22:

       CASE (EEPSSCHEME)
                      1
Error: Symbol 'eepsscheme' at (1) has no IMPLICIT type
module_PHYSICS_CALLS.f90:1471:67:

 &_ysu,fasdas=fasdas,sf_urban_physics=CONFIG_FLAGS%SF_URBAN_PHYSICS)
                                                                   1
Error: Missing actual argument for argument 'pep' at (1)

@weiwangncar
Copy link
Collaborator

@ChunxiZhang-NOAA No need for a new PR, just push changes to your fork on Github. If you don't know how to do it, ask us. The procedure is similar to the first time you push something to the Github.

@davegill
Copy link
Contributor

@ChunxiZhang-NOAA @dudhia

  1. For the problem in physics init, an ifdef for NMM would work OK.
  2. For the NMM physics_calls routine, here are the typical options that are available:
    • Add a variable in the NMM registry
    • add a dummy variable in the phssics_calls routine
    • Make the argument optional that is missing

@dudhia
Copy link
Collaborator

dudhia commented Oct 21, 2020 via email

With those changes, ARW can compile and run successfully
@ChunxiZhang-NOAA
Copy link
Contributor Author

Maybe it just needs to be made optional if there is a new variable in a driver. Then NMM won't need any changes as long as code with this variable is not seen by NMM with ifdefs around it.

Thank you Jimy! I made the changes following your suggestions and it works.

@ChunxiZhang-NOAA
Copy link
Contributor Author

@ChunxiZhang-NOAA No need for a new PR, just push changes to your fork on Github. If you don't know how to do it, ask us. The procedure is similar to the first time you push something to the Github.

I have pushed the revised code to my fork

@ChunxiZhang-NOAA
Copy link
Contributor Author

@ChunxiZhang-NOAA @dudhia

  1. For the problem in physics init, an ifdef for NMM would work OK.

  2. For the NMM physics_calls routine, here are the typical options that are available:

    • Add a variable in the NMM registry
    • add a dummy variable in the phssics_calls routine
    • Make the argument optional that is missing

Thank you Dave. I followed Jimy and Wei's suggestions to revise the code. I can compile NMM and ARW, and run ARW without problem.

@davegill
Copy link
Contributor

In the commit message, would you fill in the sections for "LIST OF MODIFIED FILES" and the "TESTS CONDUCTED". If you would like to include a comparison plot of the 4 PBL schemes that were tested, that would be fine. The "TESTS CONDUCTED" is just a couple of sentences. You may keep the reference to the paper, that is preferred.

@weiwangncar
Copy link
Collaborator

@ChunxiZhang-NOAA Please also change the title for this PR to something like "Add a new E-epsilon PBL scheme". Add your affiliations, and something for the RELEASE NOTE, which would be a message that would appear in our Update log for a new release. Thanks!

@ChunxiZhang-NOAA ChunxiZhang-NOAA changed the title The changes for the E-epsilon PBL scheme: Add a new E-epsilon PBL scheme: Oct 22, 2020
@dudhia dudhia removed the Await WPRP label Jan 29, 2021
Copy link
Collaborator

@dudhia dudhia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that the advected variables are averaged to and from half levels to advect them. This is a smoothing operator.

@davegill
Copy link
Contributor

@weiwangncar
Do not merge until:

  1. the ISF==91 fix is included
  2. few lines of mods in run/README.namelist

@davegill
Copy link
Contributor

@weiwangncar
Wei,
Those were the only things that I asked for. Let me know when the jenkins test is finished.

@weiwangncar
Copy link
Collaborator

@davegill The Jenkins tests are ok.
Test Type | Expected | Received | Failed
= = = = = = = = = = = = = = = = = = = = = = = = = = = =
Number of Tests : 19 18
Number of Builds : 48 46
Number of Simulations : 163 161 0
Number of Comparisons : 103 102 0

Failed Simulations are: 
None
Which comparisons are not bit-for-bit: 
None

@ChunxiZhang-NOAA Option has been added to README.namelist file.

@weiwangncar weiwangncar merged commit 1430495 into wrf-model:develop Feb 26, 2021
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
TYPE: new feature

KEYWORDS: E-epsilon, EEPS, TKE, PBL 

SOURCE: Chunxi Zhang: 1: (past) International Pacific Research Center, University of Hawai‘i at Mānoa
                                          2: (past) Center for Analysis and Prediction of Storms, University of Oklahoma
                                          3: (current) I. M. System Group, Inc. (IMSG); NOAA/EMC
                 Yuqing Wang   International Pacific Research Center, and Department of Atmospheric Sciences, University of Hawai‘i at Mānoa

DESCRIPTION OF CHANGES:
A turbulence kinetic energy (TKE) and TKE dissipation rate (ε) based 1.5-order closure PBL parameterization is added:
1) the file module_bl_eepsilon.F includes the module for this scheme
2) standard procedures for a new scheme in WRF: changed init, addtendc and driver
3) three more variables are declared in registry.EM_COMMON. e.g.,
   pep_pbl (TKE dissipation rate, state)
   pek_adv (TKE advection,        scalar)
   pep_adv (PEP advection,        scalar)
   the files module_first_rd_step_part1.F and start_em.F are revised accordingly
   this scheme is denfied as eepsscheme bl_pbl_physics == 16
4) add module_bl_eepsilon in Makefile

LIST OF MODIFIED FILES:
phys/module_bl_eepsilon.F
phys/module_pbl_driver.F
phys/module_physics_init.F
phys/module_physics_addtendc.F
phys/Makefile
Registry/Registry.EM_COMM
dyn_em/module_first_rk_step_part1.F
dyn_em/start_em.F
run/README.namelist

TESTS CONDUCTED: 
1. Automated jenkins testing is all PASS.
2. The performances of the newly implemented EEPS scheme and the existing Yonsei University (YSU) scheme, the University of Washington (UW) scheme, and Mellor–Yamada–Nakanishi–Niino (MYNN) scheme are evaluated over the stratocumulus dominated southeast Pacific (SEP) and over the Southern Great Plains (SGP) where strong PBL diurnal variation is common. The simulations by these PBL parameterizations are compared with various observations from two field campaigns: the Variability of American Monsoon Systems Project (VAMOS) Ocean–Cloud–Atmosphere–Land Study (VOCALS) in 2008 over the SEP and the Land–Atmosphere Feedback Experiment (LAFE) in 2017 over the SGP. Results show that the EEPS and YSU schemes perform comparably over both regions, while the MYNN scheme performs differently in many aspects, especially over the SEP. The EEPS (MYNN) scheme slightly (significantly) underestimates liquid water path over the SEP. Compared with observations, the UW scheme produces the best PBL height over the SEP. The MYNN produces too high PBL height over the western part of the SEP while both the YSU and EEPS schemes produce too low PBL and cloud-top heights. The differences among the PBL schemes in simulating the PBL features over the SGP are relatively small.
3. See published paper:
Zhang, C., Y. Wang, and M. Xue, 2020: Evaluation of an E–ε and Three Other Boundary Layer Parameterization Schemes in the WRF Model over the Southeast Pacific and the Southern Great Plains. Mon. Wea. Rev., 148, 1121–1145, https://doi.org/10.1175/MWR-D-19-0084.1.

RELEASE NOTE: A turbulence kinetic energy (TKE) and TKE dissipation rate (ε) based 1.5-order closure PBL parameterization (E–ε, EEPS) is added (Zhang et al. 2020, MWR). Works with surface layer options, 1, 91, 2 and 5. (Thanks to Chunxi Zhang and Yuqing Wang of University of Hawaii.)
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.

5 participants