MOM6
MOM_EOS.F90 File Reference
#include <MOM_memory.h>
#include "version_variable.h"
Include dependency graph for MOM_EOS.F90:

Go to the source code of this file.

Data Types

interface  mom_eos::calculate_density
 Calculates density of sea water from T, S and P. More...
 
interface  mom_eos::calculate_tfreeze
 Calculates the freezing point of sea water from T, S and P. More...
 
type  mom_eos::eos_type
 A control structure for the equation of state. More...
 

Modules

module  mom_eos
 Provides subroutines for quantities specific to the equation of state.
 

Functions/Subroutines

subroutine mom_eos::calculate_density_scalar (T, S, pressure, rho, EOS)
 Calls the appropriate subroutine to calculate density of sea water for scalar inputs. More...
 
subroutine mom_eos::calculate_density_array (T, S, pressure, rho, start, npts, EOS)
 Calls the appropriate subroutine to calculate the density of sea water for 1-D array inputs. More...
 
subroutine mom_eos::calculate_tfreeze_scalar (S, pressure, T_fr, EOS)
 Calls the appropriate subroutine to calculate the freezing point for scalar inputs. More...
 
subroutine mom_eos::calculate_tfreeze_array (S, pressure, T_fr, start, npts, EOS)
 Calls the appropriate subroutine to calculate the freezing point for a 1-D array. More...
 
subroutine, public mom_eos::calculate_density_derivs (T, S, pressure, drho_dT, drho_dS, start, npts, EOS)
 Calls the appropriate subroutine to calculate density derivatives for 1-D array inputs. More...
 
subroutine, public mom_eos::calculate_specific_vol_derivs (T, S, pressure, dSV_dT, dSV_dS, start, npts, EOS)
 Calls the appropriate subroutine to calculate specific volume derivatives for an array. More...
 
subroutine, public mom_eos::calculate_compress (T, S, pressure, rho, drho_dp, start, npts, EOS)
 Calls the appropriate subroutine to calculate the density and compressibility for 1-D array inputs. More...
 
subroutine, public mom_eos::int_specific_vol_dp (T, S, p_t, p_b, alpha_ref, HI, EOS, dza, intp_dza, intx_dza, inty_dza, halo_size)
 Calls the appropriate subroutine to alculate analytical and nearly-analytical integrals in pressure across layers of geopotential anomalies, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. There are essentially no free assumptions, apart from the use of Bode's rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < . More...
 
subroutine, public mom_eos::int_density_dz (T, S, z_t, z_b, rho_ref, rho_0, G_e, HII, HIO, EOS, dpa, intz_dpa, intx_dpa, inty_dpa)
 This subroutine calculates analytical and nearly-analytical integrals of pressure anomalies across layers, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model. The one potentially dodgy assumtion here is that rho_0 is used both in the denominator of the accelerations, and in the pressure used to calculated density (the latter being -z*rho_0*G_e). These two uses could be separated if need be. More...
 
logical function, public mom_eos::query_compressible (EOS)
 Returns true if the equation of state is compressible (i.e. has pressure dependence) More...
 
subroutine, public mom_eos::eos_init (param_file, EOS)
 Initializes EOS_type by allocating and reading parameters. More...
 
subroutine, public mom_eos::eos_allocate (EOS)
 Allocates EOS_type. More...
 
subroutine, public mom_eos::eos_end (EOS)
 Deallocates EOS_type. More...
 
subroutine, public mom_eos::eos_use_linear (Rho_T0_S0, dRho_dT, dRho_dS, EOS, use_quadrature)
 Set equation of state structure (EOS) to linear with given coefficients. More...
 
subroutine mom_eos::int_density_dz_generic (T, S, z_t, z_b, rho_ref, rho_0, G_e, HII, HIO, EOS, dpa, intz_dpa, intx_dpa, inty_dpa)
 
subroutine mom_eos::int_density_dz_generic_cell (T_t_arg, T_b_arg, S_t_arg, S_b_arg, z_t_arg, z_b_arg, depth, rho_ref, rho_0, G_e, EOS, dpa, intz_dpa, intx_dpa, inty_dpa)
 
subroutine, public mom_eos::int_density_dz_generic_plm (T_t, T_b, S_t, S_b, z_t, z_b, rho_ref, rho_0, G_e, H_subroundoff, bathyT, HII, HIO, EOS, dpa, intz_dpa, intx_dpa, inty_dpa, useMassWghtInterp)
 
subroutine, public mom_eos::find_depth_of_pressure_in_cell (T_t, T_b, S_t, S_b, z_t, z_b, P_t, P_tgt, rho_ref, G_e, EOS, P_b, z_out)
 Find the depth at which the reconstructed pressure matches P_tgt. More...
 
real function mom_eos::frac_dp_at_pos (T_t, T_b, S_t, S_b, z_t, z_b, rho_ref, G_e, pos, EOS)
 Returns change in anomalous pressure change from top to non-dimensional position pos between z_t and z_b. More...
 
subroutine, public mom_eos::int_density_dz_generic_ppm (T, T_t, T_b, S, S_t, S_b, z_t, z_b, rho_ref, rho_0, G_e, HII, HIO, EOS, dpa, intz_dpa, intx_dpa, inty_dpa)
 
subroutine, public mom_eos::int_density_dz_generic_plm_analytic (T_t, T_b, S_t, S_b, z_t, z_b, rho_ref, rho_0, G_e, HI, EOS, dpa, intz_dpa, intx_dpa, inty_dpa)
 
subroutine mom_eos::compute_integral_bilinear (x, y, f, integral)
 
subroutine mom_eos::compute_integral_quadratic (x, y, f, integral)
 
subroutine mom_eos::evaluate_shape_bilinear (xi, eta, phi, dphidxi, dphideta)
 
subroutine mom_eos::evaluate_shape_quadratic (xi, eta, phi, dphidxi, dphideta)
 
subroutine mom_eos::int_spec_vol_dp_generic (T, S, p_t, p_b, alpha_ref, HI, EOS, dza, intp_dza, intx_dza, inty_dza, halo_size)
 
subroutine, public mom_eos::convert_temp_salt_for_teos10 (T, S, press, G, kd, mask_z, EOS)
 Convert T&S to Absolute Salinity and Conservative Temperature if using TEOS10. More...
 

Variables

integer, parameter mom_eos::eos_linear = 1
 
integer, parameter mom_eos::eos_unesco = 2
 
integer, parameter mom_eos::eos_wright = 3
 
integer, parameter mom_eos::eos_teos10 = 4
 
integer, parameter mom_eos::eos_nemo = 5
 
character *(10), parameter mom_eos::eos_linear_string = "LINEAR"
 
character *(10), parameter mom_eos::eos_unesco_string = "UNESCO"
 
character *(10), parameter mom_eos::eos_wright_string = "WRIGHT"
 
character *(10), parameter mom_eos::eos_teos10_string = "TEOS10"
 
character *(10), parameter mom_eos::eos_nemo_string = "NEMO"
 
character *(10), parameter mom_eos::eos_default = EOS_WRIGHT_STRING
 
integer, parameter mom_eos::tfreeze_linear = 1
 
integer, parameter mom_eos::tfreeze_millero = 2
 
integer, parameter mom_eos::tfreeze_teos10 = 3
 
character *(10), parameter mom_eos::tfreeze_linear_string = "LINEAR"
 
character *(10), parameter mom_eos::tfreeze_millero_string = "MILLERO_78"
 
character *(10), parameter mom_eos::tfreeze_teos10_string = "TEOS10"
 
character *(10), parameter mom_eos::tfreeze_default = TFREEZE_LINEAR_STRING