TEMPO Microphysics for NCAR MPAS#1393
TEMPO Microphysics for NCAR MPAS#1393AndersJensen-NOAA wants to merge 21 commits intoMPAS-Dev:developfrom
Conversation
- adds TEMPO registry - adds include flags and module use statements to connect tempo to microphysics driver
- adds substepping to tempo microphysics when dt > 90s - adds tempo and aerosolaware options to interface
- adds initialization routines for tempo with aerosolaware option
TYPE: new feature KEYWORDS: Microphysics, Operational models SOURCE: Anders Jensen NOAA/GSL DESCRIPTION OF CHANGES: Problem: Microphysics development of a Thompson-Eidhammer based scheme for operational applications has advanced to a submodule, TEMPO. This new development should be made available to WRF users. Solution: Connect TEMPO to WRF. A cleaned and refactored version of TEMPO is being tested in the UFS community's MPAS. Additionally, a PR, MPAS-Dev/MPAS-Model#1393, to add TEMPO to NCAR's MPAS is in progress. This current PR will allow the community to use this same microphysics across the UFS, MPAS, and WRF. LIST OF MODIFIED FILES: M .gitmodules M main/depends.common M Makefile M clean M phys/Makefile M phys/module_physics_init.F M phys/module_microphysics_driver.F M Registry.EM_COMMON M dyn_em/module_initialize_real.F TESTS CONDUCTED: 1. compiled and ran em_quarter_ss 2. restart test with em_quarter_ss 3. bit-for-bit with different number of processes using em_quarter_ss. 4. Passed regression tests. RELEASE NOTE: TEMPO is the Thompson-Eidhammer Microphysics Parameterization for Operations. TEMPO lives here: https://github.com/NCAR/TEMPO and technical documentation lives here: https://ncar.github.io/TEMPO/. TEMPO specific release notes are here: https://github.com/NCAR/TEMPO/releases/tag/tempo_v3.0.0 TEMPO version 3.0.0 is the current release version. TEMPO is being tested in the ufs-community fork of MPAS for next-generation convection-allowing forecast systems (https://github.com/ufs-community/MPAS-Model). Thus, TEMPO is being continually evaluated for improvement. Additionally, there is a PR in progress to connect TEMPO (v3.0.0) to NCAR's MPAS (MPAS-Dev/MPAS-Model#1393). The version of TEMPO currently in the CCPP (https://github.com/ufs-community/ccpp-physics) will be updated to v3.0.0 soonish. TEMPO is connected to WRF, MPAS, and CCPP as a submodule, and the same v3.0.0 code will be connected to WRF (this PR), MPAS, and CCPP. In WRF, supported namelist options include `tempo_aerosolaware==1` to use the aerosol-aware version, and `tempo_hailaware==1` to use the hail-aware version. Both options are on by default. Key improvements include: - TEMPO is in a submodule that allows for flexibility when connecting TEMPO to dynamical cores - Code modularity was been improved and technical documentation has been added - Bux fix for cloud droplet number concentration during evaporation - Surface emissions of water-friendly aerosols have been reduced based on a sensitivity simulation that aimed to better constrain water-friendly aerosol concentrations over 24-36 hour forecast periods and reduce the accumulation of aerosols in the atmosphere - A few modifications were made to graupel number concentration tendencies (when using the hail-aware option) for processes that cause rain to freeze to increase reflectivity in deep convective storms - Added simple sedimentation tests - Added unit tests - Added a program to build lookup tables with MPI capability - Lookup tables have been unified
| <package name="met_stage_out" description="Active only if meteorological fields are being interpolated"/> | ||
| <package name="first_guess_field" description="3-d atmospheric or land-surface fields on first-guess levels"/> | ||
| <package name="mp_thompson_aers_in" description="initialization of GOCART-based Thompson water- and ice-friendly aerosols"/> | ||
| <package name="tempo_aerosolaware_in" description="initialization of GOCART-based TEMPO water- and ice-friendly aerosols"/> |
There was a problem hiding this comment.
It looks like tempo_aerosolaware_in is active if and only if mp_thompson_aers_in is active. If this is the case, perhaps we don't need to add a new package for TEMPO? Or, if you'd prefer, we could generalize the name of the existing mp_thompson_aers_in package?
There was a problem hiding this comment.
It looks like
tempo_aerosolaware_inis active if and only ifmp_thompson_aers_inis active. If this is the case, perhaps we don't need to add a new package for TEMPO? Or, if you'd prefer, we could generalize the name of the existingmp_thompson_aers_inpackage?
I think that generalizing the name should be the way to go for now.
There was a problem hiding this comment.
Ok, this sounds like something I'd be able to take care of with a separate PR. Do you have any suggestions for the name of the package? Maybe microphysics_aerosols with a description of Initialization of GOCART-based water- and ice-friendly aerosols?
There was a problem hiding this comment.
(Maybe extending the description to Initialization of GOCART-based water- and ice-friendly aerosols for Thompson and TEMPO microphysics?)
|
When building with Make using the |
|
When building with Make, after the physics have all been compiled, we symbolically link physics look-up tables into the top-level MPAS-Model directory (see https://github.com/MPAS-Dev/MPAS-Model/blob/v8.4.0/src/core_atmosphere/Makefile#L49-L54). Should we do this for the |
|
@AndersJensen-NOAA From where should users obtain the file Here's the runtime error I'm seeing without this file in my run directory: |
|
|
||
| do k = kts,kte | ||
| do i = its,ite | ||
| rnimpten(k,i) = ni(k,i) |
There was a problem hiding this comment.
When running with the convection_permitting suite (no TEMPO microphysics enabled), debug builds point to an out-of-bounds array access on this line:
At line 870 of file mpas_atmphys_interface.F
Fortran runtime error: Index '1' of dimension 2 of array 'ni' below lower bound of 22364884
This doesn't seem to occur with the v8.3.1 tag, and so the error seems to be specific to this PR branch.
There was a problem hiding this comment.
Perhaps the new block of code beginning at line 705 is causing the code beginning at line 784 to no longer be executed?
There was a problem hiding this comment.
@mgduda Ya, I likely messed something up with the case statements. I'll take a look.
There was a problem hiding this comment.
I'm not a huge fan of the nested case-select statements.
I rearranged the logic to call case("mp_tempo") after the nested part of the code so that my case would not interfere with the nested logic.
@mgduda you need three tables that are large-ish so they aren't stored on git at the moment. If you need to build the tables, you can compile/run the standalone build_tables program. If you are using gfortran to build the tables you will want to modify the default optimization or use MPI, otherwise the build will take a long time. I'm open to suggestions for better ways to deal the lookup tables. Maybe they can be automatically downoaded/linked? |
Yes. |
Would it be feasible to incorporate your stand-alone program for computing these tables into MPAS-A's existing |
The lookup tables are now the same for WRF/MPAS/CCPP, and I image that 99% of users won't want to change or rebuild the tables. Even though the build code is mostly static at this point, I'd like to keep the executable in the TEMPO repository so I don't have manage the program outside of TEMPO. I think the best path forward is to to either pull the lookup tables from NOAA servers or store them as git artifacts or in git LFS. |
This commit should fix the issue: |
This PR connects TEMPO microphysics to MPAS.