6 Terms and Definitions
Note that entries preceeded by an asterisk (*) must be specified
by the user.

INDICIES AND ARRAY DIMENSION PARAMETERS
- I
- Horizontal grid index in X-direction.
- J
- Horizontal grid index in Y-direction.
- K
- Vertical grid index in Z-direction, increasing downward.
- *I0
- Number of model grid cells in X-direction, including a
one grid ``ghost zone'' at each end. It is specified
in a PARAMETER statement in file PREP/ Diecast.h
in an #ifdef block for your application.
- I1
- =I0-1
- I2
- =I0-2
- I3
- =I0-3
- IJ0
- =I0+I0
- IJ1
- =IJ0-1
- IP
- =I0+1
- *J0
- Number of model grid cells in Y-direction, including a
one grid ``ghost zone'' at each end. It is specified
in a PARAMETER statement in file PREP/ Diecast.h in an
#ifdef block for your application.
- J1
- =J0-1
- J2
- =J0-2
- J3
- =J0-3
- JP
- =J0+1
- *K0
- Number of model interfaces between levels in the
vertical Z-direction (including top and bottom),
specified in a PARAMETER statement in file
PREP/ Diecast.h in an #ifdef block for your
application.
- K01
- =K0+ K1
- K1
- = K0-1 (The number of model grid cells or levels in
the vertical.)
- K2
- =K0-2
- K3
- =K0-3
- KP
- =K0+1
- *NB0
- Number of blocks in the Y-direction for the
elliptic solver used to determine pressure at the surface. For good
results each block should be about 6 grid cells in
the Y-direction. It is specified in file
PREP/ Diecast.h
in an #ifdef block for your application. See the
description of IE( NB0).
- NB1
- =NB0-1
MODEL PARAMETERS
- *CD
- Nondimensional drag coefficient for bottom stress,
typically 2.5 X 10-3. The value is set in
file MAIN/ Runtime_parm.tag.
- *DAODT
- Number of time steps per day. For example, a time
step of 216 s would be DAODT = 400 (86400/216 = 400).
This is set in file MAIN/ Runtime_parm.tag.
- DAYS
- The simulation time in days and fractions of a day,
computed in the MAIN/ main.F model from
ITF and DAODT.
- DT =
, computed by the model
in MAIN/SUBS/ initfs.F.
- *DX0
- The value of the X-grid spacing in cm for a uniform
grid. It is used with the SPECIAL_TEST option, and
set in the file for your case
PREP/SUBS/ my_test_case.h, when
DX(1) = DX0.
- *DY0
- The value of the Y-grid spacing in cm for a uniform
grid. It is used with the SPECIAL_TEST option, and
set in the file for your case
PREP/SUBS/ my_test_case.h, when
DY(1) = DY0.
- *DYDX
- Ratio of dy to dx. Set DYDX = 999 for a grid that is
uniform in lon/lat space. Set DYDX = 1 for a grid
that is uniform in X-Y space. This is set in
PREP Prep_parm.tag.
- *FLTW
- Time filter coefficient on leapfrog time step method
(Asselin filter). It is set in file
MAIN/ Runtime_parm.tag and usually left at 0.05.
- G
- = 981cm s-2, acceleration due to gravity.
- *HMAX
- Maximum depth in cm. It is the bottom of the deepest
layer, Z( K01) = HMAX. It is specified in your
appropriate file PREP/SUBS/my_test_case.h.
- *HT_BBL
- Height of bottom boundary layer in cm (if used).
This is set in file PREP/ Prep_parm.tag.
- *ICONV
- Flag determining the convection scheme. If
ICONV is set to zero, then convection is
suppressed. Normally, ICONV = 1 which results
in the standard approach of mixing down from the top
to eliminate static instabilities. The surface layer
can be slotted in at its neutral stability level
before mixing by setting ICONV = 2.
- *ISAV
- Interval in time steps at which restart file is
written. This is set in file
MAIN/ Runtime_parm.tag.
- ITF
- Time step index number ( ITF = 1,2,..., MXIT) that
integrates the MAIN/ main.F program forward in time.
- *ISWEEP
- Number of times the deep convection scheme is
implemented in MAIN/SUBS/ convect.F at each time
step to search for denser water over lighter water
and mix, if ICONV is set to be greater than 0.
Typically, ISWEEP = 1-3. The value is set in file
MAIN/ Runtime_parm.tag.
- *KHH
- Horizontal T and S diffusivity coefficient in
cm2s-1. Note that the typical value
KHM = KHH = 104 ; cm2s-1
is equivalent to 1 m 2s-1. This is set in file
MAIN/ Runtime_parm.tag.
- *KHM
- Horizontal momentum viscosity coefficient in
cm2s-1. This is set in file
MAIN/ Runtime_parm.tag.
- *KVH0
- Vertical T and S diffusivity coefficient in
cm2s-1. Note that the typical value
KVM0 = KVH0 = 0.1 cm2s-1
is equivalent to 10-5 m2s-1. This is
set in file MAIN/ Runtime_parm.tag.
- *KVM0
- Vertical momentum viscosity coefficient in
cm2s-1. This is set in file
MAIN/ Runtime_parm.tag.
- *LRSTRT
- Flag to initialize from restart file.
Set in file MAIN/ Runtime_parm.tag.
If LRSTRT = 0 the program
is started using only information from the files
created by prep. The initial velocity is set
to zero (but not necessarily boundary values). If
LRSTART = 1 the program is started from a
restart file.
The main program will request the name tag of the
restart file, so give this name tag on the third
line of file main.in.
- *MVI
- Interval in days at which data is written to file for
movies. This is set in file MAIN/ Runtime_parm.tag.
- MXEVP
- Maximum number of iterations performed by elliptic solver
to determine surface pressure, in main.F.
- *MXIT
- Number of total time steps in model run. For example,
to run for 15 days with DAODT = 400, set
MXIT = 6000. This is set in file
MAIN/ Runtime_parm.tag.
- *OT_RESTORE
- Parameter determining surface restoring
time scale for T and S. For a restoring time
of 30 days, OT_RESTORE = DT/(30*86400). This is
set in file MAIN/SUBS/initfs.F, inside the
#ifdef T_RESTORE block in an ifdef block
for your special case.
- *Q_BKGRND
- Bottom friction coefficient if linear bottom
friction is used. A strong value is 20
cms-1. The value is set in file
MAIN/ Runtime_parm.tag.
- *RZFAC
- Nondimensional number (typically 0.0 - 0.1) set to
increase vertical mixing coefficient by additional amount
RZFAC*ABS( W(I,J,K)).
The value is set in file
MAIN/ Runtime_parm.tag.
- *TAG
- Character string (character*20): identifier name
for a given program run of main, supplied on
the first line of file main.in, or typed in on
request if program is run interactively.
- *TAG_READ
- Character string (character*20): identifier name
for the restart file from which a run of main is
to be restarted
(if LRSTRT=1 in the Runtime_parm.tag file).
The expression TAG_READ is that expression TAG
that was used to create the restart file. TAG\_READ
is supplied on the third line of file main.in,
or interactively.
- *TAG_ROOT
- Character string (character*20): identifier name
for a preparation run of prep. It is supplied in
the file prep.in (or interactively), and
on the second line of file main.in, or interactively.
- *X0DEG
- Longitude of westernmost grid point (including
``ghost zone''. This is set in file
PREP/ Prep_parm.tag. This is not used if you set
up your own grid in a SPECIAL_TEST.
- *XRDEG
- Distance in degrees from the center of the westernmost
to the center of the easternmost grid cell. This is set in file
PREP/Prep_parm.tag. This is not used if you set
up your own grid in a SPECIAL_TEST.
- *Y0DEG
- Latitude of southernmost grid point (including
``ghost zone''). This is set in file
PREP/Prep_parm.tag. This is not used if you set
up your own grid in a SPECIAL_TEST.
- *YRDEG
- Distance in degrees from the center of the southernmost
to the center of the northernmost grid cell. This is set in file
PREP/Prep_parm.tag. This is not used if you set
up your own grid in a SPECIAL_TEST.
- *Z0
- Roughness length in cm. Set in file
MAIN/ Runtime_parm.tag.
- *ZTOP
- Depth in cm of midpoint of first layer, Z(2). It is
the level of the surface pressure. It is specified
in the appropriate file for your case
PREP/SUBS/ my_test_case.h, and used in file
prep.F in the call to subroutine SETZW to set
up the vertical Z-level distribution, array Z( K01).
If you explicitly specify the Z-levels, ZTOP is not
used, and the call to subroutine SETZW should be
commented out.
ARRAYS
- *CS(J0)
- Cosine of latitude at a grid cell center, an A-grid
point. If a
lon/lat grid is used it is calculated in
PREP/ prep.F. If a SPECIAL_TEST is used
it is set in a file for your case
PREP/SUBS/ my_test_case.h. Set the
array CS(J) = 1 for a rectangular grid.
- *CSV(JP)
- Cosine of latitude at north and south boundaries
of grid cell, the V-velocity, C-grid points. If a lon/lat
grid is used it is calculated in PREP/ prep.F.
If a SPECIAL_TEST is used it is set in a file for
your case PREP/SUBS/ my_test_case.h. Set the
array CSV(J) = 1 for a grid that is uniform in X
and Y.
- *DEPTH(IP,JP)
- Model depths in cm at the A-grid points.
The array is used as if
it had dimensions ( I0, J0). The user must
specify a one grid ``ghost zone'' or all
around the domain with zero depth, for rows
J = 1 and J0 and columns I
= 1 and I0. This can be used as an open
boundary where the open boundary conditions
are specified. The bathymetry is read from a
data file or specified by code in the appropriate
file for you case, PREP/SUBSmy_test_case.h.
- DX(J0)
- The grid spacing in cm in the X-direction, for a
grid cell centered on an A-grid temperature point.
Calculated in PREP/ prep.F.
- DXV(JP)
- The grid spacing in cm in the X-direction, for a
grid cell centered on a C-grid advective V-velocity point.
Calculated
in PREP/ prep.F.
- DY(J0)
- The grid spacing in cm in the Y-direction, for a
grid cell centered on an A-grid temperature point. It is
only a function of the Y-distance. Calculated in
PREP/ prep.F.
- DYV(JP)
- The grid spacing in cm in the Y-direction, for a
grid cell centered on a C-grid advective V-velocity point.
Calculated
in PREP/ prep.F.
- DZ(K0)
- The vertical thickness of the model layers in cm.
DZ(K) = Z(2*K+1)- Z(2*K-1).
It is the thickness of a
cell centered on a temperature T point and the
distance between vertical velocity W points.
Calculated in PREP/ prep.F.
- *F(J0)
- Coriolis parameter in s-1 on the A-grid points.
It is only a
function of the Y-distance. It is calculated in
PREP/ prep.F if the domain is given
as a lon/lat grid.
If the user specifies a SPECIAL_TEST, F(J)
should be given in the file for your
case, PREP/SUBS/ my_test_case.h.
- *IE(NB0)
- INTEGER*2 array of EVP block boundaries used in Poisson
pressure solver. The present version of CANDIE
determines these points in the file
PREP/ Diecast.h in the #ifdef block for your
case, from the values of J0 and NB0. The array
values could be set explicitly by the user as is
done in the Diecast model. For good results each
block should be about 6 grid cells in the
Y-direction. Note that this means IE(1) = 6 or a
close value, and the last value can be
IE( NB0) = J0-1, but should not be the
J0 boundary
point. If IE(1) is too near the boundary or
IE( NB0) = J0, the pressure solver does not function
properly and large or infinite velocities may
result from the first time step, with no
other additional information.
- IN(I0,J0,K1)
- INTEGER*2 mask array for scalar variables at
center of grid cell, the A-grid points. The value is 1 for a
water cell and 0 for a land or boundary cell.
Calculated in PREP/ prep.F.
- IU(IP,J0,K0)
- INTEGER*2 mask array for the advective U-velocity on
the C-grid. The value is 1 for a water cell and 0
for a land or boundary grid point, except at the first
level K=1, where IU(I,J,1)=1.
Calculated in
PREP/ prep.F.
- IU0(IP,J0)
- INTEGER*2 2-D mask array for the advective U-velocity
on the C-grid, at the first level K=1. The value is 1
for a water cell and 0
for a land or boundary grid point.
Calculated in
PREP/ prep.F.
- IV(I0,JP,K0)
- INTEGER*2 mask array for the advective V-velocity on
the C-grid. The value is 1 for a water cell and 0
for a land or boundary grid point, except at the first
level K=1, where IV(I,J,1)=1.
Calculated in
PREP/ prep.F.
- IV0(I0,JP)
- INTEGER*2 2-D mask array for the advective V-velocity
on the C-grid, at the first level K=1. The value is 1
for a water cell and 0
for a land or boundary grid point.
Calculated in
PREP/ prep.F.
- IW(I0,JP,K0)
- INTEGER*2 mask array for the advective V-velocity on
the C-grid. The value is 1 for a water cell and 0
for a land or boundary grid point, except at the first
level K=1, where IV(I,J,1)=1.
Calculated in
PREP/prep.F.
- KB(I0,J0)
- INTEGER*2 array gives the number of vertical
water grid cells from the surface to the bottom
at each (I,J) grid point. For a land point or at
the boundary the value is one. For a position where the
depth is maximum HMAX, the value of KB
is K1, the maximum number of cells. The model
calculates this array from the given depth array
DEPTH( IP, JP) and vertical levels
array Z ( K01),
in PREP/ prep.F.
- LAT_YR(J0)
- Latitude of A-grid cell center.
- LONG_XR(I0)
- Longitude of A-grid cell center.
- OCS(J0)
- The inverse values of array CS(J0). OCS(J)
= 1. CS(J). Calculated in PREP/ prep.F.
- OCSV(JP)
- The inverse values of array CSV(JP). OCSV(J)
= 1./ CSV(J). Calculated in PREP/ prep.F.
- ODX(J0)
- The inverse of the grid spacing DX( J0) in
cm-1. ODX(J) = 1/ DX(J). Calculated
in PREP/ prep.F.
- ODXV(JP)
- The inverse of the grid spacing DXV in
cm-1. ODXV(J) = 1/ DXV(J). Calculated in
PREP/ prep.F.
- ODY(J0)
- The inverse of the grid spacing DY in
cm-1. ODY(J) = 1/ DY(J). Calculated in
PREP/ prep.F.
- ODYV(JP)
- The inverse of the grid spacing DYV in
cm-1. ODYV(J) = 1/ DYV(J). Calculated in
PREP/ prep.F.
- ODZ(K0)
- Inverse of the vertical grid spacing DZ
in cm-1. ODZ(K) = 1/ DZ(K). Calculated in
PREP/ prep.F.
- ODZW(K0)
- The inverse of the distance between temperature
points in the vertical, in cm-1. It is the
recriprocal of the distance between midpoints of
the layers, and the recriprocal of the thickness of
a grid cell centered on a vertical velocity
point. For interior points
ODZW(K) = 1/( Z(2*K)- Z(2*K-2)).
Note that there is no DZW array. Calculated
in PREP/ prep.F.
- P(I0,J0,K0)
- REAL*8 pressure at the A-grid cell center.
- PS(I0,J0)
- REAL*8 surface pressure at the A-grid cell center.
- RHOP(I0,J0,K0)
- Density at the A-grid cell center.
- *S1(I0,J0,K0)
- The salinity in ppt at the A-grid points at
the back time
step, calculated in subroutine FS of
MAIN/ main.F. The salinity is at the
midpoint of the layer, and the layer values
for K0 are meaningless. It is specified
in some file to be read in by
PREP/ prep.F.
- S2(I0,J0,K0)
- The salinity in ppt at the A-grid points
at the filtered
time step, calculated in subroutine FS of
MAIN/ main.F. The salinity is at the
midpoint of the layer, and the layer values
for K0 are meaningless.
- *TAUX(I0,J0)
- The X-direction wind stress in dynes cm-2,
at an A-grid point.
Winds from the west give positive stress.
- *TAUY(I0,J0)
- The Y-direction wind stress in dynes cm-2,
at an A-grid point.
Winds from the south give positive stress.
- *T1(I0,J0,K0)
- The temperature in °C at the A-grid points at
the back time
step, calculated in subroutine FS of
MAIN/ main.F. The temperature is at the
midpoint of the layer, and the layer values
for K0 are meaningless. It is specified
in some file to be read in by prep.F.
- T2(I0,J0,K0)
- The temperature in °C at the A-grid points
at the filtered
time step, calculated in subroutine FS of
MAIN/ main.F. The temperature is at the
midpoint of the layer, and the layer values
for K0 are meaningless.
- U(IP,J0,K0)
- The X-direction advective velocity (cm s-1)
on the
C-grid points.
- U1(I0,J0,K0)
- The X-direction velocity (cm s-1)
at the A-grid points
at the back time step. Calculated in
subroutine FS of MAIN/ main.F.
- U2(I0,J0,K0)
- The X-direction velocity (cm s-1)
at the A-grid points at
the filtered time step. Calculated in
subroutine FS of MAIN/ main.F.
- V(I0,JP,K0)
- The Y-direction advective velocity (cm s-1)
on the
C-grid points.
- V1(I0,J0,K0)
- The Y-direction velocity (cm s-1) at
the A-grid points at
the back time step. Calculated in subroutine
FS of MAIN/main.F
- V2(I0,J0,K0)
- The Y-direction velocity (cm s-1) at
the A-grid points at
the filtered time step. Calculated in
subroutine FS of MAIN/ main.F.
- W(I0,J0,K0)
- The vertical velocity in cm s-1,
positive downward. Calculated in subroutine
FS of MAIN/ main.F.
- Y(J0)
- The distance in cm of an A-grid cell center from the
south boundary. Calculated in PREP/ prep.F.
- YV(JP)
- The distance in cm of a C-grid, advective velocity V
point from the
south boundary, calculated in PREP/ prep.F.
- *Z(K01)
- The Z-level vertical grid spacing. There are K0
layer interfaces (including the top and bottom),
and K1 = K0-1 layers. Z(1) = 0
(Surface), Z(2)= ZTOP is
the depth in cm of the midpoint of the first layer,
..., Z( K01-1) is the depth in cm of the
midpoint of the deepest layer, and Z( K01)
= HMAX (Maximum depth
in cm, bottom of deepest layer). As a default the
program PREP/ prep.F will set the Z-levels with a
call to subroutine SETZW. The user can set the
depths explicitly if desired, making sure that
Z(2* K)= 0.5*( Z(2* K+1) +
Z(2* K-1)),
and then commenting out
the call to SETZW.