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

Brine plume #401

Merged
merged 22 commits into from
Jul 25, 2023
Merged

Brine plume #401

merged 22 commits into from
Jul 25, 2023

Commits on Jun 12, 2023

  1. Salt data structures

    kshedstrom committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    df5cb9b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1a5e9ad View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2023

  1. FMS2 interpolation ID replaced with derived type

    All instances of an FMS ID to the internal interpolation content is
    replaced with a derived type containing additional metadata recording
    the field's origin filename and fieldname.
    
    This additional information is required in order to replicate the axis
    data from the field, which is no longer provided by FMS2.
    
    The abstraction of this type also allows us to either extend it or
    redefine it in other frameworks as needed in the future.
    
    This primarily affects the usage of the following functions:
    
    - init_external_field
    - time_interp_external
    - horiz_interp_and_extrap_tracer
    
    The following solvers are updated:
    
    - MOM_open_boundary
    - MOM_ice_shelf
    - MOM_oda_driver
    - MOM_MEKE
    - MOM_ALE_sponge
    - MOM_diabatic_aux
    
    Of these, OBC was the most significant.  The integer handle (fid) was
    previously used to determine if each segment field was constant or (if
    negative) read from a file.  After being replaced by the derived type, a
    new flag was added to make this determination.
    
    All of the coupled drivers have been modified, since they support time
    interpolation of T and S fields.
    
    - FMS
    - MCT
    - NUOPC
    
    The NUOPC driver also includes modifications to its CFC11 and CFC12
    fields.  Changes to the MOM CFC modules replaces an `id == -1`-like
    test, which is not used by the derived type.  This check has been
    removed, and we now solely rely on the `present(cfc_handle)` test.
    
    While this could change behavior, there does not seem to be any scenario
    where init_external_field would return -1 but would be passed to the
    function.  (But I may eat these words.)
    marshallward committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    b1cf0d2 View commit details
    Browse the repository at this point in the history
  2. FMS2: Remove MPP-based axis data access

    With removal of axis-based operations in FMS2 I/O, this patch removes
    references to these calls and replaces them with MOM `axes_info` types.
    References to FMS1 read into an `axistype`, but the contents are
    transferred to an `axis_info`.  FMS2 directly populates the `axis_info`
    content.
    
    The `get_external_field_info` calls are modified to return `axis_info`
    rather than `axistype`.
    
    The redundant `get_axis_data` function is also removed from
    `MOM_interp_infra`, since `get_axis_info` provides an equivalent
    operation.
    
    Generally speaking, this is not an improvement of the codebase.  The
    FMS1 layer does a redundant copy of data from `axistype` to `axis_info`.
    The FMS2 layer is significantly worse, and re-opens the file to read the
    axis data for each field!  But if the intention is to leverage the
    existing API, then I don't think we have any choice at the moment.
    
    Assuming this is a relatively infrequent operation, this should not
    cause any measureable issues, but it needs to be watched carefully.
    marshallward committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    1268c97 View commit details
    Browse the repository at this point in the history
  3. FMS2: Update time_interp_external functions

    This patch shifts all remaining time_interp_external functions from
    time_interp_external to equivalent ones in time_interp_external2.
    
    Internally, time-interpolated fields are initialized with `ongrid` set
    to `.true.`, and such fields are assumed to be on-grid.
    
    This seems to hold for all existing instances of `time_interp_external`,
    but needs to be monitored in the future somehow.
    marshallward committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    35e3642 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2023

  1. FMS2: Case-insensitive init_external_field

    The FMS1 implementation of init_external_field is case-insensitive, but
    the FMS2 implementation is case-sensitive, which can cause errors in
    older established input files.
    
    This patch sweeps through the fields of the input files and checks for a
    case-insensitive match (using lowercase()).  This requires an additional
    open/close of the file.
    marshallward committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    d5ce336 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c22513b View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2023

  1. The brine plume parameterization,

    - including now passing the dimensional scaling tests.
    kshedstrom committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    cd5faea View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1293fab View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2023

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

Commits on Jul 6, 2023

  1. Avoiding visc_rem issues inside land mask.

    Tweaking the brine plume code.
    kshedstrom committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    236f71b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4418fa8 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2023

  1. Using the proper MLD in the brine plumes

    - it now works better on restart
    kshedstrom committed Jul 7, 2023
    Configuration menu
    Copy the full SHA
    82e6f18 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2255904 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2023

  1. Always including MLD in call to applyBoundary...

    - I could move it up and make it not optional.
    kshedstrom committed Jul 8, 2023
    Configuration menu
    Copy the full SHA
    b44d658 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2023

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

Commits on Jul 13, 2023

  1. Configuration menu
    Copy the full SHA
    977ac37 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9129d1f View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2023

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

Commits on Jul 17, 2023

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

Commits on Jul 18, 2023

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

Commits on Jul 20, 2023

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