Skip to content

Conversation

@overfelt
Copy link
Owner

@overfelt overfelt commented Aug 4, 2025

Checklist

  • Documentation:
    • Design document has been generated and added to the docs
    • User's Guide has been updated
    • Developer's Guide has been updated
    • Documentation has been built locally and changes look as expected
  • Testing
    • A comment in the PR documents testing used to verify the changes including any tests that are added/modified/impacted.
    • CTest unit tests for new features have been added per the approved design.
    • Polaris tests for new features have been added per the approved design (and included in a test suite)
    • Unit tests have passed. Please provide a relevant CDash build entry for verification.
    • Polaris test suite has passed
    • Performance related PRs: Please include a relevant PACE experiment link documenting performance before and after.
  • Stealth Features
    • If any stealth features are included in the PR, please confirm that they have been documented.

@overfelt overfelt force-pushed the overfelt/HigherOrderTendency branch 3 times, most recently from 8bea774 to ccc1c28 Compare August 4, 2025 17:47
@overfelt overfelt force-pushed the overfelt/HigherOrderTendency branch from 84a4928 to 32cfa0f Compare September 1, 2025 23:21
jgfouca and others added 26 commits October 2, 2025 09:23
…SM-Project#7675)

Update default PE layouts for Greenland ice sheet configurations on PM-cpu and Chrysalis

This PR updates the default PE-layouts on PM-cpu and Chrysalis for v3
standard resolution configurations that include an active Greenland ice
sheet component at 4-to-40km and 1-to-10km resolutions.

[BFB]
…oject#7481)

The PR refactors the zonal average diagnostic (recently introduced in E3SM-Project#7261)
so each column is assigned to a zonal bin during the diagnostic initialization,
as opposed to each time the diagnostic is computed.
    
The assignment is done via mapping from zonal bin index to a list of column
indices, which belong to that zonal bin. The mapping is implemented as an
Int ** view where the (i,j)-th entry is
  - j=0: the number of columns in the i-th zonal bin
  - j>0: a column index that belongs to the i-th zonal bin
    
[BFB]
Fourth step of the reorg: the eamxx_grid library.
This library does NOT include remappers.

[BFB]
- Correct Eq. (55) in OmegaV1GoverningEqns.md
- Update definition and unit of pseudo-thickness in Variable Definitions to match its usage in the document
They got lost during a previous reorg PR
…vect

* origin/master: (151 commits)
  EAMxx: fix scope of ETI files for eamxx_field target
  remove gcp12 machine
  remove commented out code
  Eamxx: clean up GW Cmake
  Add corresponding stealth test and testdef
  Update mam4xx to latest main.
  read restart files with mct
  do not write mct restart files at all for moab driver
  use more standard pointer pass
  erp cases fixes for moab driver
  Apply clang format patch.
  Rename diagnostic variables to latest names.
  Rename diagnostic variables to latest names.
  Fix typo in xml tag name.
  Add new parameters to the namelist_defaults_eamxx.xml file.
  Update mam4xx to expose the activation fractions.
  User control over the are four factors that control in clound and below cloud activation.
  openacc fixes
  Add hdf5+netcdf for nvidia compilers
  Revert "Temporarily disable MMF2 test"
  ...
)

Port gw_convect_project_winds and add gen-boiler enhancements

Sorry for the massive PR...

Gen-boiler change list:
1) Main change: doctests are nice for simple
   unit tests, but are incredibly cumbersome for larger or more complex
   unit tests. I cannot believe how long I tried to stay with doctests
   instead of just moving to unittest. This PR ports all the testing that
   was being done in doctests to a new run-gb-tests file.
2) Move all gen-boiler related stuff to a gen-boiler subdirectory under scripts
3) Add support for generating "glue" function implementations, functions that take a
   test data struct and use it to call the CXX physics functions. This was the original reason I started looking at gen-boiler again.
4) Add more-challenging test data array dims for gen_boiler testing.
5) Fix a lot of bugs in gen-boiler when dealing with f90 array slices.
6) Use names that make sense (_f means call to fortran, _bridge_f is the actual bridging function, etc, _c means call to C).
7) Add a few new options for customizing behavior

GWD changes:
1) Port convect initialization
2) Port gw_convect_project_winds

Other changes:

Gets rid of ScreamDeepCopy. I recently made enhancements to
ekat::host_to_device|device_to_host to handle additional use cases, so
ScreamDeepCopy is no longer needed.

[BFB]
oksanaguba and others added 29 commits November 9, 2025 10:12
A section in MPASO namelist to make it flexible to change the tuning parameters of precipitation factor:
&sfwf_forcing
 config_precip_factor = 1.0
 config_sfwf_balance = .true.
 config_sfwf_balance_type = 0
 config_sfwf_history_days = 366
/
config_precip_factor: is the value of the tunnable factors applied to the snow and rain fluxes to maintain the freshwater balance in the G-Case simulation.

config_sfwf_balance:  a flag that was added to turn on (= .true.) or off (= .false.) this option

config_sfwf_balance_type: second flag variable to setup the options (default = 0 meaning that simply use the value of config_precip_factor to scaling down or up the surface freshwater fluxes (rain+snow) )

config_sfwf_history_days: currently is tentative and not used when config_sfwf_balance_type = 0

Currently, the config_sfwf_balance_type = 0 has been tested with the v3.LR model code, and I can verify it worked as expected.
…er flux

Computes a precipitation factor to multiply the fresh water flux
due to precipitation uniformly to insure a balance of fresh water
at the ocean surface. The design followed the idea of "precip_adjustment"
that is documented at https://github.com/ESCOMP/POP2-CESM/blob/master/source/forcing_sfwf.F90
…tyle

1. Renamed the sfwf section in the mpaso_in namelist to precip_scaling for clarity and consistency.

2. Renamed the configuration flag config_sfwf_balance to config_use_precip_scaling to better
   reflect its purpose.

3. Introduced a new character variable config_precip_scaling_mode to replace config_sfwf_balance_type.
   This variable allows switching between 'constant' and 'time-dependent' methods for deriving
   precipitation scaling factors.

4. Split config_precip_factor into two separate variables:

 a. config_precip_scaling_constant_factor (used when config_precip_scaling_mode = 'constant')

 b. config_precip_scaling_initial_factor (used when config_precip_scaling_mode = 'time-dependent')

Associated changes were made throughout the codebase to support and utilize these new configuration variables appropriately for precipitation scaling.
This commit adds two new attributes to the field metadata.

1) If a field has the column dimension, add the attribute "coordinates"
   to the field metadata.

2) If a field represents a statistic over a slice of time, such as
   Average, Min or Max, add the attibute "cell_methods" to the field
   metadata.
Add crevasse-depth calving law following Nick et al. (2010), with
an option to use a strain-rate enhancement factor for stress calculation
based on face-melting rate and a user-defined scaling factor.

Co-authored-by: Matthew Hoffman <[email protected]>
Also remove unit attribute from unitless variables
Makes changes to mpas_li_ocean_extrap.F to enable the choice to either
extrapolate thermal forcing (original implementation) or extrapolate
both ocean salinity and temperature. In the latter case, thermal forcing
will eventually be recalculated after the extrapolation process. The
option to extrapolate salt/temp is activated by setting
config_recalculate_thermal_forcing to true.
Zeros out temp, salinity and/or TF in ice-dammed inland seas, while
adding these cells to the orig3dOceanMask. Should circumvent
invalid_TF_value errors seen previously
This commit removes inland seas from orig3dOceanMask, and instead create
a new mask, inlandSeaMask, marking where face/shelf melting should be zero.
Melting is zeroed out at all inland sea cells and their neighbors
(face melting is calculated at first ice cell from margin)
Removes connectedMarineMask, altConnectedMarineMask, origGrowMask, and altGrowMask
from the Registry.
Reorders assignments to variable names for seed masks, grow masks, and
connected marine masks when flood filling to avoid clobbering each
other. Adds altConnectedMarineMask and connectedMarineMask back into
Registry
Renames MPAS_3dOceanTemperature and MPAS_3dOceanSalinity to the more
generic oceanTemperature and oceanSalinity
Updates registry definitions to be in line with recent changes made to
vertical indexing scheme
@overfelt overfelt force-pushed the overfelt/HigherOrderTendency branch from 5396e6a to d905c06 Compare November 9, 2025 18:44
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.