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 main branch 20220217 commit #85

Merged
merged 195 commits into from
Feb 24, 2022

Commits on Oct 1, 2021

  1. (+*)Fix MEKE advection bug

      Added the new runtime option MEKE_ADVECTION_BUG and corrected a bug in the
    calculation of the vertically integrated transport for the advection of the
    MEKE field when MEKE_ADVECTION_FACTOR > 0.  The default is to fix the bug, so
    answers can change in some cases by default, and in those cases there are
    changes to the MOM_parameter_doc files, but this option is not widely used and
    there are no answer changes in the MOM6-examples test suite.  This PR addresses
    MOM6 issue mom-ocean#1465, which can be closed once this PR is merged into dev/gfdl.
    Hallberg-NOAA committed Oct 1, 2021
    Configuration menu
    Copy the full SHA
    43d4f16 View commit details
    Browse the repository at this point in the history

Commits on Oct 5, 2021

  1. +Add BAROTROPIC_TIDAL_SAL_BUG to fix a tide bug

      Added a runtime flag, BAROTROPIC_TIDAL_SAL_BUG, to fix a sign error in the
    tidal self-attraction and loading anomalies in the barotropic solver when tides
    are enabled.  The default is to keep the previous bug so that answers do not
    change, but this default will be changed after solutions have been corrected.
    This commit partly addresses MOM6 issue mom-ocean#1496, but it should only be considered
    to be properly handled once the default has been changed to avoid this bug.
    This commit will change the MOM_parameter_doc files in cases where this bug
    matters, but by default all answers are bitwise identical.
    Hallberg-NOAA committed Oct 5, 2021
    Configuration menu
    Copy the full SHA
    374acc5 View commit details
    Browse the repository at this point in the history

Commits on Oct 8, 2021

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

Commits on Oct 9, 2021

  1. Merge pull request mom-ocean#1506 from Hallberg-NOAA/MEKE_advection_b…

    …ugfix
    
    (+*)Fix MEKE advection bug
    marshallward authored Oct 9, 2021
    Configuration menu
    Copy the full SHA
    a384fcc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    780919f View commit details
    Browse the repository at this point in the history
  3. Merge pull request mom-ocean#1508 from Hallberg-NOAA/tidal_SAL_bugfix

    +Add BAROTROPIC_TIDAL_SAL_BUG to fix a tide bug
    marshallward authored Oct 9, 2021
    Configuration menu
    Copy the full SHA
    7d808b5 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2021

  1. Particle API (mom-ocean#1504)

    * first draft API based on Luyu's code
    * fixed various errors
    * Code for particles in MOM.F90
    * moved particles_run into dynamics step
    * added particles_end
    * Fixed particle time
    * Fixed some documentation
    * Further documentation edits
    * converted pointers to allocatables in particles_gridded
    * Remove trailing space
    * Further doxygen tweaks
    * another trailing space
    * removed set_time
    
    Co-authored-by: Cory Spencer Jones <spencerjones@login4.cluster>
    cspencerjones and Cory Spencer Jones authored Oct 11, 2021
    Configuration menu
    Copy the full SHA
    5c3f143 View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2021

  1. Configuration menu
    Copy the full SHA
    ce5595f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b08efb8 View commit details
    Browse the repository at this point in the history
  3. Done with EPBL docs?

    kshedstrom committed Oct 12, 2021
    Configuration menu
    Copy the full SHA
    5adf763 View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2021

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

Commits on Oct 14, 2021

  1. FMS1: Don't create IO domains for single-PE domain

    FMS mpp domain creation is done in the `clone_MD_to_d2D` function, and
    currently an IO domain is always created within the MPP domain.
    
    This has caused problems with single-PE runs in FMS1, where the
    `write_field` logic was not able to reach the part which removes halo
    data if an IO domain was present, and halo data was being written to the
    restart files.
    
    This issue arose when `PARALLEL_RESTARTFILES` was set to `True` for
    single-PE tests.
    
    This does not appear to be a problem with FMS2, and no action is needed
    by the FMS team.
    marshallward committed Oct 14, 2021
    Configuration menu
    Copy the full SHA
    8e5a1b7 View commit details
    Browse the repository at this point in the history
  2. User/wfc/remap scheme (mom-ocean#1503)

    * Revert "Implement changes suggested by @Hallberg-NOAA"
    
    This reverts commit 8f4af3d.
    
    * Revert "*Corrected the clock as seen by diabatic processes"
    
    This reverts commit bc6c6e6.
    
    * Revert "*Use rho_ref in finite volume PGF density calcs"
    
    This reverts commit 48e90d0.
    
    * Update of MOM6 code to allow SPEAR to reproduce previous answers.
    
    Updates MOM code to dev/gfdl as of 2/7/2019 (6dd6f52) and reverts 3 answer changing modifications.
    Update produced by
    
    git revert 8f4af3d
    git add src/tracer/MOM_neutral_diffusion.F90
    git revert --continue
    git revert bc6c6e6
    git add src/core/MOM.F90
    git revert --continue
    git revert 48e90d0
    git add src/equation_of_state/MOM_EOS.F90
    git revert --continue
    
    Some conflict resolution was needed.
    
    * Optional use of differing restoring piston velocities for temp and salt
    
    * Correction to ePBL code to mitigate blowup.
    
    Also "corrects" some spelling differences in variables (MStar vs mstar)
    
    * add MJHarrison-GFDL salt_flux_add_fix to SPEAR codeset
    
    from
    https://github.com/MJHarrison-GFDL/MOM6/compare/salt_flux_add_fix
    
    * Added ability to change remapping scheme.
    
    Added call for parameter REMAPPING_SCHEME to allow changes to be made.
    Previously was hardwired to PLM.
    
    Call for MOM_grid_int was issing a global_indexing=F argument
    
    Tests indicated that oda clocks were being called out of order and
    crashing the test, so I commented them out.
    
    * Removed timers, Changes name for REMAPPING_SCHEME parameter
    
    Changes REMAPPING_SCHEME to ODA_REMAPPING_SCHEME
    Removed timers that were causing blowups
    
    * Adds documentation for ODA_remapping_scheme
    
    Changes second argument to get_param calls to the module name.
    
    Co-authored-by: Matthew Harrison <Matthew.Harrison@noaa.gov>
    wfcooke and MJHarrison-GFDL authored Oct 14, 2021
    Configuration menu
    Copy the full SHA
    24e48a7 View commit details
    Browse the repository at this point in the history
  3. +*Change defaults for 3 parameters to better values (mom-ocean#1509)

    NOTE: Initial submission included 4 parameters.
    `PARALLEL_RESTARTFILES` was dropped after an issue was detected.
    
    Full commit log history below.
    
    * +*Change defaults for 4 parameters to better values
    
      Updated the defaults of 4 run-time parameters (INTERNAL_WAVE_SPEED_BETTER_EST,
    PARALLEL_RESTARTFILES, EPBL_MLD_BISECTION, and BBL_USE_EOS) to more appropriate
    values.  In each case, the previous default was simply the older setting, and
    not the better recommendation.  It also adds logic determining whether
    SIMPLE_TKE_TO_KD does anything, and only log its setting if it does.  These
    default changes were discussed by the MOM6 consortium as a whole in June, 2021
    and were widely agreed to. In addition this commit removes the old obsoleted
    runtime parameter ORIG_MLD_ITERATION, and obsoletes the runtime parameter
    LARGE_FILE_SUPPORT, and it adds comments describing several real variables and
    their units.  Because this changes several default values, it will change
    answers unless these parameters are explicitly set in the MOM_input files.
    However, because MOM6-examples PR mom-ocean#344 does set these values to their old
    defaults where they are used, no answers are changed in the MOM6-examples
    regression suite, although there are changes to the MOM_parameter_doc files.
    
    * +Reverted default for PARALLEL_RESTARTFILES
    
      Reverted the default for PARALLEL_RESTARTFILES to False because the TC restart
    testing was having problems with this set to True.  This is surprising because
    PARALLEL_RESTARTFILES = True has been used in production runs for many years now
    without any indication that MOM6 fails to reproduce across restarts in this
    mode, so this could be an issue with the TC testing.  In the mean time,
    reverting this default will allow the other changes to be accepted while this
    curious behavior is explored separately.  Several comments related to
    PARALLEL_RESTARTFILES were also updated for consistency. All answers are bitwise
    identical.
    Hallberg-NOAA authored Oct 14, 2021
    Configuration menu
    Copy the full SHA
    393df05 View commit details
    Browse the repository at this point in the history
  4. +Add new parameter FATAL_INCONSISTENT_RESTART_TIME (mom-ocean#1511)

    Add the new runtime parameter FATAL_INCONSISTENT_RESTART_TIME, which if true
    causes the model to compare the restart time read from a restart file with any
    value provided as a time_in to MOM_initialize_state and issue a fatal error if
    they differ.  In ocean-only mode, this input time is read from a ocean_solo.res
    file, following FMS behavior.  The default value simply uses the specified time,
    replicating the previous behavior.  If set to true, this would prevent a problem
    with the time-history that recently occurred in a series of high-resolution runs
    that were shared between several groups, where the nominal times were repeated.
    All answers are bitwise identical, but many MOM_parameter_doc files have a new
    entry.
    Hallberg-NOAA authored Oct 14, 2021
    Configuration menu
    Copy the full SHA
    5bc0be3 View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2021

  1. +(*)Fix bug when RES_SCALE_MEKE_VISC = True (mom-ocean#1512)

    * +(*)Fix bug when RES_SCALE_MEKE_VISC = True
    
      Fix a bug that can lead to segmentation faults when RES_SCALE_MEKE_VISC is
    true, as noted in MOM6 issue mom-ocean#1464, and add better error handling to detect
    related problems.  The refactoring that is a part of this may also avoid some
    problems with optimized code even when RES_SCALE_MEKE_VISC it false, as
    described in MOM6 issue mom-ocean#1463.  In addition, logic was added so that the value
    of RES_SCALE_MEKE_VISC is only logged if USE_MEKE is true.  All answers are
    bitwise identical in cases that worked, including the MOM6-examples test suite,
    but there are some changes in the MOM_parameter_doc files, due to an irrelevant
    parameter no longer being logged.
    
    * (*)Initialize CS%res_scale_MEKE
    
      Initialize the logical element res_scale_MEKE in the hor_visc_CS even if
    there is no Laplacian viscosity, so that a self-consistency test does not use an
    initialized value.  Also improved some comments.  All answers are bitwise
    identical for all cases that successfully ran before, including in all cases in
    the MOM6-examples test suite.
    Hallberg-NOAA authored Oct 15, 2021
    Configuration menu
    Copy the full SHA
    85afd24 View commit details
    Browse the repository at this point in the history
  2. +Make 37 optional arguments in src/core mandatory

      Made 37 optional arguments that are always present in calls into non-optional
    arguments to routines in the src/core directory.  Many of these are pointer
    arguments related to things like open boundary conditions, so if these types are
    not to be used, they are simply not allocated.  In several cases, this required
    the order of the arguments to be shifted around, but the various types of the
    arguments should prevent the model from compiling if the calls (e.g., in
    user-modified code that is not in the github repository) are not changed
    equivalently.  Also eliminated 3 internal arguments in MOM_barotropic.F90 that
    are always hard-coded to the same values (the maximize argument to
    BT_cont_to_face_areas()) or are never used (the guess arguments to uhbt_to_ubt()
    and vhbt_to_vbt()), along with the code that they would exercise.  All answers
    and output are bitwise identical.
    Hallberg-NOAA committed Oct 15, 2021
    Configuration menu
    Copy the full SHA
    4d9ed4f View commit details
    Browse the repository at this point in the history
  3. Refactored solo_driver/MOM_driver.F90

      Refactored solo_driver/MOM_driver.F90 to move logically self-contained blocks
    of code into separate subroutines within this file to improve the readability of
    the code and to reduce the number of global variables.  This started out as an
    exercise to explore the use of the F2008 block / end block construct to reduce
    the scope of variables, but the code ended up being cleaner just using
    traditional subroutines contained in this file.  All answers are bitwise
    identical and all output files are unaltered.
    Hallberg-NOAA authored and marshallward committed Oct 15, 2021
    Configuration menu
    Copy the full SHA
    39c0c34 View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2021

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

Commits on Oct 20, 2021

  1. Merge pull request mom-ocean#1523 from Hallberg-NOAA/opt_args_in_core

    +Make 37 optional arguments in src/core mandatory
    marshallward authored Oct 20, 2021
    Configuration menu
    Copy the full SHA
    e291d32 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ba01cea View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5d82809 View commit details
    Browse the repository at this point in the history
  4. +Optional just_read_params args are now mandatory

      Made 44 previously optional just_read_params arguments into mandatory
    arguments and renamed them just_read to avoid duplicated variables.  This change
    should be minimally disruptive, as these optional arguments were always being
    provided.  Some argument documentation blocks were also reformatted or the
    comments in them were corrected.  All answers are bitwise identical, but some
    arguments have changed.
    Hallberg-NOAA authored and marshallward committed Oct 20, 2021
    Configuration menu
    Copy the full SHA
    c62258c View commit details
    Browse the repository at this point in the history
  5. +Argument cleanup in vertical parameterization code

      Cleaned up 27 falsely optional or unused arguments in the vertical
    parameterization code, and related changes.  This includes:
     - Eliminating the symmetrize arguments to set_viscous_BBL and set_viscous_ML,
       which are now effectively always true.
     - Making the Waves and OBC pointer arguments mandatory in several routines
       where they were always being supplied.  These are pointers, so the test of
       whether they should be used can be based on whether they are associated.
     - Adding error messages about unassociated Waves types that would be used.
     - Eliminating the unused Waves argument to KPP_init.
     - Eliminating unused arguments that energetic_PBL inherited from the bulk mixed
       layer code, and simplified some disabled debugging code.
     - Making the optics argument to opacity_end mandatory.
     - Making the h argument to get_Langmuir_Number mandatory and rearranged the
       arguments to this routine to put the optional arguments last, following the
       practice elsewhere in the MOM6 code.  Also standardized the case of several
       variables in the MOM_wave_interface.F90 code to facilitate searches.
     - Eliminating the unused US argument to CoriolisStokes.
    All answers are bitwise identical, and no output is changed.
    Hallberg-NOAA authored and marshallward committed Oct 20, 2021
    Configuration menu
    Copy the full SHA
    037af8e View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2021

  1. Use FMS2 file_exists, remove domain args

    This patch uses the FMS2 `file_exists` function when using the FMS2
    infra.  Previously, the FMS1 version of this function was being used.
    
    This patch also removes the `mpp_domain` and `no_domain` arguments from
    the direct `file_exist` calls, which were not used by any known MOM6
    configurations.  (Nor would we expect them to be, since explicit
    references to FMS should not exist outside of the infra layer.)
    
    Since FMS2 does not use these arguments, their removal also creates a
    more meaningful interface between the two frameworks.
    
    Motivation:
    
    An issue with the FMS1 `file_exists` under the FMS2 infra was discovered
    in the UFS model on Hera.  It was only reproducible in submitted jobs,
    and not for interactive jobs, and only with the GCC 9.2 compiler.
    (Other GCC versions were not tested.)
    
    One potential explanation is that it is related to the `save` attribute
    of the domain pointer, `d_ptr`.  In the case above, `d_ptr` pointed to
    the MOM input domain for the failed cases.  For the other working
    cases, `d_ptr` pointed to a `NULL()` value and behavior was normal.
    
    It is possible that `d_ptr` is inconsisently updated when FMS1 and FMS2
    IO operations are used together, which should probably be considered
    undefined behavior.
    marshallward committed Oct 22, 2021
    Configuration menu
    Copy the full SHA
    6ff0cae View commit details
    Browse the repository at this point in the history
  2. fix low mode in tidal_mixing

    Raphael Dussin authored and marshallward committed Oct 22, 2021
    Configuration menu
    Copy the full SHA
    ee3b92f View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2021

  1. +Eliminate unused arguments in diagnostics code

      Eliminated the unused optional OBC argument to write_energy() and several
    unused optional arguments to wave_speed() and wave_speeds() that are set instead
    via arguments to wave_speed_init() that store these values in a wave_speed_CS
    type.  Also made the optional row_scale argument to tridiag_det() and the
    tracer_CSp argument to write_energy() that were always present in calls into
    mandatory arguments.  All answers are bitwise identical, and solutions do not
    change.
    Hallberg-NOAA authored and marshallward committed Oct 23, 2021
    Configuration menu
    Copy the full SHA
    7e8d6e2 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2021

  1. Configuration menu
    Copy the full SHA
    2f91303 View commit details
    Browse the repository at this point in the history
  2. Merge pull request mom-ocean#1522 from marshallward/no_1pe_io_layout

    FMS1: Don't create IO domains for single-PE domain
    Hallberg-NOAA authored Oct 25, 2021
    Configuration menu
    Copy the full SHA
    1700498 View commit details
    Browse the repository at this point in the history
  3. Always create single-threaded files in 1 PE runs

      Modified create_file to always specify that the threading will be for a single
    PE to do the writing to a single file if there is only a single ocean PE, to
    avoid some incorrect behavior inside of the FMS IO modules.  This can fix
    restart problems in some single-processor cases with an inconsistent setting of
    the optional threading argument, but in all cases that ran correctly before, all
    answers are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Oct 25, 2021
    Configuration menu
    Copy the full SHA
    a2aaad6 View commit details
    Browse the repository at this point in the history
  4. +Optional arg cleanup in horizontal param code

      Cleaned up 13 falsely optional or unused arguments in the horizontal
    parameterization code, and related changes.  This includes:
    - Made the previously optional OBC pointer arguments that were always being used
      in calls to 3 routines in MOM_lateral_mixing_coeffs.F90 into mandatory
      arguments.  Because these are pointers, the deciding factor of whether to use
      them is really whether they are associated.
    - Made an internal optional argument that was always being used mandatory in 2
      routines in MOM_internal_tides.F90.
    - Made 2 internal optional arguments that were always being used mandatory in
      thickness_diffuse_full().
    - Eliminated the unused deta_tidal_deta argument to calc_tidal_forcing() and
      made the m_to_Z argument to the same routine mandatory.  The former value is
      instead obtained by a call to tidal_sensitivity.
    - Eliminated 3 unused arguments and made an optional argument that was always
      used mandatory for find_deficit_ratios() in MOM_regularize_layers.F90.
    Hallberg-NOAA authored and marshallward committed Oct 25, 2021
    Configuration menu
    Copy the full SHA
    6dd1d14 View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2021

  1. cpu_clock_id: synchro_flag arg changed to logical

    This patch modifies the `cpu_clock_id` interface so that the
    `synchro_flag` argument is converted into a platform-agnostic logical
    flag.
    
    The current implementation requires the synchronization flag to be
    defined using FMS norms (zero-bit) and also would force users to follow
    FMS predefined flags for other values.
    
    This patch changes the sync flag to a logical, and modifies the default
    flag to enable synced clocks (based on `clock_flag_default`).
    
    `synchro_flag` is also renamed to `sync` for simplicity.
    marshallward committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    c053fdc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0df0467 View commit details
    Browse the repository at this point in the history
  3. Merge pull request mom-ocean#1532 from marshallward/fms2_file_exist

    Use FMS2 `file_exists`, remove domain args
    Hallberg-NOAA authored Oct 26, 2021
    Configuration menu
    Copy the full SHA
    9d0a92b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5ffad6d View commit details
    Browse the repository at this point in the history
  5. Merge pull request mom-ocean#1535 from marshallward/sync_clock_flag

    cpu_clock_id: synchro_flag arg changed to logical
    Hallberg-NOAA authored Oct 26, 2021
    Configuration menu
    Copy the full SHA
    9031683 View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2021

  1. Eliminate GET_ALL_PARAMS in hor_visc_init (mom-ocean#1536)

    * Eliminate GET_ALL_PARAMS in hor_visc_init
    
      Added do_not_log arguments to get_param calls in MOM_hor_visc.F90 that are
    only used conditionally, and eliminated the unlogged GET_ALL_PARAMS runtime
    parameter and get_all variable in hor_visc_init().  By design, all logging of
    parameters after this commit is identical to before, even for variables that are
    inactive and therefore should not be logged.  In several places, there were some
    problems, mostly with the GME code, that have been noted in comments marked with
    '###'.  Also cleaned up the code alignment and eliminated unneeded temporary
    variables in a few places in hor_visc().  All solutions are bitwise identical,
    and no output is changed.
    
    * Restore temporary variables
    
      Undid changes that eliminated temporary variables to facilitate performance
    profiling, and restored the "Knuth" convention about the placement of the line
    breaks relative to "+" in these expressions.  Nothing changes.
    Hallberg-NOAA authored Oct 29, 2021
    Configuration menu
    Copy the full SHA
    aad1e89 View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2021

  1. Add weighted d[uv]_dt_str diagnostics (mom-ocean#1539)

    This adds four new diagnostics building on the wind stress acceleration diagnostics du_dt_str, dv_dt_str (from mom-ocean#1437)
    - their thickness-weighted versions: h_du_dt_str, h_dv_dt_str (completing the set of diags from 3D thickness x momentum diagnostics mom-ocean#1398)
    - their viscous remnant fraction: du_dt_str_visc_rem, dv_dt_str_visc_rem (completing the set of diags from Visc_rem_[uv] multiplied momentum budget diagnostics ocean-eddy-cpt#10)
    
    Nora did some quick tests with the CPT NeverWorld2 setup, which confirm that online and offline multiplication by 1) h or 2) visc_rem_[uv] coincide (up to 1) interpolation error and 2) numerical noise, respectively), and illustrated this beautifully with some figures that accompanied the first of the three commits that were squashed into one.
    NoraLoose authored Nov 5, 2021
    Configuration menu
    Copy the full SHA
    1324656 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2021

  1. +Argument cleanup in vertical diffusivity code

      Cleaned up 26 falsely optional or unused arguments in the vertical
    diffusivity code, and related changes.  Several descriptive comments were
    also corrected, including the correction of the units of 10 variables related
    to CVMix_KPP.  This commit includes:
     - Made the Kd_int arguments to set_diffusivity() and 3 subsidiary routines
       mandatory and reordered the arguments so that the non-optional arguments
       come before the grid types
     - Made the halo_TS and double_diffuse arguments to set_diffusivity_init()
       mandatory.
     - Made the Time argument to ALE_sponge() mandatory.
     - Made the Kd and Kv arguments to calculate_CVMIX_conv() mandatory.
     - Removed the unused halo argument to adjust_salt().
     - Removed the unused Kddt_convect argument to full_convection().
     - Made the halo arguments to full_convection()and smoothed_dRdT_dRdS()
       mandatory.
     - Made the useALEalgorithm argument to geothermal_init() mandatory.
     - Removed the unused initialize_all arguments to Calculate_kappa_shear() and
       Calc_kappa_shear_vertex().
     - Removed the unused I_Ld2_1d and dz_Int_1d arguments to kappa_shear_column().
     - Made 3 arguments to calculate_projected_state() mandatory and reordered the
       arguments accordingly.
     - Eliminating the unused skip_diags arguments to calculateBuoyancyFlux() and
       extractFluxes(), which are now effectively always false.
    All answers are bitwise identical, and no output is changed.
    Hallberg-NOAA authored and marshallward committed Nov 9, 2021
    Configuration menu
    Copy the full SHA
    f2e9983 View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2021

  1. +Move rotate_dyn_horgrid to MOM_dyn_horgrid module

      Moved the routine rotate_dyngrid() from the MOM_transcribe_grid module to
    rotate_dyn_horgrid() in the MOM_dyn_horgrid module so that this routine can also
    be used at some point by SIS2 to implement rotational consistency testing, and
    also to reflect that this routine only works with types from its new module.
    The two routines are the same apart from some added comments, and the old name
    of rotate_dyngrid() is still available from MOM_transcribe_grid via a module use
    statement.  All answers are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    2e7624b View commit details
    Browse the repository at this point in the history
  2. +Reduce use of dyn_horgrid in initialize_MOM

      Minimized the dependence on dyn_horgrid in initialize_MOM by working directly
    with the horizontal index type whereever possible and by moving the calls that
    create the MOM_grid_type earlier in the routine, to limit the duration of the
    dyn_horgrid_type, and to better co-locate grid-related parameters in the
    parameter_doc files.  Also uses the new interface to rotate_dyn_horgrid from the
    MOM_dyn_horgrid module in place of the rotate_dyngrid interface from the
    MOM_transcribe_grid module.  All answers are bitwise identical, but the order of
    some entries in the MOM_parameter_doc files has changed.
    Hallberg-NOAA authored and marshallward committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    5a2bb8d View commit details
    Browse the repository at this point in the history
  3. (*)Fix compile-time issues with MOM_sum_driver.F90

      Modified drivers/unit_drivers/MOM_sum_driver.F90 to compile with the latest
    version of the rest of the MOM6 code by using the proper types in the various
    initialization calls, and verified that it runs as intended.
    Hallberg-NOAA authored and marshallward committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    688bff9 View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2021

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

Commits on Nov 17, 2021

  1. (+) porous topography implementation (#3)

    * reads in porous topography parameters from CHANNEL_LIST_FILE
    
    *new module to compute curve fit for porous topography
    
    *porous constraints used to modify continuity_PPM, CoriolisAdv, and Rayleigh bottom channel drag
    sditkovsky authored Nov 17, 2021
    Configuration menu
    Copy the full SHA
    8b5e10a View commit details
    Browse the repository at this point in the history
  2. Disable clock sync of in-loop BML timers

    This patch overrides the default clock sync (configured in FMS) for the
    CPU clocks inside of the bulk mixed layer's loops.
    
    This prevents model hangs due to an inconsistent number of clock syncs
    when different ranks have different size domains.
    marshallward committed Nov 17, 2021
    Configuration menu
    Copy the full SHA
    d7b2e32 View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2021

  1. Correct a couple of typos in hor_visc

    1. Three typos are corrected.
    2. An if-statement for better bound of the Laplacian viscosity at h-cell
    is moved outside of the do-loops.
    herrwang0 committed Nov 18, 2021
    Configuration menu
    Copy the full SHA
    26b1d96 View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2021

  1. Corrected the units of 124 variables

      Corrected the units in comments describing 124 variables in 39 files.  In
    addition three unused variables were eliminated.  All answers and output are
    bitwise identical.
    Hallberg-NOAA authored and marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    e2e5787 View commit details
    Browse the repository at this point in the history
  2. Horizontal viscosity pointer removal

    * Change `hor_visc_CS` pointers to locals
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    ca61bf9 View commit details
    Browse the repository at this point in the history
  3. MEKE pointer cleanup

        * equilibrium_value removed from CS and is now local
        * MEKE_CS function arguments to stack
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    0e19103 View commit details
    Browse the repository at this point in the history
  4. Mixed layer pointer purge

    * `mixedlayer_restrat_CS` pointers changed to locals
      MLD_filtered[_slow] pointed moved to allocatables
    
    * MLD argument for `mixedlayer_restrat`
    
    Restore MLD pointer
    
    Passing an uninitialized array is problematic, though passing a pointer
    to an uninitialized array is not.
    
    This can be addressed when vertvisc_type is resolved.
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    899bf4e View commit details
    Browse the repository at this point in the history
  5. Thickness diffusion pointer removal

    * `thickness_diffusion_CSp` is moved to local where possible
    * All arrays and most other pointer content is moved to either
      allocatable or local to the type.
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    9bf8715 View commit details
    Browse the repository at this point in the history
  6. Tidal forcing CS pointer removal

    * `tidal_forcing_CS` pointers are removed, and its fields are converted
      to allocatables.
    
      - Note that references are retained in the pressure force and
        barotropic CS instances, to avoid copies.
    
        Still working through that one...
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    c91b464 View commit details
    Browse the repository at this point in the history
  7. Internal tide pointer removal

    * Internal tide CS pointer removal (int_tide_CS)
    * Diabatic driver's `int_tide_CSp` renamed to `int_tide`
    
    I am unsure if the instance of int_tide_CS in the diabatic driver (where
    it is created) needs to be declared as target.  Seems not, but watch
    this issue.
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    4a98271 View commit details
    Browse the repository at this point in the history
  8. Entrain diffusive pointer removal

    This removes just about all of the entrain_diffusive pointers (except
    the diag_ctrl).
    
    There is a very minor incongruity with `just_read_params`, which was
    originally used to deallocate the CS, which might alter some removed
    `if(associated(CS))` checks.  But it seems this is not really a problem,
    since the calls to entrainment_diffusion() are inside regions
    unreachable when this flag (from `CS%useALEalgorithm`) is true.
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    4b6f45e View commit details
    Browse the repository at this point in the history
  9. Tidal mixing pointer cleanup

    * `tidal_mixing_CS` pointers moved to locals
    * `tidal_mixing_CSp` in diffusivity renamed to `tidal_mixing`
    * Most of the pointer-declared fields converted to allocatables.
    * Local `dd` pointers to `CS%dd` removed
    * Reorder calculate_tidal_mixing (and sub-procedure) args
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    2540b4e View commit details
    Browse the repository at this point in the history
  10. Geothermal heating pointer removal

    * `geothermal_CS` converted from pointers to locals
    * Instance of `geothermal_CS` in diabatic driver changed to local
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    e50c667 View commit details
    Browse the repository at this point in the history
  11. Opacity pointer removal

    * Diabatic driver `opacity_CSp` renamed to `opacity`, changed to local
    * Instances of `optics` and `opacity_CS` converted to locals
    * Fields in `opacity_CS` and `optics_type` changed to allocatables
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    1a3a20a View commit details
    Browse the repository at this point in the history
  12. Bulk mixed layer pointer removal

    * `bulkmixedlayer_CS` pointers moved to locals
    
    * Diabatic driver renamed variables:
      * `bulkmixedlayer` flag -> `use_bulkmixedlayer`
      * `bulkmixedlayer_CSp` -> `bulkmixedlayer`
    
    * Some redundant documentation removed
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    3152a9e View commit details
    Browse the repository at this point in the history
  13. Energetic PBL pointer removal

    * `energetic_PBL_CS` pointers changed to locals in main module
    * `energetic_PBL_CSp` changed to local and renamed to `energetic_PBL`
      in diabatic driver.
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    e3d59fe View commit details
    Browse the repository at this point in the history
  14. Regularize layers pointer removal

    * `regularize_layer_CS` pointers in module moved to local
    * `regularize_layer_CSp` in diabatic driver moved to local
    * diabatic drriver `regularize_layer_CSp` renamed to drop `_CSp`
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    d6e98dc View commit details
    Browse the repository at this point in the history
  15. CVMix convection pointer removal

    * `CVMix_conv_CS` in diabatic driver renamed to `CVMix_conv`
    * Pointer instances of `CVMix_conv_CS` changed to locals
    * `CVMix_end` function removed, since it did nothing.
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    5d0160a View commit details
    Browse the repository at this point in the history
  16. MEKE_type pointer removal

    * `MEKE_type` pointers of many arguments and control structures changed
      from pointers to locals
    
    * `MEKE` input removed from the following:
        * `initialize_dyn_unsplit`
        * `initialize_dyn_unsplit_RK2`
    
    * Many `associated(MEKE)` checks have been removed, and now rely on
      associations of individual components within MEKE
    
      This is just "passing the buck" and not solving the underlying issue
      of decision-by-allocation, but it's closer to a true solution.
    
    * Pointer fields inside `MEKE_type` converted to allocatables
    
      `associated()` tests for them replaced with `allocatable()`
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    65a3516 View commit details
    Browse the repository at this point in the history
  17. Variable mixing pointer removal

    * `VarMix_CS` pointer instances redefined as locals
    
    * `associated(VarMix)` tests replaced with `VarMix%use_variable_mixing`.
    
      This ought to be identical, since `VarMix_init()` deallocates the CS
      if this flag is unset (False), and the function is always called.
    
    * VarMix arrays changed from pointers to allocatables
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    1cef96c View commit details
    Browse the repository at this point in the history
  18. Wave speed pointer removal

    * `wave_speed_CS` pointers redefined as locals
    * `wave_speed_CSp` in varmix and diagnostics renamed to `wave_speed`
    * `S` and `T` pointers removed
    
    wave speed update
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    bbf0f52 View commit details
    Browse the repository at this point in the history
  19. MOM_restart_cs pointer removal

    * Most `MOM_restart_CS` instances changed from pointers to locals
    
    * `MOM_restart_CS` removed from unsplit dyncore subroutines
    
    * `restart_CSp` renamed to `restart_CS` in many functions
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    7a63130 View commit details
    Browse the repository at this point in the history
  20. Barotropic CS pointer removal

    * Instances of `barotropic_CS` pointers changed to locals
    * `barotropic_CSp` removed from MOM module, as it was unused
    * `frhat[uv]1` converted to allocatable
    * `BT_OBC` field pointers to allocatable
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    09a990c View commit details
    Browse the repository at this point in the history
  21. Wave structure CS pointer

    * `wave_structure_CS` instances changed from pointer to local
    * T and S aliases to `tv` in `MOM_wave_structure` removed
    * `wave_structure_CSp` renamed to `wave_struct` in internal tides
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    8632fee View commit details
    Browse the repository at this point in the history
  22. ALE sponge pointer removal (partial)

    * Some instances of `ALE_sponge_CS` declared as local
    * Redfined many allocatable arrays declared as pointers
    
    Much of this module was left unmodified, due to a lot of decision making
    based on the associated status of the CS.
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    b176571 View commit details
    Browse the repository at this point in the history
  23. MOM diagnostic pointer removal

    * diagnostic field pointers changed to allocatables
    * `safe_alloc_ptr` calls replaced with `allocate()`
    * Some instances of `diagnostics_CS` passed as type
    * `diagnostics_CS` in MOM_mod moved to stack
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    5b1dd3f View commit details
    Browse the repository at this point in the history
  24. set_visc_CS pointer removal

    Convert `set_visc_CS` pointer instances to locals
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    c4fd89d View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    62edfdb View commit details
    Browse the repository at this point in the history
  26. Equation of state pointer removal

    * `EOS_type` pointers in MOM_EOS_mod moved to locals
    * Various `EOS_type` pointers changed to local
    * `eqn_of_state` removed from the following:
      - `adjustment_initialize_temperature_salinity`
      - `BFB_set_coord`
      - `dense_water_initialize_TS`
      - `DOME2d_initialize_temperature_salinity`
      - `dumbbell_initialize_temperature_salinity`
      - `Neverworld_initialize_thickness`
      - `Rossby_front_initialize_temperature_salinity`
      - `seamount_initialize_temperature_salinity`
      - `sloshing_initialize_temperature_salinity`
      - `USER_initialize_temperature_salinity`
      - `USER_set_coord`
    * `EOS` removed from neutral diffusion unit test
    
    NOTE: eqn_of_state in MOM_mod is retained, since there are many checks
    of pointer associated of `tv%eqn_of_state`.
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    c4df748 View commit details
    Browse the repository at this point in the history
  27. CoriolisAdv_CS pointer removal

    Redefine Coriolis advection pointers as locals
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    4ee4dc5 View commit details
    Browse the repository at this point in the history
  28. PressureForce CS pointer removal

    * The following control structures were moved to locals:
      * `PressureForce_CS`
      * `PressureForce_FV_CS`
      * `PressureForce_Mont_CS`
    * The `*_end()` functions no longer do anything and were removed
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    dc9adeb View commit details
    Browse the repository at this point in the history
  29. MOM continuity CS pointer removal

    These pointers were defined as locals
    
    * `MOM_continuity_CS`
    * `MOM_continuity_PPM_CS`
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    a250208 View commit details
    Browse the repository at this point in the history
  30. MOM_open_boundary pointer removal

    This patch replaces many pointers in the OBC with local or allocatable
    variables.
    
    Notes:
    * `OBC` redeclared as `target` in some places for `segment` pointers
    * `field_names` removed from `OBC_segment_type`
    * `Tr_Reg` removed from `set_tracer_data`
    * `OBC` removed from `deallocate_OBC_segment_data`
    marshallward committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    d00c90b View commit details
    Browse the repository at this point in the history
  31. small fixes to porous topo code

    * Style Fixes
    
    * Store depths for porous curve fitting as [Z ~> m] and account for Z_ref
    sditkovsky authored Nov 19, 2021
    Configuration menu
    Copy the full SHA
    bc82609 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2021

  1. Configuration menu
    Copy the full SHA
    844c4c7 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #4 from herrwang0/hor_visc_typos

    Correct a couple of typos in hor_visc
    Hallberg-NOAA authored Nov 21, 2021
    Configuration menu
    Copy the full SHA
    7b96ac1 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2021

  1. Configuration menu
    Copy the full SHA
    8a73a35 View commit details
    Browse the repository at this point in the history
  2. Add initialization tests using CS%initialized

      Added a new variable, initialized, to the control structures of modules that
    had been testing for an allocated control structure to verify that it had been
    initialized before it was going to be used, and then duplicated the tests using
    this new variable.  This was done to enable us to go ahead with MOM6 PR #5,
    which eliminated many of these checks when converting the control structures
    from pointers in the parent modules to elements that are always there, and then
    passing them as simple types instead of as pointers.  If we decide that we do
    not need these tests after all, we can easily delete them, but until this is
    discussed, this commit avoids losing the messages, as it was easier to do it
    this way instead of trying to recreate them after they had been removed.  All
    answers and output are bitwise identical.
    Hallberg-NOAA committed Nov 22, 2021
    Configuration menu
    Copy the full SHA
    be50361 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #5 from marshallward/no_more_pointers

    Redefine ~500 pointers as local or stack variables
    Hallberg-NOAA authored Nov 22, 2021
    Configuration menu
    Copy the full SHA
    b2f6678 View commit details
    Browse the repository at this point in the history

Commits on Nov 23, 2021

  1. Corrected the descriptions of 60 variables

      Corrected the units or made other clarifications in comments describing 60
    variables in 28 files.  In addition three unused (and unscaled) variables were
    eliminated.  All answers and output are bitwise identical.
    Hallberg-NOAA committed Nov 23, 2021
    Configuration menu
    Copy the full SHA
    4e67533 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4e6e73f View commit details
    Browse the repository at this point in the history
  3. +Add G%Rad_Earth_L and related code simplification

      Add a dimensionally rescaled variable with the radius of the Earth in [L ~> m]
    to the ocean_grid_type and dyn_hor_grid type to expand dimensional consistency
    testing.  For now it exists along-side the previous variable with the radius of
    the Earth in [m], which might be used in other drivers or user code that we are
    not aware of.  All instances in the MOM6 code that were using the unscaled
    variable G%Rad_Earth were changed to use the dimensionally scaled variable
    G%Rad_Earth_L.  In addition, the code for setting up the grid metrics was
    simplfied by completing the dimensional rescaling of its internal variables
    and some grid rescaling factors that were no longer in use were eliminated.
    As a part of this change, a unit_scale_type argument was added to the interface
    for USER_initialize_tracer.
    
      In addition, a number of comments were changed to clearly distinguish between
    dimensionally scaled variables that scale back to a nondimensional variable that
    can take on a range of values (using the syntax [... ~> nondim]), as opposed to
    variables that are only a combination of dimensional scaling factors that
    resolve back to 1 in MKS units (using the syntax [... ~> 1]).
    
      All answers are bitwise identical, but there is one minor interface change
    and there are new elements in several widely used transparent types.
    Hallberg-NOAA committed Nov 23, 2021
    Configuration menu
    Copy the full SHA
    2b0bb96 View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2021

  1. preserve dimensions in porous topo interpolation

    * changed porous topo code to preserve dimensions
    
    * readded rotations that got lost in merge
    sditkovsky authored Nov 24, 2021
    Configuration menu
    Copy the full SHA
    e717e46 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    04d932e View commit details
    Browse the repository at this point in the history
  3. small bug fix

    sditkovsky authored Nov 24, 2021
    Configuration menu
    Copy the full SHA
    a98c3ef View commit details
    Browse the repository at this point in the history
  4. small bug fix 2

    sditkovsky authored Nov 24, 2021
    Configuration menu
    Copy the full SHA
    66e1493 View commit details
    Browse the repository at this point in the history
  5. fix merge issue

    sditkovsky authored Nov 24, 2021
    Configuration menu
    Copy the full SHA
    62786c4 View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2021

  1. Merge pull request #6 from Hallberg-NOAA/initialized_tests

    Add initialization tests using CS%initialized
    marshallward authored Nov 25, 2021
    Configuration menu
    Copy the full SHA
    6608730 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d8abf05 View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2021

  1. Merge pull request #7 from Hallberg-NOAA/more_unit_fixes

    Corrected the descriptions of 60 variables
    marshallward authored Nov 26, 2021
    Configuration menu
    Copy the full SHA
    4a7ab45 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dc4e707 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2021

  1. Merge pull request #8 from Hallberg-NOAA/rescaled_Rad_Earth

    +Add G%Rad_Earth_L and related code simplification
    marshallward authored Nov 27, 2021
    Configuration menu
    Copy the full SHA
    470ed7b View commit details
    Browse the repository at this point in the history
  2. (*)Fix rescaling when SPLIT_BOTTOM_STRESS = True

      Corrected the dimensional rescaling of the explicit bottom stresses that are
    passed to btstep() when SPLIT_BOTTOM_STRESS = True.  Without this correction,
    solutions would not pass the dimensional consistency tests in this case.
    Thankfully, the parameter setting in question does not seem to be widely used,
    and even if it is, answers will not change when Z_RESCALE_POWER = 0.  All
    answers and output in the MOM6-examples test suite are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Nov 27, 2021
    Configuration menu
    Copy the full SHA
    2a82bbd View commit details
    Browse the repository at this point in the history

Commits on Nov 28, 2021

  1. (*)Refactored and fixed pseudo_salt_tracer code

      Refactored the pseudo_salt_tracer code to avoid using fluxes%netSalt, instead
    calculating the surface fluxes directly from fluxes%saltFlux, in preparation to
    get rid of the largely redundant fluxes%netSalt element, but also to correct for
    the fact that fluxes%netSalt does not have proper scaling to pass dimensional
    consistency testing.  Also made the CS%diff element of pseudo_salt_tracer_CS
    into an allocatable instead of it being a pointer, and changed the tests for
    whether it is allocated appropriately.  Several unused variables were
    eliminated, and some comments corrected or reformated.  This does not impact
    solutions, but the pseudo_salt and pseudo_salt_diff diagnostics are now
    invariant to dimensional rescaling, whereas before they were not.  All solutions
    and output in MOM6-examples are bitwise identical.
    Hallberg-NOAA committed Nov 28, 2021
    Configuration menu
    Copy the full SHA
    6c01c8d View commit details
    Browse the repository at this point in the history
  2. +Eliminate forcing%netSalt

      Eliminated the no-longer used and previously improperly rescaled netSalt
    element from the forcing type.  Also added the missing deallocate statements
    for fluxes%netMassOut and fluxes%netMassIn in deallocate_forcing_type().  All
    answers and output are bitwise identical, although an element has been removed
    from a transparent type.
    Hallberg-NOAA committed Nov 28, 2021
    Configuration menu
    Copy the full SHA
    111b3e7 View commit details
    Browse the repository at this point in the history
  3. +Clean up dimensional rescaling in write_u_accel

      Pass wind stresses to write_u_accel() and write_v_accel() in [R L Z T-2 ~> Pa]
    without requiring external rescaling first.  Also cleaned up the dimensional
    scaling in MOM_PointAccel.F90, so that all arguments and internal variables use
    the dimensionally rescaled variables with cleaner and standardized syntax, and
    there are comments clearly describing all real variables in this module.
    Moreover, several rescaling bugs were corrected in these routines, so that if
    there are velocity truncations, now the output will be invariant to rescaling,
    whereas before some reported values were not being properly scaled back to MKS
    units.  All answers and output from the MOM6-examples regression suite are
    bitwise identical.
    Hallberg-NOAA authored and marshallward committed Nov 28, 2021
    Configuration menu
    Copy the full SHA
    c54dcc6 View commit details
    Browse the repository at this point in the history
  4. +Rescale fluxes passed to KPP_NonLocalTransport

      Applied appropriate rescaling for dimensional consistency testing to the net
    heat and salt fluxes calculated in calculateBuoyancyFlux and used in the two
    KPP_NonLocalTransport_...() routines.  Several comments describing variables
    were also either corrected or added.  All answers are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Nov 28, 2021
    Configuration menu
    Copy the full SHA
    a65fbed View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2021

  1. Refactored DOME_initialize_sponges() (#12)

    Bitwise identical refactoring of the code in DOME_initialize_sponges,
    including renaming variables for greater clarity, adding variables for several
    dimensional constants, and correcting comments.  This also includes more careful
    handling of the DOME OBCs in DOME_set_OBC_data() to hopefully avoid some obvious
    problems (noted in a comment about a "fight with T,S") that would arise if a
    DOME case were set up that used temperature and salinity. Future revisions
    should add more runtime parameters to specify the details of this case, but
    properly doing so would involve changing the order of arithmetic; this has not
    happened in this case.  All real variables in this module are now described in
    comments.  All answers and output are bitwise identical.
    
    Co-authored-by: Marshall Ward <marshall.ward@noaa.gov>
    Hallberg-NOAA and marshallward authored Nov 29, 2021
    Configuration menu
    Copy the full SHA
    32d0a4e View commit details
    Browse the repository at this point in the history
  2. change conversion H_to_MKS to H_to_m for u/veffA

    * also small fix to porous module. invert order of do loops
    sditkovsky authored Nov 29, 2021
    Configuration menu
    Copy the full SHA
    ec84be5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3f38239 View commit details
    Browse the repository at this point in the history
  4. +Rescaled flux arguments to tracer_vertdiff()

      Changed the units of the optional surface and bottom tracer fluxes, sink rate,
    and bottom tracer reservoir arguments to tracer_vertdiff() and
    tracer_vertdiff_Eulerian() to fully rescaled units (like [Conc R Z T-1] and
    [Z T-1]) for greater dimensional consistency testing.  Only the two CFC packages
    are using the flux arguments, so they were rescaled in those modules as well.
    Several unused variables or unnecessary pointers were removed from the CFC
    tracer modules, and some comments were revised or added to indicate the
    dimensions of a number of internal variables in these same modules.  All answers
    are bitwise identical in the MOM6-examples regression suite, and only
    dimensional rescaling factors are changed (so nothing will have changed without
    any rescaling), but it should be noted that testing of the CFC tracer packages
    is less comprehensive than would be ideal.
    Hallberg-NOAA committed Nov 29, 2021
    Configuration menu
    Copy the full SHA
    13a1cde View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2021

  1. Merge pull request #3 from sditkovsky/porous_topo_sjd

    (+) porous topography implementation
    Hallberg-NOAA authored Nov 30, 2021
    Configuration menu
    Copy the full SHA
    2087e05 View commit details
    Browse the repository at this point in the history
  2. Bug fix for reading First_direction from restart

    * A bug on reading parameter First_direction from the restart is fixed.
    Previously, it only works when rotate_index is .true.
    * A FATAL error is now issued when both ROTATE_INDEX and
    ALTERNATE_FIRST_DIRECTION are .true. This should only be treated as a
    temporary patch.
    * Local variable first_direction in initialize_MOM is slightly
    repurposed to exclude any modication by rotate_index turns.
    This helps clarify the meaning of First_direction in restart files,
    making it independent from index rotation.
    herrwang0 committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    3597433 View commit details
    Browse the repository at this point in the history
  3. Expanded comments describing src/core code (NOAA-EMC#13)

    Added comments describing all of the real variables in the src/core directory
    that did not previously have them, and corrected multiple spelling error in this
    same directory.  This PR also updates the description of the MOM6 code structure
    in MOM.F90 and adds dimensional descriptions to the commends describing a number
    of variables.  Descriptions of the units of some variables were also added or
    corrected in a number of the src/tracer files.  Changes are largely restricted
    to comments describing varibles, although a few unused variables were removed.
    One comment added to MOM_dynamics_split_RK2.F90 notes a possible memory leak,
    due to a missing deallocate call, but the actual correction of this leak will be
    delayed to a later, much more targeted commit.  All answers and output are
    bitwise identical.
    Hallberg-NOAA authored Nov 30, 2021
    Configuration menu
    Copy the full SHA
    e218478 View commit details
    Browse the repository at this point in the history
  4. Minor code cleanup in drivers/FMS_cap

    Various minor code cleanup in the drivers/FMS_cap directory, including:
      o Rescaled the internal latent_heat variables in the control structure for
        MOM_surface_forcing_gfdl for improved dimensional consistency testing.
      o Removed the unused local variable PmE_adj in convert_IOB_to_fluxes().
      o Corrected the documented units or fixed spelling errors in several comments.
    All answers and output are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    a0248ef View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7d39f26 View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2021

  1. Cleaned up whitespace leftover from porous topomerge.

    - Spacing within expressions was uneven and made multiplation look like
      POW functions. Leftover from merging NOAA-GFDL#3.
    - No answer changes.
    adcroft authored and marshallward committed Dec 1, 2021
    Configuration menu
    Copy the full SHA
    f67e030 View commit details
    Browse the repository at this point in the history
  2. Fix out-of-bounds k index in PPM flux

    - An errant use of the porous face area led to an out-of-bounds k-index
      reported in NOAA-GFDL#19.
    - Closes NOAA-EMC#19
    adcroft authored and marshallward committed Dec 1, 2021
    Configuration menu
    Copy the full SHA
    ceb181f View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2021

  1. Testing: Codecov uploader update

    This patches updates the codecov uploader to the new version, replacing
    the bash uploader to be phased out in 2022.
    
    The uploader URL is now a configuable variable, and the coverage scripts
    have been modified to accommodate changes in the uploader.
    
    Under this new uploader, the coverage reports must be generated locally,
    rather than relying on the bash script to call gcov.  So we now generate
    these scripts based on the *.gcda output.
    marshallward committed Dec 2, 2021
    Configuration menu
    Copy the full SHA
    d716745 View commit details
    Browse the repository at this point in the history
  2. Code cleanup in drivers/solo_driver forcing files

    Code cleanup in the drivers/FMS_cap directory forcing files, including:
      o Rescaled several internal wind stress variables in the control structure for
        solo_driver/MOM_surface_forcing.F90 for improved dimensional consistency
        testing.
      o Added the variable Pa_to_RLZ_T2 to help clarify the conversion factors
        being applied to several hard-coded constant stresses.  These hard-coded
        constant wind stress magnitudes should be replaced with variables in
        wind_forcing_2gyre(), wind_forcing_1gyre() and Neverworld_wind_forcing()
        but this needs to be done carefully to avoid breaking existing solutions.
      o Removed or commented out unused variables, as appropriate.
      o Corrected or added documented units
      o Added comments describing all real variables in this directory.
      o Fixed spelling errors in several comments.
    All answers and output are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Dec 2, 2021
    Configuration menu
    Copy the full SHA
    6494852 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5361174 View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2021

  1. Merge pull request NOAA-EMC#16 from Hallberg-NOAA/refactor_pseudo_sal…

    …t_tracer
    
    +(*)Pseudo_salt_tracer and forcing%netSalt
    marshallward authored Dec 4, 2021
    Configuration menu
    Copy the full SHA
    585cc70 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2dbd055 View commit details
    Browse the repository at this point in the history
  3. Bugfix: cpu clock sync error

    This patch fixes an error in the `sync` flag of the cpu clocks.
    
    Previously, we would set the sync bit of a flag based on the presence of
    sync, rather than testing if the value was true.  This would cause
    potential hangs in any clock that set `sync`, including `.false.`.
    
    This patch correctly replaces the single `ibset` call with an if-block
    to either `ibset` or `ibclr`.
    marshallward committed Dec 4, 2021
    Configuration menu
    Copy the full SHA
    36d4f7f View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2021

  1. Merge pull request NOAA-EMC#17 from Hallberg-NOAA/tracer_sfc_flux_res…

    …cale
    
    +Rescaled flux arguments to tracer_vertdiff()
    marshallward authored Dec 5, 2021
    Configuration menu
    Copy the full SHA
    a44e460 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    264fc20 View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2021

  1. Merge pull request NOAA-EMC#18 from herrwang0/bugfix_alternate_first_dir

    Bug fix for reading First_direction from restart
    Hallberg-NOAA authored Dec 6, 2021
    Configuration menu
    Copy the full SHA
    ad35e4a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7d80abc View commit details
    Browse the repository at this point in the history
  3. Merge pull request NOAA-EMC#21 from marshallward/new_codecov_uploader

    Testing: Codecov uploader update
    Hallberg-NOAA authored Dec 6, 2021
    Configuration menu
    Copy the full SHA
    7e1474e View commit details
    Browse the repository at this point in the history
  4. +Add the new routine unit_no_scaling_init

      Added the public interface unit_no_scaling_init() to the MOM_unit_scaling
    module to initialize a non-scaling unit_scale_type without requiring a
    param_file_type argument.  This should be useful for certain trivial unit tests,
    and it makes it more plausible to make the unit_scale_type arguments mandatory.
    As a part of this change, the new internal subroutine set_unit_scaling_combos()
    was carved out of unit_scaling_init to avoid code duplication.  Also added
    comments describing the effective units of the various scaling factors with the
    standard MOM6 notation.  All answers and output are bitwise identical.
    Hallberg-NOAA committed Dec 6, 2021
    Configuration menu
    Copy the full SHA
    e48f4a7 View commit details
    Browse the repository at this point in the history
  5. (*)Provide US arguments to 4 existing calls

      Provide optional US arguments to 4 existing calls to set_grid_metrics() and
    MOM_initialize_topography(), enabling these arguments to become mandatory in the
    next commit.  In some cases this requires a call to unit_no_scaling_init() or
    the removal of a call to rescale_dyn_horgrid_bathymetry().  In addition, a
    mis-scaled value was corrected in the initialization of the ODA control
    structures private thickness array; this latter issue is not a problem for
    Boussinesq models without dimensional rescaling (i.e. the tested cases), but
    could change answers in other cases with data assimilation.  All answers in
    the MOM6-examples or TC test cases are bitwise identical.
    Hallberg-NOAA committed Dec 6, 2021
    Configuration menu
    Copy the full SHA
    59c5926 View commit details
    Browse the repository at this point in the history
  6. +Make US arguments non-optional for 28 routines

      Made the unit_scale_type arguments non-optional for 28 routines.  These
    arguments had been optional in the first place to manage the coordination
    between the MOM6 and SIS2 repositories, but SIS2 has been using these optional
    arguments for several years now, and they can be made mandatory without imposing
    any disruptions.  This change simplifies and clarifies the code.  All answers
    and output are bitwise identical.
    Hallberg-NOAA committed Dec 6, 2021
    Configuration menu
    Copy the full SHA
    3162bd0 View commit details
    Browse the repository at this point in the history
  7. Docs: Add NASA-GMAO to consortium figure

    This patch updates the PNG file of the consortiums in the docs to
    include the NASA-GMAO group.
    marshallward committed Dec 6, 2021
    Configuration menu
    Copy the full SHA
    763ddab View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2021

  1. +Add post_product_[uv] and post_product_sum_[uv]

      Added four new routines to within MOM_diag_manager.F90 to write out a
    diagnostic based on the product of two arrays at velocity points, either as a
    3-d diagnostic or a 2-diagnostic of the vertical sum.  Doing it this way both
    simplifies the higher level code and promotes the reuse of scratch arrays for
    diagnostics.  In tests that use these new interfaces, diagnostics are identical
    to their previous values.  All answers are bitwise identical, but there are 4
    new public interfaces.
    Hallberg-NOAA authored and marshallward committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    e756a69 View commit details
    Browse the repository at this point in the history
  2. Use post_product_u for momentum budget diagnostics

      Use the new post_product_[uv] and post_product_sum_[uv] routines to simplify
    the code calculating derived diagnostics of the momentum budget in
    step_MOM_dyn_split, calculate_diagnostic_fields(), horizontal_viscosity(),
    vertvisc(), and layered_diabatic().  Also relocated the units for several
    diagnostics to the same lines as their conversion factors in some calls to
    register_diag_field, to make it easier to spot diagnostics with inconsistent
    reported units, and removed variables that are no longer used.  All answers and
    diagnostics are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    c0be5d3 View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2021

  1. +Rescale fluxes%net_mass_src and other diagnostics (NOAA-EMC#23)

    Retaing dimensional rescaling for several diagnostics:
    - Apply dimensional rescaling of fluxes%net_mass_src to and the net_mass_src
      argument to get_net_mass_forcing to [R Z T-1].
    - Rescaled the patm argument of convert_state_to_ocean_type to [R L2 T-2]
      and press_to_Z to [Z T2 R-1 L-2]; these are not actually exercised yet,
      so this has a very limited scope, although three other local variables were
      also dimensionally rescaled.
    - Revised the line breaks in two calls to register_restart to place the units
      and conversion factos on the same line, following a widespread code pattern.
    - Used the scale argument in calls to global_area_integral or global_area_mean
      for 6 diagnostics, so that 3 other primary variables can be calculated in
      scaled units and rescaled via factors specified in the register_restart calls,
      following a widespread code pattern.
    All answers and output are bitwise identical.
    Hallberg-NOAA authored Dec 8, 2021
    Configuration menu
    Copy the full SHA
    5f21667 View commit details
    Browse the repository at this point in the history
  2. +Rescale forcing arguments and revise ctrl_forcing (NOAA-EMC#25)

    * +Rescale forcing arguments and revise ctrl_forcing
    
      This commit revisits the units of the input arguments to the various ocean-
    only surfaces forcing routines, including:
    - Rescaled the units of the time intervals passed to the various forcing
      routines to [T ~> s]
    - Applied dimensional scaling to MOM_controlled_forcing.F90.  This code is
      not yet in active use, so these changes can not change answers, but it is
      now much closer to compliance with modern MOM6 standards, including improved
      documentation, and could be ready to try without too much more effort.
    - Documented the remaining real variables in benchmark_initialization.F90,
      along with their units.
    
    All answers are bitwise identical, but there are changes to the units of some
    arguments in public interfaces.
    Hallberg-NOAA authored Dec 8, 2021
    Configuration menu
    Copy the full SHA
    e2c81e9 View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2021

  1. Configuration menu
    Copy the full SHA
    3ce6a31 View commit details
    Browse the repository at this point in the history
  2. +Remove clocks inside of j-loops

      Removed clocks that were being called from inside of j-loops in two modules.
    These are inefficient and can cause the model to hang in some cases if used, and
    there are better ways to get timing information at this level.  If there is
    interest in the timing breakdown at this level, the code should be restructured
    to move the key blocks outside of the j-loops.  The run-time parameter
    ALLOW_CLOCKS_IN_OMP_LOOPS is no longer being used so it is now obsoleted. All
    answers are bitwise identical, but there are changes to some MOM_parameter_doc
    files.
    Hallberg-NOAA authored and marshallward committed Dec 9, 2021
    Configuration menu
    Copy the full SHA
    833cd30 View commit details
    Browse the repository at this point in the history
  3. Deallocate eta_PF_start to avoid a memory leak

      Added a deallocate call for eta_PF_start in step_MOM_dyn_split_RK2() to
    avoid a possible memory leak.  All answers are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Dec 9, 2021
    Configuration menu
    Copy the full SHA
    8b5c1c8 View commit details
    Browse the repository at this point in the history
  4. +Set find_salt_root if SHELF_THREE_EQN = .False.

      Set find_salt_root even if SHELF_THREE_EQN = .False. to avoid using an
    uninitialized logical to determine which parameters are logged.  Without this
    the contents of some MOM_parameter_doc.all files could depend on the state of
    uninitialized memory and was compiler dependent in some cases.  All answers are
    bitwise identical, but in some cases the contents of MOM_parameter_doc files
    could be corrected.
    Hallberg-NOAA authored and marshallward committed Dec 9, 2021
    Configuration menu
    Copy the full SHA
    3f46b6a View commit details
    Browse the repository at this point in the history
  5. +Obsolete ETA_TOLERANCE_AUX

      The runtime parameter ETA_TOLERANCE_AUX was being read but was never used, so
    it is being obsoleted.  However, because some experiments were using this and
    there are effectively no changes in behavior, a warning will be issued instead
    of a fatal error if this parameter is set.  All answers are bitwise identical,
    but there are changes to some MOM_parameter_doc files.
    Hallberg-NOAA authored and marshallward committed Dec 9, 2021
    Configuration menu
    Copy the full SHA
    ec553aa View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2021

  1. (*)Fix extract_diabatic_member

      Return the diabatic_aux_CSp from extract_diabatic_member it is present as an
    optional argument.  Somehow this was omitted when this routine was created, but
    without this correction the offline tracer mode returns a segmentation fault.
    Also, added the proper conversion factor in the register_diag_field call for
    e_predia, and internally calculate the interface heights in units of [Z ~> m]
    for dimensional consistency testing.  All answers are bitwise identical in
    cases that ran before.
    Hallberg-NOAA committed Dec 10, 2021
    Configuration menu
    Copy the full SHA
    d733714 View commit details
    Browse the repository at this point in the history
  2. Warn if opacity_from_chl is called without fluxes

      Issue a warning with a helpful message if opacity_from_chl is called with no
    shortwave fluxes, and added logical tests to avoid a segmentation fault later in
    this routine.  This should not happen, as it makes no sense, but it was
    occurring with the offline tracer code, and can be avoided by setting
    PEN_SW_NBANDS=0 if there are no shortwave fluxes to penetrate.  Also turned the
    real dimensional parameter op_diag_len into a variable and set it immediately
    before where it is used.  Many spelling errors were also corrected in
    MOM_opacity.F90.  All answers are identical in cases that ran before.
    Hallberg-NOAA committed Dec 10, 2021
    Configuration menu
    Copy the full SHA
    5172c49 View commit details
    Browse the repository at this point in the history
  3. Correct comments describing advect_tracer args

      Corrected the comments describing the optional arguments to advect_tracer and
    fixed a few spelling errors in comments.  All answers are bitwise identical.
    Hallberg-NOAA committed Dec 10, 2021
    Configuration menu
    Copy the full SHA
    90739be View commit details
    Browse the repository at this point in the history
  4. Update indexing of array passed to data_override.

    The arrays passed to data_overrride need to be sized as the compute
    domain. Added indices to pass to data_override.
    wfcooke authored and marshallward committed Dec 10, 2021
    Configuration menu
    Copy the full SHA
    3364af1 View commit details
    Browse the repository at this point in the history
  5. Correct out of bounds index (por_face_areaU) bug

      Corrected the expressionfs for the por_face_areaU arguments being passed to zonal_face_thickness to
    avoid the array out-of-bounds index errors highlighted in MOM6 issue NOAA-EMC#24. Also
    added comments noting where the por_face_area arrays should probably be included
    in the effective (relative) face thickness calculations that are later used for
    finding the vertically averaged accelerations by the barotropic solver.  All
    answers and output are bitwise identical in cases that work, but this should
    avoid some run-time or compile-time errors with some compiler settings.
    Hallberg-NOAA authored and marshallward committed Dec 10, 2021
    Configuration menu
    Copy the full SHA
    2319139 View commit details
    Browse the repository at this point in the history
  6. (*)Offline tracer read bug fix

      Corrected bugs in the offline tracer code that were preventing it from
    reproducing across processor counts (and perhaps working sensibly at all). All
    answers and output in the MOM6-examples regression suite are bitwise identical.
    Although answers with the offline tracer code will change because of the bug
    fix, because of some bugs that were fixed in another recent commit, it was
    previously impossible to have run the offline tracer cases at all.
    Hallberg-NOAA committed Dec 10, 2021
    Configuration menu
    Copy the full SHA
    05edb63 View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2021

  1. +Refactored and rescaled the offline tracer code

      Substantially refactored the offline tracer code.  This refactoring includes
    adding grid and unit_scale_type arguments to several routines related to the
    offline tracer code.  An offline tracer advection test case is now consistent
    across processor layouts and pass the dimensional rescaling tests (including the
    chksums in debug mode), and there are comments describing all the real variables
    and their dimensions in the offline tracer routines.  All answers and output are
    bitwise identical.
    Hallberg-NOAA committed Dec 11, 2021
    Configuration menu
    Copy the full SHA
    fcfd238 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    09bcea2 View commit details
    Browse the repository at this point in the history
  3. +(*)Revised offline tracer algorithms

      Minorly revised the algorithms used for offline tracer advection for
    rotational consistency, and for exact reproducibility across PE layouts by using
    reproducing sums to detect convergence.  This also includes some changes to use
    roundoff to detect convergence instead of fixed values.   Also replaced some
    divisions with multiplication by a reciprocal.  In addition, some of the
    optional arguments to advect_tracer that are only used for offline tracer
    advection were renamed or revised for clarity and reordered for the convenience
    of the non-offline-tracer code.
    
      Although answers with the offline tracer code will change slightly because of
    this refactoring, because of some bugs that were fixed in another recent commit,
    it was previously impossible to have run the offline tracer cases at all.  All
    answers and output in the MOM6-examples regression suite are bitwise identical.
    Hallberg-NOAA committed Dec 11, 2021
    Configuration menu
    Copy the full SHA
    112ac49 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0895fe3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    fbafcb1 View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2021

  1. Merge pull request NOAA-EMC#29 from Hallberg-NOAA/mandatory_US_args

    +(*)Make unit_scale_type arguments non-optional
    marshallward authored Dec 12, 2021
    Configuration menu
    Copy the full SHA
    86b91dc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e452a29 View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2021

  1. Merge pull request NOAA-EMC#27 from marshallward/cpu_clock_sync_bugfix

    Bugfix: cpu clock sync error
    Hallberg-NOAA authored Dec 13, 2021
    Configuration menu
    Copy the full SHA
    7ae28b8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8824671 View commit details
    Browse the repository at this point in the history
  3. Merge pull request NOAA-EMC#31 from marshallward/consortium_fig_update

    Docs: Add NASA-GMAO to consortium figure
    Hallberg-NOAA authored Dec 13, 2021
    Configuration menu
    Copy the full SHA
    8f5dc28 View commit details
    Browse the repository at this point in the history

Commits on Dec 14, 2021

  1. Eliminate unneeded diagnostic arrays

      Eliminated 18 unnecessary 3-d allocatable arrays and 5 2-d allocatable arrays
    from the MOM_diagnostics control structure, replacing them with reused local
    stack arrays.  Also collected the registration of time derivatives and the
    allocation of memory for intermediary diagnostics in set_dependent_diagnostics.
    All answers and output are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Dec 14, 2021
    Configuration menu
    Copy the full SHA
    cf931b1 View commit details
    Browse the repository at this point in the history
  2. MOM_sponge cleanup

      Use the proper conversion factor for the w_sponge diagnostic, eliminated some
    unnecessary local copies of the domain sizes in the sponge control structure,
    and added more detailed descriptions of some of the variables in this module.
    All answers and output are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Dec 14, 2021
    Configuration menu
    Copy the full SHA
    170fffd View commit details
    Browse the repository at this point in the history
  3. Use G%Rad_Earth_L in mct and NUOPC cap code

      Modified the two lines where the mct and NUOPC caps were using G%Rad_Earth to
    instead use G%Rad_Earth_L, and cancelled out the dimensional rescaling factors
    on these lines that are no longer appropriate.  All answers should be bitwise
    identical, but because this change is to code that is not routinely exercised by
    testing with MOM6-examples, extra care should be taken in assessing these
    changes.
    Hallberg-NOAA authored and marshallward committed Dec 14, 2021
    Configuration menu
    Copy the full SHA
    6feadd0 View commit details
    Browse the repository at this point in the history
  4. +Rescale some sea-surface height variables to [Z]

      Rescaled the units of four internal sea surface height or related variables in
    MOM.F90 and three sea surface height arguments to post_surface_dyn_diags and
    post_surface_thermo_diags from [m] to [Z ~> m].  Also added a few comments
    describing variables in MOM_diagnostics.F90.  All answers, diagnostics, and
    output are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Dec 14, 2021
    Configuration menu
    Copy the full SHA
    bbb9753 View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2021

  1. Correct the units in two comments

      Corrected the reported unit conversions in two comments describing variables
    in MOM_offline_aux.F90.  All answers and output are bitwise identical.
    Hallberg-NOAA committed Dec 15, 2021
    Configuration menu
    Copy the full SHA
    86eb106 View commit details
    Browse the repository at this point in the history

Commits on Dec 16, 2021

  1. +Rescaled optics%opacity_band

      Rescaled the units of optics%opacity_band from [m-1] to [Z-1 ~> m-1], with the
    opacity values returned from extract_optics_slice also rescaled by the same
    factor, which can be offset by compensating changes to the opacity_scale
    argument.  Also rescaled 4 other internal variables and documented the units on
    3 more.  One uncommon parameter (SW_1ST_EXP_RATIO) listed the wrong units in its
    get_param call, and this was corrected, but turned out not to have been logged
    for any of the MOM6-examples test cases.  Some compensating changes were also
    made in the MOM_generic_tracer module, which directly accesses the contents of
    the optics_type (thereby preventing it from being opaque).  All answers and
    output in the MOM6-examples test suite are bitwise identical.
    Hallberg-NOAA committed Dec 16, 2021
    Configuration menu
    Copy the full SHA
    049241c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    08cd63b View commit details
    Browse the repository at this point in the history
  3. +(*)Avoid segmentation faults if PEN_SW_NBANDS = 0

      Modified three routines in MOM_opacity to avoid segmentation faults if
    PEN_SW_NBANDS = 0, and hence if the optics type is not being allocated.  In the
    case of optics_nbands(), this involved formally changing an optics_type argument
    into a pointer to an optics_type.  (Pointers to an optics_type were already been
    used as the argument in all calls to optics_nbands(), but it was not always
    associated.)  In two other routines, the change is simply to add a return call
    if there are 0 bands of shortwave radiation.  With these changes, the single
    column test cases with no penetrating shortwave radiation now successfully run
    if PEN_SW_NBANDS = 0 and give answers that are identical to those obtained with
    PEN_SW_NBANDS = 1.  All answers and output in cases that ran previously are
    bitwise identical, but there is a subtle change in a public interface.
    Hallberg-NOAA committed Dec 16, 2021
    Configuration menu
    Copy the full SHA
    0544f9f View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2021

  1. Ice dynamics (NOAA-EMC#35)

    * In MOM_ice_shelf_dynamics.F90 changes are  made to calc_shelf_visc() and calc_shelf_driving_stress() to account for an irregular quadrilateral grid. In MOM_ice_shelf_initialize.F90 changes are made to initialize_ice_thickness_from_file() to correct masks at initialization.
    
    * Changed indentation
    
    * Changes are made to 'calc_shelf_visc()` to make computations of the velocity derivatives rotation-invariant. Changes in `update_ice_shelf()` utilize G%IareaT(:,:) instead of 1/G%areaT(:,:).
    OlgaSergienko authored Dec 17, 2021
    Configuration menu
    Copy the full SHA
    50df270 View commit details
    Browse the repository at this point in the history

Commits on Dec 18, 2021

  1. Adding temperature restore capability for SPEAR. (NOAA-EMC#36)

    * Adding temperature restore capability for SPEAR.
    
    Added parameter SPEAR_ECDA_SST_RESTORE_TFREEZE to allow activation of
    sea surface salinity based modification of restoring of temperature.
    The formula used is different from the Millero (default in SPEAR runs)
    scheme.
    
    * removed spaces on blank line.
    
    * (*)Changed hard wired value to parameter defined in MOM_override
    
    The freezing temperature came from SIS2 code. Changing the default value here to be consistent with that. (-0.054 vs -0.0539)
    The salinity restoring code used the -0.0539 value also so answers may change if using that code (RESTORE_SALINITY=T)
    
    * (*)Changed hard wired value to parameter defined in MOM_override
    
    The freezing temperature came from SIS2 code. Changing the default value here to be consistent with that. (-0.054 vs -0.0539)
    The salinity restoring code used the -0.0539 value also so answers may change if using that code (RESTORE_SALINITY=T)
    
    * Forgot to replace the salinity masking mulitplier with the override
    parameter
    wfcooke authored Dec 18, 2021
    Configuration menu
    Copy the full SHA
    12f29f6 View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2021

  1. +Add US args and rescale dt arg to generic tracers

      Added unit_scaling_type arguments to various routines that had previously used
    a unit scaling type, but did so via the G%US pointer, to make the type
    dependencies more explicit and to avoid unnecessary pointer use.  It had been
    the intention to make these arguments explicit from the time they were
    introduced via a pointer in the ocean_grid_type as a temporary convenience.
    The construct G%US%... was replaced with US%... wherever it was possible.
    
      Also rescaled some local variables or corrected comments in oil_tracer.F90,
    nw2_tracers.F90, and boundary_impulse_tracer.F90, and rescaled the units of
    the dt argument to MOM_generic_tracer_column_physics from [s] to [T ~> s].
    
      All answers are bitwise identical, although there are multiple changes to
    public interfaces.
    Hallberg-NOAA authored and marshallward committed Dec 19, 2021
    Configuration menu
    Copy the full SHA
    a902e75 View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2021

  1. Corrected the unit documentation for 31 variables

      Corrected the documentation of the units for 31 variables in various modules.
    All answers and output are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Dec 21, 2021
    Configuration menu
    Copy the full SHA
    986bc8c View commit details
    Browse the repository at this point in the history
  2. +Rescale tides and ramp-up times

      Rescaled the dimensions of the tidal amplitudes and frequencies used
    internally in calc_tidal_forcing() and ramp-up times used by update_OBC_ramp()
    and updateCFLtruncationValue() for nearly complete dimensional consistency
    testing.  New unit_scale_type arguments were added to 5 routines, in the case of
    calc_tidal_forcing() replacing a previous optional argument that was always
    being used.  One overly short internal variable, "N", was renamed "nodelon" to
    make its purpose clearer and easier to search for.  All answers are bitwise
    identical, but there are changes to the argument lists of 5 routines.
    Hallberg-NOAA authored and marshallward committed Dec 21, 2021
    Configuration menu
    Copy the full SHA
    d244246 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9a5e218 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    bf43fd8 View commit details
    Browse the repository at this point in the history

Commits on Dec 22, 2021

  1. (*)Removed problematic offline tracer lines

      Commented out the problematic lines that Andrew Shao flagged in his review of
    MOM6 dev/gfdl PR NOAA-EMC#37.  The model runs perfectly well in short offline-tracer
    test runs, and even gives bitwise identical output, perhaps because no layers
    were being abruptly flooded to 10^13 times their previous values.  These omitted
    lines could change answers in some cases, so the lines in question have been
    retained in case the offline tracer code needs to be debugged layer and these
    mysterious (and seemingly unhelpful) lines turn out to have been necessary.  All
    answers in the non-offline-tracer runs are bitwise identical.
    Hallberg-NOAA committed Dec 22, 2021
    Configuration menu
    Copy the full SHA
    5d4e8a1 View commit details
    Browse the repository at this point in the history
  2. Fix badge URL for codecov

    adcroft authored Dec 22, 2021
    Configuration menu
    Copy the full SHA
    dad675a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    34554d0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e3c0b72 View commit details
    Browse the repository at this point in the history

Commits on Dec 23, 2021

  1. Configuration menu
    Copy the full SHA
    f35edbd View commit details
    Browse the repository at this point in the history
  2. Update MOM_PressureForce_FV.F90

    Replace `.gt.` with `>`
    marshallward committed Dec 23, 2021
    Configuration menu
    Copy the full SHA
    f865b24 View commit details
    Browse the repository at this point in the history

Commits on Dec 24, 2021

  1. Correct comments describing generic_tracer args

      Corrected uninformative comments describing the some of the arguments to the
    stub routines in config_src/external/GFDL_ocean_BGC/generic_tracer.F90.  The
    updated comments are consistent with how they are used in calls to these
    routines and with the underlying actual generic_tracer code if they are actually
    documented there.  The previous comments had been added to existing undocumented
    code to satisfy the MOM6 requirement that there be a doxygen comment describing
    every argument to every routine, in the hopes that someone with familiarity with
    the generic tracer could work amend them to something more appropriate.
    However, "Unknown" is neither an accurate nor an informative description, and
    current MOM6 standards would demand that we reject any new code contributions
    with such poor interface documentation.  All answers are bitwise identical, and
    only comments have changed.
    Hallberg-NOAA authored and marshallward committed Dec 24, 2021
    Configuration menu
    Copy the full SHA
    b628748 View commit details
    Browse the repository at this point in the history

Commits on Dec 26, 2021

  1. Fixes an uninitialized logical in FMS_cap

    - A do_not_log depends on a logical that is only set
      conditionally. This initializes that logical when
      the corresponding parameter is not being read.
    - Unfortunately, this change MOM_parameter_doc.all for
      the coupled models. The .all pipeline uses the gnu compiler
      which was initializing this logical as .true. and thus
      logging the new parameter when it should not have been. Intel
      and PGI were initializing with .false.
    adcroft authored and marshallward committed Dec 26, 2021
    Configuration menu
    Copy the full SHA
    6bcea76 View commit details
    Browse the repository at this point in the history

Commits on Dec 27, 2021

  1. Eliminate unneeded diagnostic arrays in CorAdCalc

      Eliminated 4 unnecessary 3-d allocatable arrays and 8 2-d diagnostic arrays
    in CorAdCalc, and simplified the code calculating these diagnostics by using the
    post_product_[uv] and post_product_sum_[uv] routines.  Also grouped the calls
    that allocate the memory that is still needed for diagnostics.
    
      This commit also includes a few other minor changes to clean up the
    documentation of variable intents and unit documentation in a handful of other
    places in the code:
    
    - Add intent declarations to the arguments to chksum2d() and chksum3d()
    
    - Corrected incorrect scale arguments for two (untested) checksum calls.
    
    - Corrected the documented units in several comments.
    
      All answers and output are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Dec 27, 2021
    Configuration menu
    Copy the full SHA
    d9d82e3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a8a2039 View commit details
    Browse the repository at this point in the history

Commits on Dec 29, 2021

  1. Merge pull request NOAA-EMC#43 from Hallberg-NOAA/opacity_rescale

    +(*)Rescale opacity and avoid segmentation faults
    marshallward authored Dec 29, 2021
    Configuration menu
    Copy the full SHA
    1028ee0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c32ec97 View commit details
    Browse the repository at this point in the history
  3. Deleted commented out offline tracer lines

      Deleted four lines in the offline tracer code that had recently been commented
    out, along with the comments describing them.  Further conversations had led to
    a consensus that these lines served no useful purpose, and are not worth keeping
    in the code, even in comments.  Several excess spaces were also eliminated in
    MOM_offline_aux.F90.  All answers and output are bitwise identical.
    Hallberg-NOAA committed Dec 29, 2021
    Configuration menu
    Copy the full SHA
    5ad8a2c View commit details
    Browse the repository at this point in the history
  4. (*)Use por_face_area in zonal_face_thickness

      Use the por_face_area[UV] in the effective thickness calculations in
    zonal_face_thickness and merid_face_thickness, so that they are more consistent
    with their use elsewhere in the code for the relative weights in calculating the
    barotropic accelerations.  Because these por_face_area arrays are still 1 in all
    test cases, the answers are unchanged in any test cases from before a few weeks
    ago, but there could be answer changes in cases that are using the very recently
    added capability (in PR #3) to set fractional face areas.  This change was
    discussed with Sam Ditkovsky, and agreed that there is no reason to keep the
    ability to recover the previous answers in any cases that use the recently added
    partial face width option.
    
      This commit also expanded the comments describing the h_u and h_v arguments to
    btcalc(), zonal_face_thickness(), and merid_face_thickness() routines, the
    diag_h[uv] elements of the accel_diag_ptrs type and the h_u and h_v elements of
    the BT_cont_type.
    
      All answers and output are bitwise identical in the MOM6-examples test suite
    and TC tests, but answer changes are possible in cases using a very recently
    added code option.
    Hallberg-NOAA authored and marshallward committed Dec 29, 2021
    Configuration menu
    Copy the full SHA
    2b2214d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e5a5407 View commit details
    Browse the repository at this point in the history
  6. Merge pull request NOAA-EMC#37 from Hallberg-NOAA/offline_tracer_fix

    +(*)Get the offline tracer mode working again
    marshallward authored Dec 29, 2021
    Configuration menu
    Copy the full SHA
    71cf831 View commit details
    Browse the repository at this point in the history

Commits on Jan 3, 2022

  1. Option to homogenize forces and fluxes (NOAA-EMC#51)

    * Adds option to homogenize forces and fluxes fields
    
    - Adds functions to do global averages on U and V grids in MOM_spatial_means
    - Adds functionality to average all forcing and fluxes fields in MOM_forcing_types
    - Adds flag to average all forcing and fluxes in MOM.F90
    - This new feature is primarily for running in single column like configurations with the coupler, which requires perfectly equal forcing across all cells.
    
    * Fixing ustar calculation in homogenize_mech_forcing
    
    - Adds in irho0 and sqrt that were missing in homogenize mech forcing.
    
    * Updates to homogenize_forcings options.
    
    - Correct issues in global_area_mean_u and global_area_mean_v to work with symmetric and rotated grids.
    - Add options to compute mean ustar or compute ustar from mean tau.
    - Add subroutines to replace averaging blocks in MOM_forcing_type.
    
    * Minor formatting updates
    
    - Move a division and reformat alignment in MOM_spatial_means.F90.
    - Remove a unused parameter in MOM_forcing_type.F90
    - Reformat misalignment of an "if-block" in MOM_forcing_type.F90
    
    * Remove obsolete netSalt flux homogenization
    
    - netSalt has been removed so no longer needs homogenized in the fluxes.
    
    * Fix 2d mean on U grid to use U mask
    
    * Remove whitespacace
    
    * Add do_not_log option to UPDATE_USTAR get_param
    breichl authored Jan 3, 2022
    Configuration menu
    Copy the full SHA
    2d32631 View commit details
    Browse the repository at this point in the history

Commits on Jan 6, 2022

  1. Hydrostatic initialization in ice cavities (NOAA-EMC#41)

    * Hydrostatic initialization in ice cavities
    
        - Iteratively solve for the initial ice shelf displacement
          in cavities by calculating the pressure at the current
          displacement depth using the unperturbed profile.
        - This change should obsolete TRIM_IC_FOR_PSURF and DEPRESS_INITIAL_SURFACE for
          ice shelf applications and should work for arbitrary equations of state.
        - Existing implementations (e.g. ISOMIP) should turn off the above options
          in order to exercise this feature.
        - This code change should not impact non ice-shelf configurations
          or those with either of the above two options.
    
    * Addresses a number of issues identified in code review.
    
    * add appropriate intent to ice_shelf_query
    
    * fix unit scaling comments
    
    Co-authored-by: Marshall Ward <marshall.ward@noaa.gov>
    MJHarrison-GFDL and marshallward authored Jan 6, 2022
    Configuration menu
    Copy the full SHA
    df46be4 View commit details
    Browse the repository at this point in the history

Commits on Jan 8, 2022

  1. Rewrite horizontal regridding to use netCDF wrapper functions (NOAA-E…

    …MC#48)
    
    * Refresh attempt to get rid of NetCDF calls
    
    * Fix comments
    
    * Set netCDF attrs in MOM_horizontal_regridding
    
    This patch sets the following netCDF attributes in the function
    `horiz_interp_and_extrap_tracer_record` via `read_attribute`.
    
    * `missing_value` (as `_FillValue`)
    * `scale_factor`
    * `add_offset`
    
    This resolves some issues related to uninitialized values.
    
    * read_variable_2d in horizontal remapping
    
    This patch extends the `read_variable` interface to include 2d array
    support, in order to facilitate domainless I/O via netCDF calls.
    
    This is far from the best implementation (e.g. read_variable_2d
    introduces another `broadcast` alongside the original one in the
    horizontal regridding) but it addresses the immediate issues with
    `MOM_read_data()`.
    
    * set default scale factor to 1
    
    * add missing start/count arguments
    
    * Update MOM_io.F90
    
    * Manage optional args in read_variable_2d
    
    This patch modifies read_variable_2d so that the size() tests of the
    optional arguments are applied before the call to nf90_get_var.
    
    The tests are also wrapped inside present() flags to avoid checking
    unassigned variables.
    
    Thanks to Robert Hallberg for the suggestions.
    
    Co-authored-by: Matthew Harrison <Matthew.Harrison@noaa.gov>
    marshallward and MJHarrison-GFDL authored Jan 8, 2022
    Configuration menu
    Copy the full SHA
    f7a2254 View commit details
    Browse the repository at this point in the history

Commits on Jan 10, 2022

  1. Clean up non-standard syntax and whitespace

      Eliminated a number of instances of non-standard syntax from that described in
    https://github.com/NOAA-GFDL/MOM6/wiki/Code-style-guide.  The changes include
    enforcing the MOM6-standard 2-point indentation convention, replacing 'if(A)'
    with 'if (A)', and changing logical comparison syntax like '.gt.' to '>' or
    '.eq.' to '=='.  An old commented out block of code for debugging (detected by
    its use of non-standard syntax) was also eliminated.  All answers and output are
    bitwise identical.
    Hallberg-NOAA authored and marshallward committed Jan 10, 2022
    Configuration menu
    Copy the full SHA
    d838ccd View commit details
    Browse the repository at this point in the history
  2. Standardize code in calc_sfc_displacement

      Slightly modified the recently added subroutine calc_sfc_displacement to
    document the units of its variables and to follow the MOM6 code standards from
    https://github.com/NOAA-GFDL/MOM6/wiki/Code-style-guide.  The changes include
    white-space corrections, changing logical comparison syntax like '.gt.' to '>',
    and explicitly identifying where array syntax is used.  All answers and output
    are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Jan 10, 2022
    Configuration menu
    Copy the full SHA
    6da5c9b View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2022

  1. +(*)Change the remapping dzInterface argument sign

      Changed the name and sign convention for the dzInterface argument to
    remap_all_state_vars to reflect the convention used in the regridding code and
    to reflect the fact that this is always a vertical displacement.  This change
    eliminates a subtle array-syntax whole-array multiplication (by -1.) in one call
    to remap_all_state_vars (this clearly violated MOM6 code standards), and it
    corrects an actual sign error that will change answers (perhaps from a state of
    catastrophic failure) in the code for the REGRID_ACCELERATE_INIT=True option if
    REMAP_UV_USING_OLD_ALG is also true and the initial velocities that are being
    remapped are non-zero.  Also added comments describing the real variables inside
    of remap_all_state_vars to help clarify what they do.  Fortunately the situation
    where answers change seems like a very uncommon combination of settings (it is
    possible that no one has ever tried this), and all answers in the MOM6-examples
    test suite are bitwise identical.
    Hallberg-NOAA authored and marshallward committed Jan 24, 2022
    Configuration menu
    Copy the full SHA
    9f0018f View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2022

  1. Avoid divide by zero in horizontal_viscosity() with better_bound_kh

    - I division by zero was encountered when using the back-scatter settings
      (negative viscosity) in NeverWorld2. It appears hrat_min(I,J) can be
      zero. Reading the code, it makes sense that hrat_min can be zero.
      The division was previously made conditional in 14971b4 also
      when using backscatter, but then only one part of the denomitor was used
      in the conditional.
    - I'm not sure why the backscatter setup is repeatedly hitting these edge
      cases or specific line of code.
    - This fix uses the entire denominator in the conditional.
    adcroft authored and marshallward committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    03a247e View commit details
    Browse the repository at this point in the history
  2. Fix soft-conventional index capitalization in horizontal_viscosity()

    - A previous re-factor for optimization introduced some inconsistent
      capitalization. This made it hard to understand the code, especially
      with some arrays being re-used at different grid locations.
    adcroft authored and marshallward committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    e63c405 View commit details
    Browse the repository at this point in the history

Commits on Jan 26, 2022

  1. Esmg docs (NOAA-EMC#57)

    * additions for stochastic physics and ePBL perts
    
    * cleanup of code and enhancement of ePBL perts
    
    * Update MOM_diabatic_driver.F90
    
    remove conflict with dev/emc
    
    * Update MOM_diabatic_driver.F90
    
    further resolve conflict
    
    * Update MOM_diabatic_driver.F90
    
    put id_sppt_wts, etc back.
    
    * add stochy_restart writing to mom_cap
    
    * additions for stochy restarts
    
    * clean up debug statements
    
    * clean up code
    
    * fix non stochastic ePBL calculation
    
    * re-write of stochastic code to remove CPP directives
    
    * remove blank link in MOM_diagnostics
    
    * clean up MOM_domains
    
    * make stochastics optional
    
    * correct coupled_driver/ocean_model_MOM.F90 and other cleanup
    
    * clean up of code for MOM6 coding standards
    
    * remove stochastics container
    
    * revert MOM_domains.F90
    
    * clean up of mom_ocean_model_nuopc.F90
    
    * remove PE_here from mom_ocean_model_nuopc.F90
    
    * remove debug statements
    
    * stochastic physics re-write
    
    * move stochastics to external directory
    
    * doxygen cleanup
    
    * add write_stoch_restart_ocn to MOM_stochastics
    
    * add logic to remove incrments from restart if outside IAU window
    
    * revert logic wrt increments
    
    * add comments
    
    * update to gfdl 20210806 (NOAA-EMC#74)
    
    * remove white space and fix comment
    
    * Update MOM_oda_incupd.F90
    
    remove unused index bounds, and fix sum_h2 loop.
    
    Co-authored-by: pjpegion <Philip.Pegion@noaa.gov>
    Co-authored-by: Marshall Ward <marshall.ward@noaa.gov>
    
    * Fussing with zotero.bib.
    
    Getting a warning about a repeated bibliography entry for adcroft2004.
    Rob thinks this is a hash failure.
    
    * Still fussing with zotero.bib
    
    - it was complaining about the (unused) Kasahara reference.
    
    * Several little things, one is making sponge less verbose.
    
    - Pointing to OBC wiki file from the lateral parameterizations doc.
    
    - Using the MOM6 verbosity to control the time_interp verbosity.
    
    - Making the check for negative water depths more informative.
    
    * return a more accurate error message in MOM_stochasics
    
    * Working on boundary layer docs.
    
    * Done with EPBL docs?
    
    * Undoing some patches from others
    
    * Cleaning up too-new commits
    
    * Adding in that SAL commit again.
    
    * correction on type in directory name
    
    * Added some to vertical viscisity doc.
    
    * Cleaned up whitespace leftover from porous topomerge.
    
    - Spacing within expressions was uneven and made multiplation look like
      POW functions. Leftover from merging NOAA-GFDL#3.
    - No answer changes.
    
    * Fix out-of-bounds k index in PPM flux
    
    - An errant use of the porous face area led to an out-of-bounds k-index
      reported in NOAA-GFDL#19.
    - Closes NOAA-EMC#19
    
    * Adding Channel drag figure
    
    * Take cite out of figure caption.
    
    * Copyright year 2022
    kshedstrom authored Jan 26, 2022
    Configuration menu
    Copy the full SHA
    65998cd View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2022

  1. read_variable_2d modified to accept 3 or 4 dims

    The read_variable_2d function was previously configured to only run if
    the start and nread arrays matched the size of the field they were
    accessing.  This was incompatible with the history of the function,
    which had previously required a fourth time axis (of one record), then
    was later modified to not require this axis.  As a result, there are now
    files in use both with and without a time axis.
    
    This patch relaxes this check to ensure that the read is quasi-2d, i.e.
    the first two axes can read a segment of a 2d field, but will now
    reshape the start and nread arrays to match the field being read.  Some
    additional checks are also added to ensure that it only reads one 2d
    slice.
    marshallward committed Feb 8, 2022
    Configuration menu
    Copy the full SHA
    3f58f8a View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2022

  1. Diabatic driver: energetic_PBL -> ePBL, flag check

    Pointers to the diabatic driver's energetic PBL field are now only
    associated when `use_energetic_PBL` is true.
    
    The `energetic_PBL` field was also renamed to `ePBL` to avoid potential
    conflict with the `energetic_PBL` subroutine.
    
    Thanks to Alper Altuntas for detecting this issue and the proposed fix.
    
    Co-Authored-By: Alper Altuntas <alperaltuntas@gmail.com>
    marshallward and alperaltuntas committed Feb 16, 2022
    Configuration menu
    Copy the full SHA
    64f432f View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2022

  1. Merge pull request mom-ocean#1556 from NOAA-GFDL/dev-gfdl-main-candid…

    …ate-2022-01-29
    
    GFDL to main (Jan 2022)
    marshallward authored Feb 17, 2022
    Configuration menu
    Copy the full SHA
    6f6d4d6 View commit details
    Browse the repository at this point in the history

Commits on Feb 18, 2022

  1. Merge remote-tracking branch 'GFDL/main' into feature/update-to-main-…

    …20220217
    
    this is corresponding to MOM6 main branch 20220217 commit (hash # 6f6d4d6),
    which originally based on GFDL-candidate-20220129
    jiandewang committed Feb 18, 2022
    Configuration menu
    Copy the full SHA
    966707f View commit details
    Browse the repository at this point in the history