NCAR / ccpp-physics

Collection of physics parameterizations compliant with the Common Community Physics Package (CCPP) framework
Other
59 stars 146 forks source link

Tiedtke update from MPAS #1024

Open matusmartini opened 1 year ago

matusmartini commented 1 year ago

Description

Current version of Tiedtke convection is an older version and does not include improvements that are in MPAS release 8.0.0. The updates include: introducing scale dependency factors, updated entrainment coefficients, vertical indexing fix, and horizontal wind tendency term (pgf_u, pg_v) calculation also for shallow convection not just deep and mid- convection, cleaner fields declarations.

Solution

At NRL, we have pulled all the updates from MPASv8.0.0 and tested NEPTUNE at various horizontal and vertical resolutions from 9 to 18 km globally and tested for a suite of 21 cases in July and January. The biggest improvement in skill scores are at 850 hPa for temperature across all tested configurations.

@climbfuji @grantfirl @mzhangw Would maintaining the Tiedtke scheme and keeping it up to date with MPAS be of interest? Let me know if yes, and I will make a pull request.

grantfirl commented 1 year ago

@matusmartini The codeowners for the Tiedtke convection scheme are @JongilHan66 @Qingfu-Liu. I'd like them to chime in to the conversation. As far as I'm concerned, I think that the updates would be good to have.

yangfanglin commented 1 year ago

@matusmartini do you know who made the updates of Tiedtke convection scheme found in MPASv8.0.0 ? Is the scheme now close or identical to the version used in current IFS operation ? Do you have the plan to use this scheme in future NRL/FNMOC operation ? Have you reached an agreement with ECMWF for using it in operation ? I apologize for the loaded questions. We (HRD and EMC) are also considering testing this scheme in HAFS but have been wondering the copyright issue. We recently contacted ECMWF and are still waiting for a response.

matusmartini commented 1 year ago

@yangfanglin I think Laura Fowler would be a contact person from MPAS. The new updates are mentioned in: https://journals.ametsoc.org/view/journals/wefo/37/8/WAF-D-21-0179.1.xml which also gives references to the origins of the new modified Tiedtke scheme. This Tiedtke scheme was originally authored by Chunxi Zhang and is mainly based on the IFS Cy40r1, but it is different. We have extensively tested with NEPTUNE (3-D spectral element global model) and the Tiedtke convection scheme consistently outperforms both SAS and Grell-Freitas convection scheme in CCPP.

yangfanglin commented 1 year ago

@matusmartini Thank you for your reply and the link. I knew Chunxi added this scheme first in WRF then in CCPP. Chunxi had departed from EMC early this year. That is the reason why I am looking for more information. We can of course benefit from your updating the version in the CCPP for all UFS applications. We (EMC) have tested the CCPP version in the GFS and also found improvements in storm track but degradation in other metrics, The latter may require more tuning, along with other parameterizations.

dustinswales commented 1 year ago

@matusmartini @yangfanglin There was recently an effort at the DTC to include some of the MPAS physics into the CCPP physics using the CCPP SCM. One issue that came up quickly was "What to do with advancements to orphaned physics schemes in the CCPP physics?" MPAS has their own implementation of the YSU PBL scheme, but the CCPP already had a version, also implemented by Chunxi. IMO, Having two versions of the same algorithm is not ideal, especially if one is being supported and developed (via MPAS dev.), and one is just sitting there not being used.

For this work we imported the MPAS shared physics into the CCPP physics repository as a submodule and built ccpp compliant drivers to call the MPAS physics schemes from within UFS physics suites. (This avoided dealing with the orphaned physics scheme in the CCPP, and kept the MPAS physics distinct from the CCPP.)

@ldflower58 Any comments?

yangfanglin commented 1 year ago

@dustinswales I agree "Having two versions of the same algorithm is not ideal". I'd suggest we merger the "MPAS" version of Tiedtke convection into CCPP (to updated the orphaned version) since there are interests in using it for UFS applications.

matusmartini commented 1 year ago

@dustinswales Thank you. Could you point to the MPAS shared physics submodule with the CCPP compliant drivers? Is this something that is being maintained?

Tagging @ldfowler58 if she'd like to comment.

lisa-bengtsson commented 1 year ago

@yangfanglin as you see the code was not coded from papers as originally communicated, and we should be very careful of pursuing this in the UFS.

dudhia commented 1 year ago

@weiwangncar added the scale awareness to what we call "new Tiedtke" that Chunxi provided. We believe the MPAS code is the same as the MMM shared code. I think Chunxi started with what we call "old Tiedtke" and hand-coded later updates based on ECMWF publications.

dudhia commented 1 year ago

At NCAR, we would also suggest holding off any commits of this PR until we have justified differences from the MPAS version. Note that NCAR wants to support the MPAS version to the CCPP as the official new scale-aware Tiedtke, but had not planned to do that this soon. Our key code expert is @weiwangncar who is now out until September. Wei noted that you may have retained some aspects of the previous Tiedtke that we may want to keep too. She also noted that there are also some dycore dependent things that need to be moved out of the basic routine and into a pre-scheme interstitial.

adamrher commented 1 year ago

Apologies for parachuting in, but having recently taking an interest in this scale-aware Tiedke scheme, I really think there should be a namelist to turn off the scale aware factors. It appears hard coded in the PR https://github.com/NCAR/ccpp-physics/pull/1025.

yangfanglin commented 1 year ago

Pasted below is Chunxi Zhang's response to the question of Tiedtke development/implementation timeline in WRF and CCPP:

There are two versions of the Tiedtke scheme in WRF model.

The first version is from Yuqing Wang’s iRAM model (I don’t know where the code was originally from). I implemented it into WRFv3.2 sometime in 2010. This version is similar to Tiedtke’s (1989) original version, and the modifications by Yuqing is described in our 2011 paper: https://journals.ametsoc.org/view/journals/mwre/139/11/mwr-d-10-05091.1.xml

This version was released in WRF3.3.

Since then, I started to improve this version based on ECMWF’s physics documentation. The triggering is the first part of scheme I modified. It took me about a year to write the code for the new triggering, e.g., subroutine cutype() in the scheme. A few years later I found that the popular regional climate model RegCM4.4 adopted a newer version of the Tiedtke scheme. Since RegCM4.4 is open source, I started to work on my version of the Tiedtke scheme based on this version in RegCM4.4. My modifications are:

The triggering. I kept the triggering I wrote based on ECMWF’s documentation and my modifications. In my version, it is subroutine cutypen(). Cumulus Momentum Transport (CMT). I found CMT was too strong in WRF, so I implemented a different method and reduced CMT in WRF. Non-equilibrium for closure. I implemented it based on ECMWF’s documentation. Other changes in ECMWF’s documentation. Also, some changes tuned for WRF. I gave a brief summary of the differences between this newer version and the older version of the Tiedtke scheme in the APPENDIX of this paper https://journals.ametsoc.org/view/journals/clim/30/15/jcli-d-16-0597.1.xml

This version was released in WRF3.7.

I implemented this newer version of the Tiedtke scheme into CCPP. This version in CCPP is almost identical to the version in WRF3.7.

In terms of Wei Wang’s modifications, she mainly added the scale-awareness into this scheme. It is easy to implement and probably still has room to improve. It has not been implemented in CCPP yet.

I never saw the code in IFS. I would say the version in CCPP and WRF is ECMWF-like Tiedtke scheme.


yangfanglin commented 1 year ago

A status update: we are still trying to find out where Prof. Yuqing Wang obtained the Tiedtke code used in the iRAM model