This module sets up the ocean model grid based on information read in
from the grid_spec.nc file. It translates the generic names from the
grid_spec.nc file to the names used by MOM.
Set the ocean grid size. Model expects the grid specification file
to be called grid_spec.nc.
set_ocean_hgrid_arrays
DESCRIPTION
Define horizontal (and some vertical) grid arrays.
---------------------------------------------------------------------------------------------------------------------
Grid% grid_spec grid_spec grid_spec Description
var field field field
VERSION_0 VERSION_1 VERSION_2(mosaic)
---------------------------------------------------------------------------------------------------------------------
ocean_vgrid.nc
k=1,nk
zt zt zt zeta(2k-1)
zw zw zb zeta(2k)
ocean_hgrid.nc
i=1,ni
j=1,nj
grid_x_t gridlon_t grid_x_T x(2i ,2)
grid_x_u gridlon_vert_t grid_x_C x(2i+1,1)
grid_y_t gridlat_t grid_y_T y(ni/4,2j)
grid_y_u gridlat_vert_t grid_y_C y(ni/4,2j+1)
T
xt(i,j) geolon_t(i,j) x_T(i,j) x(2i,2j)
yt geolat_t y_T y(2i,2j)
dtw dtw ds_01_11_T dx(2i-1,2j) distance to western face of t cell
dte dte ds_11_21_T dx(2i,2j) distance to eastern face of t cell
dts dts ds_10_11_T dy(2i,2j-1) distance to southern face of t cell
dtn dtn ds_11_12_T dy(2i,2j) distance to northern face of t cell
dxt dxt ds_01_21_T dx(2i,2j) +dx(2i-1,2j) width of t cell
dxtn dxtn ds_02_22_T dx(2i-1,2j+1)+dx(2i,2j+1) width of northern face of t cell
dxte dxte ds_00_20_C dx(2i,2j) +dx(2i+1,2j) distance to adjacent t cell to the east!
dyt dyt ds_10_12_T dy(2i,2j) +dy(2i,2j-1) height of t cell
dytn dytn ds_00_02_C dy(2i,2j) +dy(2i,2j+1) distance to adjacent t cell to the north!
dyte dyte ds_20_22_T dy(2i+1,2j-1)+dy(2i+1,2j) height of eastern face of t cell
C
NOTE: The "first" (I,J) C-cell is the one shifted NE of the "first" (I,J) T-cell
xu geolon_c x_C x(2i+1,2j+1)
yu geolat_c y_c y(2i+1,2j+1)
dxu dxu ds_01_21_C dx(2i+1,2j+1)+dx(2i,2j+1) width of u cell
dxun dxun ds_02_22_C dx(2i,2j+2)+dx(2i+1,2j+2) width of northern face of u cell
dyu dyu ds_10_12_C dy(2i+1,2j+1)+dy(2i+1,2j) height of u cell
dyue dyue ds_20_22_C dy(2i+2,2j)+dy(2i+2,2j+1) height of eastern face of u cell
dyun dyun ds_11_12_C dy(2i+1,2j+1)+dy(2i+1,2j+2) distance to adjacent u cell to the north
+ds_10_11_C(i,j+1) satisfies sum rule dyte(i,j)=dyun(i,j-1)
dxue dxue ds_11_21_C dx(2i+1,2j+1)+dx(2i+2,2j+1) distance to adjacent u cell to the east!
+ds_01_11_C(i+1,j)
duw duw ds_01_11_C dx(2i,2j+1) distance to western face of u cell
due due ds_11_21_C dx(2i+1,2j+1) distance to eastern face of u cell
dus dus ds_10_11_C dy(2i+1,2j) distance to southern face of u cell
dun dun ds_11_12_C dy(2i+1,2j+1) distance to northern face of u cell
sin_rot sin_rot angle_C sin(angle_dx(2*i+1,2*j+1) sin of rotation angle at corner cell centers
cos_rot cos_rot angle_C cos(angle_dx(2*i+1,2*j+1) cos of rotation angle at corner cell centers
Following are the available fields in mosaic files
--------------------------------------------------------
Mosaic file fields
--------------------------------------------------------
ocean_hgrid.nc x, y, dx, dy, angle_dx, area
ocean_vgrid.nc zeta
topog.nc depth
set_ocean_vgrid_arrays
DESCRIPTION
Compute vertical (and some horizontal) grids for ocean model.
Also compute axes information for diagnostic manager.
axes_info
DESCRIPTION
Set up axes definitions.
update_boundaries
DESCRIPTION
Set halo points at model boundaries equal to values at boundaries
if no grid connectivity exists. If model is connected along
boundary (e.g., tripolar) then use mpp_update_domains.
NAMELIST
&ocean_grids_nml
read_rho0_profile
To read in an initial rho0(k) profile to assist in defining the
initial settings for the pressure increments dst, for use in
setting the pressure-based vertical coordinate grids. Ideally,
this profile is determined by the level averaged density in
the initial conditions. Note that it is essential to have
rho0_profile have a sensible value at all depths even if there
is no water there, since there are places where we divide by
rho0_profile in rock. Also, be mindful that with denser water
at depth, the pressure levels will be coarser at depth than if
using the trivial density profile rho0(k)=rho0.
This option is experimental, so it is recommended that user
maintain the default read_rho0_profile=.false.
[logical]
do_bitwise_exact_sum
Set true to do bitwise exact global sum. When it is false, the global
sum will be non-bitwise_exact, but will significantly increase efficiency.
The default value is do_bitwise_exact_sum=.false.
[logical]
debug_this_module
For debugging. Note that most of the debugging stuff
has been removed, but keep flag around in case need in future.
[logical]
verbose_init
Prints out lots of initial checksums. Useful to have on, so
defaulted to true.
[logical]
REFERENCES
S.M. Griffies, M.J. Harrison, A. Rosati, and R.C. Pacanowski
A Technical Guide to MOM4 (2003)