|
|
|
Next: 6.3.2 RBCS Package
Up: 6.3 General purpose numerical
Previous: 6.3 General purpose numerical
Contents
Subsections
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.
The OBCS package is switched on at runtime by setting
useOBCS = .TRUE. in data.pkg.
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
a meridional index
specifies the Northern/Southern OB position,
and for each meridional position
, a zonal index
specifies the Eastern/Western OB position.
For Northern/Southern OB this defines an
-dimensional
``row'' array
/
,
and an
-dimenisonal
``column'' array
/
Positions determined in this way allows Northern/Southern
OBs to be at variable
(or
) positions, and Eastern/Western
OBs at variable
(or
) positions.
Here, indices refer to tracer points on the C-grid.
A zero (0) element in
,
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.
means that the point
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
Set OB positions through arrays
OB_Jnorth(Ny), OB_Jsouth(Ny), OB_Ieast(Nx), OB_Iwest(Nx),
and runtime flags (see Table 6.3).
Top-level routine for filling values to be applied at OB for
into corresponding
``slice'' arrays
,
for each OB:
; e.g. for salinity array at
Southern OB, array name is
.
Values filled are either
- constant vertical
profiles as specified in file
data (tRef(Nr), sRef(Nr)) with zero velocities
,
-
values determined via Orlanski radiation conditions
(see below),
- prescribed time-constant or time-varying fields (see below).
Orlanski radiation conditions [Orlanski, 1976]
Setting OB fields and updates
Setting sponge layer characteristics
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:
|
6.3.1.10 Experiments and tutorials that use obcs
- Ocean experiment in exp4 verification directory.
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 |
|
|