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

update to MOM6 main repo 20240401 commit #132

Merged

Commits on Nov 6, 2023

  1. Configuration menu
    Copy the full SHA
    dcaadf7 View commit details
    Browse the repository at this point in the history

Commits on Dec 20, 2023

  1. Automated Runtime Land Block Elimination (mom-ocean#263)

    * Enhancements for adding land block elimination to NUOPC cap:
     - Add sum_across_PEs_int4_2d to the sum_across_PEs interface
     - Allow mask_table file to be placed in run directory (now,
    the first dir that is looked at).
    
    * Enhance NUOPC cap to support MOM_mask_table.
    
    - Determine masked blocks.
    - Evenly distribute eliminated cells.
    - Fill ESMF gindex array accordingly.
    - During Export phase, set fields of eliminated cells to zero.
    
    * set %label in register_netcdf_field and register_netcdf_axis
    
    * first working version of an automated mask table generator
    
    * While determining masked blocks, take reentrancy and tripolar stitch into account
    
    * apply tripolar stitch fix in auto mask_table generation
    
    * add AUTO_IO_LAYOUT_FAC parameter to control IO_LOAYUT when AUTO_MASKTABLE is on
    
    * Miscellaneous auto masking fixes to address reviews:
    
    - Dimensionalize topographic depth variables used to determine cell masks in auto masktable routine.
    - Raise error if the user provided PE layout is inconsistent with auto masktable generation.
    - Save the masktable parameter description to a string variable to avoid repetition.
    - Fix typos, whitespaces, use modern array syntax.
    
    * Disable FPEs in MacOS testing
    
    Due to poor handling of floating point in HDF5 1.14.3, it is currently
    not possible to use floating point exceptions (FPEs) whenever this
    version is present.
    
    The GitHub Actions CI nodes would randomly select either 1.14.2 or
    1.14.3, and would raise an FPE error if 1.14.3 was selected.
    Additionally, the homebrew installation does not provide a clean method
    for selecting a different version of HDF5.
    
    Thus, for now we disable FPEs in the MacOS testing, and hope to catch
    any legitimate FP errors in the Ubuntu version.  We will restore these
    tests as soon as this has been fixed in an easily-accessible version of
    HDF5.
    
    As part of this PR, I have also moved the FCFLAGS configuration to the
    platform specific Actions files, allowing for independent compiler
    configuration for each platform.
    
    ---------
    
    Co-authored-by: Marshall Ward <marshall.ward@noaa.gov>
    alperaltuntas and marshallward authored Dec 20, 2023
    Configuration menu
    Copy the full SHA
    ab3b0aa View commit details
    Browse the repository at this point in the history

Commits on Jan 14, 2024

  1. Configuration menu
    Copy the full SHA
    8f73fb2 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2024

  1. Configuration menu
    Copy the full SHA
    5578478 View commit details
    Browse the repository at this point in the history

Commits on Feb 10, 2024

  1. Fix biharmonic leith (mom-ocean#268)

    * Fix biharmonic Leith
    
    Biharmonic Leith uses Del omega at is-1 and js-1. This unavoidably requires
    u at js-3 and v at is-3, which are unavailable. It also requires Del omega
    at Ieq+1 and Jeq+1, which requires v at Ieq+3 and u at Jeq+3, which are
    unavailable. This necessitates a halo update.
    
    Fixes several bugs in Leith+E.
    - Fixes indexing when computing smoothed vorticity and its gradient
    - Crucially, computes `vert_vort_mag` when using Leith+E
    - Fixes some logic in the smoothing code
    - Other minor indexing fixes
    
    * Leith+E Logic Update
    
    Ah is required at h and q points. The original code computed Ah at
    h points, then packed into Ah_h, then applied upper bounds to Ah.
    If Ah_h is in the diag_table or if debug is true, then the value of
    Ah with upper bounds get packed into Ah_h. Then, at q points the
    code unpacks Ah_h. This update makes sure that the upper bound
    gets applied to q points, not just h points.
    
    * Leith+E halo updates
    
    The main thing that this commit does is to perform smoothing of u and v
    outside of the loop over layers. This swaps nz 2D blocking halo updates
    for a single blocking 3D halo update.
    
    * Leith+E smoothing
    
    This commit adds a runtime flag, SMOOTH_AH. If True (default) then
    `m_leithy` and `Ah` are both smoothed, which leads to many blocking
    communications. If False then these fields are rougher, but there
    is less communication.
    
    * Leith+E eliminate pass-var
    
    This commit removes one halo update in Leith+E. To achieve this
    requires re-indexing two assignments. The value of Ah and Kh are
    computed at h points, then re-used at q points. Without the halo
    update it is necessary to offset the assignment at h and q
    points, e.g. Kh(I,J) = Kh_h(i+1,j+1,k), to avoid accessing
    values that have not been computed.
    
    * Leith+E OBC
    
    Adds code so that Leith+E works with OBC.
    
    * Leith+E eliminate halo update
    
    This commit eliminates one more halo update in Leith+E.
    
    * *Correct rotational symmetry with USE_LEITHY
    
      This commit revises the smoothing code used when USE_LEITHY = True to give
    answers that respect rotational symmetry and it also corrects some horizontal
    indexing bugs and problems with the staggering in some halo update and smooth_x9
    calls and reduces some loop ranges to their minimal required values.  The
    specific changes include:
    
      1. Corrected a horizontal indexing bug when interpolating Kh_h and Ah_h to
         corner (q) points when USE_LEITHY = True.  These had previously been
         inappropriately copied from the thickness point to the southwest of the
         corner point.  This required symmetric-memory-mode calculations of the
         thickness point viscosities whenever USE_LEITHY is true, but to avoid adding
         complicated logic, the symmetric-memory loop bounds are used for the
         calculation of Kh.
    
      2. Revised smooth_x9 to give rotationally symmetric answers and split it into
         the two routines smooth_x9_h and smooth_x9_uv to reduce the memory used by
         this routine and reduce the use of optional arguments.
    
      3. Eliminated 4 unneeded halo update calls, and added error handling for the
         case where Leith options are used with insufficiently wide halos.
    
      4. Added new integers to indicate the loop ranges over which the viscosities
         and related variables should be calculated, depending on which options are
         active, and then adjusted 91 do-loop extents horizontal_viscosity code to
         reflect the loop ranges over which arrays are actually used.
    
      5. Added a new 2-d variable for the squared viscosity for smoothing that can
         be used for halo updates and to avoid having a variable with confusingly
         inconsistent dimensions at various points in the code.
    
      6. Corrected the position arguments on 2 smooth_x9 calls and 4 pass_var calls
         that are used when USE_LEITHY=.true. and SMOOTH_AH=.true.  As previously
         written, these smooth_x9 and pass_var calls would work when in non-symmetric
         memory mode but would give incorrect answers when in symmetric memory mode.
    
      These revisions change answers when USE_LEITHY is true, but answers are
    bitwise identical in all other cases.
    
    ---------
    
    Co-authored-by: Robert Hallberg <Robert.Hallberg@noaa.gov>
    iangrooms and Hallberg-NOAA authored Feb 10, 2024
    Configuration menu
    Copy the full SHA
    71665fb View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2024

  1. Merge pull request mom-ocean#270 from NCAR/merge_main2

    Merge latest main
    gustavo-marques authored Feb 11, 2024
    Configuration menu
    Copy the full SHA
    e92c971 View commit details
    Browse the repository at this point in the history

Commits on Feb 29, 2024

  1. Configuration menu
    Copy the full SHA
    526cc7f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    39368f0 View commit details
    Browse the repository at this point in the history

Commits on Mar 6, 2024

  1. Merge pull request mom-ocean#271 from gustavo-marques/merge_main_29feb24

    Merge latest main (Feb 28, 2024)
    alperaltuntas authored Mar 6, 2024
    Configuration menu
    Copy the full SHA
    13fbeb7 View commit details
    Browse the repository at this point in the history

Commits on Mar 20, 2024

  1. Make the US argument to MOM_domains_init optional

      This commit makes the unit_scale_type argument US to MOM_domains_init and
    gen_auto_mask_table optional and moves it to the end of the argument list, so
    that coupled or ice-ocean models using SIS2 will compile with the proposed
    updates to the main branch of MOM6 from dev/ncar.  Because MOM6 and SIS2 use
    some common framework code but are managed in separate github repositories, we
    need to use optional argument to allow a single version of SIS2 to work across
    changes to MOM6 interfaces.  Because the TOPO_CONFIG parameter as used in SIS2
    has a default value, there is an alternative call to get_param for TOPO_CONFIG
    with a default when MOM_domains_init is called with a domain_name argument.
    Also added missing scale arguments to get_param calls for MINIMUM_DEPTH and
    MASKING_DEPTH.  This commit also adds or corrects units in the comments
    describing 4 recently added or modified variables.  All answers are bitwise
    identical in any cases that worked before (noting that some cases using SIS2
    would not even compile).
    Hallberg-NOAA committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    de59adf View commit details
    Browse the repository at this point in the history
  2. Merge pull request mom-ocean#272 from Hallberg-NOAA/fix_dev_ncar_2024…

    …0319
    
    Make the US argument to MOM_domains_init optional
    alperaltuntas authored Mar 20, 2024
    Configuration menu
    Copy the full SHA
    e75d1da View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2024

  1. Configuration menu
    Copy the full SHA
    87913b5 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2024

  1. Configuration menu
    Copy the full SHA
    6d0150d View commit details
    Browse the repository at this point in the history