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

Nowarn #18

Closed
wants to merge 141 commits into from
Closed

Nowarn #18

wants to merge 141 commits into from

Conversation

marshallward
Copy link
Owner

Testing codecov actions

jiandewang and others added 30 commits May 13, 2024 12:34
…in-20240508

update to main 20240508 commit
* Update mom_cap.F90 to add end of run restart file functionality controlled by write_restart_at_endofrun configuration option in CMEPS. Author: Daniel Sarmient
…start-candidate-20240521

dev-emc-candidate 20240521 (end of run restart file)
This patch allows autoconf to detect the version of FMS IO that is
implemented in its library, and select the appropriate "infra" in the
MOM6 source.

The allows for removal of the --with-framework flag, and should prevent
future FMS library/infra mismatches.
The build/target/MOM6 rule was modified so that build/target is now a
symlink into build/target_codebase/.testing/build/symmetric.

In other words, build/target now uses the entire build system of
target_codebase (i.e. the reference codebase) rather than borrowing from
bits and pieces of the current codebase.

This should prevent potential false positives in future regression tests
related to buildsystem changes.

Several apparently unused blocks of rules and other content in
.testing/Makefile have also been removed.
This patch fixes FMS_COMMIT and FMS_URL so that they are properly
exported to ``ac/deps/Makefile`` and used in the .testing FMS build.

It also removes any references to the FRAMEWORK flag, which is no longer
needed to identify the FMS API.
  Corrected an argument to the call to ALE_remap_scalar() when h_in_Z_units is
true in MOM_initialize_tracer_from_Z(), to avoid the problems documented in
github.com/NOAA-GFDL/issues/589.  A comment was also added explaining the
logic of what is going on in this fork of the code.  This commit will change
answers with some generic tracers that are initialized from a Z-space input
file, restoring them to previous values that worked previously (before about
Feb. 1, 2024 on dev/gfdl) in Boussinesq configurations without dimensional
consistency testing, but in a new form that does pass the dimensional
consistency testing for depths and thicknesses.  All answers are bitwise
identical in any cases that do not use generic tracers.
  Refactored the code in soliton_initialization.F90 to more accurately reflect
the nondimensionalization that was applied in developing this test case.  This
change includes reading in the maximum depth and beta, and using them to
calculate the equatorial deformation radius and the external gravity wave
speed.  The references to the papers describing the test case in the module were
added to the doxygen comments describing the routines in this module.   This
commit also includes adding comments documenting the nature and units of all the
internal variables in this module.  There are two new arguments each (param_file
and just_read) to soliton_initialize_thickness and soliton_initialize_velocity
to accommodate these changes, bringing them into line with the interfaces for
other similar user initialization routines, and MOM_initialize_state was changed
accordingly.  This change could change answers in general, but in the specific
examples that use this code, both beta and the external wave speed are
deliberately set to 1 in MKS units, so this commit does not change answers for
that specific case.
  Calculate the rescaled pseudo-salt flux when KPP is in use inside of
pseudo_salt_tracer_column_physics(), rather than using fluxes%KPP_salt_flux.
This commit also corrects for the fact that salinity and pseudo-salt have
scaling that differs by a factor of US%S_to_ppt, which was not previously being
taken into account.  All answers are bitwise identical when no dimensional
rescaling is being used, but they will change (and be corrected) when salinity
is being rescaled.
  Eliminated the KPP_salt_flux element of the forcing type, which is no longer
being used after the revisions to pseudo_salt_tracer_column_physics.  Also moved
5 allocatable arrays (KPP_NLTheat, KPP_NLTscalar, KPP_buoy_flux, KPP_temp_flux
and KPP_salt_flux) out of diabatic_CS, replacing them with ordinary arrays in
diabatic_ALE(), diabatic_ALE_legacy() and layered_diabatic().  This change could
reduce the high-water memory footprint of the model when KPP is in use.  All
answers are bitwise identical, but one element of a publicly visible type has
been eliminated.
  Corrected the descriptions of several conservative temperature and absolute
salinity arguments in the comments for arguments to 4 TEOS10 equation of state
routines, and eliminated the commented out code to mask out negative salinities
in 8 TEOS10 routines.  Only comments are changed, and all answers are bitwise
identical.
  Added the routine convert_MLD_to_ML_thickness to consistently convert the
mixed layer depths (in units of [Z ~> m]) back to the mixed layer thicknesses
(in [H ~> m or kg m-2]), with proper error checking and handling of the
non-Boussinesq case.  The body of this routine was taken from duplicated
blocks of code in MOM_mixedlayer_restrat.F90.  This is not tested directly
in this PR, but it was tested via revisions to MOM_mixedlayer_restrat.F90 that
are included in a subsequent commit.  All answers are bitwise identical, but
there is a new publicly visible interface.
  Pass mixed layer thickness, rather than mixed layer depth, to
ideal_age_tracer_column_physics, and determine the number of layers within
the mixed layer in count_BL_layers in thickness units rather than depth units.
To accommodate these changes there is now a call to convert_MLD_to_ML_thickness
inside of call_tracer_column_fns.  The thermo_var_ptrs type argument (tv) to
ideal_age_tracer_column_physics and count_BL_layers are no longer used and
have been removed.  All answers are bitwise identical in Boussinesq mode, but
in non-Boussinesq mode there are changes in the passive ideal age tracers at
the level of roundoff.  There are also changes in the units of arguments and
the number of arguments to a public interface.
  Provide the mixed layer thickness, as well as the mixed layer depth as
arguments to mixedlayer_restrat.  The code that had previously been used to
convert between the two has now been removed to the new external function
convert_MLD_to_ML_thickness.  To accommodate these changes, a new element,
h_ML, was added to the vertvisc type, and a call to convert_MLD_to_ML_thickness
was temporarily added in step_MOM_dynamics just before the call to
mixedlayer_restrat.  All answers are bitwise identical, but there
are changes to a public interface.
  Moved the call to convert mixed layer depths into mixed layer thicknesses
from right before the call to mixedlayer_restrat into the various diabatic
routines just after they are calculated.  This code rearrangement changes
answers in non-Boussinesq mode because the layer specific volumes will have
evolved between these two calls, but it is consistent with the mixed
layer thicknesses as used in the boundary layer parameterizations.

  A new argument was added to bulkmixedlayer to return the mixed layer
thickness that was already being calculated.  The previous argument Hml
was renamed to BLD and changed from a pointer into a simple array.  Both
are intent(inout) rather than intent(out) to preserve values in halos.

  This commit also revises the logic around the allocation of visc%h_ML and
its registration as a restart variable, including handling cases where an older
restart file is being read that includes MLD but not h_ML.  Because the mixed
layer depth is used in almost cases, CS%Hml in the control structure for
MOM.F90 was changed from a pointer to an allocatable, with values of 0 in those
cases (e.g., when ADIABATIC is true) where it is not used.

  In addition, the argument Hml to the various diabatic routines was changed to
MLD to more clearly reflect that it is a depth and not a thickness.  Outside of
diabatic, BML is only used to provide the tracer point boundary layer depths
to the calling routines, so it does not need a halo update.  Instead, all of
the halo updates for the various elements of visc that do need halo updates
after the diabatic calls are collected into one place for efficiency and more
accurate timings.

  The scale arguments of 34 checksum calls were revised from GV%H_to_m to
GV%H_to_MKS for more accurate checksums in non-Boussinesq configurations by
avoiding multiplication by an reference specific volume, and instead only
rescaling by an integer power of 2.

  All answers are bitwise identical in Boussinesq mode, but in non-Boussinesq
mode there are changes in answers in cases that use the boundary layer
thicknesses obtained from the boundary layer parameterizations in subsequent
calculations, such as mixed layer restratification with some options.  There are
also changes to the arguments of several publicly visible routines.
  Pass visc%h_ML to applyBoundaryFluxesInOut, which avoids the need for the
thickness conversions inside of that routine.  Answers are bitwise identical for
Boussinesq cases, but they will change in non-Boussinesq cases because the layer
specific volumes have changed between the time the boundary layer thicknesses
have been calculated and when they are being used in the brine plume
parameterization.

  Also use visc%h_ML in place of calls to KPP_get_BLD or energetic_PBL_get_MLD
in step_MOM_dyn_split_RK2, hor_bnd_diffusion and neutral_diffusion_calc_coeffs.
This change requires a new vertvisc_type argument to tracer_hordiff,
hor_bnd_diffusion and neutral_diffusion_calc_coeffs.  Boussinesq answers are
bitwise identical, but non-Boussinesq answers change because they now use the
actual model specific volumes rather than some prescribed constant value to to
the relevant unit conversions.

  The logic in set_visc_register_restarts was also updated so that visc%MLD and
visc%h_ML are allocated and registered for restarts in the cases where they will
be used.

  All answers are bitwise identical in Boussinesq mode, but in non-Boussinesq
mode there are changes in answers in cases that use neutral tracer diffusion
that excludes the boundary layer, horizontal tracer diffusion in the boundary
layer or FPMIX.  There are also changes to the arguments of several publicly
visible routines.
  Added the optional argument h_BL to call_tracer_column_fns, and then pass
visc%h_ML to this routine as a part of the calls from the diabatic routines.
This argument is not provided in adiabatic mode or in offline tracer mode, which
is why it has been made optional.  All answers are bitwise identical in
Boussinesq mode but ideal age tracers can change in non-Boussinesq mode due to
the updates to the layer specific volumes between the calculation of the
boundary layer properties and the calls to call_tracer_column_fns.
* Spatially variable fields for MLE%Bodner

 - Allows reading in 2d fields for Cr and for MLD_decaying_Tfilt.

* Finish the job?

* Renamed one variable, fixed some units
)

* Added option to convert flux through static ice front into icebergs

Added variables for the accumulated iceberg mass and heat flux due to
calving from ice shelves (flux through the static ice front). These
will be passed to the coupler and SIS2/iceberg module to initialize
bergs. Also fixed the ice-shelf SMB override and reorganized
ice-shelf post data calls so that they do not strictly have to be
called at multiples of the ice velocity time step.

* Added ice-shelf scalar diagnostics

Added ice-shelf scalar diagnostics related to volume-above-floatation
and surface/basal mass balance. Had to modify ice-shelf diag mediator
to allow scalar diagnostics.

* Fixed units for volume-above-floatation and Cp_ice. Renamed volume-above-floatation variable from 'vab' to 'vaf'

* Fixed write_ice_shelf_energy call within subroutine solo_step_ice_shelf so that it is passing the correct arguments

* Fixed syntax of calving units

* Fixed units for ice shelf calving and scalar diagnostics
  Refactored the Idealized_Hurricane module to clean up strange or unscaled
variable units and eliminate dimensional scaling factors with the latest answer
dates.  This includes the introduction of 18 new runtime variables to replace
hard-coded dimensional constants and two runtime logical flags to reproduce
existing bugs.  An inconsistency in the sign convention for the distance from
the hurricane center with idealized_hurricane_wind_forcing in (the probably not
yet used) single column mode was also corrected. Also added descriptions with
units for all the variables in this module.  By default or with appropriate
parameter settings all answers are bitwise identical.
* Add rescaling paramter to KD Shear

Add a parameted (beta) to rescale the distance to the nearest solid
boundary that is used within calculation of kappa shear. While rescaling
this value is unphysical, this adjustment can be thought of as not
allowing shear instabilities to grow up to the full distance to the
nearest boundary because of other turbulent processes which would disrupt
their growth.

* Rename parameter and swtich to multiplication

Rename the parameter beta to lz_rescale to be more descriptive.
To avoid two divisions in a single line, the inverse of lz_rescale
is calculated and stored as I_lz_rescale_sqr. Where the calculation
is done logic has been added to check that lz_rescale is greater
than zero to avoid dividing by zero or making lz_rescale negative.

* Add Comment where lz_rescale is used

Based on Wei's suggestion, add a comment where lz_rescale is used
and put the multiplication by I_lz_rescale to the next line.

* Remove Trailing whitespace

---------

Co-authored-by: Theresa Morrison <[email protected]>
Co-authored-by: Theresa Morrison <[email protected]>
Co-authored-by: Theresa Morrison <[email protected]>
Co-authored-by: Theresa Morrison <[email protected]>
fix style errors

Modify axes_data to make it allocatable

fix style
  Added the new runtime parameters ROBUST_STOKES_PGF and LA_MISALIGNMENT_BUG to
allow for the selection of Stokes pressure gradient force calculations that work
properly in the limit of vanishingly thin layers and to correct a sign error in
the calculations of the misalignment between the waves and shears in the
Langmuir number calculations when LA_MISALIGNMENT is true.  By default, all
answers are bitwise identical, but as these options are not yet widely used it
might make sense to move aggressively to obsolete the previous code once more
extensive testing has take place.  There will be new entries in the
MOM_parameter_doc files for some cases, but there are not yet any such cases
in the MOM-examples regression suite.
-Account for re-entry boundary conditions and non-symmetric grids
-Optimized SSA CG scheme to eliminate unneeded loops and pass_var calls
-Added a missing pass_var call that should fix a reproducibility issue
 on different PE layouts
-Automatically adjust ice-shelf velocity data when it is read in from
 file so that it agrees with assigned BCs
-Changed some ice-shelf mass units that were affecting partially-fully
 cells at the ice front, so that they are always mass per ice-shelf
 area (not per grid area)
  This commit improves the documentation of the remaining real variables with
previously undocumented units in the framework directory, with some other
similar unit documentation improvements in other files.  Units were added to
comments describing about 79 real variables in 4 framework modules,
atmos_ocean_fluxes.F90 for 2 drivers, MOM_oda_incupd.F90, MOM_oda_driver.F90
and MOM_variables.F90.

  The variable nhours_incupd in initialize_oda_incupd was renamed to
incupd_timescale and the factor of 3600.0 that converts ODA_INCUPD_NHOURS
from hours into seconds was moved from where this variable is used into the
scale argument where it is set to help document the meaning and units of this
variable as simply and clearly as possible.

  The unused variable smb was removed from Shelf_main in ice_shelf_driver.F90.
The internal variable tmp in RGC_initialize_sponges was renamed rho to reflect
its contents, and its contents and units are now described in a comment.

  Although the units have been added to the description in MEKE_vec as though it
is being used in a dimensionally consistent way, I suspect that this might
actually be in MKS units, in which case a unit conversion factor might be needed,
and a comment has been added to note this.  However, the machine learning code
that is used to set this array comes from an external package that is not being
used yet at GFDL, so it is not clear what code should be examined to address
this question.

  A comment was added in set_up_global_tgrid noting a unit rescaling factor
that appears to be missing from a dimensional constant.

  All answers are bitwise identical, and for the most part only comments are
changed, although two internal variables were renamed.
  Corrected the sign convention used for the neutral_slope_x and neutral_slope_y
diagnostics in cases when there is not an equation of state being used to match
the usual sign convention (interfaces sloping up to the east or north is a
positive slope) and to match what is done when an equation of state is being
used to calculate neutral density slopes rather than just basing the slopes of
the interfaces alone.  The same correction was made to the slope_x and slope_y
arguments returned from calc_isoneutral_slopes, and self-consistent changes were
made to the overturning streamfunction calculations in thickness_diffuse_full.

  In addition, there were some corrections made to the documentation at the end
of MOM_thickness_diffuse.F90, and the calculate_slopes argument to
calc_slope_functions_using_just_e() that was always hard-coded to .true. was
eliminated to avoid any confusion about whether these changes might propagate
beyond the interface height diffusion calculations.  This commit addresses most
aspects of the issue discussed at github.com/NOAA-GFDL/issues/359, although
it does not change the sign convention for the overturning streamfunction.

  All solutions are bitwise identical, but there is a change in the sign
convention for two diagnostics and two arguments to a publicly visible interface
in pure layer mode when no equation of state is used.
Hallberg-NOAA and others added 29 commits July 29, 2024 14:04
  Added parentheses to 20 expressions in CorAdCalc and one in gradKE to exhibit
rotationally consistent solutions when fused-multiply-adds are enabled.  All
answers are bitwise identical in cases without FMAs, but answers could change
when FMAs are enabled.
  Added parentheses to 18 expressions in btstep, and one more each in set_dtbt
and barotropic_init to exhibit rotationally consistent solutions when
fused-multiply-adds are enabled.  All answers are bitwise identical in cases
without FMAs, but answers could change when FMAs are enabled.
  Added parentheses to 19 expressions in 5 routines (calc_Visbeck_coeffs_old,
calc_Eady_growth_rate_2D, calc_slope_functions_using_just_e,
calc_QG_Leith_viscosity VarMix_init) in MOM_lateral_mixing_coeffs.F90 to give
rotationally consistent solutions when fused-multiply-adds are enabled.  Also
reordered terms in a sum in the calculation of beta_dx2_u to mirror that of
beta_dx2_v, also for rotational symmetry with FMAs.  All answers are bitwise
identical in cases without FMAs, but answers could change for some parameter
settings when FMAs are enabled.
  Added parentheses to 40 expressions horizontal_viscosity and another 14
expressions in in hor_visc_init and 3 more in align_aniso_tensor_to_grid to give
rotationally consistent solutions when fused-multiply-adds are enabled.   Also
swapped the order of two terms in the expression for Del2u to mirror the order
of the corresponding terms in Del2v for rotational symmetry with FMAs.  All
answers are bitwise identical in cases without FMAs, but answers could change
when FMAs are enabled.
  Added parentheses to 20 sums of squares of x- and y- distances or velocity
components used for initialization in 8 modules to give rotationally consistent
solutions when fused-multiply-adds are enabled.  All answers are bitwise
identical in cases without FMAs, but answers could change when FMAs are enabled.
  Added parentheses to 29 sums of squares of velocity or other vector components
used in parameterizations in 9 modules to give rotationally consistent solutions
when fused-multiply-adds are enabled.  All answers are bitwise identical in
cases without FMAs, but answers could change when FMAs are enabled.
  Added parentheses to 9 diagnostics of Coriolis accelerations or expressions
used in the kinetic energy budgets to give rotationally consistent solutions
when fused-multiply-adds are enabled.  All answers are bitwise identical in
cases without FMAs, but answers could change when FMAs are enabled.
  Added parentheses to 4 tracer edge value calculations used with PPM tracer
advection to give rotationally consistent solutions when fused-multiply-adds are
enabled.  Although these lines may not appear to need parentheses, some
compliers appear to be putting these expressions directly into others, where the
direction of the flow seems to determine which multiplications are incorporated
into FMAs.  All answers are bitwise identical in cases without FMAs, but answers
could change when FMAs are enabled.
Resolved conflicts in src/core/MOM_checksum_packages.F90 with
collision between switch to unscale= and the addition of new
checksums with previous scale= argument.
We had random behavior in the doc files because the logical `CS%useHuynh`
was not set when using the PLM scheme.
  Added parentheses around the full expressions for intz and intp in 10 more
lines in 4 generic density integral routines (int_density_dz_generic_pcm,
int_density_dz_generic_ppm, int_spec_vol_dp_generic_pcm and
int_spec_vol_dp_generic_plm) in the MOM_density_integrals module so that
non-Boussinesq cases will be rotationally invariant when fused-multiply-adds are
enabled.  Although this might not seem to do anything, these parentheses do
matter if these expressions are in-lined in the sums where they are used a few
lines later.  The analogous parentheses had previously been added to
int_density_dz_generic_plm.  All answers are bitwise identical in cases without
FMAs, but answers could change with FMAs.
…_h()

This commit addresses a `\todo` added in NOAA-GFDL#662, namely that
the functions remap_via_sub_cells() and remap_via_sub_cells_om4() could,
and should, be moved up into remapping_core_h(), as well as into the
obsolete remapping_core_w().

In that PR, the function remap_via_sub_cells() had been modularized into
three other functions, and the near-duplicatem remap_via_sub_cells_om4(),
called the two of the same functions as well as an out-of-date version of
the third function.

Since the reampping_core_h() function calls is already brief, calling one
function in addition to remap_via_sub_cells(), and since
remap_via_sub_cells() is only called from remapping_core_*(), we can remove
a level of call-tree depth depth by copying remap_via_sub_grid() into
reampping_core_h() and removing the unused function(s).
- Gustless Tau is needed for Langmuir turbulence parameterization (part of ePBL) in non-Boussinesq mode.
- Adds new option to populate Gustless Tau field when present in fluxes control structure as part of extract_IOB_stresses, which is used in convert_IOB_to_fluxes in the FMS cap.
  Added parentheses to prevent FMAs in 4 expressions in end_value_h4 that rely
on exact vertical symmetry in order to get the cancellations that are necessary
to pass the vertical remapping unit testing.  Before this change, the MOM6
unit-testing was failing when FMAs are enabled, but with it the unit-testing is
passing even when FMAs are enabled.  All answers are bitwise identical in cases
without FMAs, but answers could change with FMAs.
In OM4, we use the "WOA09" coordinate for diagnostic z* output. This grid
was based on WOA09 but not exact because the WOA09 grid is not smooth.
We tried to construct a grid such that layer centers matched the depths
of WOA09 but this was not possible for six layers.

As an alternative, this new coordinate, "WOA09INT", uses the WOA09 depths
as interfaces so that the layer centers are always midway between the
WOA09 depths. To compare with WOA09 directly, WOA data now should be
interpolated but this is a simple half-half averaging.
Encoded the WOA23 depth spacing to use for finer resolution
diagnostic grid. As for WOA09INT, the WOA23 depths are used
as interface positions requiring the WOA23 data to be interpolated
(half-half averaging) to this WOA23INT grid.
…ocean#701)

* Fix bugs in setting GxSpV_u and GxSpV_v in MOM_isopycnal_slopes
 - In the previous version, GxSpV_u and GxSpV_v were only set when use_EOS was true
 - Now initialize GxSpV_u and GxSpV_v to be G_Rho0

* Fixed an OMP issue in MOM_isopycnal_slopes
A new parameter is added to diagnoseMLDbyDensityDifference that
allows a user to specify a reference for the surface density that
is not the top model layer. This feature should make the MLD_003
diagnostic more consistent with the de Boyer Montégut MLD
climatology. In addition, new diagnostics have been added to save
the actual depth of the density used and the "surface" density
used in the MLD calculation. These options have only been added
for the MLD_003 option.
Move the calculation of density difference and energy difference
based MLD diagnostics out of MOM_diabatic_aux and into a new module
MOM_diagnose_MLD.F90. Because this new module includes only the
calculation of mixed layer depths that will be primarily used as
diagnostics, it will be in the diagnostics subfolder.
This change will allow the diagnose MLD routines to be used in
the generic tracers.
  Moved the publicly visible routine array_global_min_max to MOM_spatial_means
from MOM_generic_tracer, along with the private supporting function ijk_loc,
without any changes to the code itself.  This was done because this routine now
gives useful debugging information that can be useful outside of the generic
tracer module.  All answers are bitwise identical, but the module use statements
for array_global_min_max will need to be updated.
  Added the new runtime parameters WRITE_TRACER_MIN_MAX and
WRITE_TRACER_MIN_MAX_LOC to the MOM_sum_output module to control whether the
maximum and minimum values of temperature, salinity and some tracers are
periodically written to stdout, perhaps with their locations, as determined by
array_global_min_max.  These can be expensive global reductions, so by default
these are set to false.  All solutions are bitwise identical, but there can be
some changes to the output to stdout and there will be new entries in the
MOM_parameter_doc.debugging files.
- Without this, one can see the tile boundaries in the uhml and vhml
  fields.
Optionally correct a bug due to a missing halo exchange.  This likely
isn't needed when compiled for nonsymmetric memory, but the added halo
exchange does no harm in such cases.  The pass_vector call could probably
be replaced with fill_symmetric_edges, except there is no subroutine
fill_vector_symmetric_edges_3d.

USE_CONT_THICKNESS is not yet widely used, so rather than preserving the old
(incorrect) solutions by default, this bug is corrected by default.  However,
the previous answers can be recovered by setting the new runtime parameter
USE_CONT_THICKNESS_BUG to true.  This parameter is only used (and logged)
when USE_CONT_THICKNESS set to true.

By default, this commit does change answers in symmetric memory cases with
USE_CONT_THICKNESS = True, and there is a new runtime parameter in such cases.
* Directional linear wave drag

This commit allows the linear wave drag to be applied to the u and
v components of the barotropic velocity separately.
…ymmetry_main

(*)Add parentheses for FMA rotational symmetry
This patch makes some changes to makedep output:

* Compile commands now end with the source code, rather than the include
  files.  This makes it easier to see which file is being compiled.

* Blank lines were added inbetween object file rules.

* Redundant spaces from absent include flags is now removed.

Also some minor PEP8-like cleanups:

* Some (but not all) 79+ character lines were reduced or split.

* Some (but not all) single-letter variables were renamed.

* A bad error handler for missing macros was fixed.

Nothing particularly major here, but build output should be more
readable.
  This merge updates dev/gfdl following PR mom-ocean#1634 to main that added parentheses
to give rotational symmetry when fused-multiply-adds are enabled.
Adding null read operations so that compilers will not warn about unused
input variables in dummy functions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.