/* This input file provides the adjustable run-time parameters for version 6 of
   the Modular Ocean Model (MOM6), a numerical ocean model developed at NOAA-GFDL.
   Where appropriate, parameters use usually given in MKS units.

   This particular file is for the example in circle_obcs.

   This MOM_input file typically contains only the non-default values that are
   needed to reproduce this example.  A full list of parameters for this example
   can be found in the corresponding MOM_parameter_doc.all file which is
   generated by the model at run-time. */

REENTRANT_X = False             !   [Boolean] default = True
                                ! If true, the domain is zonally reentrant.
!SYMMETRIC_MEMORY_ = True       !   [Boolean]
                                ! If defined, the velocity point data domain includes
                                ! every face of the thickness points. In other words,
                                ! some arrays are larger than others, depending on where
                                ! they are on the staggered grid.  Also, the starting
                                ! index of the velocity-point arrays is usually 0, not 1.
                                ! This can only be set at compile time.
!STATIC_MEMORY_ = False         !   [Boolean]
                                ! If STATIC_MEMORY_ is defined, the principle variables
                                ! will have sizes that are statically determined at
                                ! compile time.  Otherwise the sizes are not determined
                                ! until run time. The STATIC option is substantially
                                ! faster, but does not allow the PE count to be changed
                                ! at run time.  This can only be set at compile time.
NIHALO = 4                      ! default = 2
                                ! The number of halo points on each side in the
                                ! x-direction.  With STATIC_MEMORY_ this is set as NIHALO_
                                ! in MOM_memory.h at compile time; without STATIC_MEMORY_
                                ! the default is NIHALO_ in MOM_memory.h (if defined) or 2.
NJHALO = 4                      ! default = 2
                                ! The number of halo points on each side in the
                                ! y-direction.  With STATIC_MEMORY_ this is set as NJHALO_
                                ! in MOM_memory.h at compile time; without STATIC_MEMORY_
                                ! the default is NJHALO_ in MOM_memory.h (if defined) or 2.
NIGLOBAL = 10                   !
                                ! The total number of thickness grid points in the
                                ! x-direction in the physical domain. With STATIC_MEMORY_
                                ! this is set in MOM_memory.h at compile time.
NJGLOBAL = 8                    !
                                ! The total number of thickness grid points in the
                                ! y-direction in the physical domain. With STATIC_MEMORY_
                                ! this is set in MOM_memory.h at compile time.
!NIPROC = 1                     !
                                ! The number of processors in the x-direction. With
                                ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time.
!NJPROC = 2                     !
                                ! The number of processors in the x-direction. With
                                ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time.
!LAYOUT = 1, 2                  !
                                ! The processor layout that was acutally used.
IO_LAYOUT = 1, 1                ! default = 0
                                ! The processor layout to be used, or 0,0 to automatically
                                ! set the io_layout to be the same as the layout.

! === module MOM_grid ===
! Parameters providing information about the vertical grid.
RHO_0 = 1031.0                  !   [kg m-3] default = 1035.0
                                ! The mean ocean density used with BOUSSINESQ true to
                                ! calculate accelerations and the mass for conservation
                                ! properties, or with BOUSSINSEQ false to convert some
                                ! parameters from vertical units of m to kg m-2.
NK = 10                         !   [nondim]
                                ! The number of model layers.

! === module MOM_verticalGrid ===
! Parameters providing information about the vertical grid.

! === module MOM ===
ENABLE_THERMODYNAMICS = False   !   [Boolean] default = True
                                ! If true, Temperature and salinity are used as state
                                ! variables.
USE_POROUS_BARRIER = False      !   [Boolean] default = False
                                ! If true, use porous barrier to constrain the widths and face areas at the
                                ! edges of the grid cells.
DT = 120.0                      !   [s]
                                ! The (baroclinic) dynamics time step.  The time-step that
                                ! is actually used will be an integer fraction of the
                                ! forcing time-step (DT_FORCING in ocean-only mode or the
                                ! coupling timestep in coupled mode.)
DTBT_RESET_PERIOD = -1.0        !   [s] default = 120.0
                                ! The period between recalculations of DTBT (if DTBT <= 0).
                                ! If DTBT_RESET_PERIOD is negative, DTBT is set based
                                ! only on information available at initialization.  If
                                ! dynamic, DTBT will be set at least every forcing time
                                ! step, and if 0, every dynamics time step.  The default is
                                ! set by DT_THERM.  This is only used if SPLIT is true.
SAVE_INITIAL_CONDS = True       !   [Boolean] default = False
                                ! If true, write the initial conditions to a file given
                                ! by IC_OUTPUT_FILE.
IC_OUTPUT_FILE = "GOLD_IC"      ! default = "MOM_IC"
                                ! The file into which to write the initial conditions.

! === module MOM_tracer_registry ===

! === module MOM_tracer_flow_control ===
USE_DOME_TRACER = True          !   [Boolean] default = False
                                ! If true, use the DOME_tracer tracer package.

! === module DOME_tracer ===
INPUTDIR = "INPUT"              ! default = "."
                                ! The directory in which input files are found.
COORD_CONFIG = "layer_ref"      !
                                ! This specifies how layers are to be defined:
                                !     file - read coordinate information from the file
                                !       specified by (COORD_FILE).
                                !     linear - linear based on interfaces not layesrs.
                                !     ts_ref - use reference temperature and salinity
                                !     ts_range - use range of temperature and salinity
                                !       (T_REF and S_REF) to determine surface density
                                !       and GINT calculate internal densities.
                                !     gprime - use reference density (RHO_0) for surface
                                !       density and GINT calculate internal densities.
                                !     ts_profile - use temperature and salinity profiles
                                !       (read from COORD_FILE) to set layer densities.
                                !     USER - call a user modified routine.
LIGHTEST_DENSITY = 1030.0       !   [kg m-3] default = 1031.0
                                ! The reference potential density used for layer 1.

! === module MOM_grid_init ===
GRID_CONFIG = "cartesian"       !
                                ! A character string that determines the method for
                                ! defining the horizontal grid.  Current options are:
                                !     mosaic - read the grid from a mosaic (supergrid)
                                !              file set by GRID_FILE.
                                !     cartesian - use a (flat) Cartesian grid.
                                !     spherical - use a simple spherical grid.
                                !     mercator - use a Mercator spherical grid.
AXIS_UNITS = "k"                ! default = "degrees"
                                ! The units for the Cartesian axes. Valid entries are:
                                !     degrees - degrees of latitude and longitude
                                !     m - meters
                                !     k - kilometers
SOUTHLAT = 0.0                  !   [k]
                                ! The southern latitude of the domain or the equivalent
                                ! starting value for the y-axis.
LENLAT = 100.0                  !   [k]
                                ! The latitudinal or y-direction length of the domain.
LENLON = 100.0                  !   [k]
                                ! The longitudinal or x-direction length of the domain.
TOPO_CONFIG = "flat"            !
                                ! This specifies how bathymetry is specified:
                                !     file - read bathymetric information from the file
                                !       specified by (TOPO_FILE).
                                !     flat - flat bottom set to MAXIMUM_DEPTH.
                                !     bowl - an analytically specified bowl-shaped basin
                                !       ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH.
                                !     spoon - a similar shape to 'bowl', but with an vertical
                                !       wall at the southern face.
                                !     halfpipe - a zonally uniform channel with a half-sine
                                !       profile in the meridional direction.
                                !     benchmark - use the benchmark test case topography.
                                !     DOME - use a slope and channel configuration for the
                                !       DOME sill-overflow test case.
                                !     DOME2D - use a shelf and slope configuration for the
                                !       DOME2D gravity current/overflow test case.
                                !     seamount - Gaussian bump for spontaneous motion test case.
                                !     USER - call a user modified routine.
MINIMUM_DEPTH = 1.0             !   [m] default = 0.0
                                ! The minimum depth of the ocean.
MAXIMUM_DEPTH = 600.0           !   [m]
                                ! The maximum depth of the ocean.
! === module MOM_open_boundary ===
! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply, if any.
OBC_NUMBER_OF_SEGMENTS = 4      ! default = 0
                                ! The number of open boundary segments.
OBC_FREESLIP_VORTICITY = True   !   [Boolean] default = False
                                ! If true, sets the normal gradient of tangential velocity to
                                ! zero in the relative vorticity on open boundaries. This cannot
                                ! be true if OBC_ZERO_VORTICITY is True.
OBC_FREESLIP_STRAIN = True      !   [Boolean] default = False
                                ! If true, sets the normal gradient of tangential velocity to
                                ! zero in the strain use in the stress tensor on open boundaries. This cannot
                                ! be true if OBC_ZERO_STRAIN is True.
OBC_ZERO_BIHARMONIC = True      !   [Boolean] default = False
                                ! If true, zeros the Laplacian of flow on open boundaries in the biharmonic
                                ! viscosity term.
OBC_SEGMENT_001 = "J=N,I=N:0,FLATHER,ORLANSKI" !
                                ! Documentation needs to be dynamic?????
OBC_SEGMENT_002 = "J=0,I=0:N,FLATHER,ORLANSKI" !
                                ! Documentation needs to be dynamic?????
OBC_SEGMENT_003 = "I=N,J=0:N,FLATHER,ORLANSKI" !
                                ! Documentation needs to be dynamic?????
OBC_SEGMENT_004 = "I=0,J=N:0,FLATHER,ORLANSKI" !
                                ! Documentation needs to be dynamic?????
OBC_SEGMENT_001_DATA = "U=value:0.0,V=value:0.0,SSH=value:0.0"
OBC_SEGMENT_002_DATA = "U=value:0.0,V=value:0.0,SSH=value:0.0"
OBC_SEGMENT_003_DATA = "U=value:0.0,V=value:0.0,SSH=value:0.0"
OBC_SEGMENT_004_DATA = "U=value:0.0,V=value:0.0,SSH=value:0.0"

ROTATION = "beta"               ! default = "2omegasinlat"
                                ! This specifies how the Coriolis parameter is specified:
                                !     2omegasinlat - Use twice the planetary rotation rate
                                !       times the sine of latitude.
                                !     betaplane - Use a beta-plane or f-plane.
                                !     USER - call a user modified routine.
THICKNESS_CONFIG = "circle_obcs" !
                                ! A string that determines how the initial layer
                                ! thicknesses are specified for a new run:
                                !     file - read interface heights from the file specified
                                !     thickness_file - read thicknesses from the file specified
                                !       by (THICKNESS_FILE).
                                !     uniform - uniform thickness layers evenly distributed
                                !       between the surface and MAXIMUM_DEPTH.
                                !     DOME - use a slope and channel configuration for the
                                !       DOME sill-overflow test case.
                                !     benchmark - use the benchmark test case thicknesses.
                                !     search - search a density profile for the interface
                                !       densities. This is not yet implemented.
                                !     circle_obcs - the circle_obcs test case is used.
                                !     DOME2D - 2D version of DOME initialization.
                                !     adjustment2d - TBD AJA.
                                !     sloshing - TBD AJA.
                                !     seamount - TBD AJA.
                                !     USER - call a user modified routine.

! === module circle_obcs_initialize_thickness ===
DISK_RADIUS = 24.0              !   [k]
                                ! The radius of the initially elevated disk in the
                                ! circle_obcs test case.

! === module MOM_MEKE ===
CDRAG = 0.002                   !   [nondim] default = 0.003
                                ! CDRAG is the drag coefficient relating the magnitude of
                                ! the velocity field to the bottom stress.

! === module MOM_lateral_mixing_coeffs ===
BOUND_CORIOLIS = True           !   [Boolean] default = False
                                ! If true, the Coriolis terms at u-points are bounded by
                                ! the four estimates of (f+rv)v from the four neighboring
                                ! v-points, and similarly at v-points.  This option would
                                ! have no effect on the SADOURNY Coriolis scheme if it
                                ! were possible to use centered difference thickness fluxes.

! === module MOM_hor_visc ===
LAPLACIAN = True                !   [Boolean] default = False
                                ! If true, use a Laplacian horizontal viscosity.
KH = 25.0                       !   [m2 s-1] default = 0.0
                                ! The background Laplacian horizontal viscosity.
KH_VEL_SCALE = 0.003            !   [m s-1] default = 0.0
                                ! The velocity scale which is multiplied by the grid
                                ! spacing to calculate the Laplacian viscosity.
                                ! The final viscosity is the largest of this scaled
                                ! viscosity, the Smagorinsky viscosity and KH.
SMAGORINSKY_KH = True           !   [Boolean] default = False
                                ! If true, use a Smagorinsky nonlinear eddy viscosity.
SMAG_LAP_CONST = 0.15           !   [nondim] default = 0.0
                                ! The nondimensional Laplacian Smagorinsky constant,
                                ! often 0.15.
AH_VEL_SCALE = 0.003            !   [m s-1] default = 0.0
                                ! The velocity scale which is multiplied by the cube of
                                ! the grid spacing to calculate the Laplacian viscosity.
                                ! The final viscosity is the largest of this scaled
                                ! viscosity, the Smagorinsky viscosity and AH.
SMAGORINSKY_AH = True           !   [Boolean] default = False
                                ! If true, use a biharmonic Smagorinsky nonlinear eddy
                                ! viscosity.
SMAG_BI_CONST = 0.06            !   [nondim] default = 0.0
                                ! The nondimensional biharmonic Smagorinsky constant,
                                ! typically 0.015 - 0.06.

! === module MOM_vert_friction ===
DIRECT_STRESS = True            !   [Boolean] default = False
                                ! If true, the wind stress is distributed over the
                                ! topmost HMIX_STRESS of fluid (like in HYCOM), and KVML
                                ! may be set to a very small value.
U_TRUNC_FILE = "U_velocity_truncations" ! default = ""
                                ! The absolute path to a file into which the accelerations
                                ! leading to zonal velocity truncations are written.
                                ! Undefine this for efficiency if this diagnostic is not
                                ! needed.
V_TRUNC_FILE = "V_velocity_truncations" ! default = ""
                                ! The absolute path to a file into which the accelerations
                                ! leading to meridional velocity truncations are written.
                                ! Undefine this for efficiency if this diagnostic is not
                                ! needed.
HARMONIC_VISC = True            !   [Boolean] default = False
                                ! If true, use the harmonic mean thicknesses for
                                ! calculating the vertical viscosity.
HMIX_FIXED = 20.0               !   [m]
                                ! The prescribed depth over which the near-surface
                                ! viscosity and diffusivity are elevated when the bulk
                                ! mixed layer is not used.
KV = 1.0E-04                    !   [m2 s-1]
                                ! The background kinematic viscosity in the interior.
                                ! The molecular value, ~1e-6 m2 s-1, may be used.
KV_ML_INVZ2 = 0.01              !   [m2 s-1] default = 0.0
                                ! An extra kinematic viscosity in a mixed layer of thickness HMIX_FIXED, with
                                ! the actual viscosity scaling as 1/(z*HMIX_FIXED)^2, where z is the distance
                                ! from the surface, to allow for finite wind stresses to be transmitted through.
HBBL = 10.0                     !   [m]
                                ! The thickness of a bottom boundary layer with a
                                ! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or
                                ! the thickness over which near-bottom velocities are
                                ! averaged for the drag law if BOTTOMDRAGLAW is defined
                                ! but LINEAR_DRAG is not.
MAXVEL = 10.0                   !   [m s-1] default = 3.0E+08
                                ! The maximum velocity allowed before the velocity
                                ! components are truncated.

! === module MOM_PointAccel ===

! === module MOM_set_visc ===
USE_JACKSON_PARAM = True        !   [Boolean] default = False
                                ! If true, use the Jackson-Hallberg-Legg (JPO 2008)
                                ! shear mixing parameterization.
DRAG_BG_VEL = 0.05              !   [m s-1] default = 0.0
                                ! DRAG_BG_VEL is either the assumed bottom velocity (with
                                ! LINEAR_DRAG) or an unresolved  velocity that is
                                ! combined with the resolved velocity to estimate the
                                ! velocity magnitude.  DRAG_BG_VEL is only used when
                                ! BOTTOMDRAGLAW is defined.
BBL_THICK_MIN = 0.1             !   [m] default = 0.0
                                ! The minimum bottom boundary layer thickness that can be
                                ! used with BOTTOMDRAGLAW. This might be
                                ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum
                                ! near-bottom viscosity.

! === module MOM_barotropic ===
BOUND_BT_CORRECTION = True      !   [Boolean] default = False
                                ! If true, the corrective pseudo mass-fluxes into the
                                ! barotropic solver are limited to values that require
                                ! less than 0.1*MAXVEL to be accommodated.
!BT x-halo = 0                  !
                                ! The barotropic x-halo size that is actually used.
!BT y-halo = 0                  !
                                ! The barotropic y-halo size that is actually used.
NONLINEAR_BT_CONTINUITY = True  !   [Boolean] default = False
                                ! If true, use nonlinear transports in the barotropic
                                ! continuity equation.  This does not apply if
                                ! USE_BT_CONT_TYPE is true.
BT_PROJECT_VELOCITY = True      !   [Boolean] default = False
                                ! If true, step the barotropic velocity first and project
                                ! out the velocity tendancy by 1+BEBT when calculating the
                                ! transport.  The default (false) is to use a predictor
                                ! continuity step to find the pressure field, and then
                                ! to do a corrector continuity step using a weighted
                                ! average of the old and new velocities, with weights
                                ! of (1-BEBT) and BEBT.
BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "HYBRID"
                                ! A string describing the scheme that is used to set the
                                ! open face areas used for barotropic transport and the
                                ! relative weights of the accelerations. Valid values are:
                                !    ARITHMETIC - arithmetic mean layer thicknesses
                                !    HARMONIC - harmonic mean layer thicknesses
                                !    HYBRID (the default) - use arithmetic means for
                                !       layers above the shallowest bottom, the harmonic
                                !       mean for layers below, and a weighted average for
                                !       layers that straddle that depth
                                !    FROM_BT_CONT - use the average thicknesses kept
                                !       in the h_u and h_v fields of the BT_cont_type
BT_STRONG_DRAG = False          !   [Boolean] default = True
                                ! If true, use a stronger estimate of the retarding
                                ! effects of strong bottom drag, by making it implicit
                                ! with the barotropic time-step instead of implicit with
                                ! the baroclinic time-step and dividing by the number of
                                ! barotropic steps.
BEBT = 0.2                      !   [nondim] default = 0.1
                                ! BEBT determines whether the barotropic time stepping
                                ! uses the forward-backward time-stepping scheme or a
                                ! backward Euler scheme. BEBT is valid in the range from
                                ! 0 (for a forward-backward treatment of nonrotating
                                ! gravity waves) to 1 (for a backward Euler treatment).
                                ! In practice, BEBT must be greater than about 0.05.
DTBT = -0.95                    !   [s or nondim] default = -0.98
                                ! The barotropic time step, in s. DTBT is only used with
                                ! the split explicit time stepping. To set the time step
                                ! automatically based the maximum stable value use 0, or
                                ! a negative value gives the fraction of the stable value.
                                ! Setting DTBT to 0 is the same as setting it to -0.98.
                                ! The value of DTBT that will actually be used is an
                                ! integer fraction of DT, rounding down.

! === module MOM_thickness_diffuse ===

! === module MOM_diabatic_driver ===
! The following parameters are used for diabatic processes.
KD = 1.0E-04                    !   [m2 s-1]
                                ! The background diapycnal diffusivity of density in the
                                ! interior. Zero or the molecular value, ~1e-7 m2 s-1,
                                ! may be used.

! === module MOM_KPP ===
! This is the MOM wrapper to CVmix:KPP
! See http://code.google.com/p/cvmix/
KPP%
%KPP

! === module MOM_diffConvection ===
! This module implements enhanced diffusivity as a
! function of static stability, N^2.
CONVECTION%
%CONVECTION

! === module MOM_entrain_diffusive ===
MAX_ENT_IT = 20                 ! default = 5
                                ! The maximum number of iterations that may be used to
                                ! calculate the interior diapycnal entrainment.
TOLERANCE_ENT = 1.0E-05         !   [m] default = 1.095445115010332E-05
                                ! The tolerance with which to solve for entrainment values.

! === module MOM_kappa_shear ===
MAX_RINO_IT = 25                !   [nondim] default = 50
                                ! The maximum number of iterations that may be used to
                                ! estimate the Richardson number driven mixing.

! === module MOM_regularize_layers ===

! === module MOM_tracer_advect ===

! === module MOM_tracer_hor_diff ===

! === module MOM_surface_forcing ===
VARIABLE_WINDS = False          !   [Boolean] default = True
                                ! If true, the winds vary in time after the initialization.
VARIABLE_BUOYFORCE = False      !   [Boolean] default = True
                                ! If true, the buoyancy forcing varies in time after the
                                ! initialization of the model.
BUOY_CONFIG = "zero"            !
                                ! The character string that indicates how buoyancy forcing
                                ! is specified. Valid options include (file), (zero),
                                ! (linear), (USER), and (NONE).
WIND_CONFIG = "zero"            !
                                ! The character string that indicates how wind forcing
                                ! is specified. Valid options include (file), (2gyre),
                                ! (1gyre), (gyres), (zero), and (USER).

! === module MOM_sum_output ===
MAXTRUNC = 10                   !   [truncations save_interval-1] default = 0
                                ! The run will be stopped, and the day set to a very
                                ! large value if the velocity is truncated more than
                                ! MAXTRUNC times between energy saves.  Set MAXTRUNC to 0
                                ! to stop if there is any truncation of velocities.
DATE_STAMPED_STDOUT = False     !   [Boolean] default = True
                                ! If true, use dates (not times) in messages to stdout
TIMEUNIT = 120.0               !   [s] default = 8.64E+04
                                ! The time unit in seconds a number of input fields
MAXCPU = 2.88E+04               !   [wall-clock seconds] default = -1.0
                                ! The maximum amount of cpu time per processor for which
                                ! MOM should run before saving a restart file and
                                ! quitting with a return value that indicates that a
                                ! further run is required to complete the simulation.
                                ! If automatic restarts are not desired, use a negative
                                ! value for MAXCPU.  MAXCPU has units of wall-clock
                                ! seconds, so the actual CPU time used is larger by a
                                ! factor of the number of processors used.

! === module MOM_main (MOM_driver) ===
DT_FORCING = 360.0              !   [s] default = 120.0
                                ! The time step for changing forcing, coupling with other
                                ! components, or potentially writing certain diagnostics.
                                ! The default value is given by DT.
DAYMAX = 6.0                    !   [hours]
                                ! The final time of the whole simulation, in units of
                                ! TIMEUNIT seconds.  This also sets the potential end
                                ! time of the present run segment if the end time is
                                ! not set (as it was here) via ocean_solo_nml in input.nml.
RESTART_CONTROL = 3             ! default = 1
                                ! An integer whose bits encode which restart files are
                                ! written. Add 2 (bit 1) for a time-stamped file, and odd
                                ! (bit 0) for a non-time-stamped file. A non-time-stamped
                                ! restart file is saved at the end of the run segment
                                ! for any non-negative value.
RESTINT = 10.0                  !   [hours] default = 0.0
                                ! The interval between saves of the restart file in units
                                ! of TIMEUNIT.  Use 0 (the default) to not save
                                ! incremental restart files at all.
ENERGYSAVEDAYS = 3.0            !   [hours] default = 1.44E+04
                                ! The interval in units of TIMEUNIT between saves of the
                                ! energies of the run and other globally summed diagnostics.
DIAG_AS_CHKSUM = True
DEBUG = True
OBC_RADIATION_MAX = 10.0        !   [nondim] default = 10.0
GRID_ROTATION_ANGLE_BUGS = True !   [Boolean] default = True
USE_GM_WORK_BUG = True          !   [Boolean] default = True
USE_LAND_MASK_FOR_HVISC = False !   [Boolean] default = False
KAPPA_SHEAR_ITER_BUG = True     !   [Boolean] default = True
KAPPA_SHEAR_ALL_LAYER_TKE_BUG = True !   [Boolean] default = True
GUST_CONST = 0.02               !   [Pa] default = 0.02
FIX_USTAR_GUSTLESS_BUG = False  !   [Boolean] default = False
