PUBLIC INTERFACE ~ PUBLIC ROUTINES ~ NAMELIST

Module ocean_obc_barotrop_mod

Contact:  Martin Schmidt Mike Herzfeld Zhi Liang Matthew Harrison
Reviewers:  Stephen Griffies
Change History: WebCVS Log


OVERVIEW

Open Boundary condition for MOM.

This module can extrapolate data on the open lateral boundaries for MOM. Tracer and surface height are extrapolated on the boundary by using implicit radiation boundary conditions, velocities are calculated on the boundary from a linear equation (omitted advection equation). The gradient of each field is supposed to be zero between boundary points and the first points accross the boundary. This scheme has been tested only with the following vertical coordinates: vertical_coordinate=='geopotential' vertical_coordinate=='zstar' Notably, there is no OBC prescription for pressure coordinates.


OTHER MODULES USED

           constants_mod
data_override_mod
diag_manager_mod
fms_mod
fms_io_mod
mpp_io_mod
mpp_domains_mod
mpp_mod
time_interp_external_mod
time_manager_mod
tracer_manager_mod
ocean_util_mod
ocean_domains_mod
ocean_parameters_mod
ocean_types_mod

PUBLIC INTERFACE

obc_update_boundary:
obc_zero_boundary:
ocean_obc_barotrop_init:
:
ocean_obc_prepare:
ocean_obc_adjust_divud:
ocean_obc_damp_newton:
ocean_obc_ud:
ocean_obc_barotropic:
ocean_obc_restart:
ocean_obc_end:
phase_speed_IOW:
phase_speed_ORLANS:
phase_speed_GRAVTY:
phase_speed_MILLER:
phase_speed_RAYMND:
boundary_average:
check_eta_OBC:
mpp_update_domains_obc:


PUBLIC ROUTINES

  1. obc_update_boundary


    DESCRIPTION
    update field on the halo points at the global boundaries.


    INPUT/OUTPUT
    field    field to be update on the boundary

  2. obc_zero_boundary


    DESCRIPTION
    set field at open boundaries to zero.


    INPUT/OUTPUT
    field    field to be set to zero on the boundary

  3. ocean_obc_barotrop_init

      subroutine ocean_obc_barotrop_init(have_obc, Time, Time_steps, Domain, Grid, Ocean_options,   &
                               use_legacy_barotropic_halos, debug)
    DESCRIPTION
    Allocates space and initializes a derived-type variable that contains domain decompostion and grid information.


    INPUT
    dtts, dtuv, dtbt, dteta   
       [real]
    Domain    A derived data type that contains domain information for MOM.
       [type(ocean_domain_type)]
    Grid    A derived data type that contains grid information for MOM.
       [type(ocean_grid_type)]

    INPUT/OUTPUT
    have_obc    logical variable to indicate if there is any open boundary condition. if true, open boudanry exists.
       [logical]

  4.   function ocean_obc_check_for_update()
    DESCRIPTION


  5. ocean_obc_prepare

      subroutine ocean_obc_prepare(Time, Ext_mode)
    DESCRIPTION
    Prepares OBC


  6. ocean_obc_adjust_divud

      subroutine ocean_obc_adjust_divud(divud)
    DESCRIPTION


    INPUT/OUTPUT
    divud   
       [real, dimension(isd:,jsd:)]

  7. ocean_obc_damp_newton

      subroutine ocean_obc_damp_newton(udrho_bt,forcing)
    DESCRIPTION


  8. ocean_obc_ud

      subroutine ocean_obc_ud(eta_t, udrho)
    DESCRIPTION


  9. ocean_obc_barotropic

      subroutine ocean_obc_barotropic(eta, taum1, tau, taup1, tstep)
    DESCRIPTION


    INPUT
    taum1, tau, taup1   
       [integer]

    INPUT/OUTPUT
    eta   
       [real, dimension(isd:,jsd:,:)]

  10. ocean_obc_restart

    DESCRIPTION
    Write out restart files registered through register_restart_file


  11. ocean_obc_end

    DESCRIPTION
    Destructor routine. Release memory.


    OUTPUT
    have_obc    Contains open boundary information
       [logical]

  12. phase_speed_IOW

    DESCRIPTION


  13. phase_speed_ORLANS

    DESCRIPTION


  14. phase_speed_GRAVTY

    DESCRIPTION


  15. phase_speed_MILLER

    DESCRIPTION


  16. phase_speed_RAYMND

    DESCRIPTION


  17. boundary_average

    DESCRIPTION


  18. check_eta_OBC

    DESCRIPTION


  19. mpp_update_domains_obc

    DESCRIPTION



NAMELIST

&ocean_obc_nml

nobc
number of open boundary condition. Its value should be less than max_obc. Increase max_obc if needed.
[integer]
direction
open boundary direction. Each element value should be west, east, south or north.
[character(len=10), dimension(max_obc)]
is, ie, js, je
open boundary position.
[integer, dimension(max_obc)]
name
type of open bounday.
[character(len=32), dimension(max_obc)]
obc_nor
Normal velocity OBC
[character, dimension(max_obc)]
obc_tan
Tangential velocity OBC
[character, dimension(max_obc)]
obc_eta
Surface elevation OBC
[character, dimension(max_obc)]
obc_tra
Tracers OBC
[character, dimension(max_obc,max_prog_tracers)]
obc_mix
Vertical mixing coefficient OBC
[character, dimension(max_obc)]
obc_relax_eta
logical variable that decide whether relax eta or not. Default value is .false.
[logical, dimension(max_obc)]
obc_consider_convu
logical variable that decide whether to account for one component of convu within the boundary. The appropriate behavior depends on the model configuration. Default value is .false.
[logical, dimension(max_obc)]
obc_vert_advel_t
logical variable that decide whether to account for vertical advection of tracers at the boundary. The appropriate behavior depends on the model configuration. Default value is .false. (Currently inactive)
[logical, dimension(max_obc)]
obc_vert_advel_u
logical variable that decide whether to account for vertical advection of momentum at the boundary. The appropriate behavior depends on the model configuration. Default value is .false.
[logical, dimension(max_obc)]
obc_relax_eta_profile
logical variable that decide whether relax eta to a prescribed profile or not. Default value is .false. In this case only the average sea level is relaxed, the profile, hence the geostrophic current, is unchanged.
[logical, dimension(max_obc)]
obc_relax_tracer
logical variable that decide whether relax tracer or not. Default value is .false.
[logical, dimension(max_obc)]
obc_flow_relax
Integer variable specifying the flow relaxation zone (flow realxation of Martinsen and Engedahl (1987). Default value is 1.
[integer, dimension(max_obc)]
obc_consider_sources
Logical variable specifying if source and SGS terms of the normal tracer scheme are valid. Default value is .false..
[logical, dimension(max_obc)]
obc_tracer_no_inflow
logical variable that decide whether apply orlanski obc on tracer or not. Default value is .false.
[logical, dimension(max_obc)]
ctrop_max
Maximum value to clip diagnosed barotropic phase speed in terms of sqrt(gH). Should be about 1.
[real, dimension(max_obc)]
ctrop_min
Minimum value to diagnosed barotropic phase speed in terms of sqrt(gH). Should be about 0. Default is 0.1.
[real, dimension(max_obc)]
ctrop_inc
value to be set for barotropic phase speed if incoming waves are diagnosed. (in terms of sqrt(gH)) Should be about 0. Default is 0.
[real, dimension(max_obc)]
rel_coef_eta_in
Relaxation coefficient to be used for incoming wave situation.
[real, dimension(max_obc)]
rel_coef_eta_out
Relaxation coefficient to be used for outgoing wave situation. Should be smaller then or equal to rel_coef_eta_in.
[real, dimension(max_obc)]
filename_eta
Filename to read sea level data.
[character, dimension(max_obc)]
fieldname_eta
Fieldname to read sea level data.
[character, dimension(max_obc)]
rel_eta_pnts
Relax sea level at a stripe of rel_eta_pnts. Default = 1.
[integer, dimension(max_obc)]
rel_coef_tracer_in
Relaxation coefficient to be used for inflow situation.
[real, dimension(max_obc,max_prog_tracers)]
rel_coef_tracer_out
Relaxation coefficient to be used for outflow situation. Should be smaller then or equal to rel_coef_tracer_in.
[real, dimension(max_obc,max_prog_tracers)]
rel_clin_pnts
Relax a tracer at a stripe of rel_clin_pnts. Default = 1.
[integer, dimension(max_obc,max_prog_tracers)]
filename_tracer
Filename to read a tracer. It is allowed to put all data for a boundary in one file.
[character, dimension(max_obc,max_prog_tracers)]
fieldname_tracer
Fieldname of a tracer.
[character, dimension(max_obc,max_prog_tracers)]
obc_enhance_visc_back
logical variable that decide whether to enhance viscosity at the boundary. Default value is .false.
[logical, dimension(max_obc)]
obc_enhance_diff_back
logical variable that decide whether to enhance mixing at the boundary. Default value is .false.
[logical, dimension(max_obc)]
enh_fac_v
'Safety factor' applied to maximum stable viscosity at the boundary. Default = 0.9
[real, dimension(max_obc)]
enh_fac_d
Factor applied to enhance mixing at the boundary. Default = 1.
[real, dimension(max_obc)]
enh_pnts
Enhance viscosity and mixing at a stripe of enh_pnts decreasing with the distance from the boundary. Default = 1.
[integer, dimension(max_obc)]
debug_phase_speed
Includes the phase speed into the model output.
[logical]
debug_this_module
For debugging.
[logical]
nt
number of tracers to use open boundary condition.
[integer]


top