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.
  



CANDIE Home User Guide Contents Previous Section Top of Page Next Section