MOM6
|
Data Types | |
type | barotropic_cs |
type | bt_obc_type |
type | local_bt_cont_u_type |
type | local_bt_cont_v_type |
type | memory_size_type |
Functions/Subroutines | |
subroutine, public | btstep (U_in, V_in, eta_in, dt, bc_accel_u, bc_accel_v, fluxes, pbce, eta_PF_in, U_Cor, V_Cor, accel_layer_u, accel_layer_v, eta_out, uhbtav, vhbtav, G, GV, 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 | set_dtbt (G, GV, 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 | apply_velocity_obcs (OBC, ubt, vbt, uhbt, vhbt, ubt_trans, vbt_trans, eta, ubt_old, vbt_old, BT_OBC, G, MS, 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 | apply_eta_obcs (OBC, eta, ubt, vbt, BT_OBC, G, MS, halo, dtbt) |
This subroutine applies the open boundary conditions on the free surface height, as coded by Mehmet Ilicak. More... | |
subroutine | set_up_bt_obc (OBC, eta, BT_OBC, G, GV, 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 | destroy_bt_obc (BT_OBC) |
Clean up the BT_OBC memory. More... | |
subroutine, public | 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 | find_uhbt (u, BTC) |
The function find_uhbt determines the zonal transport for a given velocity. More... | |
real function | uhbt_to_ubt (uhbt, BTC, guess) |
This function inverts the transport function to determine the barotopic velocity that is consistent with a given transport. More... | |
real function | find_vhbt (v, BTC) |
The function find_vhbt determines the meridional transport for a given velocity. More... | |
real function | vhbt_to_vbt (vhbt, BTC, guess) |
This function inverts the transport function to determine the barotopic velocity that is consistent with a given transport. More... | |
subroutine | set_local_bt_cont_types (BT_cont, BTCL_u, BTCL_v, G, 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 | adjust_local_bt_cont_types (ubt, uhbt, vbt, vhbt, BTCL_u, BTCL_v, G, 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 | bt_cont_to_face_areas (BT_cont, Datu, Datv, G, 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 | swap (a, b) |
subroutine | find_face_areas (Datu, Datv, G, GV, CS, MS, eta, halo, add_max) |
This subroutine determines the open face areas of cells for calculating the barotropic transport. More... | |
subroutine, public | bt_mass_source (h, eta, fluxes, set_cor, dt_therm, dt_since_therm, 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 | barotropic_init (u, v, h, eta, Time, G, GV, param_file, diag, CS, restart_CS, 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 | barotropic_end (CS) |
Clean up the barotropic control structure. More... | |
subroutine, public | 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... | |
Variables | |
integer | id_clock_sync =-1 |
integer | id_clock_calc =-1 |
integer | id_clock_calc_pre =-1 |
integer | id_clock_calc_post =-1 |
integer | id_clock_pass_step =-1 |
integer | id_clock_pass_pre =-1 |
integer | id_clock_pass_post =-1 |
integer, parameter | harmonic = 1 |
integer, parameter | arithmetic = 2 |
integer, parameter | hybrid = 3 |
integer, parameter | from_bt_cont = 4 |
integer, parameter | hybrid_bt_cont = 5 |
character *(20), parameter | hybrid_string = "HYBRID" |
character *(20), parameter | harmonic_string = "HARMONIC" |
character *(20), parameter | arithmetic_string = "ARITHMETIC" |
character *(20), parameter | bt_cont_string = "FROM_BT_CONT" |
|
private |
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.
[in] | ms | A type that describes the memory sizes of the argument arrays. |
[in] | ubt | The linearization zonal barotropic velocity in m s-1. |
[in] | uhbt | The linearization zonal barotropic transport in H m2 s-1. |
[in] | vbt | The linearization meridional barotropic velocity in m s-1. |
[in] | vhbt | The linearization meridional barotropic transport in H m2 s-1. |
[out] | btcl_u | A structure with the u information from BT_cont. |
[out] | btcl_v | A structure with the v information from BT_cont. |
[in] | g | The ocean's grid structure. |
[in] | halo | The extra halo size to use here. |
Definition at line 3540 of file MOM_barotropic.F90.
Referenced by btstep().
|
private |
This subroutine applies the open boundary conditions on the free surface height, as coded by Mehmet Ilicak.
obc | An associated pointer to an OBC type. | |
[in] | ms | A type that describes the memory sizes of the argument arrays. |
[in,out] | eta | The barotropic free surface height anomaly or column mass anomaly, in m or kg m-2. |
[in] | ubt | the zonal barotropic velocity, in m s-1. |
[in] | vbt | the meridional barotropic velocity, in m s-1. |
[in] | bt_obc | A structure with the private barotropic arrays related to the open boundary conditions, set by set_up_BT_OBC. |
[in,out] | g | The ocean's grid structure. |
[in] | halo | The extra halo size to use here. |
[in] | dtbt | The time step, in s. |
Definition at line 2617 of file MOM_barotropic.F90.
References mom_open_boundary::obc_direction_n, and mom_open_boundary::obc_direction_s.
Referenced by btstep().
|
private |
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.
obc | An associated pointer to an OBC type. | |
[in,out] | g | The ocean's grid structure. |
[in] | ms | A type that describes the memory sizes of the argument arrays. |
[in,out] | ubt | the zonal barotropic velocity, in m s-1. |
[in,out] | uhbt | the zonal barotropic transport, in H m2 s-1. |
[in,out] | ubt_trans | the zonal barotropic velocity used in transport, m s-1. |
[in,out] | vbt | the meridional barotropic velocity, in m s-1. |
[in,out] | vhbt | the meridional barotropic transport, in H m2 s-1. |
[in,out] | vbt_trans | the meridional BT velocity used in transports, m s-1. |
[in] | eta | The barotropic free surface height anomaly or column mass anomaly, in m or kg m-2. |
[in] | ubt_old | The starting value of ubt in a barotropic step, m s-1. |
[in] | vbt_old | The starting value of vbt in a barotropic step, m s-1. |
[in] | bt_obc | A structure with the private barotropic arrays related to the open boundary conditions, set by set_up_BT_OBC. |
[in] | halo | The extra halo size to use here. |
[in] | dtbt | The time step, in s. |
[in] | bebt | The fractional weighting of the future velocity in determining the transport. |
[in] | use_bt_cont | If true, use the BT_cont_types to calculate transports. |
[in] | datu | A fixed estimate of the face areas at u points. |
[in] | datv | A fixed estimate of the face areas at v points. |
[in] | btcl_u | Structure of information used for a dynamic estimate of the face areas at u-points. |
[in] | btcl_v | Structure of information used for a dynamic estimate of the face areas at v-points. |
Definition at line 2330 of file MOM_barotropic.F90.
References find_uhbt(), find_vhbt(), mom_open_boundary::obc_direction_n, and mom_open_boundary::obc_direction_s.
Referenced by btstep().
subroutine, public mom_barotropic::barotropic_end | ( | type(barotropic_cs), pointer | CS | ) |
Clean up the barotropic control structure.
cs | Control structure to clear out. |
Definition at line 4468 of file MOM_barotropic.F90.
References destroy_bt_obc().
subroutine, public mom_barotropic::barotropic_init | ( | real, dimension(szib_(g),szj_(g),szk_(g)), intent(in) | u, |
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(in) | v, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | h, | ||
real, dimension(szi_(g),szj_(g)), intent(in) | eta, | ||
type(time_type), intent(in), target | Time, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(param_file_type), intent(in) | param_file, | ||
type(diag_ctrl), intent(inout), target | diag, | ||
type(barotropic_cs), pointer | CS, | ||
type(mom_restart_cs), pointer | restart_CS, | ||
type(bt_cont_type), optional, pointer | BT_cont, | ||
type(tidal_forcing_cs), optional, pointer | 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.
[in,out] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | u | The zonal velocity, in m s-1. |
[in] | v | The meridional velocity, in m s-1. |
[in] | h | Layer thicknesses, in H (usually m or kg m-2). |
[in] | eta | Free surface height or column mass anomaly, in m or kg m-2. |
[in] | time | The current model time. |
[in] | param_file | A structure to parse for run-time parameters. |
[in,out] | diag | A structure that is used to regulate diagnostic output. |
cs | A pointer to the control structure for this module that is set in register_barotropic_restarts. | |
restart_cs | A pointer to the restart control structure. | |
bt_cont | A structure with elements that describe the effective open face areas as a function of barotropic flow. | |
tides_csp | A pointer to the control structure of the tide module. |
Definition at line 3879 of file MOM_barotropic.F90.
References mom_variables::alloc_bt_cont_type(), arithmetic, arithmetic_string, bt_cont_string, btcalc(), find_face_areas(), from_bt_cont, harmonic, harmonic_string, hybrid, hybrid_string, id_clock_calc, id_clock_calc_post, id_clock_calc_pre, id_clock_pass_post, id_clock_pass_pre, id_clock_pass_step, id_clock_sync, mom_error_handler::mom_error(), mom_error_handler::mom_mesg(), and set_dtbt().
|
private |
This subroutine uses the BTCL types to find typical or maximum face areas, which can then be used for finding wave speeds, etc.
[in,out] | bt_cont | The BT_cont_type input to the barotropic solver. |
[in] | ms | A type that describes the memory sizes of the argument arrays. |
[in] | g | The ocean's grid structure. |
[in] | halo | The extra halo size to use here. |
Definition at line 3632 of file MOM_barotropic.F90.
Referenced by btstep(), and set_dtbt().
subroutine, public mom_barotropic::bt_mass_source | ( | real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | h, |
real, dimension(szi_(g),szj_(g)), intent(in) | eta, | ||
type(forcing), intent(in) | fluxes, | ||
logical, intent(in) | set_cor, | ||
real, intent(in) | dt_therm, | ||
real, intent(in) | dt_since_therm, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(barotropic_cs), pointer | 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.
[in] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | h | Layer thicknesses, in H (usually m or kg m-2). |
[in] | eta | The free surface height that is to be corrected, in m. |
[in] | fluxes | A structure containing pointers to any possible forcing fields. Unused fields have NULL ptrs. |
[in] | set_cor | A flag to indicate whether to set the corrective fluxes (and update the slowly varying part of eta_cor) (.true.) or whether to incrementally update the corrective fluxes. |
[in] | dt_therm | The thermodynamic time step, in s. |
[in] | dt_since_therm | The elapsed time since mass forcing was applied, s. |
cs | The control structure returned by a previous call to barotropic_init. |
Definition at line 3779 of file MOM_barotropic.F90.
References mom_error_handler::mom_error().
subroutine, public mom_barotropic::btcalc | ( | real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | h, |
type(ocean_grid_type), intent(inout) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(barotropic_cs), pointer | CS, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(in), optional | h_u, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(in), optional | h_v, | ||
logical, intent(in), optional | may_use_default, | ||
type(ocean_obc_type), optional, pointer | 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.
[in,out] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | h | Layer thicknesses, in H (usually m or kg m-2). |
cs | The control structure returned by a previous call to barotropic_init. | |
[in] | h_u | The specified thicknesses at u-points, in m or kg m-2. |
[in] | h_v | The specified thicknesses at v-points, in m or kg m-2. |
[in] | may_use_default | An optional logical argument to indicate that the default velocity point thickesses may be used for this particular calculation, even though the setting of CShvel_scheme would usually require that h_u and h_v be passed in. |
obc | Open boundary control structure. |
Definition at line 2917 of file MOM_barotropic.F90.
References arithmetic, harmonic, hybrid, mom_error_handler::mom_error(), mom_open_boundary::obc_direction_n, and mom_open_boundary::obc_direction_s.
Referenced by barotropic_init().
subroutine, public mom_barotropic::btstep | ( | real, dimension(szib_(g),szj_(g),szk_(g)), intent(in) | U_in, |
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(in) | V_in, | ||
real, dimension(szi_(g),szj_(g)), intent(in) | eta_in, | ||
real, intent(in) | dt, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(in) | bc_accel_u, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(in) | bc_accel_v, | ||
type(forcing), intent(in) | fluxes, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | pbce, | ||
real, dimension(szi_(g),szj_(g)), intent(in) | eta_PF_in, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(in) | U_Cor, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(in) | V_Cor, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(out) | accel_layer_u, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(out) | accel_layer_v, | ||
real, dimension(szi_(g),szj_(g)), intent(out) | eta_out, | ||
real, dimension(szib_(g),szj_(g)), intent(out) | uhbtav, | ||
real, dimension(szi_(g),szjb_(g)), intent(out) | vhbtav, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(barotropic_cs), pointer | CS, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(in) | visc_rem_u, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(in) | visc_rem_v, | ||
real, dimension(szi_(g),szj_(g)), intent(out), optional | etaav, | ||
type(ocean_obc_type), optional, pointer | OBC, | ||
type(bt_cont_type), optional, pointer | BT_cont, | ||
real, dimension(:,:), optional, pointer | eta_PF_start, | ||
real, dimension(:,:), optional, pointer | taux_bot, | ||
real, dimension(:,:), optional, pointer | tauy_bot, | ||
real, dimension(:,:,:), optional, pointer | uh0, | ||
real, dimension(:,:,:), optional, pointer | vh0, | ||
real, dimension(:,:,:), optional, pointer | u_uh0, | ||
real, dimension(:,:,:), optional, pointer | 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.
[in,out] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | u_in | The initial (3-D) zonal velocity, in m s-1. |
[in] | v_in | The initial (3-D) meridional velocity, in m s-1. |
[in] | eta_in | The initial barotropic free surface height anomaly or column mass anomaly, in H (m or kg m-2). |
[in] | dt | The time increment to integrate over. |
[in] | bc_accel_u | The zonal baroclinic accelerations, in m s-2. |
[in] | bc_accel_v | The meridional baroclinic accelerations, in m s-2. |
[in] | fluxes | A structure containing pointers to any possible forcing fields. Unused fields have NULL ptrs. |
[in] | pbce | The baroclinic pressure anomaly in each layer due to free surface height anomalies, in m2 H-1 s-2. |
[in] | eta_pf_in | The 2-D eta field (either SSH anomaly or column mass anomaly) that was used to calculate the input pressure gradient accelerations (or its final value if eta_PF_start is provided, in m or kg m-2. Note: eta_in, pbce, and eta_PF_in must have up-to-date values in the first point of their halos. |
[in] | u_cor | The (3-D) zonal-velocities used to calculate the Coriolis terms in bc_accel_u, in m s-1. |
[in] | v_cor | Ditto for meridonal bc_accel_v. |
[out] | accel_layer_u | The zonal acceleration of each layer due to the barotropic calculation, in m s-2. |
[out] | accel_layer_v | The meridional acceleration of each layer due to the barotropic calculation, in m s-2. |
[out] | eta_out | The final barotropic free surface height anomaly or column mass anomaly, in m or kg m-2. |
[out] | uhbtav | the barotropic zonal volume or mass fluxes averaged through the barotropic steps, in m3 s-1 or kg s-1. |
[out] | vhbtav | the barotropic meridional volume or mass fluxes averaged through the barotropic steps, in m3 s-1 or kg s-1. |
cs | The control structure returned by a previous call to barotropic_init. | |
[in] | visc_rem_u | Both the fraction of the momentum originally in a layer that remains after a time-step of viscosity, and the fraction of a time-step's worth of a barotropic acceleration that a layer experiences after viscosity is applied, in the zonal direction. Nondimensional between 0 (at the bottom) and 1 (far above the bottom). |
[in] | visc_rem_v | Ditto for meridional direction. |
[out] | etaav | The free surface height or column mass averaged over the barotropic integration, in m or kg m-2. |
obc | The open boundary condition structure. | |
bt_cont | A structure with elements that describe the effective open face areas as a function of barotropic flow. | |
eta_pf_start | The eta field consistent with the pressure gradient at the start of the barotropic stepping, in m or kg m-2. | |
taux_bot | The zonal bottom frictional stress from ocean to the seafloor, in Pa. | |
tauy_bot | The meridional bottom frictional stress from ocean to the seafloor, in Pa. |
Definition at line 413 of file MOM_barotropic.F90.
References adjust_local_bt_cont_types(), apply_eta_obcs(), apply_velocity_obcs(), bt_cont_to_face_areas(), mom_domains::complete_group_pass(), mom_diag_mediator::enable_averaging(), find_face_areas(), find_uhbt(), find_vhbt(), id_clock_calc, id_clock_calc_post, id_clock_calc_pre, id_clock_pass_post, id_clock_pass_pre, id_clock_pass_step, mom_error_handler::is_root_pe(), mom_error_handler::mom_error(), mom_error_handler::mom_mesg(), mom_open_boundary::obc_direction_n, mom_open_boundary::obc_direction_s, set_local_bt_cont_types(), set_up_bt_obc(), mom_domains::start_group_pass(), swap(), and mom_tidal_forcing::tidal_forcing_sensitivity().
|
private |
Clean up the BT_OBC memory.
[in,out] | bt_obc | A structure with the private barotropic arrays related to the open boundary conditions, set by set_up_BT_OBC. |
Definition at line 2891 of file MOM_barotropic.F90.
Referenced by barotropic_end().
|
private |
This subroutine determines the open face areas of cells for calculating the barotropic transport.
[out] | datu | The open zonal face area, in H m (m2 or kg m-1). |
[out] | datv | The open meridional face area, in H m (m2 or kg m-1). |
[in] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
cs | The control structure returned by a previous call to barotropic_init. | |
[in] | eta | The barotropic free surface height anomaly or column mass anomaly, in H (m or kg m-2). |
[in] | halo | The halo size to use, default = 1. |
[in] | add_max | A value to add to the maximum depth (used to overestimate the external wave speed) in m. |
Definition at line 3678 of file MOM_barotropic.F90.
Referenced by barotropic_init(), btstep(), and set_dtbt().
|
private |
The function find_uhbt determines the zonal transport for a given velocity.
[in] | u | The local zonal velocity, in m s-1 |
Definition at line 3187 of file MOM_barotropic.F90.
Referenced by apply_velocity_obcs(), and btstep().
|
private |
The function find_vhbt determines the meridional transport for a given velocity.
[in] | v | The local meridional velocity, in m s-1 |
Definition at line 3298 of file MOM_barotropic.F90.
Referenced by apply_velocity_obcs(), and btstep().
subroutine, public mom_barotropic::register_barotropic_restarts | ( | type(hor_index_type), intent(in) | HI, |
type(verticalgrid_type), intent(in) | GV, | ||
type(param_file_type), intent(in) | param_file, | ||
type(barotropic_cs), pointer | CS, | ||
type(mom_restart_cs), pointer | 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.
[in] | hi | A horizontal index type structure. |
[in] | param_file | A structure to parse for run-time parameters. |
cs | A pointer that is set to point to the control structure for this module. | |
[in] | gv | The ocean's vertical grid structure. |
restart_cs | A pointer to the restart control structure. |
Definition at line 4486 of file MOM_barotropic.F90.
References mom_error_handler::mom_error(), and mom_io::var_desc().
subroutine, public mom_barotropic::set_dtbt | ( | type(ocean_grid_type), intent(inout) | G, |
type(verticalgrid_type), intent(in) | GV, | ||
type(barotropic_cs), pointer | CS, | ||
real, dimension(szi_(g),szj_(g)), intent(in), optional | eta, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in), optional | pbce, | ||
type(bt_cont_type), optional, pointer | BT_cont, | ||
real, intent(in), optional | gtot_est, | ||
real, intent(in), optional | SSH_add | ||
) |
This subroutine automatically determines an optimal value for dtbt based on some state of the ocean.
[in,out] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
cs | Barotropic control structure. | |
[in] | eta | The barotropic free surface height anomaly or column mass anomaly, in H. |
[in] | pbce | The baroclinic pressure anomaly in each layer due to free surface height anomalies, in m2 H-1 s-2. |
bt_cont | A structure with elements that describe the effective open face areas as a function of barotropic flow. | |
[in] | gtot_est | An estimate of the total gravitational acceleration, in m s-2. |
[in] | ssh_add | An additional contribution to SSH to provide a margin of error when calculating the external wave speed, in m. |
Definition at line 2213 of file MOM_barotropic.F90.
References bt_cont_to_face_areas(), find_face_areas(), id_clock_sync, mom_error_handler::mom_error(), and mom_tidal_forcing::tidal_forcing_sensitivity().
Referenced by barotropic_init(), and mom_dynamics_split_rk2::step_mom_dyn_split_rk2().
|
private |
This subroutine sets up reordered versions of the BT_cont type in the local_BT_cont types, which have wide halos properly filled in.
[in,out] | bt_cont | The BT_cont_type input to the barotropic solver. |
[in] | ms | A type that describes the memory sizes of the argument arrays. |
[out] | btcl_u | A structure with the u information from BT_cont. |
[out] | btcl_v | A structure with the v information from BT_cont. |
[in] | g | The ocean's grid structure. |
[in,out] | bt_domain | The domain to use for updating the halos of wide arrays. |
[in] | halo | The extra halo size to use here. |
Definition at line 3410 of file MOM_barotropic.F90.
References id_clock_calc_pre, id_clock_pass_pre, and swap().
Referenced by btstep().
|
private |
This subroutine sets up the private structure used to apply the open boundary conditions, as developed by Mehmet Ilicak.
obc | An associated pointer to an OBC type. | |
[in] | ms | A type that describes the memory sizes of the argument arrays. |
[in] | eta | The barotropic free surface height anomaly or column mass anomaly, in m or kg m-2. |
[in,out] | bt_obc | A structure with the private barotropic arrays related to the open boundary conditions, set by set_up_BT_OBC. |
[in,out] | g | The ocean's grid structure. |
[in] | gv | The ocean's vertical grid structure. |
[in] | halo | The extra halo size to use here. |
[in] | use_bt_cont | If true, use the BT_cont_types to calculate transports. |
[in] | datu | A fixed estimate of the face areas at u points. |
[in] | datv | A fixed estimate of the face areas at u points. |
[in] | btcl_u | Structure of information used for a dynamic estimate of the face areas at u-points. |
[in] | btcl_v | Structure of information used for a dynamic estimate of the face areas at v-points. |
Definition at line 2728 of file MOM_barotropic.F90.
References mom_error_handler::mom_error(), mom_open_boundary::obc_direction_n, mom_open_boundary::obc_direction_s, uhbt_to_ubt(), and vhbt_to_vbt().
Referenced by btstep().
|
private |
Definition at line 3670 of file MOM_barotropic.F90.
Referenced by btstep(), and set_local_bt_cont_types().
|
private |
This function inverts the transport function to determine the barotopic velocity that is consistent with a given transport.
[in] | uhbt | The barotropic zonal transport that should be inverted for, in units of H m2 s-1. |
[in] | btc | A structure containing various fields that allow the barotropic transports to be calculated consistently with the layers' continuity equations. |
[in] | guess | A guess at what ubt will be. The result is not allowed to be dramatically larger than guess. |
Definition at line 3207 of file MOM_barotropic.F90.
Referenced by set_up_bt_obc().
|
private |
This function inverts the transport function to determine the barotopic velocity that is consistent with a given transport.
[in] | vhbt | The barotropic meridional transport that should be inverted for, in units of H m2 s-1. |
[in] | btc | A structure containing various fields that allow the barotropic transports to be calculated consistently with the layers' continuity equations. |
[in] | guess | A guess at what vbt will be. The result is not allowed to be dramatically larger than guess. |
Definition at line 3318 of file MOM_barotropic.F90.
Referenced by set_up_bt_obc().
|
private |
Definition at line 390 of file MOM_barotropic.F90.
Referenced by barotropic_init(), and btcalc().
|
private |
Definition at line 396 of file MOM_barotropic.F90.
Referenced by barotropic_init().
|
private |
Definition at line 397 of file MOM_barotropic.F90.
Referenced by barotropic_init().
|
private |
Definition at line 392 of file MOM_barotropic.F90.
Referenced by barotropic_init().
|
private |
Definition at line 389 of file MOM_barotropic.F90.
Referenced by barotropic_init(), and btcalc().
|
private |
Definition at line 395 of file MOM_barotropic.F90.
Referenced by barotropic_init().
|
private |
Definition at line 391 of file MOM_barotropic.F90.
Referenced by barotropic_init(), and btcalc().
|
private |
Definition at line 393 of file MOM_barotropic.F90.
|
private |
Definition at line 394 of file MOM_barotropic.F90.
Referenced by barotropic_init().
|
private |
Definition at line 384 of file MOM_barotropic.F90.
Referenced by barotropic_init(), and btstep().
|
private |
Definition at line 385 of file MOM_barotropic.F90.
Referenced by barotropic_init(), and btstep().
|
private |
Definition at line 385 of file MOM_barotropic.F90.
Referenced by barotropic_init(), btstep(), and set_local_bt_cont_types().
|
private |
Definition at line 386 of file MOM_barotropic.F90.
Referenced by barotropic_init(), and btstep().
|
private |
Definition at line 386 of file MOM_barotropic.F90.
Referenced by barotropic_init(), btstep(), and set_local_bt_cont_types().
|
private |
Definition at line 386 of file MOM_barotropic.F90.
Referenced by barotropic_init(), and btstep().
|
private |
Definition at line 384 of file MOM_barotropic.F90.
Referenced by barotropic_init(), and set_dtbt().