Skip to content

Conversation

@MatthewPyle-NOAA
Copy link
Collaborator

@MatthewPyle-NOAA MatthewPyle-NOAA commented Jan 8, 2026

Description of Changes:

Computes the TBQ table only once at the first call, and reuses the values in subsequent calls to RUCLSM rather than recomputing the same item repeatedly.

Tests Conducted:

Was tested in a canned RRFS case on WCOSS, and was a zero-diff change that sped things up by several percent in terms of run time.

Dependencies:

Add any links to parent PRs (e.g. SCM and/or UFS PRs) or submodules (e.g. rte-rrtmgp). For example:

  • NCAR/ccpp-framework#<pr_number>
  • NOAA-EMC/ufsatm#<pr_number>
  • ufs-community/ufs-weather-model/#<pr_number>

Documentation:

Issue (optional):

Contributors (optional):

@dkokron provided this code speedup.

dustinswales and others added 30 commits July 16, 2025 15:15
…nopy2

Adding Integrated Canopy Effects to CCPP/PBL Scheme
…an66:

a) As the current large horizontal momentum diffusivity (Kh) at
large-scale and meso-scale (LSMS) looks too large, Kh is computed at zl
and modified as Kh=Kq=0.4*elmh*sqrt(tke),
elmh=min(1.5*sqrt(zlup*zldn,500), where zlup is parcel's upward travel
length and zldn is parcel's downward travel length with tke momentum.
b) Scale-aware non-local mass flux (xmf, xmfd) is now given as
xmf=(1-sigma)^2 * (sigma*wu) rather than the current xmf=pfnl*c1*wu,
where wu is updraft velocity, c1 is a constant, sigma is updraft
fraction, and pfnl is partition function for nonlocal flux. The constant
c1 is the updraft fraction in LSMS and it should be sigma in small
scales as sigma becomes larger than c1 in small scales. Also, the
scale-awareness parameter, (1-sigma)^2, is more physically based
following Arakawa and Wu's study than the empirical parameter, pfnl.
c) Refinement of scl (height of 50% of max tke): max tke can be
occasionally found in Jet stream and then scl would be too large. In the
update, we look for max tke below 2.5km height and then compute scl and
limit to 2.5km (i.e., scl=min(max(scl,500),2500))
d) ri(gradient Richardson number) is computed as ri=bf/shr2 (1dtke)
rather than ri=bf/(def_1+def_2), where bf is buoyancy, because the
parameters given as a function of ri (such as Prandtl number) is derived
based on ri=bf/shr2.
e) TTE-EDMF (total turbulent energy based EDMF scheme) is combined into
sa3dtke scheme as it shows slightly better GFS forecast skill than
tke-based scheme. The logical parameter to conduct TTE-EDMF is
'tte_edmf'.
Combination of 264,265,291 (MERRA2 3-hr, photochem diag, prog closure SFS)
…k that w3emc is using the expected precision
…k that w3emc is using the expected precision
grantfirl and others added 25 commits November 18, 2025 11:06
address unreasonable large F0 and F1 in entrainment calculation
This PR changes the option relative_path in the CCPP metadata to dependencies_path as discussed in NCAR/ccpp-framework#685.
…_gjf

Update of CDEPS inline sync without sfc_data
…cle_non6

Allow ihr to be non-multiples of 6
items once and reuse, rather than recomputing in each call to RUCLSM.
…_gjf2

fix bug in GFS_surface_composites_pre.F90
@MatthewPyle-NOAA
Copy link
Collaborator Author

@MatthewPyle-NOAA MatthewPyle-NOAA deleted the feature/ruclsmspeedup branch January 20, 2026 20:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.