mom_self_attr_load module reference

<undocumented>

More…

Data Types

sal_cs

The control structure for the MOM_self_attr_load module.

Functions/Subroutines

calc_sal()

This subroutine calculates seawater self-attraction and loading based on either sea surface height (SSH) or bottom pressure anomaly.

scalar_sal_sensitivity()

This subroutine returns eta_prop member of SAL_CS type, which is the non-dimensional partial derivative of the local geopotential height with the input sea surface height due to the scalar approximation of self-attraction and loading.

calc_love_scaling()

This subroutine calculates coefficients of the spherical harmonic modes for self-attraction and loading.

sal_init()

This subroutine initializes the self-attraction and loading control structure.

sal_end()

This subroutine deallocates memory associated with the SAL module.

Detailed Description

<undocumented>

Type Documentation

type mom_self_attr_load/sal_cs

The control structure for the MOM_self_attr_load module.

Type fields:
  • % use_sal_scalar [logical] :: If true, use the scalar approximation to calculate SAL.

  • % use_sal_sht [logical] :: If true, use online spherical harmonics to calculate SAL.

  • % use_tidal_sal_prev [logical] :: If true, read the tidal SAL from the previous iteration of the tides to facilitate convergence.

  • % use_bpa [logical] :: If true, use bottom pressure anomaly instead of SSH to calculate SAL.

  • % eta_prop [real] :: The partial derivative of eta_sal with the local value of eta [nondim].

  • % linear_scaling [real] :: Dimensional coefficients for scalar SAL [nondim or Z T2 L-2 R-1 ~> m Pa-1].

  • % sht [type( sht_cs ),allocatable] :: Spherical harmonic transforms (SHT) control structure.

  • % sal_sht_nd [integer] :: Maximum degree for spherical harmonic transforms [nondim].

  • % pbot_ref [real(:,:),allocatable] :: Reference bottom pressure [R L2 T-2 ~> Pa].

  • % love_scaling [real(:),allocatable] :: Dimensional coefficients for harmonic SAL, which are functions of Love numbers [nondim] or [Z T2 L-2 R-1 ~> m Pa-1], depending on the value of use_ppa.

  • % snm_re [real(:),allocatable] :: Real SHT coefficient for SHT SAL [Z ~> m].

  • % snm_im [real(:),allocatable] :: Imaginary SHT coefficient for SHT SAL [Z ~> m].

Function/Subroutine Documentation

subroutine mom_self_attr_load/calc_sal(eta, eta_sal, G, CS, tmp_scale)

This subroutine calculates seawater self-attraction and loading based on either sea surface height (SSH) or bottom pressure anomaly. Note that the SAL calculation applies to all motions across the spectrum. Tidal-specific methods that assume periodicity, i.e. iterative and read-in SAL, are stored in MOM_tidal_forcing module. The input field can be either SSH [Z ~> m] or total bottom pressure [R L2 T-2 ~> Pa]. If total bottom pressure is used, bottom pressure anomaly is first calculated by subtracting a reference bottom pressure from an input file. The output field is expressed as geopotential height anomaly, and therefore has the unit of [Z ~> m].

Parameters:
  • g :: [in] The ocean’s grid structure.

  • eta :: [in] The sea surface height anomaly from a time-mean geoid or total bottom pressure [Z ~> m] or [R L2 T-2 ~> Pa].

  • eta_sal :: [out] The geopotential height anomaly from self-attraction and loading [Z ~> m].

  • cs :: [inout] The control structure returned by a previous call to SAL_init.

  • tmp_scale :: [in] A rescaling factor to temporarily convert eta to MKS units in reproducing sumes [m Z-1 ~> 1]

Call to:

id_clock_sal mom_spherical_harmonics::order2index

Called from:

mom_pressureforce_fv::pressureforce_fv_bouss mom_pressureforce_fv::pressureforce_fv_nonbouss mom_pressureforce_mont::pressureforce_mont_bouss mom_pressureforce_mont::pressureforce_mont_nonbouss

subroutine mom_self_attr_load/scalar_sal_sensitivity(CS, deta_sal_deta)

This subroutine returns eta_prop member of SAL_CS type, which is the non-dimensional partial derivative of the local geopotential height with the input sea surface height due to the scalar approximation of self-attraction and loading.

Parameters:
  • cs :: [in] The control structure returned by a previous call to SAL_init.

  • deta_sal_deta :: [out] The partial derivative of eta_sal with the local value of eta [nondim].

subroutine mom_self_attr_load/calc_love_scaling(rhoW, rhoE, grav, CS)

This subroutine calculates coefficients of the spherical harmonic modes for self-attraction and loading. The algorithm is based on the SAL implementation in MPAS-ocean, which was modified by Kristin Barton from routine written by K. Quinn (March 2010) and modified by M. Schindelegger (May 2017).

Parameters:
  • rhow :: [in] The average density of sea water [R ~> kg m-3]

  • rhoe :: [in] The average density of Earth [R ~> kg m-3]

  • grav :: [in] The gravitational acceleration [L2 Z-1 T-2 ~> m s-2]

  • cs :: [inout] The control structure returned by a previous call to SAL_init.

Call to:

mom_load_love_numbers::love_data mom_error_handler::mom_error mom_spherical_harmonics::order2index

Called from:

sal_init

subroutine mom_self_attr_load/sal_init(h, tv, G, GV, US, param_file, CS, restart_CS)

This subroutine initializes the self-attraction and loading control structure.

Parameters:
  • g :: [in] The ocean’s grid structure.

  • gv :: [in] Vertical grid structure

  • us :: [in] A dimensional unit scaling type

  • param_file :: [in] A structure to parse for run-time parameters.

  • cs :: [inout] Self-attraction and loading control structure

  • tv :: [in] A structure pointing to various thermodynamic variables.

  • h :: [in] Layer thicknesses [H ~> m or kg m-2]

  • restart_cs :: [in] MOM restart control structure

Call to:

mom_spherical_harmonics::calc_lmax calc_love_scaling mom_io::create_mom_file mom_interface_heights::find_col_mass id_clock_sal mom_restart::is_new_run mom_string_functions::lowercase mom_error_handler::mom_error mom_io::var_desc

Called from:

mom_dynamics_split_rk2::initialize_dyn_split_rk2 mom_dynamics_split_rk2b::initialize_dyn_split_rk2b mom_dynamics_unsplit::initialize_dyn_unsplit mom_dynamics_unsplit_rk2::initialize_dyn_unsplit_rk2

subroutine mom_self_attr_load/sal_end(CS)

This subroutine deallocates memory associated with the SAL module.

Parameters:

cs :: [inout] The control structure returned by a previous call to SAL_init; it is deallocated here.

Called from:

mom_dynamics_split_rk2::end_dyn_split_rk2 mom_dynamics_split_rk2b::end_dyn_split_rk2b mom_dynamics_unsplit::end_dyn_unsplit mom_dynamics_unsplit_rk2::end_dyn_unsplit_rk2