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

Go to the source code of this file.

Data Types

type  mom_barotropic::bt_obc_type
 The barotropic stepping open boundary condition type. More...
 
type  mom_barotropic::barotropic_cs
 The barotropic stepping control stucture. More...
 
type  mom_barotropic::local_bt_cont_u_type
 A desciption of the functional dependence of transport at a u-point. More...
 
type  mom_barotropic::local_bt_cont_v_type
 A desciption of the functional dependence of transport at a v-point. More...
 
type  mom_barotropic::memory_size_type
 A container for passing around active tracer point memory limits. More...
 

Modules

module  mom_barotropic
 Baropotric solver.
 

Macros

#define NIMEMW_   :
 
#define NJMEMW_   :
 
#define NIMEMBW_   :
 
#define NJMEMBW_   :
 
#define SZIW_(G)   G%isdw:G%iedw
 
#define SZJW_(G)   G%jsdw:G%jedw
 
#define SZIBW_(G)   G%isdw-1:G%iedw
 
#define SZJBW_(G)   G%jsdw-1:G%jedw
 
integer mom_barotropic::id_clock_sync =-1
 CPU time clock IDs. More...
 
integer mom_barotropic::id_clock_calc =-1
 CPU time clock IDs. More...
 
integer mom_barotropic::id_clock_calc_pre =-1
 CPU time clock IDs. More...
 
integer mom_barotropic::id_clock_calc_post =-1
 CPU time clock IDs. More...
 
integer mom_barotropic::id_clock_pass_step =-1
 CPU time clock IDs. More...
 
integer mom_barotropic::id_clock_pass_pre =-1
 CPU time clock IDs. More...
 
integer mom_barotropic::id_clock_pass_post =-1
 CPU time clock IDs. More...
 
integer, parameter mom_barotropic::harmonic = 1
 Enumeration values for various schemes. More...
 
integer, parameter mom_barotropic::arithmetic = 2
 CPU time clock IDs. More...
 
integer, parameter mom_barotropic::hybrid = 3
 CPU time clock IDs. More...
 
integer, parameter mom_barotropic::from_bt_cont = 4
 CPU time clock IDs. More...
 
integer, parameter mom_barotropic::hybrid_bt_cont = 5
 CPU time clock IDs. More...
 
character *(20), parameter mom_barotropic::hybrid_string = "HYBRID"
 CPU time clock IDs. More...
 
character *(20), parameter mom_barotropic::harmonic_string = "HARMONIC"
 CPU time clock IDs. More...
 
character *(20), parameter mom_barotropic::arithmetic_string = "ARITHMETIC"
 CPU time clock IDs. More...
 
character *(20), parameter mom_barotropic::bt_cont_string = "FROM_BT_CONT"
 CPU time clock IDs. More...
 
subroutine, public mom_barotropic::btstep (U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, forces, pbce, eta_PF_in, U_Cor, V_Cor, accel_layer_u, accel_layer_v, eta_out, uhbtav, vhbtav, G, GV, US, CS, visc_rem_u, visc_rem_v, etaav, OBC, BT_cont, eta_PF_start, taux_bot, tauy_bot, uh0, vh0, u_uh0, v_vh0)
 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. More...
 
subroutine, public mom_barotropic::set_dtbt (G, GV, US, CS, eta, pbce, BT_cont, gtot_est, SSH_add)
 This subroutine automatically determines an optimal value for dtbt based on some state of the ocean. More...
 
subroutine mom_barotropic::apply_velocity_obcs (OBC, ubt, vbt, uhbt, vhbt, ubt_trans, vbt_trans, eta, ubt_old, vbt_old, BT_OBC, G, MS, US, halo, dtbt, bebt, use_BT_cont, Datu, Datv, BTCL_u, BTCL_v, uhbt0, vhbt0)
 The following 4 subroutines apply the open boundary conditions. This subroutine applies the open boundary conditions on barotropic velocities and mass transports, as developed by Mehmet Ilicak. More...
 
subroutine mom_barotropic::set_up_bt_obc (OBC, eta, BT_OBC, BT_Domain, G, GV, US, MS, halo, use_BT_cont, Datu, Datv, BTCL_u, BTCL_v)
 This subroutine sets up the private structure used to apply the open boundary conditions, as developed by Mehmet Ilicak. More...
 
subroutine mom_barotropic::destroy_bt_obc (BT_OBC)
 Clean up the BT_OBC memory. More...
 
subroutine, public mom_barotropic::btcalc (h, G, GV, CS, h_u, h_v, may_use_default, OBC)
 btcalc calculates the barotropic velocities from the full velocity and thickness fields, determines the fraction of the total water column in each layer at velocity points, and determines a corrective fictitious mass source that will drive the barotropic estimate of the free surface height toward the baroclinic estimate. More...
 
real function mom_barotropic::find_uhbt (u, BTC, US)
 The function find_uhbt determines the zonal transport for a given velocity. More...
 
real function mom_barotropic::uhbt_to_ubt (uhbt, BTC, US, guess)
 This function inverts the transport function to determine the barotopic velocity that is consistent with a given transport. More...
 
real function mom_barotropic::find_vhbt (v, BTC, US)
 The function find_vhbt determines the meridional transport for a given velocity. More...
 
real function mom_barotropic::vhbt_to_vbt (vhbt, BTC, US, guess)
 This function inverts the transport function to determine the barotopic velocity that is consistent with a given transport. More...
 
subroutine mom_barotropic::set_local_bt_cont_types (BT_cont, BTCL_u, BTCL_v, G, US, MS, BT_Domain, halo)
 This subroutine sets up reordered versions of the BT_cont type in the local_BT_cont types, which have wide halos properly filled in. More...
 
subroutine mom_barotropic::adjust_local_bt_cont_types (ubt, uhbt, vbt, vhbt, BTCL_u, BTCL_v, G, US, MS, halo)
 Adjust_local_BT_cont_types sets up reordered versions of the BT_cont type in the local_BT_cont types, which have wide halos properly filled in. More...
 
subroutine mom_barotropic::bt_cont_to_face_areas (BT_cont, Datu, Datv, G, US, MS, halo, maximize)
 This subroutine uses the BTCL types to find typical or maximum face areas, which can then be used for finding wave speeds, etc. More...
 
subroutine mom_barotropic::swap (a, b)
 Swap the values of two real variables. More...
 
subroutine mom_barotropic::find_face_areas (Datu, Datv, G, GV, US, CS, MS, eta, halo, add_max)
 This subroutine determines the open face areas of cells for calculating the barotropic transport. More...
 
subroutine, public mom_barotropic::bt_mass_source (h, eta, set_cor, G, GV, CS)
 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. More...
 
subroutine, public mom_barotropic::barotropic_init (u, v, h, eta, Time, G, GV, US, param_file, diag, CS, restart_CS, calc_dtbt, BT_cont, tides_CSp)
 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. More...
 
subroutine, public mom_barotropic::barotropic_get_tav (CS, ubtav, vbtav, G, US)
 Copies ubtav and vbtav from private type into arrays. More...
 
subroutine, public mom_barotropic::barotropic_end (CS)
 Clean up the barotropic control structure. More...
 
subroutine, public mom_barotropic::register_barotropic_restarts (HI, GV, param_file, CS, restart_CS)
 This subroutine is used to register any fields from MOM_barotropic.F90 that should be written to or read from the restart file. More...
 

Macro Definition Documentation

◆ NIMEMBW_

#define NIMEMBW_   :

◆ NIMEMW_

#define NIMEMW_   :

◆ NJMEMBW_

#define NJMEMBW_   :

◆ NJMEMW_

#define NJMEMW_   :

◆ SZIBW_

#define SZIBW_ (   G)    G%isdw-1:G%iedw

◆ SZIW_

#define SZIW_ (   G)    G%isdw:G%iedw

◆ SZJBW_

#define SZJBW_ (   G)    G%jsdw-1:G%jedw

◆ SZJW_

#define SZJW_ (   G)    G%jsdw:G%jedw