Functions
Name |
Module |
Description |
|---|---|---|
Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure for array inputs. |
||
Calculate the in-situ density for 1D arraya inputs and outputs. |
||
Calculate the derivatives of density with respect to temperature, salinity and pressure for array inputs. |
||
Calculate the derivatives of density with respect to temperature, salinity and pressure for scalar inputs. |
||
Calculate the in-situ density for scalar inputs and outputs. |
||
Calculate the second derivatives of density with respect to temperature, salinity and pressure for array inputs. |
||
Calculate the second derivatives of density with respect to temperature, salinity and pressure for scalar inputs. |
||
Calculate the in-situ specific volume for 1D array inputs and outputs. |
||
Calculate the in-situ specific volume for scalar inputs and outputs. |
||
Calculate the partial derivatives of specific volume with temperature and salinity for array inputs. |
||
In situ density [kg m-3]. |
||
Signature for the grow methods on n-dimension diagnostic buffer types. |
||
Turns on debugging. |
||
In situ specific volume [m3 kg-1]. |
||
Converts an array of absolute salinity to practical salinity. The input arguments use the dimensionally rescaling as specified within the EOS type. The output potential temperature uses this same scaling, but this can be replaced by the factor given by scale. |
||
Converts non-dimensional position within a layer to absolute position (for debugging) |
||
Converts non-dimensional positions within layers to absolute positions (for debugging) |
||
Apply shortwave heating below the boundary layer (when running with the bulk mixed layer inherited from GOLD) or throughout the water column. |
||
This subroutine accumulates the net input of volume, salt and heat, through the ocean surface for use in diagnosing conservation. |
||
The default activation function. |
||
Adcroft_reciprocal(x) = 1/x for |x|>0 or 0 for x=0. |
||
Adcroft_reciprocal(x) = 1/x for |x|>0 or 0 for x=0. |
||
This function implements Adcroft’s rule for reciprocals, namely that Adcroft_Inv(x) = 1/x for |x|>0 or 0 for x=0. |
||
Modifies isopycnal height diffusivities to untangle layer structures. |
||
Create a diagnostic type and attached to list. |
||
Create a diagnostic type and attached to list. |
||
This routine adds diffusion sustained by flow energy extracted by bottom drag. |
||
This subroutine adds the effect of internal-tide-driven mixing to the layer diffusivities. The mechanisms considered are (1) local dissipation of internal waves generated by the barotropic flow (“itidal”), (2) local dissipation of internal waves generated by the propagating low modes (rays) of the internal tide (“lowmode”), and (3) local dissipation of internal lee waves. Will eventually need to add diffusivity due to other wave-breaking processes (e.g. Bottom friction, Froude-number-depending breaking, PSI, etc.). |
||
Add a diffusivity that acts on the isopycnal heights, regardless of the densities. |
||
Calculates a BBL diffusivity use a Prandtl number 1 diffusivity with a law of the wall turbulent viscosity, up to a BBL height where the energy used for mixing has consumed the mechanical TKE input. |
||
This routine adds effects of mixed layer radiation to the layer diffusivities. |
||
Dummy version of MARBL’s add_output_for_GCM() function. |
||
Augment the count the valid unit descriptions, and add the provided description and its weight to the end of the list if that list is allocated. |
||
Updates surface fluxes that are influenced by sub-ice-shelf melting. |
||
This subroutine adds the mechanical forcing fields and perhaps shelf areas, based on the ice state in ice_shelf_CS. |
||
This subroutine adds the ice shelf pressure to the fluxes type. |
||
Adds the encoded “cell_methods” for a diagnostics as a diag% property This allows access to the cell_method for a given diagnostics at the time of sending. |
||
Routine called for adiabatic physics. |
||
A simplified version of diabatic_driver_init that will allow tracer column functions to be called without allowing any of the diabatic processes to be used. |
||
Adjust 2d array such that area mean is zero without moving the zero contour. |
||
Copies frazil from the ocean surface state to the ice sheet state. Removes frazil that will be used by the ice sheet from the ocean surface state. |
||
Adjust dz_Interface to ensure non-negative future thicknesses. |
||
Adjust_local_BT_cont_types expands the range of velocities with a cubic curve translating velocities into transports to match the initial values of velocities and summed transports when the velocities are larger than the first guesses of the cubic transition velocities used to set up the local_BT_cont types. |
||
This subroutine keeps salinity from falling below a small but positive threshold. This usually occurs when the ice model attempts to extract more salt then is actually available to it from the ocean. |
||
Apply a correction to the sea surface height to compensate for the atmospheric pressure (the inverse barometer). |
||
Adjust interface heights to fit the bathymetry and diagnose layer thickness. |
||
Crudely adjust (initial) grid for integrity. This routine is typically called (from initialize_MOM in file |
||
Initialization of temperature and salinity in the adjustment test case. |
||
Initializes the layer thicknesses in the adjustment test case. |
||
Adjust interface heights to fit the bathymetry and diagnose layer thickness. |
||
This routine time steps the tracer concentration using a monotonic, conservative, weakly diffusive scheme. |
||
This subroutine does 1-d flux-form advection in the zonal direction using a monotonic piecewise linear scheme. |
||
This subroutine does 1-d flux-form advection using a monotonic piecewise linear scheme. |
||
Calculate the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. |
||
Applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this package. This is a simple example of a set of advected passive tracers. |
||
Deallocate memory associated with this module. |
||
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler. |
||
End of regridding (memory deallocation). This routine is typically called (from MOM_end in file |
||
Query the target coordinate interfaces positions. |
||
Query the target coordinate units. |
||
This routine is typically called (from initialize_MOM in file |
||
Initializes regridding for the main ALE algorithm. |
||
Set h to coordinate values for fixed coordinate systems. |
||
Regrid/remap stored fields used for offline tracer integrations. These input fields are assumed to have the same layer thicknesses at the end of the last offline interval (which should be a Zstar grid). This routine builds a grid on the runtime specified vertical coordinate. |
||
Calculate edge values (top and bottom of layer) 3d scalar array. Boundary reconstructions are PCM unless bdry_extrap is true. |
||
Initialize diagnostics for the ALE module. |
||
Takes care of building a new grid. The creation of the new grid can be based on z coordinates, target interface densities, sigma coordinates or any arbitrary coordinate system. |
||
For a state-based coordinate, accelerate the process of regridding by repeatedly applying the grid calculation algorithm. |
||
ALE_regridding_and_remapping does regridding (the generation of a new grid) and remapping (from the old grid to the new grid). This is done after the themrodynamic step. |
||
Returns true if initial conditions should be regridded and remapped. |
||
Interpolate to find an updated array of values at interfaces after remapping. |
||
Remaps a single scalar between grids described by thicknesses h_src and h_dst. h_dst must be dimensioned as a model array with GVke layers while h_src can have an arbitrary number of layers specified by nk_src. |
||
This routine sets the thicknesses at velocity points used for vertical remapping. |
||
Mask out the thicknesses at velocity points where they are below the minimum depth at adjacent tracer points. |
||
This routine sets the thicknesses at velocity points used for vertical remapping using a combination of the old grid and interface movements. |
||
This routine takes care of remapping all tracer variables between the old and the new grids. This routine is called during initialization of the model at time=0, to remap initial conditions to the model grid. It is also called during a time step to update the state. |
||
This routine remaps velocity components between the old and the new grids, with thicknesses at velocity points taken to be arithmetic averages of tracer thicknesses. This routine may be called during initialization of the model at time=0, to remap initial conditions to the model grid. It is also called during a time step to update the state. |
||
Interpolate to find an updated array of values at vertices of tracer cells after remapping. |
||
Sets the boundary extrapolation set for the remapping type. |
||
Sets the remapping algorithm to that of OM4. |
||
Updates the weights for time filtering the new grid generated in regridding. |
||
Update the vertical grid type with ALE information. This subroutine sets information in the verticalGrid_type to be consistent with the use of ALE mode. |
||
Write the vertical coordinate information into a file. This subroutine writes out a file containing any available data related to the vertical grid used by the MOM ocean model when in ALE mode. |
||
Calculates factors in the anisotropic orientation tensor to be align with the grid. With n1=1 and n2=0, this recovers the approach of Large et al, 2001. |
||
Allocates the arrays contained within a BT_cont_type and initializes them to 0. |
||
Make a new diagnostic. Either use memory which is in the array of ‘primary’ diagnostics, or if that is in use, insert it to the list of secondary diagnostics. |
||
Make a new diagnostic. Either use memory which is in the array of ‘primary’ diagnostics, or if that is in use, insert it to the list of secondary diags. |
||
Conditionally allocate fields within the forcing type. |
||
Allocate elements of a new forcing type based on their status in an existing type. |
||
Conditionally allocate fields within the mechanical forcing type using control flags. |
||
Conditionally allocate fields within the mechanical forcing type based on a reference forcing. |
||
Allocate memory used by the |
||
Allocate segment data fields. |
||
Allocate a 2d integer array on the rotated index map of a reference array. |
||
Allocate a 2d real array on the rotated index map of a reference array. |
||
Allocate a 3d real array on the rotated index map of a reference array. |
||
Allocate a 4d real array on the rotated index map of a reference array. |
||
Allocate an array of data for a field on a segment based on the size of a potentially rotated source array. |
||
Allocate data (buffer_src, buffer_dst and dz_src) for a field at an OBC segment. |
||
Allocates the fields for the surface (return) properties of the ocean model. Unused fields are unallocated. |
||
Allocates arrays only when needed. |
||
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. |
||
Calls the appropriate subroutine to calculate 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 Boole’s rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
An “angled coast profile” [nondim]. |
||
Allocate an ANN. |
||
Single application of ANN inference using array input and output with (space,feature) indexing. |
||
Single application of ANN inference using vector input and output. |
||
Single application of ANN inference using vector input and output. |
||
Deallocates memory of ANN. |
||
Initialization of ANN. Allocates memory and reads ANN parameters from NetCDF file. The NetCDF file must contain: Integer num_layers. Integer arrays: layer_sizes, input_norms, output_norms Matrices and biases for Linear layers can be Real(4) or Real(8) and are named as: A0, b0 for the first layer; A1, b1 for the second layer and so on. |
||
Create a random ANN. |
||
Test ANN by comparing the prediction with the test data. |
||
Runs unit tests on ANN functions. |
||
This subroutine duplicates an interface used by the FMS coupler, but only returns a value of -1. None of the arguments are used for anything. |
||
Append a new axis to the list. |
||
Append a new axis to the list. |
||
Append a new field to the list. |
||
Append a new field to the list. |
||
Appends a dataset to the aggregation list When appending a dataset to an aggregation list, the list will automatically be created if it does not exist (i.e. this is the first entry in the list). Aggregation lists work by referencing the dataset by storing its key, so appending a dataset to an aggregation list does not create a copy of the dataset. Also, for this reason, the dataset must have been previously placed into the database with a separate call to |
||
This subroutine determines corrective surface forcing fields using simple control theory. |
||
Adds thermodynamic flux adjustments obtained via data_override Component name is ‘OCN’ Available adjustments are: |
||
Adds mechanical forcing adjustments obtained via data_override Component name is ‘OCN’ Available adjustments are: |
||
This subroutine applies oda increments to layers thicknesses, temp, salt, U and V everywhere . |
||
Apply increments to tracers. |
||
Mask out thicknesses to 0 when their running sum exceeds a specified value. |
||
This subroutine applies damping to the layers thicknesses, mixed layer buoyancy, and a variety of tracers for every column where there is damping. |
||
Applies a list of topography overrides read from a netcdf file. |
||
This subroutine applies the open boundary conditions on barotropic zonal velocities and mass transports, as developed by Mehmet Ilicak. |
||
This subroutine applies the open boundary conditions on barotropic meridional velocities and mass transports, as developed by Mehmet Ilicak. |
||
Update the thickness, temperature, and salinity due to thermodynamic boundary forcing (contained in fluxes type) applied to h, tvT and tvS, and calculate the TKE implications of this heating. |
||
This routine is modeled after applyBoundaryFluxesInOut in |
||
Issue error messages or warnings about the use of an archaic parameter name. |
||
Find the global maximum and minimum of a tracer array and return the locations of the extrema. When there multiple cells with the same extreme values, the reported locations are from the uppermost layer where they occur, and then from the logically northernmost and then eastermost such location on the unrotated version of the grid within that layer. Only ocean points (as indicated by a positive value of Gmask2dT) are evaluated, and if there are no ocean points anywhere in the domain, the reported extrema and their locations are all returned as 0. |
||
Issues a FATAL error if the assertion fails, i.e. the first argument is false. |
||
Finds astronomical longitudes s, h, p, and N, the mean longitude of the moon, sun, lunar perigee, and ascending node, respectively, at the specified reference time time_ref. These formulas were obtained from Kowalik and Luick, “Modern Theory and Practice of Tide Analysis and Tidal Power”, 2019 (their Equation I.71), which are based on Schureman, 1958. For simplicity, the time associated with time_ref should be at midnight. These formulas also only make sense if the calendar is Gregorian. |
||
Attaches “cell_methods” attribute to a variable based on defaults for |
||
Attaches “cell_methods” attribute to a variable based on defaults for |
||
Average between xa and xb for cell k of a 1D PPM reconstruction [A]. |
||
Average between xa and xb for cell k of a 1D PLM reconstruction [A]. |
||
Average between xa and xb for cell k of a 1D PCM reconstruction [A]. |
||
Average between xa and xb for cell k of a 1D PPM reconstruction [A]. |
||
Average between xa and xb for cell k of a 1D PLM reconstruction [A]. |
||
Average between xa and xb for cell k of a 1D PLM reconstruction [A]. |
||
Average between xa and xb for cell k of a 1D PPM reconstruction [A]. |
||
Average between xa and xb for cell k of a 1D PLM reconstruction [A] Note: this uses the simple polynomial form a + b * x on x E (0,1) which can overshoot at x=1. |
||
Replace discontinuous collocated edge values with their average. |
||
Calls the appropriate subroutine to calculate the layer averaged specific volume either using Boole’s rule quadrature or analytical and nearly-analytical averages in pressure. |
||
Returns the average value of a reconstruction within a single source cell, i0, between the non-dimensional positions xa and xb (xa<=xb) with dimensional separation dh. |
||
Calculates analytical and nearly-analytical integrals, in pressure across layers, to determine the layer-average specific volumes. There are essentially no free assumptions, apart from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
Calculates the layer average specific volumes. The analytical solution is SpV_avg = 1 / (drho_dp*dp) * ln[(1+eps)/(1-eps)] and the expression here is the first five terms of its Taylor series with a trunction error of O(eps**10). |eps|<0.02 for real ocean parameters. |
||
Calculates analytical and nearly-analytical integrals, in pressure across layers, to determine the layer-average specific volumes. There are essentially no free assumptions, apart from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
Calculates analytical and nearly-analytical integrals, in pressure across layers, to determine the layer-average specific volumes. There are essentially no free assumptions, apart from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
Calculate the average in situ specific volume across layers. |
||
Initialization of temperature and salinity with the baroclinic zone initial conditions. |
||
Clean up the barotropic control structure. |
||
Copies ubtav and vbtav from private type into arrays. |
||
barotropic_init initializes a number of time-invariant fields used in the barotropic calculation and initializes any barotropic fields that have not already been initialized. |
||
Constructs idealized topography from simple functions. |
||
Reads the parameters unique to this module. |
||
Initializes layer temperatures and salinities for benchmark. |
||
Initializes layer thicknesses for the benchmark test case, by finding the depths of interfaces in a specified latitude-dependent temperature profile with an exponentially decaying thermocline on top of a linear stratification. |
||
This subroutine sets up the benchmark test case topography. |
||
Bouyancy forcing for the boundary-forced-basin (BFB) configuration. |
||
This subroutine sets up the sponges for the southern boundary of the domain. Maximum damping occurs within 2 degrees lat of the boundary. The damping linearly decreases northward over the next 2 degrees. |
||
This subroutine specifies the vertical coordinate in terms of temperature at the surface and at the bottom. This case is set up in such a way that the temperature of the topmost layer is equal to the SST at the southern edge of the domain. The temperatures are then converted to densities of the top and bottom layers and linearly interpolated for the intermediate layers. |
||
Initialization for forcing the boundary-forced-basin (BFB) configuration. |
||
This subroutine calculates the gradients of bilinear basis elements that are centered at the vertices of the cell using a locally orthogoal MOM6 grid. Values are calculated at points of gaussian quadrature. |
||
This subroutine calculates the gradients of bilinear basis elements that are centered at the vertices of the cell using a locally orthogoal MOM6 grid. Values are calculated at a sinlge cell-centered quadrature point, which should match the grid cell h-point. |
||
This subroutine calculates the gradients of bilinear basis elements that that are centered at the vertices of the cell. Values are calculated at points of gaussian quadrature. |
||
Does a bitcount of a number by first casting to an integer and then using BTEST to check bit by bit. |
||
Clear pointers and deallocate memory. |
||
Initialize the background mixing routine. |
||
Bound edge values by neighboring cell averages. |
||
Calculate total inventory of tracer This function calculates the mass-weighted integral of the boundary impulse, tracer stocks returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. |
||
Apply source or sink at boundary and do vertical diffusion. |
||
Performs finalization of boundary impulse tracer. |
||
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler. |
||
Find the k-index range corresponding to the layers that are within the boundary-layer region. |
||
This subroutine uses the BT_cont_type to find the maximum face areas, which can then be used for finding wave speeds, etc. |
||
bt_mass_source determines the appropriately limited mass source for the barotropic solver, along with a corrective fictitious mass source that will drive the barotropic estimate of the free surface height toward the baroclinic estimate. |
||
btcalc determines the fraction of the total water column in each layer at velocity points. |
||
This routine adds a dynamic pressure force based on the temporal changes in the predicted value of eta, perhaps as an effective divergence damping to emulate the rigidity of an ice-sheet. |
||
A routine to set eta_pred and the running time integral of uhbt and vhbt. |
||
Update zonal velocity. |
||
Update meridional velocity. |
||
This subroutine time steps the barotropic equations explicitly. For gravity waves, anything between a forwards-backwards scheme and a simulated backwards Euler scheme is used, with bebt between 0.0 and 1.0 determining the scheme. In practice, bebt must be of order 0.2 or greater. A forwards-backwards treatment of the Coriolis terms is always used. |
||
Find the Coriolis force terms _zon and _mer. |
||
Calculate the zonal and meridional acceleration of each layer due to the barotropic calculation. |
||
Update the barotropic solver through multiple time steps. |
||
Calculate the zonal and meridional velocity from the 3-D velocity. |
||
Build a grid by interpolating for target values. |
||
Build cubic interpolant in cell k. |
||
This subroutine builds an adaptive grid that follows density surfaces where possible, subject to constraints on the smoothness of interface heights. |
||
Builds a simple HyCOM-like grid with the deepest location of potential density interpolated from the column profile and a clipping of depth for each interface to a fixed z* or p* grid. This should probably be (optionally?) changed to find the nearest location of the target density. |
||
Build a HyCOM coordinate column. |
||
Calculate interface density anomaly w.r.t. the target. |
||
Creates polynomial reconstructions of u0 on the source grid h0. |
||
Build a rho coordinate column. |
||
Iteratively build a rho coordinate column. |
||
This routine builds a new grid based on a given set of target interface densities. |
||
Build a sigma coordinate column. |
||
This routine builds a grid based on terrain-following coordinates. |
||
Builds a z* coordinate with a minimum thickness. |
||
Builds a z*-coordinate grid with partial steps (Adcroft and Campin, 2004). z* is defined as z* = (z-eta)/(H+eta)*H s.t. z*=0 when z=eta and z*=-H when z=-H . |
||
This subroutine partially steps the bulk mixed layer model. See |
||
This subroutine initializes the MOM bulk mixed layer module. |
||
Sets up spatially and temporally constant surface heat fluxes. |
||
Specifies zero surface buoyancy fluxes from data over-ride. |
||
Specifies zero surface buoyancy fluxes from input files. |
||
Sets surface fluxes of heat and salinity by restoring to temperature and salinity profiles that vary linearly with latitude. |
||
This subroutine specifies zero surface buoyancy fluxes. |
||
Calculate the difference in density between two points in a variety of ways. |
||
Calculates the non-dimensional depth functions. |
||
Calculate derived thermodynamic quantities for re-use later. |
||
Calculates the Eady growth rate (2D fields) for use in MEKE and the Visbeck schemes. |
||
Calculates h_new from h + delta_k dzInterface. |
||
Calculate isopycnal slopes, and optionally return other stratification dependent functions such as N^2 and dz*S^2*g-prime used, or calculable from factors used, during the calculation. |
||
Subroutine for calculating shear-driven diffusivity and TKE in corner columns. |
||
Calculates the number of real elements (cosine) of spherical harmonics given maximum degree Nd. |
||
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). |
||
subroutine to calculate the profile fit (the three parameter fit from Adcroft 2013) |
||
subroutine to calculate the profile fit (the three parameter fit from Adcroft 2013) |
||
Calculates the Leith Laplacian and bi-harmonic viscosity coefficients. |
||
Calculates and returns isopycnal slopes with wider halos for use in finding QG viscosity. |
||
Calculates and stores the non-dimensional resolution functions. |
||
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]. |
||
Calculate the hydrostatic equilibrium position of the surface under an ice shelf. |
||
Calculate driving stress using cell-centered bed elevation and ice thickness. |
||
Update basal shear. |
||
Update depth integrated viscosity, based on horizontal strain rates. |
||
Calculates and stores functions of isopycnal slopes, e.g. Sx, Sy, S*N, mostly used in the Visbeck et al. style scaling of diffusivity. |
||
The original calc_slope_function() that calculated slopes using interface positions only, not accounting for density variations. |
||
Calls the appropriate subroutine to calculate the specific volume of sea water for 1-D array inputs, potentially limiting the domain of indices that are worked on. |
||
Calls the appropriate subroutine to calculate specific volume derivatives for 1-d array inputs, potentially limiting the domain of indices that are worked on. |
||
Calls the appropriate subroutine to calculate specific volume of sea water for scalar inputs. |
||
Second derivatives of specific volume with respect to temperature, salinity, and pressure for a 1-d array inputs and outputs using the specific volume polynomial fit from Roquet et al. (2015). |
||
Calculates and stores functions of SQG mode. |
||
This subroutine calculates the geopotential anomalies that drive the tides, including tidal self-attraction and loading from previous solutions. |
||
This subroutine functions the same as calc_tidal_forcing but outputs a field that combines previously calculated self-attraction and loading (SAL) and tidal forcings, so that old answers can be preserved bitwise before SAL is separated out as an individual module. |
||
Calculates factors used when setting diffusivity coefficients similar to Visbeck et al., 1997. This is on older implementation that is susceptible to large values of Eady growth rate for incropping layers. |
||
Calculates the vertical background diffusivities/viscosities. |
||
Calls the appropriate subroutine to calculate the density and compressibility for 1-D array inputs. The inputs and outputs use dimensionally rescaled units. |
||
Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure using the poor implementation of the equation of state, as fit by Wright, 1997. |
||
Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure using Jackett et al., 2006. |
||
This subroutine computes the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature, and pressure. |
||
Compute the in situ density of sea water (rho in [kg m-3]) and the compressibility (drho/dp = C_sound^-2, stored as drho_dp [s2 m-2]) from absolute salinity (sal [g kg-1]), conservative temperature (T [degC]), and pressure [Pa], using the density polynomial fit EOS from Roquet et al. (2015). |
||
Compute the in situ density of sea water (rho in [kg m-3]) and the compressibility (drho/dp = C_sound^-2, stored as drho_dp [s2 m-2]) from absolute salinity (sal [g kg-1]), conservative temperature (T [degC]), and pressure [Pa], using the specific volume polynomial fit from Roquet et al. (2015). |
||
This subroutine computes the in situ density of sea water (rho in [kg m-3]) and the compressibility (drho/dp = C_sound^-2) (drho_dp [s2 m-2]) from absolute salinity (sal [g kg-1]), conservative temperature (T [degC]), and pressure [Pa]. It uses the subroutines from TEOS10 website. |
||
Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure using the UNESCO (1981) equation of state, as refit by Jackett and McDougall (1995). |
||
Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure using the full range equation of state, as fit by Wright, 1997. |
||
Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure using the reduced range equation of state, as fit by Wright, 1997. |
||
Calculate density and compressibility for a scalar. This just promotes the scalar to an array with a singleton dimension and calls calculate_compress_1d. The inputs and outputs use dimensionally rescaled units. |
||
Subroutine for calculating enhanced diffusivity/viscosity due to convection via CVMix. |
||
Subroutine for calculating (internal) vertical diffusivities/viscosities. |
||
Calls the CVMix routines to compute tidal dissipation and to add the effect of internal-tide-driven mixing to the interface diffusivities. |
||
Calls the appropriate subroutine to calculate the density of sea water for 1-D array inputs, potentially limiting the domain of indices that are worked on. If rho_ref is present, the anomaly with respect to rho_ref is returned. |
||
Calculate the in-situ density for 1D arraya inputs and outputs. |
||
Calculate the in-situ density for 1D arraya inputs and outputs. |
||
Calculate the in-situ density for 1D arraya inputs and outputs. |
||
Calculate the in-situ density for 1D arraya inputs and outputs. |
||
Calculate the in-situ density for 1D arraya inputs and outputs. |
||
Calculate the in-situ density for 1D arraya inputs and outputs. |
||
Calls the appropriate subroutine to calculate density derivatives for 1-D array inputs. |
||
Calls the appropriate subroutine to calculate density derivatives for 1-D array inputs. |
||
Calculate the partial derivatives of density with potential temperature and salinity using the buggy implementation of the equation of state, as fit by Wright, 1997. |
||
Calculate the partial derivatives of density with potential temperature and salinity using Jackett et al., 2006. |
||
This subroutine calculates the partial derivatives of density with potential temperature and salinity. |
||
For a given thermodynamic state, calculate the derivatives of density with conservative temperature and absolute salinity, using the density polynomial fit EOS from Roquet et al. (2015). |
||
Compute an array of derivatives of densities of sea water with temperature (drho_dT in [kg m-3 degC-1]) and salinity (drho_dS in [kg m-3 ppt-1]) from absolute salinity (S [g kg-1]), conservative temperature (T [degC]) and pressure [Pa], using the specific volume polynomial fit from Roquet et al. (2015). |
||
For a given thermodynamic state, calculate the derivatives of density with conservative temperature and absolute salinity, using the TEOS10 expressions. |
||
Calculate the partial derivatives of density with potential temperature and salinity using the UNESCO (1981) equation of state, as refit by Jackett and McDougall (1995). |
||
Calculate the partial derivatives of density with potential temperature and salinity using the full range equation of state, as fit by Wright, 1997. |
||
Calculate the partial derivatives of density with potential temperature and salinity using the reduced range equation of state, as fit by Wright, 1997. |
||
Calls the appropriate subroutines to calculate density derivatives by promoting a scalar to a one-element array. |
||
Density of sea water (in-situ if pressure is local) [R ~> kg m-3]. |
||
Calls the appropriate subroutine to calculate density of sea water for scalar inputs. If rho_ref is present, the anomaly with respect to rho_ref is returned. The pressure and density can be rescaled with the values stored in EOS. If the scale argument is present the density scaling uses the product of the two scaling factors. |
||
Calls the appropriate subroutine to calculate density second derivatives for 1-D array inputs. |
||
Second derivatives of density with respect to temperature, salinity, and pressure, using the poor implementation of the equation of state, as fit by Wright, 1997. |
||
Calculate second derivatives of density with respect to temperature, salinity, and pressure, using Jackett et al., 2006. |
||
This subroutine calculates the five, partial second derivatives of density w.r.t. potential temperature and salinity and pressure which for a linear equation of state should all be 0. |
||
Second derivatives of density with respect to temperature, salinity, and pressure. |
||
Second derivatives of density with respect to temperature, salinity, and pressure for a 1-d array inputs and outputs using the specific volume polynomial fit from Roquet et al. (2015). |
||
Calculate the 5 second derivatives of the equation of state for scalar inputs. |
||
Calculate second derivatives of density with respect to temperature, salinity, and pressure, using the UNESCO (1981) equation of state, as refit by Jackett and McDougall (1995) |
||
Second derivatives of density with respect to temperature, salinity, and pressure, using the full range equation of state, as fit by Wright, 1997. |
||
Second derivatives of density with respect to temperature, salinity, and pressure, using the reduced range equation of state, as fit by Wright, 1997. |
||
Calls the appropriate subroutine to calculate density second derivatives for scalar inputs. |
||
This subroutine calculates all registered time derivatives. |
||
Diagnostics not more naturally calculated elsewhere are computed here. |
||
This subroutine calculates terms in the mechanical energy budget. |
||
Subroutine for calculating shear-driven diffusivity and TKE in tracer columns. |
||
This subroutine calculates the velocities, temperature and salinity that the water column will have after mixing for dt with diffusivities kappa. It may also calculate the projected buoyancy frequency and shear. |
||
Calls the appropriate subroutine to calculate the specific volume of sea water for 1-D array inputs. |
||
Calculate the in-situ specific volume for 1D array inputs and outputs. |
||
Calculate the in-situ specific volume for 1D array inputs and outputs. |
||
Calculate the in-situ specific volume for 1D array inputs and outputs. |
||
Calculate the in-situ specific volume for 1D array inputs and outputs. |
||
Calculate the in-situ specific volume for 1D array inputs and outputs. |
||
Calculate the in-situ specific volume for 1D array inputs and outputs. |
||
Calls the appropriate subroutine to calculate specific volume derivatives for an array. |
||
Calculate the partial derivatives of specific volume with temperature and salinity using the poor implementation of the equation of state, as fit by Wright, 1997. |
||
Calculate second derivatives of density with respect to temperature, salinity, and pressure, using Jackett et al., 2006. |
||
Calculate the derivatives of specific volume with temperature and salinity. |
||
Calculate the partial derivatives of specific volume with temperature and salinity using the density polynomial fit EOS from Roquet et al. (2015). |
||
Return the partial derivatives of specific volume with temperature and salinity for 1-d array inputs and outputs, using the specific volume polynomial fit from Roquet et al. (2015). |
||
For a given thermodynamic state, calculate the derivatives of specific volume with conservative temperature and absolute salinity, using the TEOS10 expressions. |
||
Calculate the partial derivatives of specific volume with temperature and salinity using the UNESCO (1981) equation of state, as refit by Jackett and McDougall (1995). |
||
Calculate the partial derivatives of specific volume with temperature and salinity using the full range equation of state, as fit by Wright, 1997. |
||
Calculate the partial derivatives of specific volume with temperature and salinity using the reduced range equation of state, as fit by Wright, 1997. |
||
Calls the appropriate subroutine to calculate the density of sea water for 1-D array inputs including the variance of T, S and covariance of T-S, potentially limiting the domain of indices that are worked on. The calculation uses only the second order correction in a series as discussed in Stanley et al., 2020. If rho_ref is present, the anomaly with respect to rho_ref is returned. |
||
Calls the appropriate subroutine to calculate density of sea water for scalar inputs including the variance of T, S and covariance of T-S. The calculation uses only the second order correction in a series as discussed in Stanley et al., 2020. If rho_ref is present, the anomaly with respect to rho_ref is returned. The density can be rescaled using rho_ref. |
||
Calls the appropriate subroutine to calculate the freezing point for a 1-D array, taking dimensionally rescaled arguments with factors stored in EOS. |
||
Calls the appropriate subroutine to calculate the freezing point for a 1-D array. |
||
This subroutine computes an array of freezing point potential temperatures [degC] from salinity [ppt], and pressure [Pa] using a simple linear expression, with coefficients passed in as arguments. |
||
This subroutine computes the freezing point potential temperature [degC] from salinity [ppt], and pressure [Pa] using a simple linear expression, with coefficients passed in as arguments. |
||
This subroutine computes the freezing point potential temperature [degC] from salinity [ppt], and pressure [Pa] using the expression from Millero (1978) (and in appendix A of Gill 1982), but with the pressure dependence changed from 7.53e-8 to 7.75e-8 to make this an expression for potential temperature (not in situ temperature), using a value that is correct at the freezing point at 35 PSU and 5e6 Pa (500 dbar). |
||
This subroutine computes the freezing point potential temperature [degC] from salinity [ppt], and pressure [Pa] using the expression from Millero (1978) (and in appendix A of Gill 1982), but with the of the pressure dependence changed from 7.53e-8 to 7.75e-8 to make this an expression for potential temperature (not in situ temperature), using a value that is correct at the freezing point at 35 PSU and 5e6 Pa (500 dbar). |
||
Calls the appropriate subroutine to calculate the freezing point for scalar inputs. |
||
This subroutine computes the freezing point conservative temperature [degC] from absolute salinity [g kg-1], and pressure [Pa] using the TEOS10 package. |
||
This subroutine computes the freezing point conservative temperature [degC] from absolute salinity [g kg-1], and pressure [Pa] using the TEOS10 package. |
||
This subroutine computes the freezing point conservative temperature [degC] from absolute salinity [g kg-1], and pressure [Pa] using a rescaled and refactored version of the polynomial expressions from the TEOS10 package. |
||
This subroutine computes the freezing point conservative temperature [degC] from absolute salinity [g kg-1], and pressure [Pa] using a rescaled and refactored version of the polynomial expressions from the TEOS10 package. |
||
Depending on whether or not CVMix is active, calls the associated subroutine to compute internal tidal dissipation and to add the effect of internal-tide-driven mixing to the layer or interface diffusivities. |
||
This subroutine calculates vertical integrals of several tracers, along with the mass-weight of these tracers, the total column mass, and the carefully calculated column height. |
||
This routine calculates surface buoyancy flux by adding up the heat, FW & salt fluxes. These are actual fluxes, with units of stuff per time. Setting dt=1 in the call to extractFluxes routine allows us to get “stuf per time” rather than the time integrated fluxes needed in other routines that call extractFluxes. |
||
Calculates surface buoyancy flux by adding up the heat, FW and salt fluxes, for 2d arrays. This is a wrapper for calculateBuoyancyFlux1d. |
||
The following subroutines and associated definitions provide the machinery to register and call the subroutines that initialize open boundary conditions. |
||
This subroutine calls all registered tracer column physics subroutines. |
||
This subroutine carries out a series of calls to initialize the air-sea tracer fluxes, but it does not record the generated indicies, and it may be called |
||
This subroutine determines which tracer packages are to be used and does the calls to register their tracers to be advected, diffused, and read from restarts. |
||
This subroutine calls all registered tracers to register their OBC segments similar to register_temp_salt_segments for T&S. |
||
This subroutine calls the individual tracer modules’ subroutines to specify or read quantities related to their surface forcing. |
||
This subroutine calls all registered tracer packages to enable them to add to the surface state returned to the coupler. These routines are optional. |
||
This subroutine calls all registered tracer packages to enable them to add to the surface state returned to the coupler. These routines are optional. |
||
Writes a message about entering a subroutine if call tree reporting is active. |
||
Writes a message about leaving a subroutine if call tree reporting is active. |
||
Returns True, if the verbosity>=6 indicating to show the call tree. |
||
Writes a message about reaching a milestone if call tree reporting is active. |
||
This subroutine handles carrying of the overflow. |
||
Applies diapycnal diffusion, souces and sinks and any other column tracer physics to the CFC cap tracers. CFCs are relatively simple, as they are passive tracers with only a surface flux as a source. |
||
Deallocate any memory associated with the CFC cap tracer package. |
||
Orchestrates the calculation of the CFC fluxes [mol m-2 s-1], including getting the ATM concentration, and calculating the solubility, Schmidt number, and gas exchange. |
||
Calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. |
||
Unit tests for the CFC cap module. |
||
Changes the thickness (mass) of the ice shelf based on sub-ice-shelf melting. |
||
This subroutine applies net accumulation/ablation at the top surface to the dynamic ice shelf. acc_rate[m-s]=surf_mass_flux/density_ice is ablation/accumulation rate positive for accumulation negative for ablation. |
||
Sets CSbkgnd_scheme_str to check whether multiple background diffusivity schemes are activated. The string is also for error/log messages. |
||
Check whether the id already has a slot reserved. If not, find a new empty slot and if need be, grow the buffer. |
||
Returns false if the column integral of a given quantity is within roundoff. |
||
Returns false if the column integrals of two given quantities are within roundoff of each other. |
||
Check discontinuous edge values and replace them with their average if not monotonic. |
||
Check that the total thickness of new and old grids are consistent. |
||
Check the values passed by IOB over land are zero. |
||
Evaluate whether the dimensional scaling factors provide unique tests for all of the combinations of dimensions that are used in MOM6 (or perhaps widely used), and if they are not unique, explore whether another combination of scaling factors can be found that is unique or has less common cases with coinciding scaling. |
||
Check netCDF function return codes, report the error log, and abort the run. |
||
Checks the iostat argument that is returned after reading a namelist variable and writes a message if there is an error. |
||
Checks the PPM_CWK reconstruction for consistency. |
||
Checks the PLM_CW reconstruction for consistency. |
||
Checks the PCM reconstruction for consistency. |
||
Checks the PPM_hybgen reconstruction for consistency. |
||
Checks the MPLM_WA reconstruction for consistency. |
||
Checks the EMPLM_WA_poly reconstruction for consistency. |
||
Checks the PPM_H4_2019 reconstruction for consistency. |
||
Checks the MPLM_CWK reconstruction for consistency. |
||
Checks the PLM_WLS reconstruction for consistency. |
||
Checks the PLM_hybgen reconstruction for consistency. |
||
Checks the PPM_CW reconstruction for consistency. |
||
Checks the MPLM_WA_poly reconstruction for consistency. |
||
Checks that edge values and reconstructions satisfy bounds. |
||
Check for consistency between the duplicated points of a 2-D scalar at corner points. |
||
Check for consistency between the duplicated points of a 3-D scalar at corner points. |
||
Check for consistency between the duplicated points of a 2-D scalar at tracer points. |
||
Check for consistency between the duplicated points of a 3-D scalar at tracer points. |
||
Check for consistency between the duplicated points of a 2-D B-grid vector. |
||
Check for consistency between the duplicated points of a 3-D B-grid vector. |
||
Check for consistency between the duplicated points of a 2-D C-grid vector. |
||
Check for consistency between the duplicated points of a 3-D C-grid vector. |
||
Check for consistency between the duplicated points of a 2-D A-grid vector. |
||
Check for consistency between the duplicated points of a 3-D A-grid vector. |
||
This subroutine checks for sufficient consistence in the extrema and total amounts on the old and new grids. |
||
This subroutine does a checks whether the provided dimensional scaling factors give a unique overall scaling for each of the combinations of units in description, and suggests a better combination if it is not unique. However, this subroutine does nothing if the verbosity level for this run is below 3. |
||
Write a message including the checksum of the non-shifted array. |
||
Write a message including checksums of non-shifted and southwestward shifted arrays. |
||
Write a message including the global mean, maximum and minimum of an array. |
||
Write a message including checksums of non-shifted and diagonally shifted arrays. |
||
Write a message including checksums of non-shifted and laterally shifted arrays. |
||
Write a message including checksums of non-shifted and southward shifted arrays. |
||
Write a message including checksums of non-shifted and westward shifted arrays. |
||
Checksum a scalar field (consistent with array checksums) |
||
chksum1d does a checksum of a 1-dimensional array. |
||
chksum2d does a checksum of all data in a 2-d array. |
||
chksum3d does a checksum of all data in a 2-d array. |
||
Checksums a 2d array staggered at corner points. |
||
Checksums a 3d array staggered at corner points. |
||
A wrapper for MOM_error used in the checksum code. |
||
Checksums a 2d array staggered at tracer points. |
||
Checksums a 3d array staggered at tracer points. |
||
Write checksums and perhaps some or all of the values of all the allocated arrays on a single OBC segment. |
||
Write checksums and perhaps some or all of the values of all the allocated arrays on the OBC segments. |
||
Checksums on a pair of 2d arrays staggered at q-points. |
||
Checksums on a pair of 3d arrays staggered at q-points. |
||
Checksums on a pair of 2d arrays staggered at tracer points. |
||
Checksums on a pair of 3d arrays staggered at tracer points. |
||
Checksums a 2d array staggered at C-grid u points. |
||
Checksums a 3d array staggered at C-grid u points. |
||
Checksums a pair of 2d velocity arrays staggered at C-grid locations. |
||
Checksums a pair of 3d velocity arrays staggered at C-grid locations. |
||
Checksums a 2d array staggered at C-grid v points. |
||
Checksums a 3d array staggered at C-grid v points. |
||
Do a checksum and redundant point check on a 2d C-grid vector. |
||
Do a checksum and redundant point check on a 3d C-grid vector. |
||
Do a checksum and redundant point check on a 3d B-grid vector. |
||
Do a checksum and redundant point check on a 2d C-grid vector. |
||
Do a checksum and redundant point check on a 3d C-grid vector. |
||
Change mode of a file. |
||
A circular ridge with cutoff conic profile [nondim]. |
||
A circular ridge [nondim]. |
||
A circular ridge with cutoff scurve profile [nondim]. |
||
This subroutine initializes layer thicknesses for the circle_obcs experiment. |
||
|
||
|
||
|
||
|
||
Resets the parameter block name to blank. |
||
Close a MOM framework file. |
||
Close a MOM netCDF file. |
||
Close a netcdf file that had been opened for reading, with error handling. |
||
Close an opened netCDF file. |
||
Close any open input files and deallocate memory associated with this |
||
Close a profile file. |
||
Return True if a */ appears on this line. |
||
Remove the lowest level of recursion from the active block name. |
||
This function returns the CMOR standard name given a CMOR longname, based on the standard pattern of character conversions. |
||
Compute Schmidt numbers of CFCs following Wanninkhof (2014); doi:10.4319/lom.2014.12.351 Range of validity of fit is -2:40. |
||
Compares a single row, k, of output from find_neutral_surface_positions() |
||
Test class-based remapping bitwise reproduces original implementation. |
||
Test that ans and calc are approximately equal by computing the difference and comparing it against limit. |
||
This routine composes a list of the commonly used dimensional scaling factors in the MOM6 code, along with weights reflecting the frequency of their occurrence in the MOM6 code or other considerations of how likely the variables are be used. |
||
Compute the attenuation parameter similarly to Klower2018, Juricke2019,2020: c_diss = 1/(1+(shear/(f*R_diss))) where shear = sqrt(sh_xx**2 + sh_xy**2) or shear = sqrt(sh_xx**2 + sh_xy**2 + vort_xy**2) In symmetric memory model, components of velocity gradient tensor should have halo 1 and zero boundary conditions. The result: c_diss having halo 1. |
||
Subroutine for computing vertical diffusion coefficients for the double diffusion mixing parameterization. |
||
Computes the 3D energy source term for the ZB2020 scheme similarly to |
||
Pre-compute global integrals of grid quantities (like masked ocean area) for later use in reporting diagnostics. |
||
Compute Stokes Drift components at zbot < ztop <= 0 and at k=0.5*(ztop+zbot) and average components from ztop to zbot <= 0. |
||
Compute stress tensor T = (Txx, Txy; Txy, Tyy) Which consists of the deviatoric and trace components, respectively: T = (-vort_xy * sh_xy, vort_xy * sh_xx; vort_xy * sh_xx, vort_xy * sh_xy) + 1/2 * (vort_xy^2 + sh_xy^2 + sh_xx^2, 0; 0, vort_xy^2 + sh_xy^2 + sh_xx^2) This stress tensor is multiplied by precomputed kappa=-CSamplitude * Garea: T -> T * kappa The sign of the stress tensor is such that (neglecting h): (du/dt, dv/dt) = div(T) In symmetric memory model: sh_xy and vort_xy should have halo 1 and zero B.C.; sh_xx should have halo 2 and zero B.C. Result: Txx, Tyy, Txy with halo 1 and zero B.C. |
||
Compute stress tensor T = (Txx, Txy; Txy, Tyy) with ANN in non-dimensional form: T = dx^2 * |grad V|^2 * ANN(grad V / |grad V|) The sign of the stress tensor is such that: (du/dt, dv/dt) = 1/h * div(h * T) Algorithm: 1) Interpolate input features (sh_xy, sh_xx, vort_xy) to grid centers 2) Compute norm of velocity gradients on a stencil 3) Non-dimensionalize input features 4) Make ANN inference in grid centers 5) Restore physical dimensionality and interpolate Txy back to corners. |
||
Compute the divergence of subgrid stress weighted with thickness, i.e. (fx,fy) = 1/h Div(h * [Txx, Txy; Txy, Tyy]) and update the acceleration due to eddy viscosity as diffu = diffu + dx; diffv = diffv + dy Optionally, before computing the divergence, we attenuate the stress according to the Klower formula. In symmetric memory model: Txx, Tyy, Txy, c_diss should have halo 1 with applied zero B.C. |
||
Computes linear tapering coefficients at interfaces of the left and right columns within a region defined by the boundary layer depths in the two columns. |
||
Dummy version of MARBL’s compute_totChl() function. |
||
Returns the value of a triangular function centered at x=x0 with value 1 and linearly decreasing to 0 at x=x0+/-L, and 0 otherwise [nondim]. If clip is present the top of the cone is cut off at “clip”, which effectively defaults to 1. |
||
Returns the value of a triangular function centered at x=x0 with value 1 and linearly decreasing to 0 at x=x0+/-L, and 0 otherwise [nondim]. If clip is present the top of the cone is cut off at “clip”, which effectively defaults to 1. |
||
This subroutine is used to read marbl_in, configure MARBL accordingly, and then call MARBL’s initialization routine. |
||
Converts an array of conservative temperatures to potential temperatures. The input arguments use the dimensionally rescaling as specified within the EOS type. The output potential temperature uses this same scaling, but this can be replaced by the factor given by scale. |
||
Convert input potential temperature [degC] and absolute salinity [g kg-1] to returned conservative temperature [degC] by inverting the polynomial expressions from TEOS-10. |
||
Find the vertical sum of the thickness fluxes from the continuity solver without actually updating the layer thicknesses. Because the fluxes in the two directions are calculated based on the input thicknesses, which are not updated between the directions, the fluxes returned here are not the same as those that would be returned by a call to continuity. |
||
Finds the thickness fluxes from the continuity solver without actually updating the layer thicknesses. Because the fluxes in the two directions are calculated based on the input thicknesses, which are not updated between the direcitons, the fluxes returned here are not the same as those that would be returned by a call to continuity. |
||
Correct the velocities to give the specified depth-integrated transports by applying a barotropic acceleration (subject to viscous drag) to the velocities. |
||
Updates the thicknesses due to meridional thickness fluxes. |
||
Time steps the layer thicknesses, using a monotonically limit, directionally split PPM scheme, based on Lin (1994). |
||
Initializes |
||
continuity_PPM_stencil returns the continuity solver stencil size |
||
Updates the thicknesses due to zonal thickness fluxes. |
||
Clean up this modules control structure. |
||
Set up this modules control structure. |
||
This subroutine does instantaneous convective entrainment into the buffer layers and mixed layers to remove hydrostatic instabilities. Any water that is lighter than currently in the mixed- or buffer- layer is entrained. |
||
Achieve convective adjustment by swapping layers. |
||
This function converts a date into a string, valid with ticks and for dates up to year 99,999,999. |
||
This subroutine translates the Ice_ocean_boundary_type into a MOM thermodynamic forcing type, including changes of units, sign conventions, and putting the fields into arrays with MOM-standard halos. |
||
This subroutine translates the Ice_ocean_boundary_type into a MOM mechanical forcing type, including changes of units, sign conventions, and putting the fields into arrays with MOM-standard halos. |
||
Convert mixed layer depths in height units into the thickness of water in the mixed in thickness units. |
||
Converts the ice-shelf-to-ocean calving and calving_hflx variables from the ice-shelf state (ISS) type to the ocean public type. |
||
This subroutine translates the coupler’s ocean_data_type into MOM’s surface state variable. This may eventually be folded into the MOM code that calculates the surface state in the first place. Note the offset in the arrays because the ocean_data_type has no halo points in its arrays and always uses absolute indices. |
||
Convert T&S to Absolute Salinity and Conservative Temperature if using TEOS10. |
||
Parse a string parameter specifying the coordinate mode and return the appropriate enumerated integer. |
||
Returns a string with the coordinate units associated with the enumerated integer,. |
||
Returns a string with the coordinate units associated with the string defining the coordinate mode. |
||
This subroutine copies the computational domains of common forcing fields from a |
||
This subroutine copies the computational domains of common forcing fields from a |
||
Copy a dataset within the database to a new name. |
||
Copies information from a dynamic (shared) horizontal grid type into an ocean_grid_type. There may also be a change in the reference height for topography between the two grids. |
||
Copy column thicknesses with vanished layers removed. |
||
Copy an aggregation list. |
||
Copies information from an ocean_grid_type into a dynamic (shared) horizontal grid type. There may also be a change in the reference height for topography between the two grids. |
||
Copy the restart variable with the specified name into a 3-d array, perhaps after rotation. |
||
Copy the restart vector component variables with the specified names into a pair of 3-d arrays, perhaps after rotation. |
||
Copy a tensor to the destination name. |
||
Fill segmenth_Reg from restart fields. |
||
Calculates the Coriolis and momentum advection contributions to the acceleration. |
||
Destructor for |
||
Initializes the control structure for MOM_CoriolisAdv. |
||
Solver to add Coriolis-Stokes to model Still in development and not meant for general use. Can be activated (with code intervention) for LES comparison CHECK THAT RIGHT TIMESTEP IS PASSED IF YOU USE THIS**. |
||
Rotates points in the halos where required to accommodate changes in grid orientation, such as at the tripolar fold. |
||
Rotates points in the halos where required to accommodate changes in grid orientation, such as at the tripolar fold. |
||
Returns the value of a cosine-bell function evaluated at x/L [nondim]. |
||
Potentially override the values in a coupler_2d_bc_type. |
||
Write out all diagnostics of elements of a coupler_2d_bc_type. |
||
Register the diagnostics of a coupler_2d_bc_type. |
||
Construct the name of a parameter for a specific coordinate based on param_prefix and param_suffix. For the main, prognostic coordinate this will simply return the parameter name (e.g. P_REF) |
||
create_depth_list makes an ordered list of depths, along with the cross sectional areas at each depth and the volume of fluid deeper than each depth. |
||
Allocate memory used by the |
||
Create a text file for unit testing. |
||
Return a new test suite. |
||
Return a new unit test without a cleanup function. |
||
Return a new unit test with an explicit cleanup function. |
||
Returns a “coastal” profile [nondim]. |
||
Returns a “coastal” profile [nondim]. |
||
Copy all elements of the data in a coupler_2d_bc_type into another. Both must have the same array sizes. |
||
Copy all elements of the data in a coupler_2d_bc_type into a coupler_3d_bc_type. Both must have the same array sizes for the first two dimensions, while the extent of the 3rd dimension that is being filled may be specified via optional arguments. |
||
Copy all elements of the data in a coupler_3d_bc_type into another. Both must have the same array sizes. |
||
Deallocate all data associated with a coupler_1d_bc_type. |
||
Deallocate all data associated with a coupler_2d_bc_type. |
||
Increment data in all elements of one coupler_2d_bc_type with the data from another. Both must have the same array sizes. |
||
Increment data in the elements of a coupler_2d_bc_type with weighted averages of elements of a coupler_3d_bc_type. |
||
Increment data in all elements of one coupler_3d_bc_type with the data from another. Both must have the same array sizes. |
||
Indicate whether a coupler_1d_bc_type has been initialized. |
||
Indicate whether a coupler_2d_bc_type has been initialized. |
||
Indicate whether a coupler_3d_bc_type has been initialized. |
||
Redistribute the data in all elements of one coupler_2d_bc_type into another, which may be on different processors with a different decomposition. |
||
Redistribute the data in all elements of one coupler_3d_bc_type into another, which may be on different processors with a different decomposition. |
||
Rescales the fields in the elements of a coupler_2d_bc_type by multiplying by a factor scale. If scale is 0, this is a direct assignment to 0, so that NaNs will not persist. |
||
Rescales the fields in the elements of a coupler_3d_bc_type by multiplying by a factor scale. If scale is 0, this is a direct assignment to 0, so that NaNs will not persist. |
||
Generate a 2-D coupler type using a 1-D coupler type as a template. |
||
Generate a 3-D coupler type using a 1-D coupler type as a template. |
||
Generate one 2-D coupler type using another 2-D coupler type as a template. |
||
Generate a 3-D coupler type using a 2-D coupler type as a template. |
||
Generate a 2-D coupler type using a 3-D coupler type as a template. |
||
Generate a 3-D coupler type using another 3-D coupler type as a template. |
||
Write out checksums for the elements of a coupler_2d_bc_type. |
||
Write out checksums for the elements of a coupler_3d_bc_type. |
||
Returns the cube root of a real argument at roundoff accuracy, in a form that works properly with rescaling of the argument by integer powers of 8. If the argument is a NaN, a NaN is returned. |
||
The cushion function from Bleck & Benjamin, 1992, which returns a smoothly varying but limited value that goes between dp0 and delp. |
||
Adjust the layer thicknesses by removing the top of the water column above the depth where the hydrostatic pressure matches p_surf. |
||
Reads the parameter “USE_CVMix_BACKGROUND” and returns state. This function allows other modules to know whether this parameterization will be used without needing to duplicate the log entry. |
||
Initialized the CVMix convection mixing routine. |
||
Reads the parameter “USE_CVMix_CONVECTION” and returns state. This function allows other modules to know whether this parameterization will be used without needing to duplicate the log entry. |
||
Clear pointers and deallocate memory. |
||
Initialized the CVMix double diffusion module. |
||
Reads the parameter “USE_CVMIX_DDIFF” and returns state. This function allows other modules to know whether this parameterization will be used without needing to duplicate the log entry. |
||
Clear pointers and deallocate memory. |
||
Initialized the CVMix internal shear mixing routine. |
||
Reads the parameters “USE_LMD94” and “USE_PP81” and returns true if either is true. This function allows other modules to know whether this parameterization will be used without needing to duplicate the log entry. |
||
Deallocates the arrays contained within a BT_cont_type. |
||
Deallocate the forcing type. |
||
Deallocate the mechanical forcing type. |
||
Deallocate segment data fields. |
||
Deallocates the elements of a surface state type. |
||
Deallocate any arrays that were allocated. |
||
Define a group of “axes” from a list of handles and associate a mask with it. |
||
Define a group of “axes” from a list of handles and associate a mask with it. |
||
Defines a group of downsampled “axes” from list of handles. |
||
This function returns a string for formatted parameter assignment. |
||
Delete the information in an array of |
||
Delete the information in an array of |
||
Delete a dataset stored within a database. |
||
Delete an aggregation list. |
||
Remove a model from the database. |
||
Remove a model from the database. |
||
Remove a script from the database. |
||
Remove a script_multigpu from the database. |
||
Delete a tensor. |
||
Delete a file created during testing. |
||
Calculate delta rho from derivatives and gradients of properties |
||
Initialize the restoring sponges for the dense water experiment. |
||
Initialize the topography field for the dense water experiment. |
||
Initialize the temperature and salinity for the dense water experiment. |
||
In situ density anomaly of sea water using a buggy implementation of Wright, 1997 [kg m-3]. |
||
In situ density anomaly of sea water using Jackett et al., 2006 [kg m-3]. |
||
Density anomaly computed as a linear function of T and S [kg m-3]. |
||
In situ density anomaly of sea water from Roquet et al., 2015 [kg m-3]. |
||
Roquet in situ density anomaly [kg m-3]. |
||
GSW in situ density anomaly [kg m-3]. |
||
In situ density anomaly as fit by Jackett and McDougall, 1995 [kg m-3]. |
||
In situ density anomaly of sea water using a full range fit by Wright, 1997 [kg m-3]. |
||
In situ density anomaly of sea water using a reduced range fit by Wright, 1997 [kg m-3]. |
||
In situ density of sea water using a buggy implementation of Wright, 1997 [kg m-3]. |
||
In situ density of sea water using Jackett et al., 2006 [kg m-3]. |
||
Density computed as a linear function of T and S [kg m-3]. |
||
In situ density of sea water from Roquet et al., 2015 [kg m-3]. |
||
Roquet in situ density [kg m-3]. |
||
GSW in situ density [kg m-3]. |
||
In situ density as fit by Jackett and McDougall, 1995 [kg m-3]. |
||
In situ density of sea water using a full range fit by Wright, 1997 [kg m-3]. |
||
In situ density of sea water using a reduced range fit by Wright, 1997 [kg m-3]. |
||
Depress the sea-surface based on an initial condition file. |
||
This subroutine sets up an ordered list of depths, along with the cross sectional areas at each depth and the volume of fluid deeper than each depth. This might be read from a previously created file or it might be created anew. (For now only new creation occurs. |
||
Undo the rescaling of a real number back to its original base. |
||
Describe an option setting in the diagnostic files. |
||
Add a description of an option to the documentation file. |
||
Deallocate the PPM_CWK reconstruction. |
||
Deallocate the PLM reconstruction. |
||
Deallocate the PCM reconstruction. |
||
Deallocate the PPM_H4_2019 reconstruction. |
||
Deallocate the PLM reconstruction. |
||
Deallocate the PLM reconstruction. |
||
Deallocate the PPM_CW reconstruction. |
||
Clean up the BT_OBC memory. |
||
Release memory used by the |
||
A destructor for the communication client. |
||
Detects the mixed layer depth using a density difference criterion (MLE_DENSITY_DIFF) |
||
This subroutine determines the reference density difference between the bottommost buffer layer and the first interior after the mixing between mixed and buffer layers and mixing with the layer below. Within the mixed and buffer layers, entrainment from the layer above is increased when it is necessary to keep the layers from developing a negative thickness; otherwise it equals Ent_bl. At each interface, the upward and downward fluxes average out to Ent_bl, unless entrainment by the layer below is larger than twice Ent_bl. The density difference across the first interior layer may also be returned. It could also be limited to avoid negative values or values that greatly exceed the density differences across an interface. Additionally, the partial derivatives of dSkb and dSlay with E_kb could also be returned. |
||
This subroutine determines the entrainment from above by the top interior layer (labeled kb elsewhere) given an entrainment by the layer below it, constrained to be within the provided bounds. |
||
determine_is_new_run determines from the value of filename and the existence automatically named restart files in directory whether this would be a new, and as a side effect stores this information in CS. |
||
Given a number of domain divisions, compute the max number of land blocks that can be eliminated, and return the resulting mask table if requested. |
||
This subroutine determines the potential temperature and salinity that is consistent with the target density using provided initial guess. |
||
Derivative of PPM_CWK reconstruction at a point in cell k [A]. |
||
Derivative of PLM_CW reconstruction at a point in cell k [A]. |
||
Derivative of PCM reconstruction at a point in cell k [A]. |
||
Derivative of PPM_H4_2019 reconstruction at a point in cell k [A]. |
||
Derivative of PLM_WLS reconstruction at a point in cell k [A]. |
||
Derivative of PLM_hybgen reconstruction at a point in cell k [A]. |
||
Derivative of PPM_CW reconstruction at a point in cell k [A]. |
||
Compute the Stokes drift at a given depth. |
||
This subroutine imposes the diapycnal mass fluxes and the accompanying diapycnal advection of momentum and tracers. |
||
This subroutine imposes the diapycnal mass fluxes and the accompanying diapycnal advection of momentum and tracers. |
||
Applies diabatic forcing and diapycnal mixing of temperature, salinity and other tracers for use with an ALE algorithm. This version uses an older set of algorithms compared with diabatic_ALE. |
||
This subroutine initializes the control structure and any related memory for the diabatic_aux module. |
||
This subroutine initializes the parameters and control structure of the diabatic_aux module. |
||
Routine to close the diabatic driver module. |
||
This routine initializes the diabatic driver module. |
||
Attaches the id of cell volumes to axes groups for use with cell_measures. |
||
Unit tests for the 2d version of the diag buffer. |
||
Test the 3d version of the buffer. |
||
Copy from the main diagnostic arrays to the grid storage as well as the native thicknesses. |
||
Copy from the stored diagnostic arrays to the main diagnostic grids. |
||
Determines whether an obsolete parameter appears in the diag_table. |
||
Returns diag_manager id for cell measure of h-cells. |
||
Deallocates the fields in the remapping fields container. |
||
Allocates fields necessary to store diagnostic remapping fields. |
||
Sets up the 2d and 3d masks for native diagnostics. |
||
Sets up the 2d masks for native diagnostics. |
||
diag_mediator_init initializes the MOM diag_mediator and opens the available diagnostics file, if appropriate. |
||
Attaches the id of cell areas to axes groups for use with cell_measures. |
||
Attaches the id of cell areas to axes groups for use with cell_measures. |
||
Whether or not the axes for this vertical coordinated has been configured. Configuration is complete when |
||
Calculate masks for target grid. |
||
Configure the vertical axes for a diagnostic remapping control structure. Reads a configuration parameters to determine coordinate generation. |
||
Inform that all diagnostics have been registered. If _set_active() has not been called on the remapping control structure will be disabled. This saves time in the case that a vertical coordinate was configured but no diagnostics which use the coordinate appeared in the diag_table. |
||
Remap diagnostic field to alternative vertical grid. |
||
De-init a diagnostic remapping type. Free allocated memory. |
||
Get layer and interface axes ids for this coordinate Needed when defining axes groups. |
||
Initialize a diagnostic remapping type with the given vertical coordinate. |
||
Indicate that this remapping type is actually used by the diag manager. If this is never called then the type will be disabled to save time. See further explanation with diag_remap_registration_closed. |
||
Build/update target vertical grids for diagnostic remapping. |
||
Restore the diagnostic grids from the temporary structure within diag. |
||
Save the current diagnostic grids in the temporary structure within diag. |
||
Set pointers to the default state fields used to remap diagnostics. |
||
Build/update vertical grids for diagnostic remapping. |
||
This routine diagnoses tendencies from application of boundary fluxes. These impacts are generally 3d, in particular for penetrative shortwave. Other fluxes contribute 3d in cases when the layers vanish or are very thin, in which case we distribute the flux into k > 1 layers. |
||
This routine diagnoses tendencies from application of diabatic diffusion using ALE algorithm. Note that layer thickness is not altered by diabatic diffusion. |
||
This routine diagnoses tendencies for temperature and heat from frazil formation. This routine is called twice from within subroutine diabatic; at start and at end of the diabatic processes. The impacts from frazil are generally a function of depth. Hence, when checking heat budget, be sure to remove HFSIFRAZIL from HFDS in k=1. |
||
Diagnose the fractional mass weighting in a layer that might be used with a non-Boussinesq calculation. |
||
Diagnose the fractional mass weighting in a layer that might be used with a Boussinesq calculation. |
||
Diagnose the implied “work”, or buoyancy forcing & its integral, due to a given diffusivity and column state. |
||
Return the global maximum ocean bottom depth in the same units as the input depth. |
||
Diagnose a mixed layer depth (MLD) determined by a given density difference with the surface. This routine is appropriate in MOM_diabatic_aux due to its position within the time stepping. |
||
Diagnose a mixed layer depth (MLD) determined by the depth a given energy value would mix. This routine is appropriate in MOM_diabatic_aux due to its position within the time stepping. |
||
This subroutine uses a substantially refactored tridiagonal equation for diapycnal mixing of temperature and salinity to estimate the potential energy change due to diapycnal mixing in a column of water. It does this estimate 4 different ways, all of which should be equivalent, but reports only one. The various estimates are taken because they will later be used as templates for other bits of code. |
||
Clean up and deallocate memory associated with the diapycnal energy requirement module. |
||
Initialize parameters and allocate memory associated with the diapycnal energy requirement module. |
||
This subroutine helps test the accuracy of the diapycnal mixing energy requirement code by writing diagnostics, possibly using an intensely mixing test profile of diffusivity. |
||
This subroutine applies double diffusion to T & S, assuming no diapycnal mass fluxes, using a simple tridiagonal solver. |
||
Call this subroutine to avoid averaging any offered fields. |
||
Call this subroutine to avoid averaging any offered fields. |
||
Enable error handling, replacing FATALs in MOM_error with err_handler. |
||
Distance between points x,y and a line segment (x0,y0) and (x0,y1) in arbitrary units [A]. |
||
Distance between points x,y and a line segment (x0,y0) and (x0,y1) in arbitrary units [A]. |
||
Distance between points x,y and a line segment (x0,y0) and (x1,y0) in arbitrary units [A]. |
||
Distance between points x,y and a line segment (x0,y0) and (x1,y0) in arbitrary units [A]. |
||
In the case where offline advection has failed to converge, redistribute the u-flux into remainder of the water column as a barotropic equivalent. |
||
In the case where offline advection has failed to converge, redistribute the u-flux into layers above. |
||
Redistribute the v-flux as a barotropic equivalent. |
||
In the case where offline advection has failed to converge, redistribute the u-flux into layers above. |
||
This function returns the contribution from the line integral along one of the four sides of a cell face to the area of a cell, in [radians2], assuming that the sides follow a linear path in latitude and longitude (i.e., on a Mercator grid). |
||
The internal routine to remap a diagnostic field to an alternative vertical grid. |
||
This subroutine handles documentation for closing a parameter block. |
||
This subroutine closes the files controlled by doc, and sets flags in doc to indicate that parameterization is no longer permitted. |
||
This subroutine handles the function documentation. |
||
Initialize the parameter documentation. |
||
This subroutine handles the module documentation. |
||
This subroutine handles documentation for opening a parameter block. |
||
This subroutine handles parameter documentation for character strings. |
||
This subroutine handles parameter documentation for integers. |
||
This subroutine handles parameter documentation for arrays of integers. |
||
This subroutine handles parameter documentation for logicals. |
||
This subroutine handles parameter documentation for arrays of logicals. |
||
This subroutine handles parameter documentation with no value. |
||
This subroutine handles parameter documentation for reals. |
||
This subroutine handles parameter documentation for arrays of reals. |
||
This subroutine handles parameter documentation for time-type variables. |
||
This subroutine handles the subroutine documentation. |
||
Set up sponges in 2d DOME configuration. |
||
Initialize temperature and salinity in the 2d DOME configuration. |
||
Initialize thicknesses according to coordinate mode. |
||
Initialize topography with a shelf and slope in a 2D domain. |
||
This subroutine sets the inverse restoration time (Idamp), and the values toward which the interface heights and an arbitrary number of tracers will be restored within the sponges for the DOME configuration. ! |
||
This subroutine initializes layer thicknesses for the DOME experiment. |
||
This subroutine sets up the DOME topography. |
||
This subroutine sets the properties of flow at open boundary conditions. This particular example is for the DOME inflow describe in Legg et al. 2006. |
||
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers. |
||
Clean up memory allocations, if any. |
||
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler. |
||
This subroutine sets the additional diffusivities of temperature and salinity due to double diffusion, using the same functional form as is used in MOM4.1, and taken from the appendix of Danabasoglu et al. (2006), which updates what was in Large et al. (1994). All the coefficients here should probably be made run-time variables rather than hard-coded constants. |
||
This subroutine allocates and computes a downsampled array from an input array. It also determines the diagnostic computational grid indices for the downsampled array. 2d interface. |
||
This subroutine allocates and computes a downsampled array from an input array. It also determines the diagnostic computational grid indices for the downsampled array. 3d interface. |
||
Get the diagnostics-compute indices (to be passed to send_data) based on the shape of the diagnostic field (the same way they are deduced for non-downsampled fields) |
||
This subroutine allocates and computes a down sampled 2d array given an input array The down sample method is based on the “cell_methods” for the diagnostics as explained in the above table. |
||
This subroutine allocates and computes a down sampled 3d array given an input array The down sample method is based on the “cell_methods” for the diagnostics as explained in the above table. |
||
Allocate and compute the 2d down sampled mask The masks are down sampled based on a minority rule, i.e., a coarse cell is open (1) if at least one of the sub-cells are open, otherwise it’s closed (0) |
||
Allocate and compute the 3d down sampled mask The masks are down sampled based on a minority rule, i.e., a coarse cell is open (1) if at least one of the sub-cells are open, otherwise it’s closed (0) |
||
This function returns the grid spacing in the logical x direction in [L ~> m]. |
||
This function returns the grid spacing in the logical y direction in [L ~> m]. |
||
Return the partial derivative of conservative temperature with potential temperature [nondim] based on the polynomial expressions from TEOS-10. |
||
Analytic prescription of mixed layer temperature gradient in [C L-1 ~> degC m-1] in 2d Rossby front test. |
||
Surface buoyancy (heat and fresh water) fluxes for the dumbbell test case. |
||
Dynamic forcing for the dumbbell test case. |
||
Initialize the restoring sponges for the dumbbell test case. |
||
Initial values for temperature and salinity for the dumbbell test case. |
||
Initializes the layer thicknesses to be uniform in the dumbbell test case. |
||
Initialization of topography. |
||
Reads and sets up the forcing for the dumbbell test case. |
||
This function calculates and returns the value of dx/di in [radian gridpoint-1], where x is the longitude in Radians, and i is the integral east-west grid index. |
||
This subroutine calculates and returns the value of dy/dj in [radian gridpoint-1], where y is the latitude in Radians, and j is the integral north-south grid index. |
||
This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. |
||
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers. The arguments to this subroutine are redundant in that h_new(k) = h_old(k) + ea(k) - eb(k-1) + eb(k) - ea(k+1) |
||
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler. |
||
Clean up the dyed_channel OBC from registry. |
||
This subroutine sets the dye and flow properties at open boundary conditions. |
||
This subroutine updates the long-channel flow. |
||
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers. |
||
Clean up memory allocations, if any. |
||
This subroutine sets the dye properties at open boundary conditions. |
||
Parses a string and generates a dz(:) profile that goes like k**power. |
||
Converts thickness from geometric height units to thickness units, working via an inversion of the integral of the density in pressure when in non-Boussinesq mode. |
||
Converts thickness from geometric height units to thickness units, perhaps using a simple conversion factor that may be problematic in non-Boussinesq mode. |
||
Converts thickness from geometric height units to thickness units, perhaps via an inversion of the integral of the density in pressure using variables stored in the thermo_var_ptrs type when in non-Boussinesq mode. |
||
Calculates the change in interface positions based on h1 and h2. |
||
Compute ih3 edge slopes (implicit third order accurate) in the same units as h. |
||
Compute ih5 edge slopes (implicit fifth order accurate) |
||
Compute h2 edge values (explicit second order accurate) in the same units as u. |
||
Compute h4 edge values (explicit fourth order accurate) in the same units as u. |
||
Compute h4 edge values (explicit fourth order accurate) in the same units as u. |
||
Compute ih4 edge values (implicit fourth order accurate) in the same units as u. |
||
Compute ih6 edge values (implicit sixth order accurate) in the same units as u. |
||
This subroutine returns an approximation to the integral R = exp(-L*(H+E)) integral(LH to L(H+E)) L/(1-(1+x)exp(-x)) dx. The approximation to the integrand is good to within -2% at x~.3 and +25% at x~3.5, but the exponential deemphasizes the importance of large x. When L=0, EF4 returns E/((Ht+E)*Ht). |
||
Copy one extended-fixed-point number into another. |
||
This subroutine does a sum across PEs of a list of EFP variables, returning the sums in place, with all overflows carried. |
||
Subract one extended-fixed-point number from another. |
||
Add two extended-fixed-point numbers. |
||
Take the difference between two extended-fixed-point numbers (EFP1 - EFP2) and return the result as a real number. |
||
Return the real number that an extended-fixed-point number corresponds with. |
||
This subroutine does a sum across PEs of an EFP variable, returning the sums in place, with all overflows carried. |
||
Enable the accumulation of time averages over the specified time interval in time units. |
||
Enable the accumulation of time averages over the specified time interval in time units. |
||
This subroutine enables the accumulation of time averages over the specified time interval. |
||
Enable the accumulation of time averages over the specified time interval. |
||
Disable the error handler and abort on FATAL. |
||
Change netCDF mode of handle from ‘define’ to ‘write’. |
||
Convert a unit scaling descriptor into an array of the dimensions of powers given in the key. |
||
Clean up the coordinate control structure. |
||
This subroutine deallocates memory in the control structure for the |
||
This subroutine deallocates memory in the control structure for the |
||
This subroutine deallocates memory in the control structure for the |
||
Deallocates the zlike control structure. |
||
Close the dyn_split_RK2 module. |
||
Close the dyn_split_RK2b module. |
||
Clean up and deallocate memory associated with the unsplit dynamics module. |
||
Clean up and deallocate memory associated with the dyn_unsplit_RK2 module. |
||
This subroutine deallocates memory in the control structure for the hybgen module. |
||
This subroutine deallocates memory in the control structure for the hybgen unmixing module. |
||
This subroutine deallocates the memory owned by this module. |
||
Deallocation of regridding memory. |
||
Destrcutor for remapping control structure. |
||
Determine a one-sided 4th order polynomial fit of u to the data points for the purposes of specifying edge values, as described in the appendix of White and Adcroft JCP 2008. |
||
Determine a one-sided 4th order polynomial fit of u to the data points for the purposes of specifying edge values, as described in the appendix of White and Adcroft JCP 2008. |
||
This subroutine determines the diffusivities from the integrated energetics mixed layer model. It assumes that heating, cooling and freshwater fluxes have already been applied. All calculations are done implicitly, and there is no stability limit on the time step. |
||
Clean up and deallocate memory associated with the energetic_PBL module. |
||
Copies the ePBL active mixed layer depth into MLD, in units of [Z ~> m] unless other units are specified. |
||
This subroutine initializes the energetic_PBL module. |
||
Returns a name with “%#E” or “%E” replaced with the ensemble member number. |
||
This subroutine initializes the parameters and memory associated with the entrain_diffusive module. |
||
This subroutine calculates ea and eb, the rates at which a layer entrains from the layers above and below. The entrainment rates are proportional to the buoyancy flux in a layer and inversely proportional to the density differences between layers. The scheme that is used here is described in detail in Hallberg, Mon. Wea. Rev. 2000. |
||
This subroutine returns a two point integer array indicating the domain of i-indices to work on in EOS calls based on information from a hor_index type. |
||
Return the range of temperatures, salinities and pressures for which the equation of state that is being used has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range. |
||
Return the range of temperatures, salinities and pressures for which the reduced-range equation of state from Wright (1997) has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range. |
||
Return the range of temperatures, salinities and pressures for which the Jackett et al. (2006) equation of state has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range. |
||
Return the range of temperatures, salinities and pressures permitted for linear equation of state. Care should be taken when applying this equation of state outside of its fit range. |
||
Return the range of temperatures, salinities and pressures for which the Roquet et al. (2015) expression for in situ density has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range. |
||
Return the range of temperatures, salinities and pressures for which the Roquet et al. (2015) expression for specific volume has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range. |
||
Return the range of temperatures, salinities and pressures for which the TEOS-10 equation of state has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range. |
||
Return the range of temperatures, salinities and pressures for which Jackett and McDougall (1995) refit the UNESCO equation of state has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range. |
||
Return the range of temperatures, salinities and pressures for which full-range equation of state from Wright (1997) has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range. |
||
Return the range of temperatures, salinities and pressures for which the reduced-range equation of state from Wright (1997) has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range. |
||
Initializes EOS_type by allocating and reading parameters. The scaling factors in US are stored in EOS for later use. |
||
Manually initialized an EOS type (intended for unit testing of routines which need a specific EOS) |
||
Return value of EOS_quadrature. |
||
Runs unit tests for consistency on the equations of state. This should only be called from a single/root thread. It returns True if any test fails, otherwise it returns False. |
||
This subroutine determines the diffusivities from a bottom boundary layer version of the integrated energetics mixed layer model for a single column of water. |
||
This subroutine determines the diffusivities from the integrated energetics mixed layer model for a single column of water. |
||
Calculates the equilibrium phase argument for the given tidal constituent constit and the astronomical longitudes and the reference time. These formulas follow Table I.4 of Kowalik and Luick, “Modern Theory and Practice of Tide Analysis and Tidal Power”, 2019. |
||
dummy erase routine |
||
Restore the process state via longjmp after receiving a signal. |
||
Pointwise evaluation of a polynomial in arbitrary units [A] at x. |
||
A “coast profile” applied in an E-W line from lon0,latC to lon1,latC [nondim]. |
||
A “coast profile” applied in an E-W line from lon0,lat0 to lon1,lat0 [nondim]. |
||
Determine a scaling factor that accounts for the exponential decay of turbulent kinetic energy from a boundary source and the assumption that an increase in the diffusivity at an interface causes a linearly increasing buoyancy flux going from 0 at the bottom to a peak at the interface, and then going back to 0 atop the layer above. Where this factor increases the available mixing TKE, it is only compensating for the fact that the TKE has already been reduced by the same exponential decay rate. ha and hb must be non-negative, and this function generally increases with hb and decreases with ha. |
||
This subroutine initializes layer thicknesses for the external_gwave experiment. |
||
Extract a 2d field from a coupler_2d_bc_type into a two-dimensional array, using a MOM-specific interface. |
||
Returns pointers or values of members within the diabatic_CS type. For extensibility, each returned argument is an optional argument. |
||
Returns the integer corresponding to the nth word in the argument. |
||
This subroutine extracts the wind stresses and related fields like ustar from an Ice_ocean_boundary_type into optional argument arrays, including changes of units, sign conventions, and putting the fields into arrays with MOM-standard sized halos. |
||
Extracts members of the offline main control structure. All arguments are optional except the control structure itself. |
||
Set arguments to fields from the optics type. |
||
This subroutine returns a 2-d slice at constant j of fields from an |
||
Returns the real corresponding to the nth word in the argument, in arbitrary units [A]. |
||
Set the surface (return) properties of the ocean model by setting the appropriate fields in sfc_state. Unused fields are set to NULL or are unallocated. |
||
Returns the string corresponding to the nth word in the argument or “” if the string is not long enough. Words are delineated by the mandatory separators argument. |
||
This subroutine extracts fluxes from the surface fluxes type. It works on a j-row for optimization purposes. The 2d (i,j) wrapper is the next subroutine below. This routine multiplies fluxes by dt, so that the result is an accumulation of fluxes over a time step. |
||
2d wrapper for 1d extract fluxes from surface fluxes type. This subroutine extracts fluxes from the surface fluxes type. It multiplies the fluxes by dt, so that the result is an accumulation of the fluxes over a time step. |
||
Returns the string corresponding to the nth word in the argument or “” if the string is not long enough. Both spaces and commas are interpreted as separators. |
||
Extrapolates missing metric data into all the halo regions. |
||
Value of PPM_CWK reconstruction at a point in cell k [A]. |
||
Value of PLM_CW reconstruction at a point in cell k [A]. |
||
Value of PCM reconstruction at a point in cell k [A]. |
||
Value of PPM_H4_2019 reconstruction at a point in cell k [A]. |
||
Value of PLM_WLS reconstruction at a point in cell k [A]. |
||
Value of PLM_hybgen reconstruction at a point in cell k [A]. |
||
Value of PPM_CW reconstruction at a point in cell k [A]. |
||
Given an entrainment from below for layer kb, determine a consistent entrainment from above, such that dSkb * ea_kb = dSkbp1 * F_kb. The input value of ea_kb is both the maximum value that can be obtained and the first guess of the iterations. Ideally ea_kb should be an under-estimate. |
||
This subroutine calculates the actual entrainments (ea and eb) and the amount of surface forcing that is applied to each layer if there is no bulk mixed layer. |
||
Compute the factor for the WENO weights. |
||
Compute the field checksum of a scalar that may need to be unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module. |
||
Compute the field checksum of an entire 1d array that may need to be unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module. |
||
Compute the field checksum of an entire 2d array that may need to be rotated or unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module. |
||
Compute the field checksum of an entire 3d array that may need to be rotated or unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module. |
||
Compute the field checksum of an entire 4d array that may need to be rotated or unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module. |
||
Determine whether a particular field is descretized at the normal-velocity faces of an open boundary condition segment. |
||
Determine based on its name whether a particular field a barotropic tidal field, for which the third dimension is the tidal constituent rather than a vertical axis. |
||
Given filename and fieldname, this subroutine returns the size of the field in the file. |
||
True if the framework file has been opened. |
||
True if the framework file has been opened. |
||
Clean up the file OBC from registry. |
||
Use ICE-9 algorithm to populate points (fill=1) with valid data (good=1). If no information is available, use a previous guess (prev). Optionally (smooth) blend the filled points to achieve a more desirable result. |
||
Stores the interior tracer values on the segment, and in some cases also sets the tracer reservoir values. |
||
Set the value of temperatures and salinities on OBC segments. |
||
Set the value of temperatures and salinities on OBC segments. |
||
This subroutine timesteps the filter equations. Here, u is the broadband input signal from the model, and u1 is the filtered, narrowband output signal, obtained from the solution of the filter equations. |
||
This subroutine initializes the filters. |
||
This subroutine registers the filter variables given the number of filters and the grid. |
||
Spatial lateral filter applied to 3D array. The lateral filter is given by the convolutional kernel: [1 2 1] C = |2 4 2| * 1/16 [1 2 1] The fast algorithm decomposes the 2D filter into two 1D filters as follows: [1] C = |2| * [1 2 1] * 1/16 [1] The input array must have zero B.C. applied. B.C. is applied for output array. Note that maskw contains both land mask and 1/16 factor. Filter implements marching halo. The available halo is specified and as many filter iterations as possible and as needed are performed. |
||
Wrapper for filter_3D function. The border indices for q and h arrays are substituted. |
||
Calculates parameterized layer transports for use in the continuity equation. Fluxes are limited to give positive definite thicknesses. Called by |
||
Filtering of the stress tensor Txx, Tyy, Txy. The algorithm: marching halo with non-blocking grouped MPI exchanges. The input arrays (Txx, Tyy, Txy) must have halo 1 with zero B.C. applied. The output have the same halo and B.C. |
||
Filtering of the velocity gradients sh_xx, sh_xy, vort_xy. Here instead of smoothing we do sharpening, i.e. return (initial - smoothed) fields. The algorithm: marching halo with non-blocking grouped MPI exchanges. The input array sh_xx should have halo 2 with applied zero B.C. The arrays sh_xy and vort_xy should have halo 1 with applied B.C. The output have the same halo and B.C. |
||
Returns the change in interface position motion after filtering and assuming the top and bottom interfaces do not move. The filtering is a function of depth, and is applied as the integrated average filtering over the trajectory of the interface. By design, this code can not give tangled interfaces provided that z_old and z_new are not already tangled. |
||
Deallocate axes of list. |
||
Deallocate axes of list. |
||
Deallocate fields of list. |
||
Deallocate fields of list. |
||
Return the slot of the buffer corresponding to the diagnostic id. |
||
Determine the column average specific volumes. |
||
Calculate the integrated mass of the water column. |
||
Calculate the ‘coupling coefficient’ (a_cpl) at the interfaces. If BOTTOMDRAGLAW is defined, the minimum of Hbbl and half the adjacent layer thicknesses are used to calculate a_cpl near the bottom. |
||
Compute coupling coefficient associated with vertical viscosity parameterization as in Greatbatch and Lamb (1990), hereafter referred to as the GL90 vertical viscosity parameterization. This vertical viscosity scheme redistributes momentum in the vertical, and is the equivalent of the Gent & McWilliams (1990) parameterization, but in a TWA (thickness-weighted averaged) set of equations. The vertical viscosity coefficient nu is computed from kappa_GM via thermal wind balance, and the following relation: nu = kappa_GM * f^2 / N^2. In the following subroutine kappa_GM is assumed either (a) constant or (b) horizontally varying. In both cases, (a) and (b), one can additionally impose an EBT structure in the vertical for kappa_GM. A third possible formulation of nu is depth-independent: nu = f^2 * alpha The latter formulation would be equivalent to a kappa_GM that varies as N^2 with depth. The vertical viscosity del_z ( nu del_z u) is applied to the momentum equation with stress-free boundary conditions at the top and bottom. |
||
This subroutine determines the amount by which the harmonic mean thickness at velocity points differ from the arithmetic means, relative to the arithmetic means, after eliminating thickness variations that are solely due to topography and aggregating all interior layers into one. |
||
Find the depth at which the reconstructed pressure matches P_tgt. |
||
The function find_duhbt_du determines the marginal zonal face area for a given velocity, or with INTEGRAL_BT_CONT=True for a given time-integrated velocity. |
||
The function find_dvhbt_dv determines the marginal meridional face area for a given velocity, or with INTEGRAL_BT_CONT=True for a given time-integrated velocity. |
||
Calculates the change in height across layers, using the appropriate form for consistency with the calculation of the pressure gradient forces. |
||
Calculates the free surface height, using the appropriate form for consistency with the calculation of the pressure gradient forces. Additionally, the sea surface height may be adjusted for consistency with the corresponding time-average quantity from the barotropic calculation. |
||
Calculates the heights of all interfaces between layers, using the appropriate form for consistency with the calculation of the pressure gradient forces. Additionally, these height may be dilated for consistency with the corresponding time-average quantity from the barotropic calculation. |
||
This subroutine determines the open face areas of cells for calculating the barotropic transport. |
||
This subroutine finds a named variable in a list of files and reads its values into a domain-decomposed 2-d array. |
||
Find interface positions corresponding to interpolated depths in a density profile. |
||
This subroutine calculates new, consistent estimates of TKE and kappa. |
||
This subroutine directly calculates the an increment in the diapycnal diffusivity based on the change in potential energy within a timestep, subject to bounds on the possible change in diffusivity, returning both the added diffusivity and the realized potential energy change, and optionally also the maximum change in potential energy that would be realized for an infinitely large diffusivity. |
||
Determine the normalized open length of each interface for concave bathymetry (from the ocean perspective) using iterative methods to solve the relevant cubic equations. In this case there can be two separate open regions. |
||
Determine the normalized open length of each interface for concave bathymetry (from the ocean perspective) using trigonometric expressions. In this case there can be two separate open regions. |
||
Determine the normalized open length of each interface for convex bathymetry (from the ocean perspective) using Newton’s method iterations. In this case there is a single open region with the minimum depth at one edge of the cell. |
||
Determine the normalized open length of each interface, given the edge depths and normalized volumes below each interface. |
||
This subroutine determines a limited slope for val to be advected with a piecewise limited scheme. |
||
Maximize F = ent*ds_kb*I_dSkbp1 in the range min_ent < ent < max_ent. |
||
Returns the location of the minimum value in a 1D array between indices s and e. |
||
This subroutine finds the mstar value for ePBL. |
||
Calculate Brunt-Vaisala frequency, N^2. |
||
Estimates the near-bottom buoyancy frequency (N^2). |
||
Use the full equation of state to calculate the difference in locally referenced potential density. The derivatives in this case are not trivial to calculate, so instead we use a regula falsi method. |
||
Search a layer to find where delta_rho = 0 based on a linear interpolation of alpha and beta of the top and bottom being searched and polynomial reconstructions of T and S. Compressibility is not needed because either, we are assuming incompressibility in the equation of state for this module or alpha and beta are calculated having been displaced to the average pressures of the two pressures We need Newton’s method because the T and S reconstructions make delta_rho a polynomial function of z if using PPM or higher. If Newton’s method would search fall out of the interval [0,1], a bisection step would be taken instead. Also this linearization of alpha, beta means that second derivatives of the EOS are not needed. Note that delta in variable names below refers to horizontal differences and ‘d’ refers to vertical differences. |
||
Returns positions within left/right columns of combined interfaces using continuous reconstructions of T/S. |
||
Higher order version of find_neutral_surface_positions. Returns positions within left/right columns of combined interfaces using intracell reconstructions of T/S. Note that the polynomial reconstructions of T and S are optional to aid with unit testing, but will always be passed otherwise. |
||
Scans input parameter file for list obsolete parameters. |
||
Determines the layers bounded by interfaces e that overlap with the depth range between Z_top and Z_bot, and the fractional weights of each layer. It also calculates the normalized relative depths of the range of each layer that overlaps that depth range. |
||
This subroutine calculates the change in potential energy and or derivatives for several changes in an interface’s diapycnal diffusivity times a timestep. |
||
This subroutine calculates the change in potential energy and or derivatives for several changes in an interface’s diapycnal diffusivity times a timestep. |
||
This subroutine calculates the change in potential energy and or derivatives for several changes in an interface’s diapycnal diffusivity times a timestep using the original form used in the first version of ePBL. |
||
Find physical field index from name. |
||
Determine the in situ density averaged over a specified distance from the bottom, calculating it as the inverse of the mass-weighted average specific volume. |
||
This subroutine finds and returns the value of y at which the monotonically increasing function fn takes the value fnval, also returning in ittmax the number of iterations of Newton’s method that were used to polish the root. |
||
This subroutine determines the TKE available at the depth of free convection to drive mechanical entrainment. |
||
Convert turbulent kinetic energy to diffusivity. |
||
The function find_uhbt determines the zonal transport for a given velocity, or with INTEGRAL_BT_CONT=True it determines the time-integrated zonal transport for a given time-integrated velocity. |
||
Find an unused unit number, returning >0 if found, and triggering a FATAL error if not. |
||
Determine the friction velocity from the contenxts of a forcing type, perhaps using the evolving surface density. |
||
Determine the friction velocity from the contenxts of a forcing type, perhaps using the evolving surface density. |
||
This subroutine calculates u_h and v_h (velocities at thickness points), optionally using the entrainment amounts passed in as arguments. |
||
Return an indication of whether the named variable is in the restart files, and provide the full path to the restart file in which a variable is found. |
||
The function find_vhbt determines the meridional transport for a given velocity, or with INTEGRAL_BT_CONT=True it determines the time-integrated meridional transport for a given time-integrated velocity. |
||
This subroutine finds the location of R_in in an increasing ordered list, Rlist, returning as k the element such that Rlist(k) <= R_in < Rlist(k+1), and where wt and wt_p are the linear weights that should be assigned to elements k and k+1. |
||
Finishes initializing MOM and writes out the initial conditions. |
||
Calculates the first derivative of a polynomial evaluated in arbitrary units of [A H-1] at a point x. |
||
Set the unit scaling factors for output to restart files to the unit scaling factors for this run. |
||
Record that a line has been used to set a parameter. |
||
flood the cin, cout values |
||
flood the cin, cout values |
||
Flush the buffer of a MOM framework file. |
||
Flush the buffer of a MOM netCDF file. |
||
Flush buffered output to the netCDF file. |
||
This subroutine initializes the air-sea CFC fluxes, and optionally returns the indicies of these fluxes. It can safely be called multiple times. |
||
Calculates the maximum flux that can leave a cell and uses that to apply a limiter to F_layer. |
||
Accumulate the thermodynamic fluxes over time steps. |
||
Calculate the horizontal boundary diffusive fluxes using the layer by layer method. See |
||
Accumulate the forcing over time steps, taking input from a mechanical forcing type and a temporary forcing-flux type. |
||
Offer buoyancy forcing fields for diagnostics for those fields registered as part of register_forcing_type_diags. |
||
Save a restart file for the forcing fields. |
||
Save any restart files associated with the surface forcing. |
||
Write out values of the fluxes arrays at the i,j location. This is a debugging tool. |
||
Set time_type variables in |
||
Fakes a register of a diagnostic to find out if an obsolete parameter appears in the diag_table. |
||
Fakes a register of a diagnostic to find out if an obsolete parameter appears in the diag_table. |
||
Returns change in anomalous pressure change from top to non-dimensional position pos between z_t and z_b [R L2 T-2 ~> Pa]. |
||
Calculate new temperatures and salinities that have been subject to full convective mixing. |
||
Returns the cell-centered second-order finite volume (unlimited PLM) slope using three consecutive cell widths and average values. Slope is returned as a difference across the central cell (i.e. units of scalar S, e.g. [C ~> degC] for temperature). Discretization follows equation 1.7 in Colella & Woodward, 1984: JCP 54, 174-201. |
||
Returns the cell-centered second-order weighted least squares slope using three consecutive cell widths and average values. Slope is returned as a gradient (i.e. units of scalar S over width units). For example, for temperature fvlsq_slope would usually be returned in units of [C H-1 ~> degC m-1 or degC m2 kg-1]. |
||
Given a desired number of active npes, generate a layout and mask_table. |
||
Clean up and deallocate memory associated with the geothermal heating module. |
||
Applies geothermal heating, including the movement of water between isopycnal layers to match the target densities. The heating is applied to the bottommost layers that occur within GEOTHERMAL_THICKNESS of the bottom. If the partial derivative of the coordinate density with temperature is positive or very small, the layers are simply heated in place. Any heat that can not be applied to the ocean is returned (WHERE)? |
||
Applies geothermal heating to the bottommost layers that occur within GEOTHERMAL_THICKNESS of the bottom, by simply heating the water in place. Any heat that can not be applied to the ocean is returned (WHERE)? |
||
Initialize parameters and allocate memory associated with the geothermal heating module. |
||
Retrieve the information from an |
||
Get axis based on label. |
||
Get axis based on label. |
||
Returns barotropic tidal velocities. |
||
Return bounds for computing checksums to store in restart files. |
||
This subroutine extracts the chlorophyll concentrations from the model state, if possible. |
||
Retrieve a dataset from the database. |
||
Return the checksums required to verify DEPTH_LIST_FILE contents. |
||
This function returns the valid end time for use with diagnostics that are handled outside of the MOM6 diagnostics infrastructure. |
||
This function returns the valid end time for use with diagnostics that are handled outside of the MOM6 diagnostics infrastructure. |
||
Returns the string identifying the equation of state with enumeration “id”. |
||
Gives velocity scale (v_0) using equations that approximate neural network of Sane et al. 2023. |
||
Gives velocity scale (v_0^h) using equations that with using boundary layer depth as one of its inputs These equations are different than those set in get_eqdisc_v0 subroutine. |
||
Get attributes from a field. |
||
Get attributes from a netCDF field. |
||
Get axis based on label. |
||
Get axis based on label. |
||
Read the values of a netCDF field into an array that might have halos. |
||
Return the field metadata associated with a MOM framework file. |
||
Return the field descriptors of a MOM netCDF file. |
||
Get the native (fieldtype) fields of a MOM framework file. |
||
Return number of dimensions, variables, or time levels in a MOM infra file. |
||
Return number of dimensions, variables, or time levels in a MOM netcdf file. |
||
Return a time record to read from a file based on the model time, the number of time records in that file and the number of time records per model day. |
||
Get time levels of a MOM framework file. |
||
Provide a string to append to filenames, to differentiate ensemble members, for example. |
||
Returns the model’s thickness flux units, usually m^3/s or kg/s. |
||
Return flags indicating which groups of forcings are allocated. |
||
Return global shape of horizontal grid. |
||
This subroutine can be used to retrieve the parameters for the hybgen regrid module. |
||
Returns TKE_itidal_input. |
||
Interface to get Langmuir number based on options stored in wave structure. |
||
Returns the values of diffusivity corresponding to various mechanisms. |
||
This subroutine extracts the energy lost from the propagating internal which has been summed across all angles, frequencies, and modes for a given mechanism and location. |
||
Return flags indicating which groups of mechanical forcings are allocated. |
||
Retrieve the model from the database. |
||
Get the names of the I/O directories and initialization file. Also calls the subroutine that opens run-time parameter files. |
||
This subroutine offers access to values or pointers to other types from within the MOM_control_struct, allowing the MOM_control_struct to be opaque. |
||
This subroutine calculates determines the net mass source to the ocean from a (thermodynamic) forcing type and stores it in a provided array. |
||
Get the metadata of the registered fields in a netCDF file. |
||
Return the name of a file from a netCDF handle. |
||
Get the number of dimensions, variables, and timesteps in a netCDF file. |
||
Returns a new diagnostic id, it may be necessary to expand the diagnostics array. |
||
Returns a new diagnostic id, it may be necessary to expand the diagnostics array. |
||
get_num_restart_files returns the number of existing restart files that match the provided directory structure and other information stored in the control structure and optionally also provides the full paths to these files. |
||
Get the OBC properties of external obgc tracers, such as their source file, field name, reservoir length scale factors. |
||
This subroutine gives a handle to the grid from ocean state. |
||
Find the global integrals of various quantities. |
||
This subroutine reads the value of a character string model parameter from a parameter file and logs it in documentation files. |
||
This subroutine reads the values of an array of character string model parameters from a parameter file and logs them in documentation files. |
||
This subroutine reads the value of an integer model parameter from a parameter file and logs it in documentation files. |
||
This subroutine reads the values of an array of integer model parameters from a parameter file and logs them in documentation files. |
||
This subroutine reads the value of a logical model parameter from a parameter file and logs it in documentation files. |
||
This subroutine reads the value of a real model parameter from a parameter file and logs it in documentation files. |
||
This subroutine reads the values of an array of real model parameters from a parameter file and logs them in documentation files. |
||
This subroutine reads the value of a time-type model parameter from a parameter file and logs it in documentation files. |
||
Given a target value, find corresponding coordinate for given polynomial. |
||
Returns posterior adjustments or full state Note that only those PEs associated with an ensemble member receive data. |
||
Get profiles obs within the current analysis interval. |
||
Returns the number of levels/layers in the regridding control structure. |
||
This returns a copy of the rho_CS stored in the regridding control structure. |
||
Retrieve the script from the database. |
||
Dummy version of MARBL’s |
||
This returns a copy of the sigma_CS stored in the regridding control structure. |
||
Get SL averaged Stokes drift from the banded Spectrum method. |
||
Get SL Averaged Stokes drift from a Stokes drift Profile. |
||
Calculates the CFC’s solubility function following Warner and Weiss (1985) DSR, vol 32. |
||
Get SL averaged Stokes drift from Li/FK 17 method. |
||
Returns the model’s thickness units, usually m or kg/m^2. |
||
Returns the model’s tracer flux units. |
||
Return the tracer index from its name. |
||
Returns the dimension variable information for a netCDF variable. |
||
get_var_sizes returns the number and size of dimensions associate with a variable in a file. Usually only the root PE does the read, and then the information is broadcast |
||
get the size of a variable in bytes |
||
This subroutine extracts the contents of lines in the |
||
get_varid finds the netcdf handle for the potentially case-insensitive variable name in a file |
||
function to return the wave method string set in the param file |
||
This returns a copy of the zlike_CS stored in the regridding control structure. |
||
Query the target coordinate interface positions. |
||
Query the fixed resolution data. |
||
Query the short name of the coordinate. |
||
Query the target coordinate units. |
||
Get the ID of the current process. |
||
Get the ID of the parent process of the current process. |
||
Return a random integer on interval [0,0xffffffff]. |
||
Return a random real number on interval [0,1]. |
||
Return coordinate-derived thicknesses for fixed coordinate systems. |
||
Return the global area integral of a variable using reproducing sums, perhaps with a change of units. By default the integral uses the masked area from the grid, but an alternate could be used instead. The presence of the optional tmp_scale argument determines whether the returned value is in scaled (if it is present) or unscaled units for both the variable itself and for the area in the integral. |
||
Return the global area mean of a variable, perhaps with a change of units. This uses reproducing sums. |
||
Return the global area mean of a variable on U grid. This uses reproducing sums. |
||
Return the global area mean of a variable. This uses reproducing sums. |
||
Determine the global mean of a field along rows of constant i, returning it in a 1-d array using the local indexing. This uses reproducing sums. |
||
Determine the global mean of a field along rows of constant j, returning it in a 1-d array using the local indexing. This uses reproducing sums. |
||
Return the layerwise global thickness-weighted mean of a variable. This uses reproducing sums. |
||
Find the global mass-weighted order invariant integral of a variable in mks units, returning the value as an EFP_type. This uses reproducing sums. |
||
Find the global mass-weighted integral of a variable. The presence of the optional tmp_scale argument determines whether the returned value is in scaled (if it is present) or unscaled units for both the variable itself and for the mass in the integral. This function uses reproducing sums. |
||
Find the global thickness-weighted mean of a variable. This uses reproducing sums. |
||
Calculate the tangential gradient of the normal flow at the boundary q-points. |
||
Calculates the acceleration due to the gradient of kinetic energy in one layer. |
||
grid_metrics_chksum performs a set of checksums on metrics on the grid for debugging. |
||
Grow a 2d diagnostic buffer. |
||
Grow a 2d diagnostic buffer. |
||
Grow the ids array by one. |
||
Return the growth timescale for the submesoscale mixed layer eddies in [T ~> s]. |
||
This subroutine accumulates the temporal basis functions in FtF and FtSSH and then calls HA_write to compute harmonic constants and write results. The tidal constituents are those used in MOM_tidal_forcing, plus the mean (of zero frequency). For FtF, only the main diagonal and entries below it are calculated, which are needed for Cholesky decomposition. |
||
This subroutine sets static variables used by this module and initializes CSlist. THIS MUST BE CALLED AT THE END OF tidal_forcing_init. |
||
This subroutine registers each of the fields on which HA is to be performed. |
||
This subroutine computes the harmonic constants (stored in x) using the dot products of the temporal basis functions accumulated in FtF, and the dot products of the SSH (or other fields) with the temporal basis functions accumulated in FtSSH. The system is solved by Cholesky decomposition,. |
||
This subroutine computes the harmonic constants and write output for the current field. |
||
Calculate the harmonic mean of two quantities [arbitrary] See |
||
Build the HBD grid where tracers will be remapped to. |
||
Same as hbd_grid, but only used in the unit tests. |
||
HIT_assign copies one |
||
Analytic prescription of mixed layer depth in 2d Rossby front test, in the same units as max_depth (usually [Z ~> m] or [H ~> m or kg m-2]) |
||
Replace all values of a 2-d field with the weighted average over the valid points. |
||
Driver routine for calculating horizontal diffusive fluxes near the top and bottom boundaries. Diffusion is applied using only information from neighboring cells, as follows: 1) remap tracer to a z* grid (HBD grid) 2) calculate diffusive tracer fluxes (F) in the HBD grid using a layer by layer approach 3) remap fluxes to the native grid 4) update tracer by adding the divergence of F. |
||
Deallocates hor_bnd_diffusion control structure. |
||
Initialization routine that reads runtime parameters and sets up pointers to other control structures that might be needed for horizontal boundary diffusion. |
||
Sets various index values in a |
||
Deallocates any variables allocated in hor_visc_init. |
||
Allocates space for and calculates static variables used by horizontal_viscosity. hor_visc_init calculates and stores the values of a number of metric functions that are used in horizontal_viscosity. |
||
hor_visc_vel_stencil returns the horizontal viscosity input velocity stencil size |
||
Extrapolate and interpolate using a FMS time interpolation handle. |
||
Extrapolate and interpolate from a file record. |
||
Calculates the acceleration due to the horizontal viscosity. |
||
Horizontally average a diagnostic field. |
||
Horizontally average a diagnostic field. |
||
Initialize some of the variables that are used for regridding or unmixing, including the stretched contraits on where the new interfaces can be. |
||
Create a new grid for a column of water using the Hybgen algorithm. |
||
Unmix the properties in the lowest layer if it is too light. |
||
Set up the coefficients for PLM remapping of a set of scalars. |
||
Set up the coefficients for PPM remapping of a set of scalars. |
||
Modify the input grid to give a new vertical grid based on the HYCOM hybgen code. |
||
Unmix the properties in the lowest layer with mass if it is too light, and make any other changes to the water column to prepare for regridding. |
||
Set up the coefficients for PPM remapping of a set of scalars. |
||
Write out a set of messages with checksums of the fields in an ice_ocean_boundary type. |
||
Converts the ice-shelf-to-ocean calving and calving_hflx variables from the ice-shelf state (ISS) type to the ocean public type. |
||
This subroutine takes the velocity (on the Bgrid) and timesteps h_t = - div (uh) once. Additionally, it will update the volume of ice in partially-filled cells, and update hmask accordingly. |
||
Deallocates all memory associated with the ice shelf dynamics module. |
||
Deallocates all memory associated with this module. |
||
Apply a very simple calving law using a minimum thickness rule. |
||
Save the ice shelf restart file. |
||
Save the ice shelf restart file. |
||
This subroutine computes u- and v-velocities of the ice shelf iterating on non-linear ice viscosity. |
||
Deallocates all memory associated with this module. |
||
Deallocates all memory associated with this module. |
||
This subroutine updates the vertically averaged ice shelf temperature. |
||
This function returns the global maximum advective timestep that can be taken based on the current ice velocities. Because it involves finding a global minimum, it can be surprisingly expensive. |
||
Calculate cell-centered, area-averaged, vertically integrated ice viscosity for diagnostics. |
||
iceberg_fluxes adds ice-area-coverage and modifies various thermodynamic fluxes due to the presence of icebergs. |
||
add_berg_flux_to_shelf adds rigidity and ice-area coverage due to icebergs to the forces type fields, and adds ice-areal coverage and modifies various thermodynamic fluxes due to the presence of icebergs. |
||
Deallocate any memory associated with this tracer package. |
||
Calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If stock_index is present, only the stock corresponding to that coded index is found. |
||
Applies diapycnal diffusion, aging and regeneration at the surface to the ideal age tracers. |
||
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler. |
||
Computes the surface wind for the idealized hurricane test cases. |
||
Initializes wind profile for the SCM idealized hurricane example. |
||
Calculate the wind speed at a location as a function of time. |
||
Increments the interface which was just connected and also set flags if the bottom is reached. |
||
Increment an array of integers that constitutes an extended-fixed-point representation with a another EFP number. |
||
Increment an EFP number with a real number without doing any carrying of of overflows and using only minimal error checking. |
||
make sure all layers are at least as thick as the minimum thickness allowed for regridding purposes by inflating thin layers. This breaks mass conservation and adds mass to the model when there are excessively thin layers. |
||
Initialize a 1D PPM_CWK reconstruction for n cells. |
||
Initialize a 1D PLM reconstruction for n cells. |
||
Initialize a 1D PCM reconstruction for n cells. |
||
Initialize a 1D PPM_H4_2019 reconstruction for n cells. |
||
Initialize a 1D PLM reconstruction for n cells. |
||
Dummy version of MARBL’s |
||
Initialize a 1D PLM reconstruction for n cells. |
||
Initialize a 1D PPM_CW reconstruction for n cells. |
||
Initialize a 1D PLM reconstruction for n cells. |
||
Initialise a hycom_CS with pointers to parameters. |
||
Initialise an adapt_CS with parameters. |
||
Initialise a hycom_CS with pointers to parameters. |
||
Initialise a rho_CS with pointers to parameters. |
||
Initialise a sigma_CS with pointers to parameters. |
||
Initialise a zlike_CS with pointers to parameters. |
||
Initializes aspects of the dyn_split_RK2 that depend on diabatic processes. Needed when BLDs are used in the dynamics. |
||
Initialise a hybgen_regrid_CS control structure and store its parameters. |
||
Initialise a hybgen_unmix_CS control structure and store its parameters. |
||
Initialize DA module. |
||
initialize First_guess (prior) and Analysis grid information for all ensemble members |
||
Initialize diagnostics for the oda_incupd module. |
||
Initialize the lookup table for Ohlmann solar penetration scheme. Step size in Chl is a constant in log-space to make lookups easy. Step size is fine enough that nearest neighbor lookup is sufficiently accurate. |
||
This subroutine sets up diagnostics for the sponges. It is separate from initialize_sponge because it requires fields that are not readily available where initialize_sponge is called. |
||
Initializes the stochastic physics perturbations. |
||
Initialize string with a character array. |
||
Convert an integer to a string. |
||
This subroutine initializes a tracer array. |
||
This subroutine initializes a tracer array. |
||
Initialize the coordinate resolutions by calling the appropriate initialization routine for the specified coordinate mode. |
||
Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output. |
||
Initialize the linked list of framework axes. |
||
Initialize the linked list of framework axes. |
||
Initialize tracer from restart or set to 1 at surface to initialize. |
||
This subroutine sets up the time-invariant control information about the open boundary conditions on the full wide halo domain used by the barotropic solver. |
||
Initialize the CFC tracer fields and set up the tracer output. |
||
Initializes a new instance of a communication client. |
||
Initializes a |
||
Initializes a |
||
Initializes the NTR tracer fields in tr(:,:,:,:) and sets up the tracer output. |
||
This subroutine initializes the CSntr tracer fields in tr(:,:,:,:) and it sets up the tracer output. |
||
Initializes the CSntr tracer fields in tr(:,:,:,:) and sets up the tracer output. |
||
This subroutine initializes all of the variables that are used by this dynamic core, including diagnostics and the cpu clocks. |
||
This subroutine initializes all of the variables that are used by this dynamic core, including diagnostics and the cpu clocks. |
||
Initialize parameters and allocate memory associated with the unsplit dynamics module. |
||
Initialize parameters and allocate memory associated with the unsplit RK2 dynamics module. |
||
Initialize the linked list of framework axes. |
||
Initialize the linked list of framework axes. |
||
initialize_grid_rotation_angle initializes the arrays with the sine and cosine of the angle between logical north on the grid and true north. |
||
Initialize ice-stiffness parameter. |
||
Initialize ice basal friction. |
||
Initialize ice shelf flow from file. |
||
Initializes shelf model data, parameters and diagnostics. |
||
Initialize ice shelf boundary conditions for a channel configuration. |
||
Initialize ice shelf b.c.s from file. |
||
Initializes shelf model data, parameters and diagnostics. |
||
Allocate and initialize the ice-shelf forcing elements of a mechanical forcing type. This forcing type is on the unrotated grid that is used outside of the MOM6 ice shelf code. |
||
Initialize ice surface mass balance field that is held constant over time. |
||
Initialize ice shelf thickness. |
||
Initialize ice shelf thickness for a channel configuration. |
||
Initialize ice shelf thickness from file. |
||
Sets the ideal age traces to their initial values and sets up the tracer output. |
||
Initializes the NTR tracer fields in tr(:,:,:,:) |
||
This subroutine initializes the CSntr tracer fields in tr(:,:,:,:) and it sets up the tracer output. |
||
Initializes the grid masks and any metrics that come with masks already applied. |
||
Initialize MOM, including memory allocation, setting up parameters and diagnostics, initializing the ocean state variables, and initializing subsidiary modules. |
||
Initialize phase II: Initialize required variables for generic tracers There are some steps of initialization that cannot be done in register_MOM_generic_tracer This is the place and time to do them: Set the grid mask and initial time for all generic tracers. Diag_register them. Z_diag_register them. |
||
Sets the NW2 traces to their initial values and sets up the tracer output. |
||
Initialize thickness and tracer reservoirs to external value. |
||
Initize parameters and fields related to the specification of tides at open boundaries. |
||
Initialize the public ocean type. |
||
Initialize the OCMP2 CFC tracer fields and set up the tracer output. |
||
This subroutine defined the number of time step for full update, stores the layer pressure increments and initialize remap structure. |
||
This subroutine defined the control structure of module and register. |
||
Initialize the oil tracers and set up tracer output. |
||
Initialize the pseudo-salt tracer. |
||
Initialization and configures a regridding control structure based on customizable run-time parameters. |
||
Constructor for remapping control structure. |
||
Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output. |
||
Get and store properties about the fields on the OBC segments and allocate space for reading OBC data from files. In the process, it does funky stuff with the MPI processes. |
||
Initializes shelf mass based on three options (file, zero and user) |
||
This subroutine determines the number of points which are within sponges in this computational domain. Only points that have positive values of Iresttime and which mask2dT indicates are ocean points are included in the sponges. It also stores the target interface heights. |
||
This subroutine sets the inverse restoration time (Idamp), and the values towards which the interface heights and an arbitrary number of tracers should be restored within each sponge. The interface height is always subject to damping, and must always be the first registered field. |
||
Initializes temperature and salinity by fitting to density. |
||
Initializes temperature and salinity from file. |
||
Initializes temperature and salinity from a 1D profile. |
||
Initializes T and S with linear profiles according to reference surface layer salinity and temperature and a specified range. |
||
Reads the layer thicknesses or interface heights from a file. |
||
Initialize thickness from a 1D list. |
||
Initializes thickness based on a run-time parameter with nominal thickness for each layer. |
||
|
Search density space for location of layers (not implemented!) |
|
Initializes thickness to be uniform. |
||
Read gridded depths from file. |
||
initialize the bathymetry based on one of several named idealized configurations |
||
Sets the initial velocity components to be circular with no flow at edges of domain and center. |
||
Initialize horizontal velocity components from file. |
||
Sets the initial velocity components to uniform. |
||
Initialize horizontal velocity components to zero. |
||
Inserts (assigns values to) members of the offline main control structure. All arguments are optional except for the CS itself. |
||
Compare i_test to i_true and report and return true if a difference is found. |
||
Return a string the elements of an array of integers. |
||
Returns a character string of a comma-separated, compact formatted, integers e.g. “1, 2, 7*3, 500”, that give the list of values. |
||
Calls the appropriate subroutine to calculate analytical and nearly-analytical integrals in z across layers of pressure anomalies, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model. |
||
Calculates (by numerical quadrature) integrals of pressure anomalies across layers, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model. |
||
Compute pressure gradient force integrals by quadrature for the case where T and S are linear profiles. |
||
Compute pressure gradient force integrals for layer “k” and the case where T and S are parabolic profiles. |
||
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. |
||
Calculates analytical and nearly-analytical integrals, in geopotential across layers, of pressure anomalies, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
Calculates analytical and nearly-analytical integrals, in geopotential across layers, of pressure anomalies, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
Calculates analytical and nearly-analytical integrals, in geopotential across layers, of pressure anomalies, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
This function calculates and returns the integral of the inverse of dx/di to the point x, in radians [gridpoints]. |
||
This subroutine calculates and returns the integral of the inverse of dy/dj to the point y in radians [gridpoints]. |
||
This subroutine calculates integrals of specific volume anomalies in pressure across layers, 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 Boole’s rule quadrature to do the integrals. |
||
This subroutine calculates integrals of specific volume anomalies in pressure across layers, 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 Boole’s rule quadrature to do the integrals. |
||
Calculates 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. Specific volume is assumed to vary linearly between adjacent points. |
||
Calculates 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 Boole’s rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
Calculates 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 Boole’s rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
Calculates 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 Boole’s rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
Calls the appropriate subroutine to calculate 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 Boole’s rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. |
||
This function returns a string with an integer formatted like ‘(I)’. |
||
Deallocates any memory related to the internal tide input module. |
||
Initializes the data related to the internal tide input module. |
||
Exact integration of polynomial of degree npoly in arbitrary units of [A H]. |
||
Apply a transport that leads to a smoothing of interface height, subject to limits that ensure stability and positive definiteness of layer thicknesses. It also updates the along-layer mass fluxes used in the tracer transport equations. |
||
Deallocate the interface height filtering control structure. |
||
Initialize the interface height filtering module/structure. |
||
Returns interface scalar, Si, for a column of layer values, S. |
||
Dummy version of MARBL’s |
||
This subroutine deallocates the memory associated with the internal tides control structure. |
||
This subroutine initializes the internal tides module. |
||
Linearly interpolate interface data, u_src, from grid h_src to a grid h_dest. |
||
Returns the non-dimensional position between Pneg and Ppos where the interpolated density difference equals zero [nondim]. The result is always bounded to be between 0 and 1. |
||
Given target values (e.g., density), build new grid based on polynomial. |
||
Interpolate the ice shelf thickness from tracer point to nodal points, subject to a mask. |
||
Numeric value of interpolation_scheme corresponding to scheme name. |
||
Returns the intersection of source and targets grids along with and auxiliary lists or indices. |
||
Returns true if any unit test of intrinsic_functions fails, or false if they all pass. |
||
Convert the array of integers that constitute an extended-fixed-point representation into a real number. |
||
Convert the first n elements (3 by default) of an integer array into an underscore delimited string. |
||
Evaluate the inverse cosh, either using a math library or an equivalent expression. |
||
Check whether the cubic reconstruction in cell k is monotonic. |
||
Ice shelf dynamics post_data calls. |
||
Post_data calls related to ice-sheet flux divergence, strain-rate, and deviatoric stress. |
||
This function returns .true. if x is a NaN, and .false. otherwise. |
||
Returns .true. if any element of x is a NaN, and .false. otherwise. |
||
Returns .true. if any element of x is a NaN, and .false. otherwise. |
||
Returns .true. if any element of x is a NaN, and .false. otherwise. |
||
is_new_run returns whether this is going to be a new run based on the information stored in CS by a previous call to determine_is_new_run. |
||
This function returns True if the profiles around the given interface will be statically unstable after mixing above below. The arguments are the ocean state above and below, including partial calculations from a tridiagonal solver. |
||
Returns True if the string can be read/parsed to give the exact value of “val”. |
||
Check whether the client has been initialized. |
||
Sets up the inverse restoration time (Idamp), and the values towards which the interface heights and an arbitrary number of tracers should be restored within each sponge. |
||
Initial values for temperature and salinity. |
||
Initialization of thicknesses. |
||
Initialization of topography for the ISOMIP configuration. |
||
This subroutine applies diapycnal diffusion, including the surface boundary conditions and any other column tracer physics or chemistry to the tracers from this file. |
||
Deallocate any memory used by the ISOMIP tracer package. |
||
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler. |
||
Returns true if the coordinates (x,y) are within the h-cell (i,j) |
||
Calculates the energy lost from the propagating internal tide due to scattering over small-scale roughness along the lines of Jayne & St. Laurent (2001). |
||
Gives shape function that sets the vertical structure of OSBL diffusivity as described in Sane et al. 2025. |
||
This function indicates to other modules whether the Jackson et al shear mixing parameterization will be used at the vertices without needing to duplicate the log entry. It returns false if the Jackson et al scheme is not used or if it is used via calculations at the tracer points. |
||
This subroutine calculates shear-driven diffusivity and TKE in a single column. |
||
This subroutine initializes the parameters that regulate shear-driven mixing. |
||
This function indicates to other modules whether the Jackson et al shear mixing parameterization will be used without needing to duplicate the log entry. |
||
Loop over all implemented diffusivities to diagnose and output Kd Work/buoyancy fluxes. |
||
Deallocates control structrue. |
||
Handles all KdWork diagnostics and flags which calculations should be done. |
||
This subroutine sets up the Kelvin topography and land mask. |
||
Clean up the Kelvin wave OBC from registry. |
||
This subroutine sets the properties of flow at open boundary conditions. |
||
Send signal |
||
KPP vertical diffusivity/viscosity and non-local tracer transport. |
||
Compute OBL depth. |
||
Clear pointers, deallocate memory. |
||
Copies KPP surface boundary layer depth into BLD, in units of [Z ~> m] unless other units are specified. |
||
Initialize the CVMix KPP module and set up diagnostics Returns True if KPP is to be used, False otherwise. |
||
Apply KPP non-local transport of surface fluxes for a given tracer. |
||
Apply KPP non-local transport of surface fluxes for salinity. |
||
Apply KPP non-local transport of surface fluxes for temperature. |
||
Apply a 1-1-4-1-1 Laplacian filter one time on BLD to reduce any horizontal two-grid-point noise. |
||
Find position of last character before any comments, As marked by “!”, “//”, or “/*” following F90, C++, or C syntax. |
||
Find position of last non-blank character before any comments. |
||
Imposes the diapycnal mass fluxes and the accompanying diapycnal advection of momentum and tracers using the original MOM6 algorithms. |
||
Returns a character string of a left-formatted integer e.g. “123 “ (assumes 19 digit maximum) |
||
Returns a character string of a comma-separated, compact formatted, integers e.g. “1, 2, 3, 4”. |
||
Returns a left-justified string with a real formatted like ‘(G)’. |
||
Returns a character string of a comma-separated, compact formatted, reals e.g. “1., 2., 5*3., 5.E2”. |
||
This routine limits the mass fluxes so that the a layer cannot be completely depleted. NOTE: Only used in non-ALE mode. |
||
limit_topography ensures that min_depth < D(x,y) < max_depth |
||
Solve the linear system AX = R by Gaussian elimination. |
||
A private routine through which all error/warning/note messages are written by this module. |
||
True if i1 is not equal to i2. False otherwise. |
||
True if r1 is not equal to r2. False otherwise. |
||
True if str1 does not match str2. False otherwise. |
||
Issue an error message if the restart_registry is locked. |
||
This subroutine initializes layer thicknesses for the lock_exchange experiment. |
||
This subroutine locks the tracer registry to prevent the addition of more tracers. After locked=.true., can then register common diagnostics. |
||
Log a diagnostic to the available diagnostics file. |
||
Log a diagnostic to the available diagnostics file. |
||
Log the diagnostic chksum to the chksum diag file. |
||
Log the diagnostic chksum to the chksum diag file. |
||
dummy trace routine |
||
Log the name and value of a character string model parameter in documentation files. |
||
Log the name and value of an integer model parameter in documentation files. |
||
Log the name and values of an array of integer model parameter in documentation files. |
||
Log the name and value of a logical model parameter in documentation files. |
||
Log the name and value of a real model parameter in documentation files. |
||
Log the name and values of an array of real model parameter in documentation files. |
||
This subroutine writes the value of a time-type parameter to a log file, along with its name and the module it came from. |
||
Log the version of a module to a log file and/or stdout, and/or to the parameter documentation file. |
||
Log the version of a module to a log file and/or stdout. |
||
This function returns a string with an logical formatted like ‘(L)’. |
||
Restore program to state saved by |
||
Placeholder function for a missing or unconfigured longjmp. |
||
Get the opacity (decay scale) from Ohlmann lookup table. |
||
Get the partion of total solar into bands from Ohlmann lookup table. |
||
Return the field number on the segment for the named field, or -1 if there is no field with that name. |
||
Return a string in which all uppercase letters have been replaced by their lowercase counterparts. |
||
Returns local least squares error for a particular cell. |
||
Frazil formation keeps the temperature above the freezing point. This subroutine warms any water that is colder than the (currently surface) freezing point up to the freezing point and accumulates the required heat (in [Q R Z ~> J m-2]) in tvfrazil. |
||
If necessary, apply an offset to convert from model time to forcing time and then ensure result is within acceptable bounds. |
||
Sets the necessary MARBL forcings via the data override facility. |
||
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. |
||
Clean up any allocated memory after the run. |
||
Copy the requested interior tendency output field into an array. |
||
This subroutine reads time-varying forcing from files. |
||
This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. |
||
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. |
||
Initialize control structure for MOM_marine_ice. |
||
Mark a slot in the buffer as unused based on a diagnostic id. For example, the data in that slot has already been consumed and can thus be overwritten. |
||
Sweep down through the column and mark as stable if the bottom interface of a cell is denser than the top. |
||
Zero out velocities in a column in very thin layers near the seafloor. |
||
Find the region outside of all open boundary segments and make sure it is set to land mask. Gonna need to know global land mask as well to get it right… |
||
multiplies a variable with the ice sheet grounding fraction |
||
returns the diagonal entries of the matrix for a Jacobi preconditioning |
||
This function returns the maximum number of characters in any input lines after they have been combined by any line continuation. |
||
Measure totals and bounds on source grid. |
||
Measure totals and bounds on destination grid. |
||
Offer mechanical forcing fields for diagnostics for those fields registered as part of register_forcing_type_diags. |
||
Write out values of the mechanical forcing arrays at the i,j location. This is a debugging tool. |
||
This subroutine calculates mechanically driven entrainment. |
||
Allocates memory and register restart fields for the MOM_MEKE module. |
||
Deallocates any variables allocated in MEKE_alloc_register_restart. |
||
Calculates the equilibrium solution where the source depends only on MEKE diffusivity and there is no lateral diffusion of MEKE. Results is in MEKEMEKE. |
||
Initializes the MOM_MEKE module and reads parameters. Returns True if module is to be used, otherwise returns False. |
||
Calculates the eddy mixing length scale and |
||
Calculates the eddy mixing length scale and |
||
Given layer thicknesses (and corresponding interfaces) and BLDs in two adjacent columns, return a set of 1-d layer thicknesses whose interfaces cover all interfaces in the left and right columns plus the two BLDs. This can be used to accurately remap tracer tendencies in both columns. |
||
Evaluates the meridional mass or volume fluxes in a layer. |
||
Evaluates the meridional mass or volume fluxes in a layer. |
||
Calculates the vertically integrated mass or volume fluxes through the meridional faces. |
||
Set the reconstructed thicknesses at the eastern and western edges of tracer cells. |
||
Returns the barotropic velocity adjustment that gives the desired barotropic (layer-summed) transport. |
||
Sets the effective interface thickness associated with the fluxes at each meridional velocity point, optionally scaling back these thicknesses to account for viscosity and fractional open areas. |
||
Calculates the mass or volume fluxes through the meridional faces, and other related quantities. |
||
Returns true if documentation has already been written. |
||
Create a 2d-mesh of grid coordinates from 1-d arrays. |
||
This subroutine sets up the MESO buoyancy forcing, which uses control-theory style specification restorative buoyancy fluxes at large scales. |
||
Initialize the MESO surface forcing module. |
||
Limits the left/right edge values using the simple minmod limiter written in a way that avoids branching in favor of intrinsics. |
||
Merge bits of u and v. |
||
This subroutine causes the mixed layer to entrain to the depth of free convection. The depth of free convection is the shallowest depth at which the fluid is denser than the average of the fluid above. |
||
This subroutine moves any water left in the former mixed layers into the single buffer layers and may also move buffer layer water into the interior isopycnal layers. |
||
This subroutine moves any water left in the former mixed layers into the two buffer layers and may also move buffer layer water into the interior isopycnal layers. |
||
Driver for the mixed-layer restratification parameterization. The code branches between two different implementations depending on whether the bulk-mixed layer or a general coordinate are in use. |
||
Calculates a restratifying flow assuming a 2-layer bulk mixed layer. |
||
Calculates a restratifying flow in the mixed layer, following the formulation used in Bodner et al., 2023 (B22) |
||
Initialize the mixed layer restratification module. |
||
Calculates a restratifying flow in the mixed layer, following the formulation used in OM4. |
||
Allocate and register fields in the mixed layer restratification structure for restarts. |
||
Returns true if a unit test of functions in MOM_mixedlayer_restrat fail. Returns false otherwise. |
||
Create a file directory. |
||
Calculate the various features used for the machine learning prediction. |
||
Initializer for the variant of MEKE that uses ML to predict eddy kinetic energy. |
||
This routine modifies the named elements of a vardesc type. All arguments are optional, except the vardesc type to be modified. |
||
Return the modulo value of x in an interval [xc-(Lx/2) xc+(Lx/2)] If Lx<=0, then it returns x without applying modulo arithmetic. |
||
Write out chksums for the model’s accelerations. |
||
Computes a parameterization of the SGS temperature variance. |
||
Calculates the components of grad f (Coriolis parameter) |
||
MOM_checksums_init initializes the MOM_checksums module. As it happens, the only thing that it does is to log the version of this module. |
||
MOM_debugging_init initializes the MOM_debugging module, and sets the parameters that control which checks are active for MOM6. |
||
Given a global array size and a number of (logical) processors, provide a layout of the processors in the two directions where the total number of processors is the product of the two layouts and number of points in the partitioned arrays are as close as possible to an aspect ratio of 1. |
||
Deallocate memory associated with the diagnostics module. |
||
This subroutine registers various diagnostics and allocates space for fields that other diagnostics depend upon. |
||
These encoding constants are used to indicate the staggering of scalars and vectors. |
||
End of ocean model, including memory deallocation. |
||
This provides a convenient interface for writing an error message with run-time filter based on a verbosity and the severity of the error. |
||
Write out chksums for thermodynamic fluxes. |
||
Column physics for generic tracers. Get the coupler values for generic tracers that exchange with atmosphere Update generic tracer concentration fields from sources and sinks. Vertically diffuse generic tracer concentration fields. Update generic tracers from bottom and their bottom reservoir. |
||
Copy the requested tracer into an array. |
||
This subroutine finds the global min and max of either of all available tracer concentrations, or of a tracer that is being requested specifically, returning the number of tracers it has evaluated. It also optionally returns the locations of the extrema. |
||
This subroutine calculates mass-weighted integral on the PE either of all available tracer concentrations, or of a tracer that is being requested specifically, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. |
||
This subroutine calculates the surface state and sets coupler values for those generic tracers that have flux exchange with atmosphere. |
||
This subroutine gets the level of verbosity filtering MOM error messages. |
||
Release memory used by the |
||
MOM_grid_init initializes the ocean grid array sizes and grid memory. |
||
MOM_initialize_coord sets up time-invariant quantities related to MOM6’s vertical coordinate. |
||
MOM_initialize_fixed sets up time-invariant quantities related to MOM6’s horizontal grid, bathymetry, and the Coriolis parameter. |
||
MOM_initialize_rotation makes the appropriate call to set up the Coriolis parameter. |
||
Initialize temporally evolving fields, either as initial conditions or by reading them from a restart (or saves) file. |
||
MOM_initialize_topography makes the appropriate call to set up the bathymetry in units of [Z ~> m]. |
||
Initializes a tracer from a z-space data file, including any lateral regridding that is needed. |
||
Initialize the MOM_io module. |
||
Prevent the registration of additional diagnostics, so that the creation of files can occur. |
||
Deallocate memory associated with the MOM_IS diag mediator. |
||
This subroutine initializes the diag_manager via the MOM6 infrastructure. |
||
Initialize the MOM_IS diag_mediator and opens the available diagnostics file, if appropriate. |
||
Finishes the diag manager reduction methods as needed for the time_step. |
||
Write out chksums for the driving mechanical forces. |
||
This provides a convenient interface for writing an informative comment, depending on the model’s current verbosity setting and the verbosity level for this message. |
||
Read a scalar from file using infrastructure I/O. |
||
Read a scalar integer from file using infrastructure I/O. |
||
Read a 1d array from file using infrastructure I/O. |
||
Read a 1d integer array from file using infrastructure I/O. |
||
Read a 2d array from file using infrastructure I/O. |
||
Read a 2d region array from file using infrastructure I/O. |
||
Read a 3d array from file using infrastructure I/O. |
||
Read a 3d region array from file using infrastructure I/O. |
||
Read a 4d array from file using infrastructure I/O. |
||
Read a 2d vector tuple from file using infrastructure I/O. |
||
Read a 3d vector tuple from file using infrastructure I/O. |
||
This subroutine sets the level of verbosity filtering MOM error messages. |
||
MOM_shared_init_init just writes the code version. |
||
Write out chksums for the model’s basic state variables. |
||
Write out chksums for the model’s basic state variables, including transports. |
||
Run simple unit tests. |
||
Return true if all phases of step_MOM are at the same point in time. |
||
Monitor and write out statistics for the model’s state variables. |
||
Initializes MOM_stoch_eos module, returning a logical indicating whether this module will be used. |
||
Generates a pattern in space and time for the ocean stochastic equation of state. |
||
MOM_sum_output_end deallocates memory used by the MOM_sum_output module. |
||
MOM_sum_output_init initializes the parameters and settings for the MOM_sum_output module. |
||
Write out chksums for the ocean surface variables. |
||
This subroutine determines the isopycnal or other coordinate interfaces and layer potential temperatures and salinities directly from a z-space file on a latitude-longitude grid. |
||
Write out chksums for the model’s thermodynamic state variables. |
||
Diagnostic checksums on various elements of a |
||
Set up CPU clock IDs for timing various subroutines. |
||
This tests whether the level of verbosity filtering MOM error messages is sufficient to write a message of verbosity level verb. |
||
Initializes parameters related to MOM_wave_interface. |
||
Close the MOM_write_cputime module. |
||
Initialize the MOM_write_cputime module. |
||
Write a 0d field to an output file. |
||
Write a 1d field to an output file. |
||
Write a 2d field to an output file, potentially with rotation. |
||
Write a 3d field to an output file, potentially with rotation. |
||
Write a 4d field to an output file, potentially with rotation. |
||
Write a 0d field to an output file. |
||
Write a 1d field to an output file. |
||
Write a 2d field to an output file, potentially with rotation. |
||
Write a 3d field to an output file, potentially with rotation. |
||
Write a 4d field to an output file, potentially with rotation. |
||
Monotonize a cubic curve by modifying the edge slopes. |
||
This subroutine modifies the mstar value if the Langmuir number is present. |
||
Stream function shape as a function of non-dimensional position within mixed-layer [nondim]. |
||
Return the murmur3 hash for a 32-bit integer array. |
||
Return the murmur3 hash for a 64-bit integer array. |
||
Return the murmur3 hash for a 32-bit real array. |
||
Return the murmur3 hash for a 32-bit real array. |
||
Return the murmur3 hash for a 32-bit real 2D array. |
||
Return the murmur3 hash for a 32-bit real 3D array. |
||
Return the murmur3 hash for a 32-bit real 4D array. |
||
Return the murmur3 hash for a 64-bit real array. |
||
Return the murmur3 hash for a 64-bit real array. |
||
Return the murmur3 hash for a 64-bit real 2D array. |
||
Return the murmur3 hash for a 64-bit real 3D array. |
||
Return the murmur3 hash for a 64-bit real 4D array. |
||
Allocates and zeroes-out array. |
||
Write to the terminal some basic statistics about the k-th level of an array. |
||
Do a naive non-rotationally symmetric sum of a 2-d array. This function is only here for testing. |
||
Returns true if unit tests of neutral_diffusion functions fail. Otherwise returns false. |
||
Unit tests for near-boundary horizontal mixing. |
||
Update tracer concentration due to neutral diffusion; layer thickness unchanged by this update. |
||
Calculate remapping factors for u/v columns used to map adjoining columns to a shared coordinate space. |
||
Deallocates neutral_diffusion control structure. |
||
Read parameters and allocate control structure for neutral_diffusion module. |
||
Returns true if unit tests of neutral_diffusion functions fail. Otherwise returns false. |
||
Returns a single column of neutral diffusion fluxes of a tracer. |
||
Evaluate various parts of the reconstructions to calculate gradient-based flux limiter. |
||
This subroutine initializes layer thicknesses for the Neverworld test case, by finding the depths of interfaces in a specified latitude-dependent temperature profile with an exponentially decaying thermocline on top of a linear stratification. |
||
This subroutine sets up the Neverworld test case topography. |
||
Sets the surface wind stresses, forcestaux and forcestauy for the Neverworld forcing configuration. |
||
Return an initialized twister using seed. |
||
Calculates the next timelevel to read from the input fields. This allows the ‘looping’ of the fields. |
||
Update internal state of twister to the next state in the sequence. |
||
Find amplitude (f) and phase (u) modulation of tidal constituents by the 18.6 year nodal cycle. Values here follow Table I.6 in Kowalik and Luick, “Modern Theory and Practice of Tide Analysis and Tidal Power”, 2019. |
||
Determine from the list of scaling factors and the unit combinations that are in use whether all these combinations scale uniquely. |
||
A “coast profile” applied in an N-S line from lonC,lat0 to lonC,lat1 [nondim]. |
||
A “coast profile” applied in an N-S line from lon0,lat0 to lon0,lat1 [nondim]. |
||
A NS ridge with a cone profile [nondim]. |
||
A NS ridge [nondim]. |
||
A NS ridge with an scurve profile [nondim]. |
||
This function determines how many time levels a variable has in a file. |
||
Tests the testing type itself. |
||
Applies diapycnal diffusion, aging and regeneration at the surface to the NW2 tracers. |
||
The target value of a NeverWorld2 tracer label m [conc] at non-dimensional position x=lon/Lx, y=lat/Ly, z=eta/H. |
||
Deallocate any memory associated with this tracer package. |
||
Clean up the OBC registry. |
||
This routine include declares and sets the variable “version”. |
||
Test for presence of obsolete STRING in parameter file. |
||
Test for presence of obsolete INTEGER in parameter file. |
||
Test for presence of obsolete LOGICAL in parameter file. |
||
Test for presence of obsolete REAL in parameter file. |
||
Initializes the MOM6 DA driver code. |
||
This subroutine extracts a named scalar field from the ocean surface or public type. |
||
This subroutine extracts a named 2-D field from the ocean surface or public type. |
||
ocean_model_end terminates the model run, saving the ocean state in a restart and deallocating any data associated with the ocean. |
||
ocean_model_flux_init is used to initialize properties of the air-sea fluxes as determined by various run-time parameters. It can be called from non-ocean PEs, or PEs that have not yet been initialized, and it can safely be called multiple times. |
||
This subroutine extracts a named (u- or v-) 2-D surface current from ocean internal state. |
||
ocean_model_init initializes the ocean model, including registering fields for restarts and reading restart files if appropriate. |
||
This subroutine extracts the surface properties from the ocean’s internal state and stores them in the ocean type returned to the calling ice model. It has to be separate from the ocean_initialization call because the coupler module allocates the space for some of these variables. |
||
This subroutine writes out the ocean model restart file. |
||
ocean_model_save_restart causes restart files associated with the ocean to be written out. |
||
Write out checksums for fields from the ocean surface state. |
||
Registers a diagnostic using the information encapsulated in the vardesc type argument and returns an integer handle to this diagnostic. That integer handle is negative if the diagnostic is unused. |
||
Ocean_stock_pe - returns the integrated stocks of heat, water, etc. for conservation checks. Because of the way FMS is coded, only the root PE has the integrated amount, while all other PEs get 0. |
||
This subroutine applies diapycnal diffusion, souces and sinks and any other column tracer physics or chemistry to the OCMIP2 CFC tracers. CFCs are relatively simple, as they are passive tracers with only a surface flux as a source. |
||
Deallocate any memory associated with the OCMIP2 CFC tracer package. |
||
This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. |
||
This subroutine extracts the surface CFC concentrations and other fields that are shared with the atmosphere to calculate CFC fluxes. |
||
Gather observations and call ODA routines. |
||
Finalize DA module. |
||
This subroutine deallocates any memory associated with the oda_incupd module. |
||
add_diurnal_SW adjusts the shortwave fluxes in an forcying_type variable to add a synthetic diurnal cycle. Adapted from SIS2 |
||
3D advection is done by doing flux-limited nonlinear horizontal advection interspersed with an ALE regridding/remapping step. The loop in this routine is exited if remaining residual transports are below a runtime-specified value or a maximum number of iterations is reached. |
||
When in layer mode, 3D horizontal advection using stored mass fluxes must be used. Horizontal advection is done via tracer_advect, whereas the vertical component is actually handled by vertdiff in tracer_column_fns. |
||
The vertical/diabatic driver for offline tracers. First the eatr/ebtr associated with the interpolated vertical diffusivities are calculated and then any tracer column functions are done which can include vertical diffuvities and source/sink terms. |
||
Apply positive freshwater fluxes (into the ocean) and update netMassOut with only the negative (out of the ocean) fluxes. |
||
Apply negative freshwater fluxes (out of the ocean) |
||
In the case where the main advection routine did not converge, something needs to be done with the remaining transport. Two different ways are offered, ‘barotropic’ means that the residual is distributed equally throughout the water column. ‘upwards’ attempts to redistribute the transport in the layers above and will eventually work down the entire water column. |
||
Deallocates (if necessary) arrays within the offline control structure. |
||
Initializes the control structure for offline transport and reads in some of the. |
||
Calculate the mass-weighted integral of the oil tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. |
||
Apply sources, sinks, diapycnal mixing and rising motions to the oil tracers. |
||
Deallocate memory associated with this tracer package. |
||
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler. |
||
Inflate vanished layers to finite (nonzero) width. |
||
Return the value of (1 - exp(-x)) [nondim], using an accurate expression for small values of x. |
||
Return the value of (1 - exp(-x))/x [nondim], using an accurate expression for small values of x. |
||
Try to read a named 2-d field from the restart files. |
||
Try to read a named 3-d field from the restart files. |
||
Try to read a named 4-d field from the restart files. |
||
Try to read a named 3-d field from the restart files. |
||
This sets the “blue” band opacity based on chlorophyll A concentrations The red portion is lumped into the net heating at the surface. |
||
This routine initializes the opacity module, including an |
||
This sets the blue-wavelength opacity according to the scheme proposed by Morel and Antoine (1994). |
||
Applies OBC values stored in segments to 3d u,v fields. |
||
Enables OBC module and reads configuration parameters This routine is called from MOM_initialize_fixed which occurs before the initialization of the vertical coordinate and ALE_init. Therefore segment data are not fully initialized here. The remainder of the segment data are initialized in a later call to update_open_boundary_data. |
||
Deallocate open boundary data. |
||
Close open boundary data. |
||
Do any necessary halo updates on OBC-related fields. |
||
Reconcile masks and open boundaries, deallocate OBC on PEs where it is not needed. Also adjust u- and v-point cell area on specified open boundaries and mask all points outside open boundaries. |
||
Sets the slope of bathymetry normal to an open boundary to zero. |
||
Register OBC segment data for restarts. |
||
Setup vertical remapping for open boundaries. |
||
Set thicknesses outside of open boundaries to silly values (used for checking the interior state is independent of values outside of the domain). |
||
Set tangential velocities outside of open boundaries to silly values (used for checking the interior state is independent of values outside of the domain). |
||
Applies zero values to 3d u,v fields on OBC segments. |
||
This subroutine allocates and populates a structure that controls where the documentation occurs and its formatting, and opens up the files controlled by this structure. |
||
Open a MOM framework file. |
||
Open a MOM netCDF file. |
||
Open a netcdf file for reading, with error handling. |
||
Open a single namelist file that is potentially readable by all PEs. |
||
Make the contents of a parameter input file available in a |
||
Open a profile file. |
||
open_restart_units determines the number of existing restart files and optionally opens them and returns unit ids, paths and whether the files are global or spatially decomposed. |
||
Return True if a /* appears on this line without a closing */. |
||
Tags blockName onto the end of the active parameter block name. |
||
Return the number of bands of penetrating shortwave radiation. |
||
Calculates the one-dimensional index number at (n=0, m=m), given order m and maximum degree Nd. It is sequenced with degree (n) changing first and order (m) changing second. |
||
Output increment if using full fields for the oda_incupd module. |
||
Returns true if an override warning has been issued for the variable varName. |
||
Interpolation by linear polynomials within boundary cells. |
||
Linearly interpolate between edge values. |
||
Calculate the edge values and slopes at boundary cells as part of building a piecewise cubic sub-grid scale profiles. |
||
Set up a piecewise cubic interpolation from cell averages and estimated edge slopes and values. |
||
Adust a piecewise cubic reconstruction with a limiter that adjusts the edge values and slopes. |
||
Parse all the OBC_SEGMENT_%%_DATA strings again to see which need tracer reservoirs (all pes need to know). |
||
Parse an OBC_SEGMENT_%%_DATA string. |
||
Parse an OBC_SEGMENT_%%_DATA string and determine its fields. |
||
Parse an OBC_SEGMENT_%%% string. |
||
Deallocate all memory and disassociated pointer. |
||
Initializes particles container “parts”. |
||
The main driver the steps updates particles. |
||
Save particle locations (and sometimes other vars) to restart file. |
||
Reconstruction by constant polynomials within each cell. There is nothing to do but this routine is provided to ensure a homogeneous interface throughout the regridding toolbox. |
||
This function maps rval into an integer in the range from 1 to num_period. |
||
This function shifts rval by an integer multiple of num_period so that 0 <= val_out < num_period. |
||
Sets up the inverse restoration time (Idamp), and the values towards which the interface heights and an arbitrary number of tracers should be restored within each sponge for the Phillips model test case. |
||
Initialize the thickness field for the Phillips model test case. |
||
Initialize topography. |
||
Initialize the velocity fields for the Phillips model test case. |
||
Reconstruction by linear polynomials within boundary cells. |
||
Returns PLM slopes for a column where the slopes are the difference in value across each cell. The limiting follows equation 1.8 in Colella & Woodward, 1984: JCP 54, 174-201. |
||
Returns a PLM slope using h2 extrapolation from a cell to the left, in the same arbitrary units as the input values [A]. Use the negative to extrapolate from the cell to the right. |
||
Returns a PLM slope using h2 extrapolation from a cell to the left, in the same arbitrary units as the input values [A]. Use the negative to extrapolate from the cell to the right. |
||
Returns a PLM slope using h2 extrapolation from a cell to the left, in the same arbitrary units as the input values [A]. Use the negative to extrapolate from the cell to the right. |
||
Returns a limited PLM slope following Colella and Woodward 1984, in the same arbitrary units as the input values [A]. |
||
Returns a limited PLM slope following Colella and Woodward 1984, in the same arbitrary units as the input values [A]. |
||
Returns a limited PLM slope following Colella and Woodward 1984, in the same arbitrary units as the input values [A]. |
||
Reconstruction by linear polynomials within each cell. |
||
Returns a limited PLM slope following Colella and Woodward 1984, in the same arbitrary units as the input values [A]. |
||
Returns a limited PLM slope following White and Adcroft, 2008, in the same arbitrary units [A] as the input values. Note that this is not the same as the Colella and Woodward method. |
||
Returns a limited PLM slope following White and Adcroft, 2008, in the same arbitrary units [A] as the input values. Note that this is not the same as the Colella and Woodward method. |
||
Returns a limited PLM slope following White and Adcroft, 2008, in the same arbitrary units [A] as the input values. Note that this is not the same as the Colella and Woodward method. |
||
This subroutine initializes the parameters regulating how truncations are logged. |
||
Truncates block name (shallower level of parameter block) |
||
Read the contents of a parameter input file, and store the contents in a |
||
subroutine to assign porous barrier widths at the layer interfaces |
||
subroutine to assign porous barrier widths averaged over a layer |
||
Make a real scalar diagnostic available for averaging or output. |
||
Make a real 1-d array diagnostic available for averaging or output. |
||
Make a real 2-d array diagnostic available for averaging or output. |
||
Make a real 2-d array diagnostic available for averaging or output using a |
||
Make a real 2-d array diagnostic available for averaging or output using a |
||
Make a real 3-d array diagnostic available for averaging or output. |
||
Put data into the buffer for a diagnostic one column at a time. |
||
Put data into the buffer for a diagnostic one point at a time. |
||
Post the final buffer using the standard |
||
Make a real 3-d array diagnostic available for averaging or output using a |
||
post_diabatic_halo_updates does halo updates and calculates derived thermodynamic quantities (e.g. specific volume). This must be done after the diabatic step regardless of is ALE cooridinates are used or not. |
||
Make a real ice shelf scalar diagnostic available for averaging or output. |
||
Make a real 2-d array diagnostic available for averaging or output. |
||
Posts diagnostics related to offline convergence diagnostics. |
||
Calculate and write out diagnostics that are the vertical sum of the product of two 3-d arrays at u-points. |
||
Calculate and write out diagnostics that are the vertical sum of the product of two 3-d arrays at v-points. |
||
Calculate and write out diagnostics that are the product of two 3-d arrays at u-points. |
||
Calculate and write out diagnostics that are the product of two 3-d arrays at v-points. |
||
Write out any diagnostics related to this module. |
||
This routine posts diagnostics of various dynamic ocean surface quantities, including velocities, speed and sea surface height, at the time the ocean state is reported back to the caller. |
||
This routine posts diagnostics of various ocean surface and integrated quantities at the time the ocean state is reported back to the caller. |
||
This subroutine offers up diagnostics of the tidal mixing. |
||
Post tracer diganostics when that should only be posted when MOM’s state is self-consistent (also referred to as ‘synchronized’) |
||
Post the advective and diffusive tendencies. |
||
This routine posts diagnostics of the transports, including the subgridscale contributions. |
||
Post the horizontally area-averaged diagnostic. |
||
Converts an array of potential temperatures to conservative temperatures. The input arguments use the dimensionally rescaling as specified within the EOS type. The output potential temperature uses this same scaling, but this can be replaced by the factor given by scale. |
||
Convert input potential temperature [degC] and absolute salinity [g kg-1] to returned conservative temperature [degC] using the polynomial expressions from TEOS-10. |
||
This subroutine calculates the 1-d flux for advection in angular space using a monotonic piecewise parabolic scheme. This needs to be called from within i and j spatial loops. |
||
Returns the average of a PPM reconstruction between two fractional positions in the same arbitrary concentration units as aMean (e.g. usually [C ~> degC] for temperature) |
||
Reconstruction by parabolas within boundary cells. |
||
Returns the PPM quasi-fourth order edge value at k+1/2 following equation 1.6 in Colella & Woodward, 1984: JCP 54, 174-201. The returned units are the same as those of Ak (e.g. [C ~> degC] for temperature). |
||
Discontinuous PPM reconstructions of the left/right edge values within a cell. |
||
This subroutine limits the left/right edge values of the PPM reconstruction according to the monotonic prescription of Colella and Woodward, 1984. |
||
Limits the left/right edge values of the PPM reconstruction to give a reconstruction that is positive-definite. Here this is reinterpreted as giving a constant value if the mean value is less than h_min, with a minimum of h_min otherwise. |
||
This subroutine limits the left/right edge values of the PPM reconstruction to give a reconstruction that is positive-definite. Here this is reinterpreted as giving a constant thickness if the mean thickness is less than h_min, with a minimum of h_min otherwise. |
||
Adjusts edge values using the standard PPM limiter (Colella & Woodward, JCP 1984) after first checking that the edge values are bounded by neighbors cell averages and that the edge values are monotonic between cell averages. |
||
Adjusts edge values using the original monotonicity constraint (Colella & Woodward, JCP 1984) Based on hybgen_ppm_coefs. |
||
Builds quadratic polynomials coefficients from cell mean and edge values. |
||
Calculates left/right edge values for PPM reconstruction in x-direction. |
||
Calculates left/right edge values for PPM reconstruction. |
||
Calculates left/right edge valus for PPM reconstruction in y-direction. |
||
Calculates left/right edge values for PPM reconstruction. |
||
Reconstruction by parabolas within boundary cells. |
||
Reconstruction by parabolas within boundary cells. |
||
Limit the piecewise quartic method reconstruction. |
||
Reconstruction by quartic polynomials within each cell. |
||
Converts an array of absolute salinity to practical salinity. The input arguments use the dimensionally rescaling as specified within the EOS type. The output potential temperature uses this same scaling, but this can be replaced by the factor given by scale. |
||
Potentially do some preparatory work, such as convective adjustment, to clean up the model state before regridding. |
||
Save any diagnostics of the state before ALE remapping. These diagnostics are mostly used for debugging. |
||
Use the machine learning interface to predict EKE. |
||
A thin layer between the model and the Boussinesq and non-Boussinesq pressure force routines. |
||
Boussinesq analytically-integrated finite volume form of pressure gradient. |
||
Initializes the finite volume pressure gradient control structure. |
||
Non-Boussinesq analytically-integrated finite volume form of pressure gradient. |
||
Initialize the pressure force control structure. |
||
Boussinesq Montgomery-potential form of pressure gradient. |
||
Initialize the Montgomery-potential form of PGF control structure. |
||
Non-Boussinesq Montgomery-potential form of pressure gradient. |
||
This subroutine writes the contents of the MARBL log using MOM_error(NOTE, …). |
||
Post_data calls for ice-sheet scalars. |
||
Propagates internal waves at a single frequency. |
||
Calls subroutines in this file that are needed to refract, propagate, and dissipate energy density of the internal tide. |
||
Propagates the internal wave energy in the logical x-direction. |
||
Propagates the internal wave energy in the logical y-direction. |
||
Calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. |
||
Apply sources, sinks and diapycnal diffusion to the tracers in this package. |
||
Deallocate memory associated with this tracer package. |
||
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler. |
||
Extends block name (deeper level of parameter block) |
||
Store a dataset in the database. |
||
Dummy version of MARBL’s |
||
Put a 64-bit real 1d tensor into the database. |
||
Put a 64-bit real 2d tensor into the database. |
||
Put a 64-bit real 3d tensor into the database. |
||
Put a 64-bit real 4d tensor into the database. |
||
Put a 32-bit real 1d tensor into the database. |
||
Put a 32-bit real 2d tensor into the database. |
||
Put a 32-bit real 3d tensor into the database. |
||
Put a 32-bit real 4d tensor into the database. |
||
Put a 32-bit integer 1d tensor into the database. |
||
Put a 32-bit integer 2d tensor into the database. |
||
Put a 32-bit integer 3d tensor into the database. |
||
Put a 32-bit integer 4d tensor into the database. |
||
Calculate area of quadrilateral. |
||
Call this subroutine to determine whether the averaging is currently enabled. .true. is returned if it is. |
||
Indicate whether averaging diagnostics is currently enabled. |
||
Returns true if the equation of state is compressible (i.e. has pressure dependence) |
||
Returns logicals indicating which debugging checks should be performed. |
||
Returns the status of the module’s error flag. |
||
Indicate whether the field pointed to by f_ptr has been initialized from a restart file. |
||
Indicate whether the field stored in f_ptr or with the specified variable name has been initialized from a restart file. |
||
Indicate whether the field pointed to by f_ptr has been initialized from a restart file. |
||
Indicate whether the field stored in f_ptr or with the specified variable name has been initialized from a restart file. |
||
Indicate whether the field pointed to by f_ptr has been initialized from a restart file. |
||
Indicate whether the field stored in f_ptr or with the specified variable name has been initialized from a restart file. |
||
Indicate whether the field pointed to by f_ptr has been initialized from a restart file. |
||
Indicate whether the field stored in f_ptr or with the specified variable name has been initialized from a restart file. |
||
Indicate whether the field pointed to by f_ptr has been initialized from a restart file. |
||
Indicate whether the field stored in f_ptr or with the specified variable name has been initialized from a restart file. |
||
query_initialized_name determines whether a named field has been successfully read from a restart file or has otherwise been recorded as being initialized. |
||
This routine queries vardesc. |
||
This interface provides the caller with information from the waves control structure. |
||
Apply radiation conditions to 3D u,v at open boundaries. |
||
Returns a random number between 0 and 1. |
||
Returns a random number between 0 and 1 See |
||
Constructor for scalar PRNG. Can be used to reset the sequence. |
||
Generates random numbers between 0 and 1 for each cell of the model grid. |
||
Constructor for gridded PRNG. Can be used to reset the sequence. |
||
Returns an approximately normally distributed random number with mean 0 and variance 1 for each cell of the model grid. |
||
Destructor for PRNG. |
||
Returns an approximately normally distributed random number with mean 0 and variance 1. |
||
Runs some statistical tests on the PRNG. |
||
Fill a layer with random numbers. |
||
This subroutine checks whether the 4 values of range are in ascending order. |
||
Return the maximum ratio of a/b or maxrat. |
||
Coordinates the allocation and reading in all time levels of uh, vh, hend, temp, and salt from files. Used when read_all_ts_uvh. |
||
Read a 32-bit integer global or variable attribute. |
||
Read a 64-bit integer global or variable attribute. |
||
Read a real global or variable attribute. |
||
Read a character-string global or variable attribute. |
||
This subroutine reads in the depth list from the specified file and allocates the memory within and sets up DL. |
||
This subroutine reads and counts the non-blank lines in the face length list file, after removing comments. |
||
Interface to read_field_chksum. |
||
Interface to read_field_chksum. |
||
Read a 2d array (which might have halos) from a file using native netCDF I/O. |
||
Read the values of a field from a netCDF file. |
||
Read OBC values on the segments from files. |
||
This subroutine reads the value of a character string model parameter from a parameter file. |
||
This subroutine reads the values of an array of character string model parameters from a parameter file. |
||
This subroutine reads the value of an integer model parameter from a parameter file. |
||
This subroutine reads the values of an array of integer model parameters from a parameter file. |
||
This subroutine reads the value of a logical model parameter from a parameter file. |
||
This subroutine reads the value of a real model parameter from a parameter file. |
||
This subroutine reads the values of an array of real model parameters from a parameter file. |
||
This subroutine reads the value of a time_type model parameter from a parameter file. |
||
This subroutine reads tidal input energy from a file by constituent. |
||
This subroutine read tidal energy inputs from a file. |
||
read_var_sizes returns the number and size of dimensions associated with a variable in a file. If the variable is not in the file the returned sizes are all 0 and ndims is -1. Every processor for which this is called does the reading. |
||
Read a real scalar variable from a netCDF file with the root PE, and broadcast the results to all the other PEs. |
||
Read a integer scalar variable from a netCDF file with the root PE, and broadcast the results to all the other PEs. |
||
Read a 1-d real variable from a netCDF file with the root PE, and broadcast the results to all the other PEs. |
||
Read a 1-d integer variable from a netCDF file with the root PE, and broadcast the results to all the other PEs. |
||
Read a 2d array from a netCDF input file and save to a variable. |
||
This subroutine reads the vertical coordinate data for a field from a NetCDF file. It also might read the missing value attribute for that same field. |
||
Compare u_test to u_true, report, and return true if a difference larger than tol is measured. |
||
Returns a character string of a comma-separated, compact formatted, reals e.g. “1., 2., 5*3., 5.E2”, that give the list of values. |
||
Compare u_test to u_true, report, and return true if a difference larger than tol is measured. |
||
This function returns a string with a real formatted like ‘(G)’. |
||
Return the extended-fixed-point number that a real number corresponds with. |
||
Convert a real number into the array of integers constitute its extended-fixed-point representation. |
||
Calculate a 1D EPPM_CWK reconstructions based on h(:) and u(:) |
||
Calculate a 1D PPM_CWK reconstructions based on h(:) and u(:) |
||
Calculate a 1D PLM reconstructions based on h(:) and u(:) |
||
Calculate a 1D PCM reconstructions based on h(:) and u(:) |
||
Calculate a 1D PLM reconstructions based on h(:) and u(:) |
||
Calculate a 1D PPM_hybgen reconstructions based on h(:) and u(:) |
||
Calculate a 1D PLM reconstructions based on h(:) and u(:) |
||
Calculate a 1D PLM reconstruction based on h(:) and u(:) |
||
Calculate a 1D PPM_H4_2019 reconstructions based on h(:) and u(:) |
||
Calculate a 1D PLM reconstruction based on h(:) and u(:) |
||
Calculate a 1D PPM_H4_2018 reconstructions based on h(:) and u(:) |
||
Calculate a 1D PLM reconstructions based on h(:) and u(:) |
||
Calculate a 1D PLM_WLS reconstruction based on h(:) and u(:) |
||
Calculate a 1D PLM reconstructions based on h(:) and u(:) |
||
Calculate a 1D PPM_CW reconstructions based on h(:) and u(:) |
||
Calculate a 1D MPLM_WA_poly reconstructions based on h(:) and u(:) |
||
Calculate a 1D PLM reconstructions based on h(:) and u(:) |
||
Reflection of the internal waves at a single frequency. |
||
Implements refraction on the internal waves at a single frequency. |
||
Clean up any allocated memory after the run. |
||
Register tracer fields and subroutines to be used with MOM. |
||
Register an axis to the MOM framework file. |
||
Register an axis to the MOM netcdf file. |
||
This subroutine is used to register any fields from |
||
Read in runtime options and add boundary impulse tracer to tracer registry. |
||
Sets a handle inside diagnostics mediator to associate 3d cell measures. |
||
Register the CFCs to be used with MOM and read the parameters that are used with this tracer package. |
||
This subroutine is used to allocate and register any fields in this module that should be written to or read from the restart file. |
||
Routine to register restarts, pass-through to children modules. |
||
Returns the “diag_mediator” handle for a group (native, CMOR, z-coord, …) of diagnostics derived from one field. |
||
Returns an FMS id from register_diag_field_fms (the diag_manager routine) after expanding axes (axes-group) into handles and conditionally adding an FMS area_id for cell_measures. |
||
Returns an FMS id from register_diag_field_fms (the diag_manager routine) after expanding axes (axes-group) into handles and conditionally adding an FMS area_id for cell_measures. |
||
Returns True if either the native or CMOR version of the diagnostic were registered. Updates ‘dm_id’ after calling |
||
Returns True if either the native or CMOR version of the diagnostic were registered. Updates ‘dm_id’ after calling |
||
Register certain diagnostics. |
||
Initialize additional diagnostics required for offline tracer transport. |
||
Add DOME to the OBC registry and set up some variables that will be used to guide code setting up the restart fields related to the OBCs. |
||
Register tracer fields and subroutines to be used with MOM. |
||
This subroutine is used to register tracer fields and subroutines to be used with MOM. |
||
Add dyed channel to OBC registry. |
||
Register tracer fields and subroutines to be used with MOM. |
||
Register a field to the MOM framework file. |
||
Register a field to the MOM netcdf file. |
||
Add file to OBC registry. |
||
Register members of the forcing type for diagnostics. |
||
This subroutine is used to register any fields related to the ice shelf dynamics that should be written to or read from the restart file. |
||
Register the ideal age tracer fields to be used with MOM. |
||
This subroutine is used to register tracer fields. |
||
Add Kelvin wave to OBC registry. |
||
Routine to register restarts, pass-through to children modules. |
||
This subroutine is used to register tracer fields and subroutines to be used with MOM. |
||
This subroutine is used to register tracer fields and subroutines to be used with MOM. |
||
Pointer to the first element of the linked list of generic tracers. |
||
Register OBC segments for generic tracers. |
||
Returns the “diag_mediator” handle for a group (native, CMOR, …) of diagnostics derived from one field. |
||
Registers a static diagnostic, returning an integer handle. |
||
Create an axis and associated dimension in a netCDF file. |
||
Register a netCDF variable. |
||
Register the NW2 tracer fields to be used with MOM. |
||
register open boundary objects for boundary updates. |
||
Registers a named tracer in the segment tracer registries for the OBC segments on which it is active. |
||
Scan through the diag_table searching for obsolete parameters and issue informational messages and optionallly a FATAL error. |
||
Register the OCMIP2 CFC tracers to be used with MOM and read the parameters that are used with this tracer package. |
||
Register oil tracer fields and subroutines to be used with MOM. |
||
Register the pseudo-salt tracer with MOM6, and return .true. if the tracer is to be used. |
||
Register a 0-d field for restarts, providing the metadata as individual arguments. |
||
Register a 1-d field for restarts, providing the metadata as individual arguments. |
||
Register a 2-d field for restarts, providing the metadata as individual arguments. |
||
Register a 3-d field for restarts, providing the metadata as individual arguments. |
||
Register a 4-d field for restarts, providing the metadata as individual arguments. |
||
Register a restart field as obsolete. |
||
Register a 0-d field for restarts, providing the metadata in a structure. |
||
Register a 1-d field for restarts, providing the metadata in a structure. |
||
Register a 2-d field for restarts, providing the metadata in a structure. |
||
Register a 3-d field for restarts, providing the metadata in a structure. |
||
Register a 4-d field for restarts, providing the metadata in a structure. |
||
Register a pair of rotationally equivalent 2d restart fields. |
||
Register a pair of rotationally equivalent 3d restart fields. |
||
Register a pair of rotationally equivalent 2d restart fields. |
||
This subroutine sets up any auxiliary restart variables that are specific to the split-explicit time stepping scheme. All variables registered here should have the ability to be recreated if they are not present in a restart file. |
||
This subroutine sets up any auxiliary restart variables that are specific to the split-explicit time stepping scheme. All variables registered here should have the ability to be recreated if they are not present in a restart file. |
||
Allocate the control structure for this module, allocates memory in it, and registers any auxiliary restart variables that are specific to the unsplit time stepping scheme. |
||
Allocate the control structure for this module, allocates memory in it, and registers any auxiliary restart variables that are specific to the unsplit RK2 time stepping scheme. |
||
This subroutine is used to register tracer fields. |
||
Registers a scalar diagnostic, returning an integer handle. |
||
Registers a non-array scalar diagnostic, returning an integer handle. |
||
Registers a non-array scalar diagnostic, returning an integer handle. |
||
Register a tracer array that is active on an OBC segment, potentially also specifying how the tracer inflow values are specified. |
||
Add shelfwave to OBC registry. |
||
Registers a static diagnostic, returning an integer handle. |
||
Register diagnostics of the surface state and integrated quantities. |
||
Registers the temperature and salinity in the segment tracer registry. |
||
Add tidal bay to OBC registry. |
||
This subroutine registers fields to calculate a diagnostic time derivative. |
||
This subroutine registers a tracer to be advected and laterally diffused. |
||
register_tracer_diagnostics does a set of register_diag_field calls for any previously registered in a tracer registry with a value of registry_diags set to .true. |
||
Register certain diagnostics related to transports. |
||
Dispatching regridding routine for orchestrating regridding & remapping. |
||
This routine returns flags indicating which pre-remapping state adjustments are needed depending on the coordinate mode in use. |
||
Builds an interpolated profile for the densities within each grid cell. |
||
This subroutine carries the overflow, and then makes sure that all integers are of the same sign as the overall value. |
||
This subroutine partially steps the bulk mixed layer model. The following processes are executed, in the order listed. |
||
Initializes the regularize_layers control structure. |
||
This subroutine ensures that there is a degree of horizontal smoothness in the depths of the near-surface interfaces. |
||
Conservatively calculate integrated data, uh_dest, on grid h_dest, from layer-integrated data, uh_src, on grid h_src. |
||
Returns the sums of any non-negligible remaining transport [H L2 ~> m3 or kg] to check for advection convergence. |
||
This subroutine does remapping for the auxiliary restart variables that are used with the split RK2 time stepping scheme. |
||
This subroutine does remapping for the auxiliary restart variables that are used with the split RK2 time stepping scheme. |
||
Vertically remap the OBC tracer reservoirs and radiation rates that are filtered in time. |
||
Remaps column of n0 values u0 on grid h0 to subgrid h_sub. |
||
Adjust h_sub to ensure accurate conservation. |
||
Remaps column of n0+n1+1 values usub on sub-grid h_sub to targets on grid h1. |
||
Remaps column of n0+n1+1 values usub on sub-grid h_sub to targets on grid h1 using the OM4-era algorithm. |
||
Remaps the column to subgrid h_sub. |
||
Remaps the column to subgrid h_sub. |
||
This subroutine does remapping for the auxiliary restart variables in a vertvisc_type that are used across timesteps. |
||
Remaps column of values u0 on grid h0 to grid h1 assuming the top edge is aligned and using the OM4 reconstruction methods. |
||
Remaps column of values u0 on grid h0 to implied grid h1 where the interfaces of h1 differ from those of h0 by dx. |
||
Set parameters within remapping object. |
||
Runs unit tests on remapping functions. Should only be called from a single/root thread Returns True if a test fails, otherwise False. |
||
Returns string with all spaces removed. |
||
Trims comments and leading blanks from string. |
||
Rename a dataset stored in the database. |
||
Rename an aggregation list. |
||
Move a tensor to a new name. |
||
This routine opens an existing NetCDF file for output. If it does not find the file, a new file is created. It also sets up structures that describe this file and the variables that will later be written to this file. |
||
Returns a string with tabs replaced by a blank. |
||
This subroutine uses a conversion to an integer representation of real numbers to give an order-invariant sum of distributed 2-D arrays that reproduces across domain decomposition, with the result returned as an extended fixed point type that can be converted back to a real number using EFP_to_real. This technique is described in Hallberg & Adcroft, 2014, Parallel Computing, doi:10.1016/j.parco.2014.04.007. |
||
This subroutine uses a conversion to an integer representation of real numbers to give an order-invariant sum of distributed 2-D arrays that reproduces across domain decomposition. This technique is described in Hallberg & Adcroft, 2014, Parallel Computing, doi:10.1016/j.parco.2014.04.007. |
||
This subroutine uses a conversion to an integer representation of real numbers to give an order-invariant sum of distributed 3-D arrays that reproduces across domain decomposition. This technique is described in Hallberg & Adcroft, 2014, Parallel Computing, doi:10.1016/j.parco.2014.04.007. |
||
Rescale |
||
rescale_dyn_horgrid_bathymetry permits a change in the internal units for the bathymetry on the grid, both rescaling the depths and recording the new internal depth units. |
||
Reset the module’s error flag to false. |
||
This subroutine sets the open face lengths at selected points to restrict passages to their observed widths from a arrays read from a file. |
||
This subroutine sets the open face lengths at selected points to restrict passages to their observed widths from a list read from a file. |
||
This subroutine sets the open face lengths at selected points to restrict passages to their observed widths based on a named set of sizes. |
||
This subroutine actually moves properties between layers to achieve a resorted state, with all of the resorted water either moved into the correct interior layers or in the top nkmb layers. |
||
Deallocate memory associated with a MOM_restart_CS variable. |
||
restart_files_exist determines whether any restart files exist. |
||
Initialize this module and set up a restart control structure. |
||
Indicate that all variables have now been registered and lock the registry. |
||
Lock the restart registry so that an error is issued if any further restart variables are registered. |
||
restore_state reads the model state from previously generated files. All restart variables are read from the first file in the input filename list in which they are found. |
||
Sets up the inverse restoration time, and the values towards which the interface heights, velocities and tracers should be restored within the sponges for the RGC test case. |
||
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers. |
||
Parses a string and generates a rho_target(:) profile with refined resolution downward and returns the number of levels. |
||
Two time-scale running mean in the same arbitrary units as “signal” and “filtered”. |
||
Initialization of temperature and salinity in the Rossby front test. |
||
Initialization of thicknesses in 2D Rossby front test. |
||
Initialization of u and v in the Rossby front test. |
||
Rotate the elements of a 2d integer array along first and second axes. |
||
Rotate the elements of a 2d logical array along first and second axes. |
||
Rotate the elements of a 4d real array pair along first and second axes. |
||
Rotate the elements of a 2d real array pair along first and second axes. |
||
Rotate the elements of a 3d real array pair along first and second axes. |
||
Rotate the elements of a 2d real array along first and second axes. |
||
Rotate the elements of a 3d real array along first and second axes. |
||
Rotate the elements of a 4d real array along first and second axes. |
||
Copy the rotated contents of one horizontal grid type into another. The input and output grid type arguments can not use the same object. |
||
Rotate the horizontal index ranges from the input to the output map. |
||
Rotate initialization fields from input to rotated arrays. |
||
This is more of a rotate initialization than an actual rotate. |
||
Rotate the OBC segment configuration data from the input to model index map. |
||
Return the direction of an OBC segment on after rotation to the new grid. Note that rotate_OBC_seg_direction(rotate_OBC_seg_direction(direction, turns), -turns) = direction. |
||
Rotate the surface state fields from the input to the model indices. |
||
Rotate the elements of a 2d real vector along first and second axes. |
||
Rotate the elements of a 3d real vector along first and second axes. |
||
Rotate the elements of a 4d real vector along first and second axes. |
||
Return the that the field would have after being rotated by the given number of quarter turns. |
||
|
||
Run a model in the database using the specified input and output tensors. |
||
Run a model in the database using the specified input and output tensors in a multi-GPU system. |
||
Determines the stochastic physics perturbations. |
||
Launch a unit test with a custom cleanup procedure. |
||
Allocate a 2-d allocatable array based on its index starting and ending values. |
||
Allocate a 3-d allocatable array based on its index starting and ending values and k-index size. |
||
Allocate a 3-d allocatable array based on its 6 index starting and ending values. |
||
Allocate a pointer to a 1-d array. |
||
Allocate a pointer to a 2-d array based on its index starting and ending values. |
||
Allocate a pointer to a 2-d array based on its dimension sizes. |
||
Allocate a pointer to a 3-d array based on its index starting and ending values. |
||
Allocate a pointer to a 3-d array based on its dimension sizes. |
||
Allocate a pointer to a 3-d array based on its index starting and ending values. |
||
Copies a string. |
||
This subroutine deallocates memory associated with the SAL module. |
||
This subroutine initializes the self-attraction and loading control structure. |
||
Save restart/pickup files required to initialize the MOM6 internal state. |
||
save_restart saves all registered variables to restart files. |
||
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. |
||
Return an appropriate dimensional scaling factor for input data based on an OBC segment data name [various ~> 1], or 1 for tracers or other fields that do not match one of the specified names. Note that calls to register_segment_tracer can come before or after calls to scale_factor_from_name. |
||
Find the integer power of two that describe each of the scaling factors, or return 0 for scaling factors that are not exceptionally close to an integer power of 2. |
||
Initializes surface forcing for the CVMix test case suite. |
||
Initializes temperature and salinity for the SCM CVMix test example. |
||
Returns the value of a cosine-bell function evaluated at x/L. |
||
Returns an s-curve s(x) s.t. s(x0)<=0, s(x0+L)>=1 and cubic in between [nondim]. |
||
Returns an s-curve s(x) s.t. s(x0)<=0, s(x0+L)>=1 and cubic in between [nondim]. |
||
Sets the zonal wind stresses to a piecewise series of s-curves. |
||
Initial values for temperature and salinity. |
||
Initialization of thicknesses. This subroutine initializes the layer thicknesses to be uniform. |
||
Initialization of topography. |
||
Searches the “other” (searched) column for the position of the neutral surface, returning the fractional postion within the layer [nondim]. |
||
sech calculates the hyperbolic secant. |
||
Create seed from position index. |
||
Return a seed derived as hash of values in Time. |
||
Determine which physical fields are required for this segment based on boundary-condition type and segment orientation. Also enable groups of physical fields required by tides or thermodynamics. Note the tidal group could be further narrowed based on modes. This subroutine could turn into a TBP for OBC_segment_type. |
||
Clean up the segment thickness object. |
||
Initialize all the segment thickness reservoirs. |
||
Clean up the segment tracer registry. |
||
Initialize the segment tracer registry. |
||
Set attributes. |
||
This subtroutine can be used to set the parameters for |
||
Set the next analysis time. |
||
Store information that can be used to create an attribute in a subsequent call to create_file. |
||
Sets up diagnostics axes. |
||
Store information that can be used to create an axis in a subsequent call to create_file. |
||
This subroutine calculates several properties related to bottom boundary layer turbulence. |
||
Set up a structure that stores the sizes of the i- and j-loops to to work on in the continuity solver. |
||
Set a pair of factors to multiply by the components of a vector when writing that include any sign changes needed to account for grid rotation. |
||
Sets the layer densities (Rlay) and the interface reduced gravities (g). |
||
Sets the layer densities (Rlay) and the interface reduced gravities (g). |
||
Sets the layer densities (Rlay) and the interface reduced gravities (g) from a T-S profile. |
||
Sets the layer densities (Rlay) and the interface reduced gravities (g) from a linear T-S profile. |
||
Sets the layer densities (Rlay) and the interface reduced gravities (g) from a profile of g’. |
||
Sets the layer densities (Rlay) and the interface reduced gravities (g) according to a linear profile starting at a reference surface layer density and spanning a range of densities to the bottom defined by the parameter RLAY_RANGE (defaulting to 2.0 if not defined) |
||
Sets Rlay to Rho0 and g_prime to zero except for the free surface. This is for use only in ALE mode where Rlay should not be used and g_prime(1) alone might be used. |
||
Set single 2d field in coupler_2d_bc_type from a two-dimensional array, using a MOM-specific interface. |
||
This subroutine sets up diagnostics upon which other diagnostics depend. |
||
set_derived_dyn_horgrid calculates metric terms that are derived from other metrics. |
||
This subroutine calculates certain derived forcing fields based on information from a |
||
set_derived_metrics calculates metric terms that are derived from other metrics. |
||
Set up the array extents for doing diagnostics. |
||
Clear pointers and deallocate memory. |
||
This subroutine automatically determines an optimal value for dtbt based on some state of the ocean. Either pbce or gtot_est is required to calculate gravitational acceleration. Column thickness can be estimated using BT_cont, eta, and SSH_add (default=0), with priority given in that order. The subroutine sets CSdtbt_max and CSdtbt. |
||
Set appropriate values for the negligible vertical layer extents used for remapping based on an answer date. |
||
This subroutine sets the average entrainment across each of the interfaces between buffer layers within a timestep. It also causes thin and relatively light interior layers to be entrained by the deepest buffer layer. Also find the initial coordinate potential densities (Sref) of each layer. |
||
Set the extents of a 2D buffer from the bounds of a 2D array. |
||
Set the extents of a 3D buffer from the bounds of a 3D array. |
||
Set the fill value to use when growing the buffer. |
||
Store an integer indicating which direction to work on first. |
||
Calls subroutines in this file to get surface forcing fields. |
||
set_grid_metrics is used to set the primary values in the model’s horizontal grid. The bathymetry, land-sea mask and any restricted channel widths are not known yet, so these are set later. |
||
Calculate the values of the metric terms for a Cartesian grid that might be used and save them in arrays. |
||
Sets the grid metrics from a mosaic file. |
||
Calculate the values of the metric terms that might be used and save them in arrays. |
||
Calculate the values of the metric terms that might be used and save them in arrays. |
||
Set appropriate values for the negligible thicknesses used for remapping based on an answer date. |
||
Set the horizontal extents of the buffer. |
||
This subroutine can be used to set the parameters for the hybgen module. |
||
This subroutine can be used to set the parameters for the |
||
Record that the array in f_ptr with the given name has been initialized. |
||
Record that the array in f_ptr with the given name has been initialized. |
||
Record that the array in f_ptr with the given name has been initialized. |
||
Record that the array in f_ptr with the given name has been initialized. |
||
Record that the array in f_ptr with the given name has been initialized. |
||
set_initialized_name records that a named field has been initialized. |
||
Record that the tracer reservoirs have been initialized so that their values are not reset later. |
||
Sets input normalization. |
||
Sets the model-state dependent internal tide energy sources. |
||
Store the value of the answer_date in the interp_CS. |
||
Store the boundary_extrapolation value in the interp_CS. |
||
Store the interpolation_scheme value in the interp_CS based on the input string. |
||
Set up the grid and axis information for use by the ice shelf model. |
||
Set up the array extents for doing diagnostics. |
||
Sets weights and bias for a single layer. |
||
Set the parameters that are used to determine the averaged Stokes drift and Langmuir numbers. |
||
This subroutine sets up reordered versions of the BT_cont type in the local_BT_cont types, which have wide halos properly filled in. |
||
set_masks_for_axes sets up the 2d and 3d masks for diagnostics using the current grid recorded after calling |
||
Read time mean ocean sea level from a file. |
||
Sets of a structure that describes the meridional barotropic volume or mass fluxes as a function of barotropic flow to agree closely with the sum of the layer’s transports. |
||
Establish a model to run. |
||
Load the machine learning model from a file and set the configuration. |
||
Load the machine learning model from a file and set the configuration for use in multi-GPU systems. |
||
Set a model from a byte string to run on a system with multiple GPUs. |
||
This subroutine determines the net mass source to the ocean from a (thermodynamic) forcing type and stores it in a |
||
Sets the OBC properties of external obgc tracers, such as their source file and field name. |
||
This sets the opacity of sea water based based on one of several different schemes. |
||
Sets output normalization. |
||
Set coefficients that can correct bugs un the buggy Wright equation of state. |
||
Set coefficients for the linear equation of state. |
||
Determines the partial derivative of the acceleration due to pressure forces with the free surface height. |
||
Determines the partial derivative of the acceleration due to pressure forces with the column mass. |
||
Estimate the optical properties of the water column and determine the penetrating shortwave radiation by band, extracting the relevant information from the fluxes type and storing it in the optics type for later application. This routine is effectively a wrapper for set_opacity with added error handling and diagnostics. |
||
Set the extents and fill values for the piecemeal buffers for all axes. |
||
Copy ensemble member tracers to ensemble vector. |
||
Set maximum interface depths based on a vector of input values. |
||
Set maximum layer thicknesses based on a vector of input values. |
||
Can be used to set any of the parameters for MOM_regridding. |
||
Set the fields that are needed for bitwise identical restarting the time stepping scheme. In addition to those specified here directly, there may be fields related to the forcing or to the barotropic solver that are needed; these are specified in sub- routines that are called from this one. |
||
This subroutine can be used to set the parameters for the |
||
This subroutine sets up the Coriolis parameter for a beta-plane or f-plane. |
||
This subroutine sets up the Coriolis parameter for a sphere. |
||
Set a script (from buffer) in the database for future execution. |
||
Set a script (from file) in the database for future execution. |
||
Set a script (from file) in the database for future execution in a multi-GPU system. |
||
Set a script (from buffer) in the database for future execution in a multi-GPU system. |
||
This subroutine sets the sign of the OBCsegnum_u and OBCsegnum_v arrays to indicate the direction of the faces - positive for logically eastern or northern OBCs and neagative for logically western or southern OBCs, or zero on non-OBC points. Also store information about which orientations of OBCs ar on this PE and the range of indices within which the various orientations of OBCs can be found on this PE. |
||
This subroutine can be used to set the parameters for the |
||
Enable/disable skipping MPI dependent behaviors. |
||
Read from a file the maximum, minimum and average bathymetry at velocity points, for the use of porous barrier. Note that we assume the depth values in the sub-grid bathymetry file of the same convention as in-cell bathymetry file, i.e. positive below the sea surface and increasing downward; while in subroutine reset_face_lengths_list, it is implied that read-in fields min_bathy, max_bathy and avg_bathy from the input file CHANNEL_LIST_FILE all have negative values below the surface. Therefore, to ensure backward compatibility, all signs of the variable are inverted here. And porous_Dmax[UV] = shallowest point, porous_Dmin[UV] = deepest point. |
||
Set target densities based on vector of interface values. |
||
Set target densities based on vector of interface values. |
||
Set target densities based on the old Rlay variable. |
||
Numeric value of tracer_advect_scheme corresponding to scheme name. |
||
This subroutine finds a thickness-weighted value of u at the v-points. |
||
This subroutine sets useful combinations of the fundamental scale conversion factors in the unit scaling type. |
||
This subroutine sets up the time-varying fields in the private structure used to apply the open boundary conditions, as developed by Mehmet Ilicak. |
||
Set up the grid of thicknesses at tracer points throughout the global domain. |
||
This subroutine stores the increments at h points for the variable whose address is given by f_ptr. |
||
This subroutine stores the increments at u and v points for the variable whose address is given by u_ptr and v_ptr. |
||
This subroutine stores the reference profile for the variable whose address is given by f_ptr. nlay is the number of layers in this variable. |
||
This subroutine stores the reference value for mixed layer density. It is handled differently from other values because it is only used in determining which layers can be inflated. |
||
This subroutine finds a thickness-weighted value of v at the u-points. |
||
Set the bathymetry at velocity points to be the maximum of the depths at the neighoring tracer points. |
||
This subroutine sets the 4 bottom depths at velocity points to be the maximum of the adjacent depths. |
||
Set the bathymetry at velocity points to be the minimum of the depths at the neighoring tracer points. |
||
This subroutine sets the 4 bottom depths at velocity points to be the minimum of the adjacent depths. |
||
Set the vertical extent of the buffer. |
||
This subroutine dellocates any memory in the set_visc control structure. |
||
Initializes the MOM_set_visc control structure. |
||
Register any fields associated with the vertvisc_type. |
||
Calculates the thickness of the bottom boundary layer and the viscosity within that layer. |
||
Calculates the thickness of the surface boundary layer for applying an elevated viscosity. |
||
Set parameters in the zlike structure. |
||
Sets a structure that describes the zonal barotropic volume or mass fluxes as a function of barotropic flow to agree closely with the sum of the layer’s transports. |
||
Set the fixed resolution data. |
||
Set the 3d fixed resolution data. |
||
Placeholder function for a missing or unconfigured setjmp. |
||
Changes the method of reconstruction Use this routine to parse a string parameter specifying the reconstruction and re-allocates work arrays appropriately. It is called from initialize_remapping but can be called from an external module too. |
||
Initialize the thickness reservoirs values, perhaps only if they have not been set via a restart file. |
||
Initialize the tracer reservoirs values, perhaps only if they have not been set via a restart file. |
||
This subroutine allocates memory for saved state fields and registers them in the restart files. |
||
Define indices for segment and store in hor_index_type using global segment bounds corresponding to q-points. |
||
Sets up diagnostics arrays for tidal mixing. |
||
Parse an OBC_SEGMENT_%%% string starting with “I=” and configure placement and type of OBC accordingly. |
||
Parse an OBC_SEGMENT_%%% string starting with “J=” and configure placement and type of OBC accordingly. |
||
This sets the coordinate data for the “layer mode” of the isopycnal model. |
||
Calculates fluxes between the ocean and ice-shelf using the three-equations formulation (optional to use just two equations). See |
||
Initialization of topography. |
||
Clean up the shelfwave OBC from registry. |
||
This subroutine sets the properties of flow at open boundary conditions. |
||
Dummy version of MARBL’s |
||
Restore program to state saved by |
||
Placeholder function for a missing or unconfigured siglongjmp. |
||
Create a signal handler |
||
A true signum function that returns either -abs(a), when x<0; or abs(a) when x>0; or 0 when x=0. The returned units are the same as those of a [arbitrary]. |
||
Placeholder function for a missing or unconfigured sigsetjmp. |
||
This function returns the air-sea drag coefficient using a simple function of the air-sea velocity difference. |
||
Constructs a string with all repeated white space replaced with single blanks and insert white space where it helps delineate tokens (e.g. around =) |
||
Indicate if two 3-d arrays are not of the same size after rotation is considered. |
||
Returns a directory name that is terminated with a “/” or “./” if the argument is an empty string. |
||
Force the process to a sleep state for |
||
used for flux limiting in advective subroutines Van Leer limiter (source: Wikipedia) The return value is between 0 and 2 [nondim]. |
||
Initialization of temperature and salinity. |
||
Initialization of thicknesses This routine is called when THICKNESS_CONFIG is set to ‘sloshing’. |
||
Initialization of topography. |
||
Apply a 1-1-4-1-1 Laplacian filter one time on GME diffusive flux to reduce any horizontal two-grid-point noise. |
||
Apply a 9-point smoothing filter twice to a field staggered at a thickness point to reduce horizontal two-grid-point noise. Note that this subroutine does not conserve mass, so don’t use it in situations where you need conservation. Also note that it assumes that the input field has valid values in the first two halo points upon entry. |
||
Apply a 9-point smoothing filter twice to a pair of velocity components to reduce horizontal two-grid-point noise. Note that this subroutine does not conserve angular momentum, so don’t use it in situations where you need conservation. Also note that it assumes that the input fields have valid values in the first two halo points upon entry. |
||
Apply a 9-point smoothing filter twice to a pair of velocity components to reduce horizontal two-grid-point noise. Note that this subroutine does not conserve angular momentum, so don’t use it in situations where you need conservation. Also note that it assumes that the input fields have valid values in the first two halo points upon entry. |
||
Returns the partial derivatives of locally referenced potential density with temperature and salinity after the properties have been smoothed with a small constant diffusivity. |
||
Initialization of thicknesses in equatorial Rossby soliton test, as described in section 6.1 of Haidvogel and Beckman (1990) and in Boyd (1980, JPO) and Boyd (1985, JPO). |
||
Initialization of u and v in the equatorial Rossby soliton test, as described in section 6.1 of Haidvogel and Beckman (1990) and in Boyd (1980, JPO) and Boyd (1985, JPO). |
||
This routine is for stepping a stand-alone ice shelf model without an ocean. |
||
Solve the tridiagonal system AX = R. |
||
Solve the linear system AX = R by Gaussian elimination. |
||
Solve the tridiagonal system AX = R. |
||
Receives a 1D array x and sorts it into ascending order. |
||
This subroutine generates an array of indices that are sorted by layer density. |
||
In situ specific volume anomaly of sea water using a buggy implementation of Wright, 1997 [kg m-3]. |
||
In situ specific volume anomaly of sea water using Jackett et al., 2006 [m3 kg-1]. |
||
Specific volume anomaly using a linear equation of state for density [m3 kg-1]. |
||
In situ specific volume anomaly of sea water from Roquet et al., 2015 [kg m-3]. |
||
Roquet et al. in situ specific volume anomaly of sea water [m3 kg-1]. |
||
GSW in situ specific volume anomaly [m3 kg-1]. |
||
In situ specific volume anomaly as fit by Jackett and McDougall, 1995 [m3 kg-1]. |
||
In situ specific volume anomaly of sea water using a full range fit by Wright, 1997 [kg m-3]. |
||
In situ specific volume anomaly of sea water using a reduced range fit by Wright, 1997 [m3 kg-1]. |
||
In situ specific volume of sea water using a buggy implementation of Wright, 1997 [kg m-3]. |
||
In situ specific volume of sea water using Jackett et al., 2006 [m3 kg-1]. |
||
Specific volume using a linear equation of state for density [m3 kg-1]. |
||
In situ specific volume of sea water from Roquet et al., 2015 [kg m-3]. |
||
Roquet et al. in situ specific volume of sea water [m3 kg-1]. |
||
GSW in situ specific volume [m3 kg-1]. |
||
In situ specific volume as fit by Jackett and McDougall, 1995 [m3 kg-1]. |
||
In situ specific volume of sea water using a full range fit by Wright, 1997 [kg m-3]. |
||
In situ specific volume of sea water using a reduced range fit by Wright, 1997 [m3 kg-1]. |
||
Deallocate any variables allocated in spherical_harmonics_init. |
||
Calculates forward spherical harmonics transforms. |
||
Calculate precomputed coefficients. |
||
Calculates inverse spherical harmonics transforms. |
||
Returns the value of a sin-spike function evaluated at x/L [nondim]. |
||
This call deallocates any memory in the sponge control structure. |
||
Decode a response code from an API function. |
||
Get file status. |
||
Returns true if the coordinate is dependent on the state density, returns false otherwise. |
||
Returns true if the coordinate is dependent on the state density, returns false otherwise. |
||
Return the index of sdtout if called from the root PE, or 0 for other PEs. |
||
Integrates forward-in-time the MEKE eddy energy equation. See |
||
This subroutine orchestrates the time stepping of MOM. The adiabatic dynamics are stepped by calls to one of the step_MOM_dyn_…routines. The action of lateral processes on tracers occur in calls to advect_tracer and tracer_hordiff. Vertical mixing and possibly remapping occur inside of diabatic. |
||
RK2 splitting for time stepping MOM adiabatic dynamics. |
||
RK2 splitting for time stepping MOM adiabatic dynamics. |
||
Step the MOM6 dynamics using an unsplit mixed 2nd order (for continuity) and 3rd order (for the inviscid momentum equations) order scheme. |
||
Step the MOM6 dynamics using an unsplit quasi-2nd order Runge-Kutta scheme. |
||
Time step the ocean dynamics, including the momentum and continuity equations. |
||
MOM_step_thermo orchestrates the thermodynamic time stepping and vertical remapping, via calls to diabatic (or adiabatic). |
||
step_MOM_tracer_dyn does tracer advection and lateral diffusion, bringing the tracers up to date with the changes in state due to the dynamics. Surface sources and sinks and remapping are handled via step_MOM_thermo. |
||
step_offline is the main driver for running tracers offline in MOM6. This has been primarily developed with ALE configurations in mind. Some work has been done in isopycnal configuration, but the work is very preliminary. Some more detail about this capability along with some of the subroutines called here can be found in tracers/MOM_offline_control.F90 |
||
Register fields related to the stoch_EOS module for resarts. |
||
Computes tendency due to Stokes pressure gradient force anomaly including analytical integration of Stokes shear using multiple-exponential decay Stokes drift profile and vertical integration of the resulting pressure anomaly to the total pressure gradient force. |
||
Explicit solver for Stokes mixing. Still in development do not use. |
||
Store a 2D array into this buffer. |
||
Store a 3d array into this buffer. |
||
This routine stores the stocks and does error handling for call_tracer_stocks. |
||
Tridiagonal solver for streamfunction at interfaces. |
||
Translate the wind stresses into the friction velocity, including effects of background gustiness. |
||
Returns true if a unit test of string_functions fails. |
||
This function removes single and double quotes from a character string. |
||
Checks for energy conservation on computational domain. |
||
Summarize results. |
||
This subroutine calculates the total shortwave heat flux integrated over bands as a function of depth. This routine is only called for computing buoyancy fluxes for use in KPP. This routine does not update the state. |
||
This subroutine sets the properties of flow at open boundary conditions. |
||
A subroutine to fill the Stokes drift from a NetCDF file using the data_override procedures. |
||
Dummy version of MARBL’s |
||
Deallocate memory associated with the surface forcing module. |
||
Clean up and deallocate any memory associated with this module and its children. |
||
Initialize the surface forcing module. |
||
Initialize the surface forcing, including setting parameters and allocating permanent memory. |
||
This sets the penetrating shortwave fraction according to the scheme proposed by Morel and Antoine (1994). |
||
Swap the values of two real variables. |
||
Swaps the values of its two formal arguments. |
||
Do a rotationally symmetric sum of a 1-d array. |
||
Do a rotationally symmetric sum of a 2-d array using a recursive “Union-Jack” pattern of addition. |
||
Returns true if a unit test of the symmetric sums fails. |
||
Solve a non-symmetric tridiagonal problem with the sum of the upper and lower diagonals minus a scalar contribution as the leading diagonal. This uses the Thomas algorithm rather than the Hallberg algorithm since the matrix is not symmetric. |
||
Moves energy across lines of partial reflection to prevent reflection of energy that is supposed to get across. |
||
Tempering of bits in y. |
||
Update the state with “test”. |
||
Returns true if any cell of u and u_true are not identical. Returns false otherwise. |
||
Return true if output of unit tests for boundary_k_range does not match answers. |
||
|
||
|
||
|
||
True if the cube of cuberoot(val) does not closely match val. False otherwise. |
||
Returns true if comparison of Po and Ptrue fails, and conditionally writes results to stream. |
||
Returns true if comparison of Po and Ptrue fails, and conditionally writes results to stream. |
||
Test an equation of state for self-consistency and consistency with check values, returning false if it is consistent by all tests, and true if it fails any test. |
||
Convenience function for reporting result of test. |
||
Returns true if a test of |
||
Returns true if a test of |
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Returns true if a test of |
||
Test if |
||
Test the validity the normalized open lengths of each interface for concave bathymetry (from the ocean perspective) by evaluating and returing the relevant cubic equations. |
||
Returns true if output of near-boundary unit tests does not match correct computed values and conditionally writes results to stream. |
||
Test that A*C = R to within a tolerance, issuing a fatal error with an explanatory message if they do not. |
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Returns true if output of find_neutral_surface_positions() does not match correct values, and conditionally writes results to stream. |
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Test that remapping a uniform field remains uniform. |
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Test class-based remapping for internal consistency on random data. |
||
Test if |
||
|
||
Compares output position from refine_nondim_position with an expected value. |
||
Test that remapping to the same grid preserves answers. |
||
This function tests whether a real value is encoded in a string. |
||
Calculates isopycnal height diffusion coefficients and applies isopycnal height diffusion by modifying to the layer thicknesses, h. Diffusivities are limited to ensure stability. Also returns along-layer mass fluxes used in the continuity equation. |
||
Deallocate the thickness_diffus3 control structure. |
||
Calculates parameterized layer transports for use in the continuity equation. Fluxes are limited to give positive definite thicknesses. Called by |
||
Copies KH_u_GME and KH_v_GME from private type into arrays provided as arguments. |
||
Initialize the isopycnal height diffusion module and its control structure. |
||
Converts layer thicknesses in thickness units to the vertical distance between edges in height units, perhaps by multiplication by the precomputed layer-mean specific volume stored in an array in the thermo_var_ptrs type when in non-Boussinesq mode. |
||
Converts a vertical i- / k- slice of layer thicknesses in thickness units to the vertical distance between edges in height units, perhaps by multiplication by the precomputed layer-mean specific volume stored in an array in the thermo_var_ptrs type when in non-Boussinesq mode. |
||
This subroutine sets the properties of flow at open boundary conditions. |
||
This subroutine deallocates memory associated with the tidal forcing module. |
||
This subroutine allocates space for the static variables used by this module. The metrics may be effectively 0, 1, or 2-D arrays, while fields like the background viscosities are 2-D arrays. ALLOC is a macro defined in |
||
Looks up angular frequencies for the main tidal constituents. Values used here are from previous versions of MOM. |
||
Deallocate fields. |
||
This subroutine returns a zonal slice of the topographic roughness amplitudes. |
||
Initializes internal tidal dissipation scheme for diapycnal mixing. |
||
Read a scalar field based on model time. |
||
Read a 2d field from an external based on model time, potentially including horizontal interpolation and rotation of the data. |
||
Read a 3d field based on model time, and rotate to the model grid. |
||
This function returns a string with a time type formatted as seconds (perhaps including a fractional number of seconds) and days. |
||
This function returns the sum over computational domain of all processors of hThick*stuff, where stuff is a 3-d array at tracer points. |
||
This subroutine display the total thickness, temperature and salinity as well as the change since the last call. |
||
Close the tracer advection module. |
||
Initialize lateral tracer advection module. |
||
Calculates and prints the global inventory of the first ntr tracers in the registry. |
||
This subroutine writes out chksums for the first ntr registered tracers. |
||
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers. The arguments to this subroutine are redundant in that h_new(k) = h_old(k) + ea(k) - eb(k-1) + eb(k) - ea(k+1) |
||
This subroutine does epipycnal diffusion of all tracers between the mixed and buffer layers and the interior, using the diffusivity in CSKhTr. Multiple iterations are used (if necessary) so that there is no limit on the acceptable time increment. |
||
This subroutine calls all registered tracer initialization subroutines. |
||
Initialize lateral tracer diffusion module. |
||
Compute along-coordinate diffusion of all tracers using the diffusivity in CSKhTr, or using space-dependent diffusivity. Multiple iterations are used (if necessary) so that there is no limit on the acceptable time increment. |
||
Find a tracer in the tracer registry by name. |
||
Calculates and prints the global inventory of all tracers in the registry. |
||
This subroutine writes out chksums for all the registered tracers. |
||
This routine closes the tracer registry module. |
||
Initialize the tracer registry. |
||
This subroutine solves a tridiagonal equation for the final tracer concentrations after the dual-entrainments, and possibly sinking or surface and bottom sources, are applied. The sinking is implemented with an fully implicit upwind advection scheme. Alternate time units can be used for the timestep, surface and bottom fluxes and sink_rate provided they are all consistent. |
||
This subroutine solves a tridiagonal equation for the final tracer concentrations after Eulerian mixing, and possibly sinking or surface and bottom sources, are applied. The sinking is implemented with an fully implicit upwind advection scheme. Alternate time units can be used for the timestep, surface and bottom fluxes and sink_rate provided they are all consistent. |
||
This function initializes a tracer by reading a Z-space file, returning .true. if this appears to have been successful, and false otherwise. |
||
Layer model routine for remapping tracers from pseudo-z coordinates into layers defined by target interface positions. |
||
Calculate the determinant of a tridiagonal matrix with diagonals a,b-lam,c and its derivative with lam, where lam is constant across rows. Only the ratio of det to its derivative and their signs are typically used, so internal rescaling by consistent factors are used to avoid over- or underflow. |
||
This is a simple tri-diagonal solver for T and S. “Simple” means it only uses arrays hold, ea and eb. |
||
This is a simple tri-diagonal solver for T and S, with mixing across interfaces but no net transfer of mass. |
||
Adjust the layer thicknesses by cutting away the top of each model column at the depth where the hydrostatic pressure matches an imposed surface pressure read from file. |
||
Returns a left-adjusted string with trailing blanks and commas removed. |
||
Do a CFL-based truncation of any excessively large batotropic velocities. This should only be used as desperate debugging measure. |
||
Calculate edge values (top and bottom of layer) for T and S consistent with a PLM reconstruction in the vertical direction. Boundary reconstructions are PCM unless bdry_extrap is true. |
||
Calculate edge values (top and bottom of layer) for T and S consistent with a PLM reconstruction in the vertical direction that uses weighted least squares for the slope. |
||
Calculate edge values (top and bottom of layer) for T and S consistent with a PPM reconstruction in the vertical direction. Boundary reconstructions are PCM unless bdry_extrap is true. |
||
Twist bits of u and v. |
||
This function inverts the transport function to determine the barotopic velocity that is consistent with a given transport, or if INTEGRAL_BT_CONT=True this finds the time-integrated velocity that is consistent with a time-integrated transport. |
||
This function returns a string for formatted false logicals. |
||
Return a uniform resolution vector in the units of the coordinate. |
||
Returns the unique values in a 1D array. |
||
Allocates and initializes the ocean model unit scaling type to unscaled values. |
||
Deallocates a unit scaling structure. |
||
Allocates and initializes the ocean model unit scaling type. |
||
Runs EPPM_CWK reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PPM_CWK reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PLM reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PCM reconstruction unit tests and returns True for any fails, False otherwise. |
||
Calls unit tests for other modules. Note that if a unit test returns true, a FATAL error is triggered. |
||
Runs PLM reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PPM_hybgen reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PLM reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PLM reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PPM_H4_2019 reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PLM reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PPM_H4_2018 reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PLM reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PLM_WLS reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PLM reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PPM_CW reconstruction unit tests and returns True for any fails, False otherwise. |
||
Runs PLM reconstruction unit tests and returns True for any fails, False otherwise. |
||
Unpack a 64-bit real 1d tensor from the database. |
||
Unpack a 64-bit real 2d tensor from the database. |
||
Unpack a 64-bit real 3d tensor from the database. |
||
Unpack a 64-bit real 4d tensor from the database. |
||
Unpack a 32-bit real 1d tensor from the database. |
||
Unpack a 32-bit real 2d tensor from the database. |
||
Unpack a 32-bit real 3d tensor from the database. |
||
Unpack a 32-bit real 4d tensor from the database. |
||
Unpack a 32-bit integer 1d tensor from the database. |
||
Unpack a 32-bit integer 2d tensor from the database. |
||
Unpack a 32-bit integer 3d tensor from the database. |
||
Unpack a 32-bit integer 4d tensor from the database. |
||
Reconstruct the scalar (e.g., PV, vorticity) onto point i-1/2 using a third-order upwind scheme with the Koren flux limiter. |
||
Reconstruct the scalar (e.g., pv, vorticity) onto point i-1/2 using a third-order upwind scheme. |
||
Update the axes and fields descriptors of a MOM netCDF file. |
||
This updates thickness based on the convergence of horizontal mass fluxes NOTE: Only used in non-ALE mode. |
||
Updates layer thicknesses due to vertical mass transports NOTE: Only used in non-ALE configuration. |
||
This subroutine updates the ice shelf velocities, mass, stresses and properties due to the ice shelf dynamics. |
||
Set the current timestep of an open netCDF file. |
||
Calls appropriate routine to update the open boundary conditions. |
||
Update the OBC ramp value as a function of time. If called with the optional argument activate=.true., record the value of Time as the beginning of the ramp period. |
||
Update the OBC values on the segments. |
||
update_ocean_model uses the forcing in Ice_ocean_boundary to advance the ocean model’s state from the input value of Ocean_state (which must be for time time_start_update) for a time interval of Ocean_coupling_time_step, returning the publicly visible ocean surface properties in Ocean_sfc and storing the new ocean properties in Ocean_state. |
||
Update fields used in this round of offline transport. First fields are updated from files or from arrays read during initialization. Then if in an ALE-dependent coordinate, regrid/remap fields. |
||
Fields for offline transport are copied from the stored arrays read during initialization. |
||
Controls the reading in 3d mass fluxes, diffusive fluxes, and other fields stored in a previous integration of the online model. |
||
Update the OBC thickness reservoirs after the thicknesses have been updated. |
||
Update the OBC tracer reservoirs after the tracers have been updated. |
||
Updates the ice shelf mass using data from a file. |
||
update_ocean_model uses the forcing in Ice_ocean_boundary to advance the ocean model’s state from the input value of Ocean_state (which must be for time time_start_update) for a time interval of Ocean_coupling_time_step, returning the publicly visible ocean surface properties in Ocean_sfc and storing the new ocean properties in Ocean_state. |
||
Constructs the Stokes Drift profile on the model grid based on desired coupling options. |
||
Subroutine that handles updating of surface wave/Stokes drift related properties. |
||
Update the CFL truncation value as a function of time. If called with the optional argument activate=.true., record the value of Time as the beginning of the ramp period. |
||
Return a string in which all uppercase letters have been replaced by their lowercase counterparts. |
||
This subroutine sets the surface wind stresses. |
||
This subroutine specifies the current surface fluxes of buoyancy or temperature and fresh water. It may also be modified to add surface fluxes of user provided tracers. |
||
This subroutine provides an interface for a user to use to modify the main code to alter the diffusivities as needed. The specific example implemented here augments the diffusivity for a specified range of latitude and coordinate potential density. |
||
Clean up the module control structure. |
||
Set up the module control structure. |
||
This subroutine updates the ice shelf thickness, as specified by user-provided code. |
||
This function puts the initial layer temperatures and salinities into T(:,:,:) and S(:,:,:). |
||
This subroutine sets up the initial mass and area covered by the ice shelf, based on user-provided code. |
||
Set up the sponges. |
||
Initialize thicknesses in depth units. These will be converted to thickness units later. |
||
Initialize topography. |
||
This subroutine initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output. |
||
initialize velocities. |
||
This subroutine is used to register tracer fields and subroutines to be used with MOM. |
||
Initialize the |
||
Set vertical coordinates. |
||
This subroutine sets the properties of flow at open boundary conditions. |
||
This subroutine initializes the USER_surface_forcing module. |
||
Clean up allocated memory at the end. |
||
This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. |
||
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. |
||
This subroutine updates the ice shelf mass, as specified by user-provided code. |
||
This subroutine sets the surface wind stresses, forcestaux and forcestauy, in [R Z L T-2 ~> Pa]. These are the stresses in the direction of the model grid (i.e. the same direction as the u- and v- velocities). |
||
Computes wind speed from ustar_air based on COARE 3.5 Cd relationship Probably doesn’t belong in this module, but it is used here to estimate wind speed for wind-wave relationships. Should be a fine way to estimate the neutral wind-speed as written here. |
||
This subroutine returns a value that goes smoothly from 0 to 1, stays at 1, and then goes smoothly back to 0 at the four values of range. The transitions are cubic, and have zero first derivatives where the curves hit 0 and 1. The values in range must be in ascending order, as can be checked by calling range_OK. |
||
Returns a vardesc type whose elements have been filled with the provided fields. The argument name is required, while the others are optional and have default values that are empty strings or are appropriate for a 3-d tracer field at the tracer cell centers. |
||
Destructor for VarMix control structure. |
||
Initializes the variables mixing coefficients container. |
||
Verify that a file contains a named variable with the expected units. |
||
Returns tracer arrays (nominally T and S) with massless layers filled with sensible values, by diffusing vertically with a small but constant diffusivity. |
||
Add nonlocal stress increments to ui^n and vi^n. |
||
Compute average of interface quantities weighted by the thickness of the surrounding layers [arbitrary]. |
||
Deallocates the model’s vertical grid structure. |
||
Allocates and initializes the ocean model vertical grid structure. |
||
Vertically interpolate diagnostic field to alternative vertical grid. |
||
Internal routine to vertically interpolate a diagnostic field to an alternative vertical grid. |
||
Vertically re-grid an already vertically-integrated diagnostic field to alternative vertical grid. |
||
The internal routine to vertically re-grid an already vertically-integrated diagnostic field to an alternative vertical grid. |
||
Perform a fully implicit vertical diffusion of momentum. Stress top and bottom boundary conditions are used. |
||
Calculate the coupling coefficients (CSa_u, CSa_v, CSa_u_gl90, CSa_v_gl90) and effective layer thicknesses (CSh_u and CSh_v) for later use in the applying the implicit vertical viscosity via |
||
Clean up and deallocate the vertical friction module. |
||
Initialize the vertical friction module. |
||
Velocity components which exceed a threshold for physically reasonable values are truncated, and the running sum of the number of trunctionas within the non-symmetric memory computational domain is incremented. Optionally, any column with excessive velocities may be sent to a diagnostic reporting subroutine. |
||
Calculate the fraction of momentum originally in a layer that remains in the water column after a time-step of viscosity, equivalently the fraction of a time-step’s worth of barotropic acceleration that a layer experiences after viscosity is applied. |
||
This function inverts the transport function to determine the barotopic velocity that is consistent with a given transport, or if INTEGRAL_BT_CONT=True this finds the time-integrated velocity that is consistent with a time-integrated transport. |
||
This subroutine calculates the sum of the products of the tidal velocities and the scaled frequency-dependent drag for each tidal constituent specified in MOM_input. |
||
This subroutine reads drag coefficients from file. |
||
Calculates the wave speed of the first baroclinic mode. |
||
Initialize control structure for MOM_wave_speed. |
||
Sets internal parameters for MOM_wave_speed. |
||
Calculates the wave speeds for the first few barolinic modes. |
||
Clear pointers, deallocate memory. |
||
Register wave restart fields. To be called before MOM_wave_interface_init. |
||
Reconstruct the tracer (e.g., PV, vorticity) onto point i-1/2 using a fifth-order WENO scheme The reconstruction is weighted by the thickness. |
||
Reconstruction in the third upwind stencil of the fifth-order WENO scheme. |
||
Reconstruction in the second upwind stencil of the fifth-order WENO scheme. |
||
Reconstruction in the first upwind stencil of the fifth-order WENO scheme. |
||
Compute the smoothness indicator for the third upwind stencil of the fifth-order WENO scheme. |
||
Compute the smoothness indicator for the second upwind stencil of the fifth-order WENO scheme. |
||
Compute the smoothness indicator for the first upwind stencil of the fifth-order WENO scheme. |
||
Reconstruct the tracer (e.g., PV, vorticity) onto point i-1/2 using a seventh-order WENO scheme This reconstruction computes a thickness weighted average of PV. |
||
Reconstruction in the fourth upwind stencil for seventh-order WENO scheme. |
||
Reconstruction in the third upwind stencil for seventh-order WENO scheme. |
||
Reconstruction in the second upwind stencil for seventh-order WENO scheme. |
||
Reconstruction in the first upwind stencil for seventh-order WENO scheme. |
||
Compute the smoothness indicator for the fourth upwind stencil of the seventh-order WENO scheme. |
||
Compute the smoothness indicator for the third upwind stencil of the seventh-order WENO scheme. |
||
Compute the smoothness indicator for the second upwind stencil of the seventh-order WENO scheme. |
||
Compute smoothness indicator for the first upwind stencil of the seventh-order WENO scheme. |
||
Reconstruct the tracer (e.g., PV, vorticity) onto the point i-1/2 using a third-order WENO scheme This reconstruction is thickness-weighted. |
||
Reconstruction in the second upwind stencil of the third-order WENO scheme. |
||
Reconstruction in the first upwind stencil for third-order WENO scheme. |
||
Compute the smoothness indicator for the two-point stencil of the third-order WENO scheme. |
||
Sets the surface wind stresses to set up a single idealized gyre. |
||
Sets the surface wind stresses to set up two idealized gyres. |
||
Sets the surface wind stresses to constant values. |
||
Sets the surface wind stresses to set up idealized gyres. |
||
Write global metadata to the MOM framework file. |
||
Write global metadata to the MOM netcdf file. |
||
Write out the auto-generated mask information to a file in the run directory. |
||
Write a message indicating how well a value matches its check value. |
||
This subroutine assesses how much CPU time the model has taken and determines how long the model should be run before it saves a restart file and stops itself. Optionally this may also be used to trigger this module’s end routine. |
||
Evaluate the CPU time returned by SYSTEM_CLOCK at the start of a run. |
||
This subroutine writes out the depth list to the specified file. |
||
This subroutine calculates and writes the total model energy, the energy and mass of each layer, and other globally integrated physical quantities. |
||
Write a 0D field to the MOM framework file. |
||
Write a 0D field to the MOM netcdf file. |
||
Write a 1D field to the MOM framework file. |
||
Write a 1D field to the MOM netcdf file. |
||
Write a 2D field to the MOM framework file. |
||
Write a 2D field to the MOM netcdf file. |
||
Write a 3D field to the MOM framework file. |
||
Write a 3D field to the MOM netcdf file. |
||
Write a 4D field to the MOM framework file. |
||
Write a 4D field to the MOM netcdf file. |
||
Write an axis field to the MOM framework file. |
||
Write an axis field to the MOM netcdf file. |
||
Writes out a file containing any available data related to the vertical grid used by the MOM ocean model. |
||
Writes the total ice shelf kinetic energy and mass to an ascii file. |
||
Write a global attribute to a netCDF file. |
||
Write axis points to associated netCDF variable. |
||
Write a scalar to a compatible netCDF field. |
||
Write a 1D array to a compatible netCDF field. |
||
Write a 2D array to a compatible netCDF field. |
||
Write a 3D array to a compatible netCDF field. |
||
Write a 4D array to a compatible netCDF field. |
||
Write out information about the contents of the OBC control structure. |
||
Write out a file describing the topography, Coriolis parameter, grid locations and various other fixed fields from the grid. |
||
Initialize write_ocean_obs module. |
||
Write a profile. |
||
Write the vertical coordinate information into a file. This subroutine writes out a file containing any available data related to the vertical grid used by the MOM ocean model when in ALE mode. |
||
Offers the static fields in the ocean grid type for output via the diag_manager. |
||
Write the restart file for the stochastic physics perturbations. |
||
This subroutine writes to an output file all of the accelerations that have been applied to a column of zonal velocities over the previous timestep. This subroutine is called from vertvisc. |
||
This subroutine writes out the user ice shelf code version number to the model log. |
||
Write output about the parameter values being used. |
||
This subroutine writes to an output file all of the accelerations that have been applied to a column of meridional velocities over the previous timestep. This subroutine is called from vertvisc. |
||
Write a file version number to the log file or other output file. |
||
Writes out a file containing any available data related to the vertical grid used by the MOM ocean model. |
||
This subroutine writes out the message and description to the documentation files. |
||
Solver for x: f(x)=t. |
||
Solver for x such that f(x)=t. |
||
Solver for x: f(x)=t. |
||
Solve for x such that f(x)=t. |
||
Pseudo coordinate across domain used by Hml() and dTdy() returns a coordinate from -PI/2 .. PI/2 squashed towards the center of the domain [radians]. |
||
Save precomputed velocity gradients and thickness from the horizontal eddy viscosity module We save as much halo for velocity gradients as possible In symmetric (preferable) memory model: halo 2 for sh_xx and halo 1 for sh_xy and vort_xy We apply zero boundary conditions to velocity gradients which is required for filtering operations. |
||
Deallocate any variables allocated in ZB_2020_init. |
||
Read parameters, allocate and precompute arrays, register diagnosicts used in Zanna_Bolton_2020(). |
||
Baroclinic Zanna-Bolton-2020 parameterization, see eq. 6 in |
||
Checksum a 1d array (typically a column). |
||
Calculates the vertically integrated mass or volume fluxes through the zonal faces. |
||
Set the reconstructed thicknesses at the eastern and western edges of tracer cells. |
||
Returns the barotropic velocity adjustment that gives the desired barotropic (layer-summed) transport. |
||
Evaluates the zonal mass or volume fluxes in a layer. |
||
Evaluates the zonal mass or volume fluxes in a layer. |
||
Sets the effective interface thickness associated with the fluxes at each zonal velocity point, optionally scaling back these thicknesses to account for viscosity and fractional open areas. |
||
Calculates the mass or volume fluxes through the zonal faces, and other related quantities. |