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

OCN to GLC thermal forcing coupling #6632

Open
wants to merge 18 commits into
base: master
Choose a base branch
from

Commits on Sep 20, 2024

  1. Create avgThermalForcing300m coupling field in MPAS-Ocean

    This commits adds a new field to MPAS-Ocean called
    avgThermalForcing300m.  It is calculated as the thermal forcing
    (difference between ocean temperature local freezing temperature) at 300
    m depth.  It uses the temperature of the layer shallower than 300 m.
    This could be replaced with vertical interpolation to get the value
    exactly at 300 m.  The TF at 300 m is time averaged over the ocean coupling
    interval.
    matthewhoffman committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    f14d71a View commit details
    Browse the repository at this point in the history
  2. Define coupler fields for TF at 300 m and connect to OCN and GLC

    This commit adds the So_tf300 coupler field for passing thermal forcing
    at 300m through the coupler.  It also passes the avgThermalForcing300m
    added to MPAS-Ocean in the previous commit to this coupler field, and
    send it to the ismip6_2dThermalForcing field in MALI as the destination.
    
    Note that a new list of coupler fields called x2g_tf_states_from_ocn
    has been added to seq_flds_mod to differentiate this coupling field from
    the iceshelf OCN/GLC coupling, which is handled differently.
    matthewhoffman committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    2abf17a View commit details
    Browse the repository at this point in the history
  3. Update MALI config to use new TF field

    This commit enables facemelting in MALI so that the new TF field will be
    used to calculate a melt rate.  This is safe to enable in general,
    because for situations where thermal forcing is not calculated  or not
    applicable, it will be zero and facemelting will in turn be zero.  This
    commit also updates the MALI output stream to write out the TF and
    facemelting fields.
    
    Note that this commit also changes the MALI output stream interval to
    daily.  While that might not be the ideal long-term production solution,
    it is likely the desired frequency for model development for the
    forseeable future.
    matthewhoffman committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    4c18c45 View commit details
    Browse the repository at this point in the history
  4. Define ocn2glc mapping for TF

    This commits defines the mapping for thermal forcing from ocean to glc.
    It defines a special mapper for thermal forcing state (ocn2glc_tf_smap)
    in CIME and MCT xml files.  It also declares and allocates mapper_So2g_tf
    in prep_glc_mod but does not initialize or use it yet.
    
    The mapping file requires some special treatment:
    * it needs to use nearest neighbor mapping (which differs from most
      state remapping)
    * it needs to include grid_imask in the ocean scrip file to only consider
      ocean cells valid if they are deeper than 300m
    matthewhoffman committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    babbf3d View commit details
    Browse the repository at this point in the history
  5. Implement new ocn2glc TF coupling

    1. Differnetiate new ocn2glc TF coupling from existing ocn2glcshelf coupling
    Create ocn_c2_glc logical in cime_comp_mod.  This controls the new
    ocn2glc TF (thermal forcing) coupling separately from the existing
    ocn2glcshelf coupling, which has its own ocn_c2_glcshelf flag already.
    The new TF coupling will be active whenever ocn is present and glc is
    prognostic.  These flags are used to initialize different mappers
    independent of each other in prep_glc_init.  Those flags are also now
    passed to prep_glc_calc_o2x_gx to control which mapping actually occurs.
    
    2. Implement prep_glc_mrg_ocn
    The existing ocn2glcshelf coupling handled a number of operations in
    unusual ways because the fluxes themselves are calculated in the
    coupler, so it was missing some of the standard operations for simply
    passing fields between components.  As such, adding the new TF coupling
    requires creating a prep_glc_mrg_ocn routine, which is responsible for
    transferring fields from o2x_g to x2g_g arrays.  This routine was copied
    closely from the existing prep_glc_mrg_lnd routine.
    
    With this commit, the ocean TF field is successfully passed to MALI.
    matthewhoffman committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    8c10e45 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ffb207e View commit details
    Browse the repository at this point in the history
  7. Better differentiate ocn->glc coupling for shelf and tf

    The entirety of existing ocn->glc coupling was for the ice-shelf
    coupling.  To better differentiate the coupling in this branch based on
    thermal forcing, this commit ensures there is either a 'shelf' or 'tf'
    suffix on all ocn-glc coupling variables.
    matthewhoffman committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    3257d65 View commit details
    Browse the repository at this point in the history
  8. Add TL319_IcoswISC30E3r5_gis1to10kmR2 grid specification

    This allows testing with a MALI mesh where fjords are resolved.
    matthewhoffman committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    ccc0416 View commit details
    Browse the repository at this point in the history
  9. Update mpas.gis1to10kmR2 mesh to include subglacial runoff field

    The facemelting parameterization requires a subglacial runoff field as
    an input.  Eventually, we may have this calculated prognostically in
    E3SM from MALI and/or ELM, but that is not planned for the near-term.
    Until then, a reasonable approximation is to use a constant historical
    climatological field.
    
    This commit updates the mpas.gis1to10kmR2 input file to include a
    ismip6Runoff field provided by ISMIP6.  The field used is a 1995-2014
    mean from the MIROC5 model, which was bias-corrected to match MAR over
    that period.  See www.the-cryosphere.net/14/985/2020/ Fig. 2 and related
    text for details.
    matthewhoffman committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    90c1a1d View commit details
    Browse the repository at this point in the history
  10. Correct indexing for critical depth

    This uses the layer that the desired depth is in, rather than the layer
    above it.
    
    Co-authored-by: Xylar Asay-Davis <[email protected]>
    matthewhoffman and xylar committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    5c03d40 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    3f2615d View commit details
    Browse the repository at this point in the history
  12. Add config_glc_thermal_forcing_coupling_mode option

    This commit adds an MPAS-Ocean namelist option for activating the
    OCN-GLC TF coupling.  This option controls if E3SM should enable the
    OCN-GLC TF coupling and also makes the associated TF calculations
    conditional on the option being active.  The option defaults to false
    and there currently are not any compsets that activate it, so it can
    only be enabled with a namelist usermod at present.
    matthewhoffman committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    b6e4100 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    b8c3864 View commit details
    Browse the repository at this point in the history
  14. Add config_glc_thermal_forcing_coupling_mode to nl system

    Eventually, when we have compsets that require this mode, it should be
    controlled analogously to MPASO_ISMF.
    matthewhoffman committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    114c89e View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    28a25dd View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    97b7fc0 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    dccd205 View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2024

  1. Rename OCN2GLC_*MAPNAME to OCN2GLC_SHELF_*FMAPNAME for new grids

    Four new gridspecs were introduced recently that were brought in to this
    branch after a rebase and were missed in the original renaming of
    OCN2GLC_*MAPNAME to OCN2GLC_SHELF_*FMAPNAME.  This commit makes the
    name change for those grids as well.
    matthewhoffman committed Oct 12, 2024
    Configuration menu
    Copy the full SHA
    43ef3b0 View commit details
    Browse the repository at this point in the history