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

updating ML_diffusivity to latest dev/gfdl #1

Merged
merged 18 commits into from
Jul 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions docs/forcing.rst
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
Forcing
=======
Data Override
-------
-------------
When running MOM6 with the Flexible Modelling System (FMS) coupler, forcing can be specified by a `data_table` file. This is particularly useful when running MOM6 with a data atmosphere, as paths to the relevent atmospheric forcing products (eg. JRA55-do or ERA5) can be provided here. Each item in the data table must be separated by a new line, and contains the following information:

| ``gridname``: The component of the model this data applies to. eg. `atm` `ocn` `lnd` `ice`.
| ``fieldname_code``: The field name according to the model component. eg. `salt`
| ``fieldname_file``: The name of the field within the source file.
| ``fieldname_file``: The name of the field within the source file.
| ``file_name``: Path to the source file.
| ``interpol_method``: Interpolation method eg. `bilinear`
| ``factor``: A scalar by which to multiply the field ahead of passing it onto the model. This is a quick way to do unit conversions for example.
| ``factor``: A scalar by which to multiply the field ahead of passing it onto the model. This is a quick way to do unit conversions for example.
|
|
The data table is commonly formatted by specifying each of the fields in the order listed above, with a new line for each entry.

Example Format:
"ATM", "t_bot", "t2m", "./INPUT/2t_ERA5.nc", "bilinear", 1.0

A `yaml` format is also possible if you prefer. This is outlined in the `FMS data override <https://github.com/NOAA-GFDL/FMS/tree/main/data_override>`_ github page, along with other details.
A `yaml` format is also possible if you prefer. This is outlined in the `FMS data override <https://github.com/NOAA-GFDL/FMS/tree/main/data_override>`_ github page, along with other details.

Speficying a constant value:
Rather than overriding with data from a file, one can also set a field to constant. To do this, pass empty strings to `fieldname_file` and `file_name`. The `factor` now corresponds to the override value. For example, the following sets the temperature at the bottom of the atmosphere to 290 Kelvin.
Expand All @@ -26,7 +26,7 @@ Speficying a constant value:
"ATM", "t_bot", "", "", "bilinear", 290.0

Which units do I need?
For configurations using SIS2 and MOM, a list of available surface flux variables along with the expected units can be found in the `flux_exchange <https://github.com/NOAA-GFDL/FMScoupler/blob/f4782c2c033df086eeac29fbbefb4a0bdac1649f/full/flux_exchange.F90>`_ file.
For configurations using SIS2 and MOM, a list of available surface flux variables along with the expected units can be found in the `flux_exchange <https://github.com/NOAA-GFDL/FMScoupler/blob/f4782c2c033df086eeac29fbbefb4a0bdac1649f/full/flux_exchange.F90>`_ file.


.. toctree::
Expand Down
12 changes: 0 additions & 12 deletions docs/ocean.bib
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,6 @@ @article{Adcroft2004
journal = {Ocean Modelling}
}

@article{Adcroft2019,
doi = {10.1029/2019ms001726},
year = 2019,
publisher = {American Geophysical Union ({AGU})},
volume = {11},
number = {10},
pages = {3167--3211},
author = {A. Adcroft and W. Anderson and V. Balaji and C. Blanton and M. Bushuk and C. O. Dufour and J. P. Dunne and S. M. Griffies and R. Hallberg and M. J. Harrison and I. M. Held and M. F. Jansen and J. G. John and J. P. Krasting and A. R. Langenhorst and S. Legg and Z. Liang and C. McHugh and A. Radhakrishnan and B. G. Reichl and T. Rosati and B. L. Samuels and A. Shao and R. Stouffer and M. Winton and A. T. Wittenberg and B. Xiang and N. Zadeh and R. Zhang},
title = {The {GFDL} Global Ocean and Sea Ice Model {OM}4.0: Model Description and Simulation Features},
journal = {J. Adv. Mod. Earth Sys.}
}

@article{Campin2004,
doi = {10.1016/s1463-5003(03)00009-x},
year = 2004,
Expand Down
38 changes: 33 additions & 5 deletions docs/parameterizations_lateral.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Lateral viscosity

Laplacian and bi-harmonic viscosities with linear and Smagorinsky options are implemented in MOM_hor_visc.

:ref:`namespacemom__hor__visc_1section_horizontal_viscosity`

Gent-McWilliams/TEM/isopycnal height diffusion
----------------------------------------------

Expand All @@ -20,7 +22,7 @@ scaling.
A model of sub-grid scale Mesoscale Eddy Kinetic Energy (MEKE) is implement in MOM_MEKE and the associated diffusivity added in MOM_thickness_diffuse.
See :cite:`jansen2015` and :cite:`marshall2010`.

:ref:`namespacemom__meke_1section_MEKE`
:ref:`namespacemom__meke_1section_MEKE`

Backscatter
-----------
Expand All @@ -32,17 +34,43 @@ Mixed layer restratification by sub-mesoscale eddies
----------------------------------------------------

Mixed layer restratification from :cite:`fox-kemper2008` and
:cite:`fox-kemper2008-2` is implemented in MOM_mixed_layer_restrat.
:cite:`fox-kemper2008-2` is implemented in MOM_mixed_layer_restrat,
which now also contains the mixed layer restratication comes from :cite: Bodner2023.

:ref:`namespacemom__mixed__layer__restrat_1section_mle`

Interface filtering
-------------------

For layer mode, one can filter the interface thicknesses:

:ref:`namespacemom__interface__filter_1section_interface_filter`

Lateral diffusion
-----------------

See :ref:`Horizontal_Diffusion`.

See also :ref:`namespacemom__lateral__mixing__coeffs_1section_Resolution_Function`

Tidal forcing
-------------

Astronomical tidal forcings and self-attraction and loading are implement in MOM_tidal_forcing.
Tides can also be added via an open boundary tidal specification,
see [OBC wiki page](https://github.com/NOAA-GFDL/MOM6-examples/wiki/Open-Boundary-Conditions).
Astronomical tidal forcings and self-attraction and loading are implement in

:ref:`namespacetidal__forcing_1section_tides`

The Love numbers are stored internally in MOM_load_love_numbers:

:ref:`namespacemom__load__love__numbers_1section_Love_numbers`

while the self attraction and loading is computed in MOM_self_attr_load:

:ref:`namespaceself__attr__load_1section_SAL`

The self attraction and loading needs spherical harmonics, computed in MOM_spherical_harmonics:

:ref:`namespacemom__spherical__harmonics_1section_spherical_harmonics`

Tides can also be added via an open boundary tidal specification,
see `OBC wiki page <https://github.com/NOAA-GFDL/MOM6-examples/wiki/Open-Boundary-Conditions>`_.
194 changes: 190 additions & 4 deletions docs/zotero.bib
Original file line number Diff line number Diff line change
Expand Up @@ -967,7 +967,7 @@ @article{bitz1999
pages = {15669--15677}
}

@inproceedings{briegleb2007,
@incollection{briegleb2007,
series = {Technical {Note}},
title = {A {Delta}-{Eddington} {Mutiple} {Scattering} {Parameterization} for {Solar} {Radiation} in the {Sea} {Ice} {Component} of the {Community} {Climate} {System} {Model} {\textbar} {OpenSky} {Repository}},
url = {http://opensky.ucar.edu/islandora/object/technotes:484},
Expand Down Expand Up @@ -2447,7 +2447,7 @@ @article{russell1981
doi = {10.1175/1520-0450(1981)020<1483:ANFDSF>2.0.CO;2}
}

@inproceedings{huynh1997,
@incollection{huynh1997,
title = {Schemes and constraints for advection},
booktitle = {Fifteenth International Conference on Numerical
Methods in Fluid Dynamics},
Expand Down Expand Up @@ -2524,7 +2524,7 @@ @article{visbeck1997
}

@article{visbeck1996,
author = {Viscbeck, M. and J.C. Marshall and H. Jones},
author = {Visbeck, M. and J.C. Marshall and H. Jones},
year = {1996},
title = {Dynamics of isolated convective regions in the ocean},
journal = {J. Phys. Oceanogr.},
Expand Down Expand Up @@ -2564,7 +2564,7 @@ @article{marshall2010
doi = {10.1016/j.ocemod.2010.02.001}
}

@inproceedings{millero1978,
@incollection{millero1978,
author = {Millero, F.J.},
title = {Freezing point of seawater},
note = {Annex 6},
Expand Down Expand Up @@ -2760,3 +2760,189 @@ @article{Adcroft2019
journal = {J. Adv. Mod. Earth Sys.}
}

@article{Bodner2023,
title={Modifying the Mixed Layer Eddy Parameterization to Include Frontogenesis Arrest by Boundary Layer Turbulence},
volume={53},
ISSN={1520-0485},
url={http://dx.doi.org/10.1175/JPO-D-21-0297.1},
DOI={10.1175/jpo-d-21-0297.1},
number={1},
journal={Journal of Physical Oceanography},
publisher={American Meteorological Society},
author={Bodner, Abigail S. and Fox-Kemper, Baylor and Johnson, Leah and Van Roekel, Luke P. and McWilliams, James C. and Sullivan, Peter P. and Hall, Paul S. and Dong, Jihai},
year={2023},
month=jan,
pages={323-–339}
}

@article{Oberhuber1993a,
title={Simulation of the Atlantic Circulation with a Coupled Sea Ice-Mixed Layer-Isopycnal General Circulation Model. Part I: Model Description},
volume={23},
ISSN={1520-0485},
url={http://dx.doi.org/10.1175/1520-0485(1993)023<0808:SOTACW>2.0.CO;2},
DOI={10.1175/1520-0485(1993)023<0808:sotacw>2.0.co;2},
number={5},
journal={Journal of Physical Oceanography},
publisher={American Meteorological Society},
author={Oberhuber, Josef M.},
year={1993},
month=may,
pages={808–829}
}

@article{Smith2003,
title={Anisotropic horizontal viscosity for ocean models},
volume={5},
ISSN={1463-5003},
url={http://dx.doi.org/10.1016/s1463-5003(02)00016-1},
DOI={10.1016/s1463-5003(02)00016-1},
number={2},
journal={Ocean Modelling},
publisher={Elsevier BV},
author={Smith, Richard D. and McWilliams, James C.},
year={2003},
month=jan,
pages={129–156}
}

@article{Large2001,
title={Equatorial Circulation of a Global Ocean Climate Model with Anisotropic Horizontal Viscosity},
volume={31},
ISSN={1520-0485},
url={http://dx.doi.org/10.1175/1520-0485(2001)031<0518:ECOAGO>2.0.CO;2},
DOI={10.1175/1520-0485(2001)031<0518:ecoago>2.0.co;2},
number={2},
journal={Journal of Physical Oceanography},
publisher={American Meteorological Society},
author={Large, William G. and Danabasoglu, Gokhan and McWilliams, James C. and Gent, Peter R. and Bryan, Frank O.},
year={2001},
month=feb,
pages={518–536}
}

@incollection{Smagorinsky1993,
author={Joseph Smagorinsky},
year={1993},
title={Some historical remarks on the use of non-linear viscosities},
booktitle={Large Eddy Simulation of Complex Engineering and Geophysical Flows},
note={Proceedings of an International Workshop in Large Eddy Simulation},
address={Cambridge, UK},
publisher={Cambridge University Press},
pages={1--34}
}

@article{Barton2022,
title={Global Barotropic Tide Modeling Using Inline Self‐Attraction and Loading in MPAS‐Ocean},
volume={14},
ISSN={1942-2466},
url={http://dx.doi.org/10.1029/2022MS003207},
DOI={10.1029/2022ms003207},
number={11},
journal={Journal of Advances in Modeling Earth Systems},
publisher={American Geophysical Union (AGU)},
author={Barton, Kristin N. and Pal, Nairita and Brus, Steven R. and Petersen, Mark R. and Arbic, Brian K. and Engwirda, Darren and Roberts, Andrew F. and Westerink, Joannes J. and Wirasaet, Damrongsak and Schindelegger, Michael},
year={2022},
month=nov
}

@article{Brus2023,
title={Scalable self attraction and loading calculations for unstructured ocean tide models},
volume={182},
ISSN={1463-5003},
url={http://dx.doi.org/10.1016/j.ocemod.2023.102160},
DOI={10.1016/j.ocemod.2023.102160},
journal={Ocean Modelling},
publisher={Elsevier BV},
author={Brus, Steven R. and Barton, Kristin N. and Pal, Nairita and Roberts, Andrew F. and Engwirda, Darren and Petersen, Mark R. and Arbic, Brian K. and Wirasaet, Damrongsak and Westerink, Joannes J. and Schindelegger, Michael},
year={2023},
month=apr,
pages={102160}
}

@article{Blewitt2003,
title={Self‐consistency in reference frames, geocenter definition, and surface loading of the solid Earth},
volume={108},
ISSN={0148-0227},
url={http://dx.doi.org/10.1029/2002JB002082},
DOI={10.1029/2002jb002082},
number={B2},
journal={Journal of Geophysical Research: Solid Earth},
publisher={American Geophysical Union (AGU)},
author={Blewitt, Geoffrey},
year={2003},
month=feb
}

@article{Wang2012-2,
author={Wang, H. and Xiang, L. and Jia, L. and Jiang, L. and Wang, Z. and Hu, B.
and Gao, P.},
year={2012},
title={Load Love numbers and Green's functions
for elastic Earth models PREM, iasp91, ak135, and modified models with refined crustal structure from Crust 2.0},
journal={Computers & Geosciences},
volume={49},
pages={190--199}
}

@incollection{Hallberg2003,
title={The ability of large-scale ocean models to accept parameterizations of boundary mixing, and a description of a refined bulk mixed-layer model},
author={Robert Hallberg},
year={2003},
booktitle={Internal Gravity Waves and Small-Scale Turbulence: Proc.‘Aha Huliko ‘a Hawaiian Winter Workshop},
pages={187--203}
}

@article{Accad1978,
volume={290},
ISSN={2054-0272},
url={http://dx.doi.org/10.1098/rsta.1978.0083},
DOI={10.1098/rsta.1978.0083},
number={1368},
journal={Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences},
publisher={The Royal Society},
year={1978},
month=nov,
pages={235-–266},
author={Accad, Y. and Pekeris, C.L.},
title={Solution of the tidal equations for the M2 and S2 tides in the world oceans from a
knowledge of the tidal potential alone}
}

@article{Arbic2004,
title={The accuracy of surface elevations in forward global barotropic and baroclinic tide models},
volume={51},
ISSN={0967-0645},
url={http://dx.doi.org/10.1016/j.dsr2.2004.09.014},
DOI={10.1016/j.dsr2.2004.09.014},
number={25–26},
journal={Deep Sea Research Part II: Topical Studies in Oceanography},
publisher={Elsevier BV},
author={Arbic, Brian K. and Garner, Stephen T. and Hallberg, Robert W. and Simmons, Harper L.},
year={2004},
month=dec,
pages={3069-–3101}
}

@article{Schaeffer2013,
title={Efficient spherical harmonic transforms aimed at pseudospectral numerical simulations},
volume={14},
ISSN={1525-2027},
url={http://dx.doi.org/10.1002/ggge.20071},
DOI={10.1002/ggge.20071},
number={3},
journal={Geochemistry, Geophysics, Geosystems},
publisher={American Geophysical Union (AGU)},
author={Schaeffer, Nathanaël},
year={2013},
month=mar,
pages={751-–758}
}

@article{Young1994,
author={Young, W.},
title={The subinertial mixed layer approximation},
journal={J. Phys. Oceanogr.},
volume={24},
pages={1812--1826},
year={1994}
}
9 changes: 7 additions & 2 deletions src/core/MOM.F90
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ module MOM
use MOM_forcing_type, only : homogenize_forcing, homogenize_mech_forcing
use MOM_grid, only : ocean_grid_type, MOM_grid_init, MOM_grid_end
use MOM_grid, only : set_first_direction
use MOM_harmonic_analysis, only : HA_accum_FtF, HA_accum_FtSSH, harmonic_analysis_CS
use MOM_hor_index, only : hor_index_type, hor_index_init
use MOM_hor_index, only : rotate_hor_index
use MOM_interface_heights, only : find_eta, calc_derived_thermo, thickness_to_dz
Expand Down Expand Up @@ -389,6 +390,8 @@ module MOM
!< Pointer to the control structure used for the mode-split RK2 dynamics
type(MOM_dyn_split_RK2b_CS), pointer :: dyn_split_RK2b_CSp => NULL()
!< Pointer to the control structure used for an alternate version of the mode-split RK2 dynamics
type(harmonic_analysis_CS), pointer :: HA_CSp => NULL()
!< Pointer to the control structure for harmonic analysis
type(thickness_diffuse_CS) :: thickness_diffuse_CSp
!< Pointer to the control structure used for the isopycnal height diffusive transport.
!! This is also common referred to as Gent-McWilliams diffusion
Expand Down Expand Up @@ -911,6 +914,7 @@ subroutine step_MOM(forces_in, fluxes_in, sfc_state, Time_start, time_int_in, CS
enddo ; enddo
endif

if (associated(CS%HA_CSp)) call HA_accum_FtF(Time_Local, CS%HA_CSp)

call step_MOM_dynamics(forces, CS%p_surf_begin, CS%p_surf_end, dt, &
dt_therm_here, bbl_time_int, CS, &
Expand Down Expand Up @@ -1020,6 +1024,7 @@ subroutine step_MOM(forces_in, fluxes_in, sfc_state, Time_start, time_int_in, CS
ssh(i,j) = CS%ssh_rint(i,j)*I_wt_ssh
CS%ave_ssh_ibc(i,j) = ssh(i,j)
enddo ; enddo
if (associated(CS%HA_CSp)) call HA_accum_FtSSH('ssh', ssh, Time_local, G, CS%HA_CSp)
if (do_dyn) then
call adjust_ssh_for_p_atm(CS%tv, G, GV, US, CS%ave_ssh_ibc, forces%p_surf_SSH, &
CS%calc_rho_for_sea_lev)
Expand Down Expand Up @@ -3247,13 +3252,13 @@ subroutine initialize_MOM(Time, Time_init, param_file, dirs, CS, &
allocate(eta(SZI_(G),SZJ_(G)), source=0.0)
if (CS%use_alt_split) then
call initialize_dyn_split_RK2b(CS%u, CS%v, CS%h, CS%tv, CS%uh, CS%vh, eta, Time, &
G, GV, US, param_file, diag, CS%dyn_split_RK2b_CSp, restart_CSp, &
G, GV, US, param_file, diag, CS%dyn_split_RK2b_CSp, CS%HA_CSp, restart_CSp, &
CS%dt, CS%ADp, CS%CDp, MOM_internal_state, CS%VarMix, CS%MEKE, &
CS%thickness_diffuse_CSp, CS%OBC, CS%update_OBC_CSp, CS%ALE_CSp, CS%set_visc_CSp, &
CS%visc, dirs, CS%ntrunc, CS%pbv, calc_dtbt=calc_dtbt, cont_stencil=CS%cont_stencil)
else
call initialize_dyn_split_RK2(CS%u, CS%v, CS%h, CS%tv, CS%uh, CS%vh, eta, Time, &
G, GV, US, param_file, diag, CS%dyn_split_RK2_CSp, restart_CSp, &
G, GV, US, param_file, diag, CS%dyn_split_RK2_CSp, CS%HA_CSp, restart_CSp, &
CS%dt, CS%ADp, CS%CDp, MOM_internal_state, CS%VarMix, CS%MEKE, &
CS%thickness_diffuse_CSp, CS%OBC, CS%update_OBC_CSp, CS%ALE_CSp, CS%set_visc_CSp, &
CS%visc, dirs, CS%ntrunc, CS%pbv, calc_dtbt=calc_dtbt, cont_stencil=CS%cont_stencil)
Expand Down
Loading