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 sea surface height.

scalar_sal_sensitivity()

This subroutine calculates the 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.

  • % sal_scalar_value [real] :: The constant of proportionality between sea surface height (really it should be bottom pressure) anomalies and bottom geopotential anomalies [nondim].

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

  • % sal_sht_nd [integer] :: Maximum degree for SHT [nodim].

  • % love_scaling [real(:),allocatable] :: Love number for each SHT mode [nodim].

  • % 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 sea surface height. This should be changed into bottom pressure anomaly in the future. 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.

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

  • eta :: [in] The sea surface height anomaly from a time-mean geoid [Z ~> m].

  • eta_sal :: [out] The sea surface 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 scalar_sal_sensitivity

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 calculates the 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].

Called from:

calc_sal

subroutine mom_self_attr_load/calc_love_scaling(nlm, rhoW, rhoE, Love_Scaling)

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:
  • nlm :: [in] Maximum spherical harmonics degree [nondim]

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

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

  • love_scaling :: [out] Scaling factors for inverse SHT [nondim]

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(G, US, param_file, CS)

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

Parameters:
  • g :: [inout] The ocean’s 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

Call to:

mom_spherical_harmonics::calc_lmax calc_love_scaling id_clock_sal mom_error_handler::mom_error

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