mom_boundary_update module reference

Controls where open boundary conditions are applied.

More…

Data Types

update_obc_cs

The control structure for the MOM_boundary_update module.

Functions/Subroutines

call_obc_register()

The following subroutines and associated definitions provide the machinery to register and call the subroutines that initialize open boundary conditions.

update_obc_data()

Calls appropriate routine to update the open boundary conditions.

obc_register_end()

Clean up the OBC registry.

Detailed Description

This module updates the open boundary arrays when time-varying. It caused a circular dependency with the tidal_bay and other setups when in MOM_open_boundary.

A small fragment of the grid is shown below:

j+1 x ^ x ^ x At x: q, CoriolisBu j+1 > o > o > At ^: v, tauy j x ^ x ^ x At >: u, taux j > o > o > At o: h, bathyT, buoy, tr, T, S, Rml, ustar j-1 x ^ x ^ x i-1 i i+1 At x & ^: i i+1 At > & o:

The boundaries always run through q grid points (x).

Type Documentation

type mom_boundary_update/update_obc_cs

The control structure for the MOM_boundary_update module.

Type fields:
  • % file_obc_csp [type( file_obc_cs ),pointer] :: Pointers to the control structures for named OBC specifications.

  • % kelvin_obc_csp [type( kelvin_obc_cs ),pointer] :: Pointers to the control structures for named OBC specifications.

  • % tidal_bay_obc [type( tidal_bay_obc_cs )] :: Pointers to the control structures for named OBC specifications.

  • % shelfwave_obc_csp [type( shelfwave_obc_cs ),pointer] :: Pointers to the control structures for named OBC specifications.

  • % dyed_channel_obc_csp [type( dyed_channel_obc_cs ),pointer] :: Pointers to the control structures for named OBC specifications.

  • % use_files [logical] :: If true, use external files for the open boundary.

  • % use_kelvin [logical] :: If true, use the Kelvin wave open boundary.

  • % use_tidal_bay [logical] :: If true, use the tidal_bay open boundary.

  • % use_shelfwave [logical] :: If true, use the shelfwave open boundary.

  • % use_dyed_channel [logical] :: If true, use the dyed channel open boundary.

Function/Subroutine Documentation

subroutine mom_boundary_update/call_obc_register(G, GV, US, param_file, CS, OBC, tr_Reg)

The following subroutines and associated definitions provide the machinery to register and call the subroutines that initialize open boundary conditions.

Parameters:
  • g :: [in] Ocean grid structure

  • gv :: [in] Ocean vertical grid structure

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

  • param_file :: [in] Parameter file to parse

  • cs :: Control structure for OBCs

  • obc :: Open boundary structure

  • tr_reg :: Tracer registry.

Call to:

mom_error_handler::mom_error dome_initialization::register_dome_obc mom_open_boundary::register_file_obc

Called from:

mom::initialize_mom

subroutine mom_boundary_update/update_obc_data(OBC, G, GV, US, tv, h, CS, Time)

Calls appropriate routine to update the open boundary conditions.

Parameters:
  • g :: [in] Ocean grid structure

  • gv :: [in] Ocean vertical grid structure

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

  • tv :: [in] Thermodynamics structure

  • h :: [inout] layer thicknesses [H ~> m or kg m-2]

  • obc :: Open boundary structure

  • cs :: Control structure for OBCs

  • time :: [in] Model time

Called from:

mom_dynamics_split_rk2::step_mom_dyn_split_rk2 mom_dynamics_split_rk2b::step_mom_dyn_split_rk2b mom_dynamics_unsplit::step_mom_dyn_unsplit mom_dynamics_unsplit_rk2::step_mom_dyn_unsplit_rk2

subroutine mom_boundary_update/obc_register_end(CS)

Clean up the OBC registry.

Parameters:

cs :: Control structure for OBCs

Call to:

mom_open_boundary::file_obc_end kelvin_initialization::kelvin_obc_end

Called from:

mom::mom_end