Home Contact Us Site Map  
 
       
    next up previous contents
Next: 6.3.2 RBCS Package Up: 6.3 General purpose numerical Previous: 6.3 General purpose numerical   Contents

Subsections

6.3.1 OBCS: Open boundary conditions for regional modeling

Authors: Alistair Adcroft, Patrick Heimbach, Samar Katiwala, Martin Losch


6.3.1.1 Introduction


6.3.1.2 OBCS configuration and compiling

As with all MITgcm packages, OBCS can be turned on or off at compile time

  • using the packages.conf file by adding obcs to it,
  • or using genmake2 adding -enable=obcs or -disable=obcs switches
  • Required packages and CPP options:
    To alternatives are available for prescribing open boundary values, which differ in the way how OB's are treated in time: A simple time-management (e.g. constant in time, or cyclic with fixed fequency) is provided through S/R obcs_external_fields_load. More sophisticated ``real-time'' (i.e. calendar time) management is available through obcs_prescribe_read. The latter case requires packages cal and exf to be enabled.
(see also Section 3.4).

Parts of the OBCS code can be enabled or disabled at compile time via CPP preprocessor flags. These options are set in OBCS_OPTIONS.h. Table 6.3.1.2 summarizes them.


Table 6.2:  
CPP option Description
ALLOW_OBCS_NORTH enable Northern OB
ALLOW_OBCS_SOUTH enable Southern OB
ALLOW_OBCS_EAST enable Eastern OB
ALLOW_OBCS_WEST enable Western OB
ALLOW_OBCS_PRESCRIBE enable code for prescribing OB's
ALLOW_OBCS_SPONGE enable sponge layer code
ALLOW_OBCS_BALANCE enable code for balancing transports through OB's
ALLOW_ORLANSKI enable Orlanski radiation conditions at OB's



6.3.1.3 Run-time parameters

Run-time parameters are set in files data.pkg, data.obcs, and data.exf if ``real-time'' prescription is requested (i.e. package exf enabled). These parameter files are read in S/R packages_readparms.F, obcs_readparms.F, and exf_readparms.F, respectively. Run-time parameters may be broken into 3 categories: (i) switching on/off the package at runtime, (ii) OBCS package flags and parameters, (iii) additional timing flags in data.exf, if selected.

6.3.1.3.1 Enabling the package

 
The OBCS package is switched on at runtime by setting useOBCS = .TRUE. in data.pkg.

6.3.1.3.2 Package flags and parameters

 
Table 6.3 summarizes the runtime flags that are set in data.obcs, and their default values.


Table 6.3: pkg OBCS run-time parameters
Flag/parameter default Description
basic flags & parameters
OB_Jnorth 0 Nx-vector of J-indices (w.r.t. Ny) of Northern OB at each I-position (w.r.t. Nx)
OB_Jsouth 0 Nx-vector of J-indices (w.r.t. Ny) of Southern OB at each I-position (w.r.t. Nx)
OB_Ieast 0 Ny-vector of I-indices (w.r.t. Nx) of Eastern OB at each J-position (w.r.t. Ny)
OB_Iwest 0 Ny-vector of I-indices (w.r.t. Nx) of Western OB at each J-position (w.r.t. Ny)
useOBCSprescribe .FALSE.  
useOBCSsponge .FALSE.  
useOBCSbalance .FALSE.  
OBXyFile   file name of OB field
    X: N(orth), S(outh), E(ast), W(est)
    y: t(emperature), s(salinity), u(-velocity), v(-velocity)
Orlanski parameters
cvelTimeScale 2000 sec averaging period for phase speed
CMAX 0.45 m/s maximum allowable phase speed-CFL for AB-II
CFIX 0.8 m/s fixed boundary phase speed
useFixedCEast .FALSE.  
useFixedCWest .FALSE.  
Sponge-layer parameters
spongeThickness 0 sponge layer thickness (in # grid points)
Urelaxobcsinner 0 sec relaxation time scale at the innermost sponge layer point of a meridional OB
Vrelaxobcsinner 0 sec relaxation time scale at the innermost sponge layer point of a zonal OB
Urelaxobcsbound 0 sec relaxation time scale at the outermost sponge layer point of a meridional OB
Vrelaxobcsbound 0 sec relaxation time scale at the outermost sponge layer point of a zonal OB



6.3.1.4 Defining open boundary positions

There are four open boundaries (OBs), a Northern, Southern, Eastern, and Western. All OB locations are specified by their absolute meridional (Northern/Southern) or zonal (Eastern/Western) indices. Thus, for each zonal position $ i=1,\ldots,Nx$ a meridional index $ j$ specifies the Northern/Southern OB position, and for each meridional position $ j=1,\ldots,Ny$ , a zonal index $ i$ specifies the Eastern/Western OB position. For Northern/Southern OB this defines an $ Nx$ -dimensional ``row'' array $ \tt OB\_Jnorth(Ny)$ / $ \tt OB\_Jsouth(Ny)$ , and an $ Ny$ -dimenisonal ``column'' array $ \tt OB\_Ieast(Nx)$ / $ \tt OB\_Iwest(Nx)$ Positions determined in this way allows Northern/Southern OBs to be at variable $ j$ (or $ y$ ) positions, and Eastern/Western OBs at variable $ i$ (or $ x$ ) positions. Here, indices refer to tracer points on the C-grid. A zero (0) element in $ \tt OB\_I\ldots$ , $ \tt OB\_J\ldots$ means there is no corresponding OB in that column/row. For a Northern/Southern OB, the OB V point is to the South/North. For an Eastern/Western OB, the OB U point is to the West/East.

 For example
     OB_Jnorth(3)=34  means that:
          T( 3 ,34) is a an OB point
          U(3:4,34) is a an OB point
          V( 4 ,34) is a an OB point
 while
     OB_Jsouth(3)=1  means that:
          T( 3 ,1) is a an OB point
          U(3:4,1) is a an OB point
          V( 4 ,2) is a an OB point

For convenience, negative values for Jnorth/Ieast refer to points relative to the Northern/Eastern edges of the model eg. $ \tt OB\_Jnorth(3)=-1$ means that the point $ \tt (3,Ny)$ is a northern OB.

Add special comments for case #define NONLIN_FRSURF, see obcs_ini_fixed.F


6.3.1.5 Equations and key routines

6.3.1.5.1 OBCS_READPARMS:

 
Set OB positions through arrays OB_Jnorth(Ny), OB_Jsouth(Ny), OB_Ieast(Nx), OB_Iwest(Nx), and runtime flags (see Table 6.3).

6.3.1.5.2 OBCS_CALC:

 
Top-level routine for filling values to be applied at OB for $ T,S,U,V,\eta$ into corresponding ``slice'' arrays $ (x,z)$ , $ (y,z)$ for each OB: $ \tt OB[N/S/E/W][t/s/u/v]$ ; e.g. for salinity array at Southern OB, array name is $ \tt OBSt$ . Values filled are either
  • constant vertical $ T,S$ profiles as specified in file data (tRef(Nr), sRef(Nr)) with zero velocities $ U,V$ ,
  • $ T,S,U,V$ values determined via Orlanski radiation conditions (see below),
  • prescribed time-constant or time-varying fields (see below).

6.3.1.5.3 ORLANSKI

 
Orlanski radiation conditions [Orlanski, 1976]

6.3.1.5.4 OBCS_PRESCRIBE_READ

Setting OB fields and updates
 

6.3.1.5.5 OBCS_BALANCE

 
 

6.3.1.5.6 OBCS_APPLY_*:

 
 

6.3.1.5.7 OBCS_SPONGE

Setting sponge layer characteristics
 

6.3.1.5.8 OB's with nonlinear free surface

 
 


6.3.1.6 Flow chart

C     !CALLING SEQUENCE:
c ...


6.3.1.7 OBCS diagnostics

Diagnostics output is available via the diagnostics package (see Section 7.1). Available output fields are summarized in Table 6.3.1.7.


Table 6.4:  
\begin{table}\centering
{\footnotesize
\begin{verbatim}-----------------------...
...---------------------------------------------------\end{verbatim}
}\end{table}


6.3.1.8 Reference experiments

6.3.1.9 References


6.3.1.10 Experiments and tutorials that use obcs

  • Ocean experiment in exp4 verification directory.


next up previous contents
Next: 6.3.2 RBCS Package Up: 6.3 General purpose numerical Previous: 6.3 General purpose numerical   Contents
mitgcm-support@mitgcm.org
Copyright © 2006 Massachusetts Institute of Technology Last update 2011-01-09