Module ocean_xlandinsert_mod
OVERVIEW
Tracer and eta source from cross-land insertion.
Compute thickness weighted tendency [tracer*meter/sec]
of tracer associated with cross-land insertion.
OTHER MODULES USED
constants_mod
diag_manager_mod
field_manager_mod
fms_mod
mpp_domains_mod
mpp_mod
ocean_domains_mod
ocean_types_mod
ocean_workspace_mod
PUBLIC INTERFACE
PUBLIC DATA
None.
PUBLIC ROUTINES
-
ocean_xlandinsert_init
-
DESCRIPTION
- Initial set up for crossland insertion of tracers and eta
Checks are performed to ensure that the crossland mixing
grid locations are valid according to model configuration.
A summary of the locations of crossland points is written out.
User specified inputs in "USER INPUT" section:
ixland and jxland = user specified nxland pairs of i,j grid locations
kxland = user specified uppermost (ktop=kxland(n,1)) and
deepest (kbot=kxland(n,2)) levels over which crossland
will be done for each crossland pair. Note the for
xlandinsert, kxland(nxl,1)=1 is required, since the
aim is to move excess volume from one column to another.
tauxland = user specified time constant (seconds) setting the rate
of transport via upwind advection.
NOTE: for ixland, jxland, and kxland pairs, values of the
(n,1) element should be < the corresponding (n,2) value.
-
xlandinsert
-
DESCRIPTION
- Compute thickness weighted tracer source [tracer*m/s]
and surface height source (m/s) associated with
discharge of tracer from surface of a thick column
into a set of boxes within a thin column.
Modified by Keith.Dixon@noaa.gov (January 2004)
-
xlandinsert_eta
-
DESCRIPTION
- Compute the source for surface height with units meter/sec.
Note that xlandinsert has already been called, so xlandinsert_eta
has been filled.
-
at_least_one_in_comp_domain
-
DESCRIPTION
- Function to see if at least one of the two points in a crossland pair
is within the computational domain for the processor.
-
INPUT
-
nxl | Integer labeling the particular xlandinsert pair [integer] |
-
on_comp_domain
-
DESCRIPTION
- Determine if the point is in comp-domain for the processor
-
INPUT
-
nxl | Integer labeling the particular xlandinsert pair [integer] |
lx | lx=1,2 labels the point within an xlandinsert pair [integer] |
NAMELIST
&ocean_xlandinsert_nml
-
use_xlandinsert
Needs to be true in order to use this scheme.
[logical]
-
verbose_init
For verbose initialization information.
[logical]
-
debug_xlandinsert
For debugging.
[logical]
DATA SETS
None.
ERROR MESSAGES
None.
REFERENCES
- S.M. Griffies, M.J. Harrison, R. C. Pacanowski, and A. Rosati
A Technical Guide to MOM4 (2003)
NOAA/Geophysical Fluid Dynamics Laboratory
COMPILER SPECIFICS
None.
PRECOMPILER OPTIONS
None.
LOADER OPTIONS
None.
TEST PROGRAM
None.
KNOWN BUGS
None.
NOTES
Algorithm ensures both total tracer and total volume is conserved.
Algorithm sets up the insertion points as in xlandmix, and
transports between the columns as in rivermix.
2D domain decomposition is implemented according to following
notions. If the two points in an xlandinsert pair live within halo
of each other (i.e., within same local_domain),
then no added mpp communication required. However, nore generally
the two points live further away. In this case, xland_domain
is defined so that its halos incorporate the maximum separation
of xlandinsert points. New tracer, eta, and grid arrays
are defined over this extended xland_domain. This added domain
size will come at some computational cost, so it is advantageous
to limit the separation between points within an xlandinsert pair.
The current implementation of xlandinsert has not been generalized
to allow for communication between points separated by the tripolar fold.
The problem is in the logic used to compute xland_domain.
There is nothing fundamental limiting a generalization of the
logic used to generate xland_domain.
Many of the user specified values given in USER INPUT are
model dependent since unresolved straits can become resolved
in finer mesh models.
FUTURE PLANS
None.